@metamask-previews/transaction-controller 60.4.0-preview-b896289e → 60.5.0-preview-5eac8e7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -4
- package/dist/TransactionController.cjs +74 -127
- package/dist/TransactionController.cjs.map +1 -1
- package/dist/TransactionController.d.cts +18 -50
- package/dist/TransactionController.d.cts.map +1 -1
- package/dist/TransactionController.d.mts +18 -50
- package/dist/TransactionController.d.mts.map +1 -1
- package/dist/TransactionController.mjs +75 -128
- package/dist/TransactionController.mjs.map +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +44 -0
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +44 -0
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs.map +1 -1
- package/dist/utils/first-time-interaction.cjs +77 -0
- package/dist/utils/first-time-interaction.cjs.map +1 -0
- package/dist/utils/first-time-interaction.d.cts +30 -0
- package/dist/utils/first-time-interaction.d.cts.map +1 -0
- package/dist/utils/first-time-interaction.d.mts +30 -0
- package/dist/utils/first-time-interaction.d.mts.map +1 -0
- package/dist/utils/first-time-interaction.mjs +73 -0
- package/dist/utils/first-time-interaction.mjs.map +1 -0
- package/dist/utils/transaction-type.cjs +22 -5
- package/dist/utils/transaction-type.cjs.map +1 -1
- package/dist/utils/transaction-type.d.cts +14 -0
- package/dist/utils/transaction-type.d.cts.map +1 -1
- package/dist/utils/transaction-type.d.mts +14 -0
- package/dist/utils/transaction-type.d.mts.map +1 -1
- package/dist/utils/transaction-type.mjs +20 -4
- package/dist/utils/transaction-type.mjs.map +1 -1
- package/package.json +2 -3
package/CHANGELOG.md
CHANGED
|
@@ -7,15 +7,28 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
-
###
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- Expose `addTransaction` and `addTransactionBatch` methods through the messenger ([#6749](https://github.com/MetaMask/core/pull/6749))
|
|
13
|
+
- Add types:
|
|
14
|
+
- `AddTransactionOptions`
|
|
15
|
+
- `TransactionControllerAddTransactionAction`
|
|
16
|
+
- `TransactionControllerAddTransactionBatchAction`
|
|
11
17
|
|
|
12
|
-
|
|
13
|
-
- Previously, `TransactionController` accepted a `RestrictedMessenger` instance from `@metamask/base-controller`.
|
|
18
|
+
## [60.5.0]
|
|
14
19
|
|
|
15
20
|
### Added
|
|
16
21
|
|
|
17
22
|
- Add `predictBuy`, `predictClaim`, `predictDeposit` and `predictSell` to `TransactionType` ([#6690](https://github.com/MetaMask/core/pull/6690))
|
|
18
23
|
|
|
24
|
+
### Changed
|
|
25
|
+
|
|
26
|
+
- Bump `@metamask/utils` from `^11.8.0` to `^11.8.1` ([#6708](https://github.com/MetaMask/core/pull/6708))
|
|
27
|
+
|
|
28
|
+
### Fixed
|
|
29
|
+
|
|
30
|
+
- Update `isFirstTimeInteraction` to be determined using recipient if token transfer. ([#6686](https://github.com/MetaMask/core/pull/6686))
|
|
31
|
+
|
|
19
32
|
## [60.4.0]
|
|
20
33
|
|
|
21
34
|
### Added
|
|
@@ -1827,7 +1840,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
1827
1840
|
|
|
1828
1841
|
All changes listed after this point were applied to this package following the monorepo conversion.
|
|
1829
1842
|
|
|
1830
|
-
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@60.
|
|
1843
|
+
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@60.5.0...HEAD
|
|
1844
|
+
[60.5.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@60.4.0...@metamask/transaction-controller@60.5.0
|
|
1831
1845
|
[60.4.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@60.3.0...@metamask/transaction-controller@60.4.0
|
|
1832
1846
|
[60.3.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@60.2.0...@metamask/transaction-controller@60.3.0
|
|
1833
1847
|
[60.2.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@60.1.0...@metamask/transaction-controller@60.2.0
|
|
@@ -13,10 +13,10 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
13
13
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
14
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
15
|
};
|
|
16
|
-
var _TransactionController_instances, _TransactionController_afterAdd, _TransactionController_afterSign, _TransactionController_afterSimulate, _TransactionController_approvingTransactionIds, _TransactionController_beforeCheckPendingTransaction, _TransactionController_beforePublish, _TransactionController_beforeSign, _TransactionController_gasFeeFlows, _TransactionController_getAdditionalSignArguments, _TransactionController_getCurrentAccountEIP1559Compatibility, _TransactionController_getCurrentNetworkEIP1559Compatibility, _TransactionController_getExternalPendingTransactions, _TransactionController_getGasFeeEstimates, _TransactionController_getNetworkState, _TransactionController_getPermittedAccounts, _TransactionController_getSavedGasFees, _TransactionController_getSimulationConfig, _TransactionController_incomingTransactionHelper, _TransactionController_incomingTransactionOptions, _TransactionController_internalEvents, _TransactionController_isAutomaticGasFeeUpdateEnabled, _TransactionController_isEIP7702GasFeeTokensEnabled, _TransactionController_isFirstTimeInteractionEnabled, _TransactionController_isHistoryDisabled, _TransactionController_isSendFlowHistoryDisabled, _TransactionController_isSimulationEnabled, _TransactionController_isSwapsDisabled, _TransactionController_layer1GasFeeFlows, _TransactionController_methodDataHelper, _TransactionController_multichainTrackingHelper, _TransactionController_pendingTransactionOptions, _TransactionController_publicKeyEIP7702, _TransactionController_publish, _TransactionController_publishBatchHook, _TransactionController_securityProviderRequest, _TransactionController_sign, _TransactionController_signAbortCallbacks, _TransactionController_skipSimulationTransactionIds, _TransactionController_testGasFeeFlows, _TransactionController_trace, _TransactionController_transactionHistoryLimit, _TransactionController_retryTransaction, _TransactionController_signExternalTransaction, _TransactionController_addMetadata, _TransactionController_updateGasProperties, _TransactionController_onBootCleanup, _TransactionController_failIncompleteTransactions, _TransactionController_processApproval, _TransactionController_approveTransaction, _TransactionController_publishTransaction, _TransactionController_rejectTransaction, _TransactionController_trimTransactionsForState, _TransactionController_isFinalState, _TransactionController_isLocalFinalState, _TransactionController_requestApproval, _TransactionController_getTransaction, _TransactionController_getTransactionOrThrow, _TransactionController_getApprovalId, _TransactionController_isTransactionCompleted, _TransactionController_getChainId, _TransactionController_getNetworkClientId, _TransactionController_getEthQuery, _TransactionController_getProvider, _TransactionController_onIncomingTransactions, _TransactionController_generateDappSuggestedGasFees, _TransactionController_addExternalTransaction, _TransactionController_markNonceDuplicatesDropped, _TransactionController_setTransactionStatusDropped, _TransactionController_getTransactionWithActionId, _TransactionController_waitForTransactionFinished, _TransactionController_updateTransactionMetaRSV, _TransactionController_getEIP1559Compatibility, _TransactionController_signTransaction, _TransactionController_onTransactionStatusChange, _TransactionController_getNonceTrackerTransactions, _TransactionController_onConfirmedTransaction, _TransactionController_updatePostBalance, _TransactionController_createNonceTracker, _TransactionController_createPendingTransactionTracker, _TransactionController_checkForPendingTransactionAndStartPolling, _TransactionController_stopAllTracking, _TransactionController_addIncomingTransactionHelperListeners, _TransactionController_removePendingTransactionTrackerListeners, _TransactionController_addPendingTransactionTrackerListeners, _TransactionController_getNonceTrackerPendingTransactions, _TransactionController_publishTransactionForRetry, _TransactionController_isTransactionAlreadyConfirmedError, _TransactionController_getGasFeeFlows, _TransactionController_getLayer1GasFeeFlows, _TransactionController_updateTransactionInternal,
|
|
16
|
+
var _TransactionController_instances, _TransactionController_afterAdd, _TransactionController_afterSign, _TransactionController_afterSimulate, _TransactionController_approvingTransactionIds, _TransactionController_beforeCheckPendingTransaction, _TransactionController_beforePublish, _TransactionController_beforeSign, _TransactionController_gasFeeFlows, _TransactionController_getAdditionalSignArguments, _TransactionController_getCurrentAccountEIP1559Compatibility, _TransactionController_getCurrentNetworkEIP1559Compatibility, _TransactionController_getExternalPendingTransactions, _TransactionController_getGasFeeEstimates, _TransactionController_getNetworkState, _TransactionController_getPermittedAccounts, _TransactionController_getSavedGasFees, _TransactionController_getSimulationConfig, _TransactionController_incomingTransactionHelper, _TransactionController_incomingTransactionOptions, _TransactionController_internalEvents, _TransactionController_isAutomaticGasFeeUpdateEnabled, _TransactionController_isEIP7702GasFeeTokensEnabled, _TransactionController_isFirstTimeInteractionEnabled, _TransactionController_isHistoryDisabled, _TransactionController_isSendFlowHistoryDisabled, _TransactionController_isSimulationEnabled, _TransactionController_isSwapsDisabled, _TransactionController_layer1GasFeeFlows, _TransactionController_methodDataHelper, _TransactionController_multichainTrackingHelper, _TransactionController_pendingTransactionOptions, _TransactionController_publicKeyEIP7702, _TransactionController_publish, _TransactionController_publishBatchHook, _TransactionController_securityProviderRequest, _TransactionController_sign, _TransactionController_signAbortCallbacks, _TransactionController_skipSimulationTransactionIds, _TransactionController_testGasFeeFlows, _TransactionController_trace, _TransactionController_transactionHistoryLimit, _TransactionController_retryTransaction, _TransactionController_signExternalTransaction, _TransactionController_addMetadata, _TransactionController_updateGasProperties, _TransactionController_onBootCleanup, _TransactionController_failIncompleteTransactions, _TransactionController_processApproval, _TransactionController_approveTransaction, _TransactionController_publishTransaction, _TransactionController_rejectTransaction, _TransactionController_trimTransactionsForState, _TransactionController_isFinalState, _TransactionController_isLocalFinalState, _TransactionController_requestApproval, _TransactionController_getTransaction, _TransactionController_getTransactionOrThrow, _TransactionController_getApprovalId, _TransactionController_isTransactionCompleted, _TransactionController_getChainId, _TransactionController_getNetworkClientId, _TransactionController_getEthQuery, _TransactionController_getProvider, _TransactionController_onIncomingTransactions, _TransactionController_generateDappSuggestedGasFees, _TransactionController_addExternalTransaction, _TransactionController_markNonceDuplicatesDropped, _TransactionController_setTransactionStatusDropped, _TransactionController_getTransactionWithActionId, _TransactionController_waitForTransactionFinished, _TransactionController_updateTransactionMetaRSV, _TransactionController_getEIP1559Compatibility, _TransactionController_signTransaction, _TransactionController_onTransactionStatusChange, _TransactionController_getNonceTrackerTransactions, _TransactionController_onConfirmedTransaction, _TransactionController_updatePostBalance, _TransactionController_createNonceTracker, _TransactionController_createPendingTransactionTracker, _TransactionController_checkForPendingTransactionAndStartPolling, _TransactionController_stopAllTracking, _TransactionController_addIncomingTransactionHelperListeners, _TransactionController_removePendingTransactionTrackerListeners, _TransactionController_addPendingTransactionTrackerListeners, _TransactionController_getNonceTrackerPendingTransactions, _TransactionController_publishTransactionForRetry, _TransactionController_isTransactionAlreadyConfirmedError, _TransactionController_getGasFeeFlows, _TransactionController_getLayer1GasFeeFlows, _TransactionController_updateTransactionInternal, _TransactionController_updateSimulationData, _TransactionController_onGasFeePollerTransactionUpdate, _TransactionController_onGasFeePollerTransactionBatchUpdate, _TransactionController_updateTransactionBatch, _TransactionController_getSelectedAccount, _TransactionController_getInternalAccounts, _TransactionController_updateSubmitHistory, _TransactionController_updateGasEstimate, _TransactionController_registerActionHandlers, _TransactionController_deleteTransaction, _TransactionController_isRejectError, _TransactionController_rejectTransactionAndThrow, _TransactionController_failTransaction, _TransactionController_runAfterSimulateHook;
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
exports.TransactionController = exports.ApprovalState = exports.SPEED_UP_RATE = exports.CANCEL_RATE = void 0;
|
|
19
|
-
const
|
|
19
|
+
const base_controller_1 = require("@metamask/base-controller");
|
|
20
20
|
const controller_utils_1 = require("@metamask/controller-utils");
|
|
21
21
|
const eth_query_1 = __importDefault(require("@metamask/eth-query"));
|
|
22
22
|
const network_controller_1 = require("@metamask/network-controller");
|
|
@@ -28,7 +28,6 @@ const utils_1 = require("@metamask/utils");
|
|
|
28
28
|
const events_1 = require("events");
|
|
29
29
|
const lodash_1 = require("lodash");
|
|
30
30
|
const uuid_1 = require("uuid");
|
|
31
|
-
const accounts_api_1 = require("./api/accounts-api.cjs");
|
|
32
31
|
const DefaultGasFeeFlow_1 = require("./gas-flows/DefaultGasFeeFlow.cjs");
|
|
33
32
|
const LineaGasFeeFlow_1 = require("./gas-flows/LineaGasFeeFlow.cjs");
|
|
34
33
|
const OptimismLayer1GasFeeFlow_1 = require("./gas-flows/OptimismLayer1GasFeeFlow.cjs");
|
|
@@ -49,6 +48,7 @@ const balance_changes_1 = require("./utils/balance-changes.cjs");
|
|
|
49
48
|
const batch_1 = require("./utils/batch.cjs");
|
|
50
49
|
const eip7702_1 = require("./utils/eip7702.cjs");
|
|
51
50
|
const external_transactions_1 = require("./utils/external-transactions.cjs");
|
|
51
|
+
const first_time_interaction_1 = require("./utils/first-time-interaction.cjs");
|
|
52
52
|
const gas_1 = require("./utils/gas.cjs");
|
|
53
53
|
const gas_fee_tokens_1 = require("./utils/gas-fee-tokens.cjs");
|
|
54
54
|
const gas_fees_1 = require("./utils/gas-fees.cjs");
|
|
@@ -70,31 +70,31 @@ const metadata = {
|
|
|
70
70
|
transactions: {
|
|
71
71
|
includeInStateLogs: true,
|
|
72
72
|
persist: true,
|
|
73
|
-
|
|
73
|
+
anonymous: false,
|
|
74
74
|
usedInUi: true,
|
|
75
75
|
},
|
|
76
76
|
transactionBatches: {
|
|
77
77
|
includeInStateLogs: true,
|
|
78
78
|
persist: true,
|
|
79
|
-
|
|
79
|
+
anonymous: false,
|
|
80
80
|
usedInUi: true,
|
|
81
81
|
},
|
|
82
82
|
methodData: {
|
|
83
83
|
includeInStateLogs: true,
|
|
84
84
|
persist: true,
|
|
85
|
-
|
|
85
|
+
anonymous: false,
|
|
86
86
|
usedInUi: true,
|
|
87
87
|
},
|
|
88
88
|
lastFetchedBlockNumbers: {
|
|
89
89
|
includeInStateLogs: true,
|
|
90
90
|
persist: true,
|
|
91
|
-
|
|
91
|
+
anonymous: false,
|
|
92
92
|
usedInUi: false,
|
|
93
93
|
},
|
|
94
94
|
submitHistory: {
|
|
95
95
|
includeInStateLogs: true,
|
|
96
96
|
persist: true,
|
|
97
|
-
|
|
97
|
+
anonymous: false,
|
|
98
98
|
usedInUi: false,
|
|
99
99
|
},
|
|
100
100
|
};
|
|
@@ -137,7 +137,7 @@ function getDefaultTransactionControllerState() {
|
|
|
137
137
|
/**
|
|
138
138
|
* Controller responsible for submitting and managing transactions.
|
|
139
139
|
*/
|
|
140
|
-
class TransactionController extends
|
|
140
|
+
class TransactionController extends base_controller_1.BaseController {
|
|
141
141
|
/**
|
|
142
142
|
* Constructs a TransactionController.
|
|
143
143
|
*
|
|
@@ -199,7 +199,7 @@ class TransactionController extends next_1.BaseController {
|
|
|
199
199
|
_TransactionController_checkForPendingTransactionAndStartPolling.set(this, () => {
|
|
200
200
|
__classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").checkForPendingTransactionAndStartPolling();
|
|
201
201
|
});
|
|
202
|
-
this.
|
|
202
|
+
this.messagingSystem = messenger;
|
|
203
203
|
__classPrivateFieldSet(this, _TransactionController_afterAdd, hooks?.afterAdd ?? (() => Promise.resolve({})), "f");
|
|
204
204
|
__classPrivateFieldSet(this, _TransactionController_afterSign, hooks?.afterSign ?? (() => true), "f");
|
|
205
205
|
__classPrivateFieldSet(this, _TransactionController_afterSimulate, hooks?.afterSimulate ?? (() => Promise.resolve({})), "f");
|
|
@@ -235,19 +235,19 @@ class TransactionController extends next_1.BaseController {
|
|
|
235
235
|
__classPrivateFieldSet(this, _TransactionController_trace, trace ?? ((_request, fn) => fn?.()), "f");
|
|
236
236
|
__classPrivateFieldSet(this, _TransactionController_transactionHistoryLimit, transactionHistoryLimit, "f");
|
|
237
237
|
const findNetworkClientIdByChainId = (chainId) => {
|
|
238
|
-
return this.
|
|
238
|
+
return this.messagingSystem.call(`NetworkController:findNetworkClientIdByChainId`, chainId);
|
|
239
239
|
};
|
|
240
240
|
__classPrivateFieldSet(this, _TransactionController_multichainTrackingHelper, new MultichainTrackingHelper_1.MultichainTrackingHelper({
|
|
241
241
|
findNetworkClientIdByChainId,
|
|
242
242
|
getNetworkClientById: ((networkClientId) => {
|
|
243
|
-
return this.
|
|
243
|
+
return this.messagingSystem.call(`NetworkController:getNetworkClientById`, networkClientId);
|
|
244
244
|
}),
|
|
245
245
|
getNetworkClientRegistry,
|
|
246
246
|
removePendingTransactionTrackerListeners: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_removePendingTransactionTrackerListeners).bind(this),
|
|
247
247
|
createNonceTracker: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_createNonceTracker).bind(this),
|
|
248
248
|
createPendingTransactionTracker: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_createPendingTransactionTracker).bind(this),
|
|
249
249
|
onNetworkStateChange: (listener) => {
|
|
250
|
-
this.
|
|
250
|
+
this.messagingSystem.subscribe('NetworkController:stateChange', listener);
|
|
251
251
|
},
|
|
252
252
|
}), "f");
|
|
253
253
|
__classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").initialize();
|
|
@@ -261,9 +261,9 @@ class TransactionController extends next_1.BaseController {
|
|
|
261
261
|
getTransactions: () => this.state.transactions,
|
|
262
262
|
getTransactionBatches: () => this.state.transactionBatches,
|
|
263
263
|
layer1GasFeeFlows: __classPrivateFieldGet(this, _TransactionController_layer1GasFeeFlows, "f"),
|
|
264
|
-
messenger: this.
|
|
264
|
+
messenger: this.messagingSystem,
|
|
265
265
|
onStateChange: (listener) => {
|
|
266
|
-
this.
|
|
266
|
+
this.messagingSystem.subscribe('TransactionController:stateChange', listener);
|
|
267
267
|
},
|
|
268
268
|
});
|
|
269
269
|
gasFeePoller.hub.on('transaction-updated', __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_onGasFeePollerTransactionUpdate).bind(this));
|
|
@@ -283,7 +283,7 @@ class TransactionController extends next_1.BaseController {
|
|
|
283
283
|
getLocalTransactions: () => this.state.transactions,
|
|
284
284
|
includeTokenTransfers: __classPrivateFieldGet(this, _TransactionController_incomingTransactionOptions, "f").includeTokenTransfers,
|
|
285
285
|
isEnabled: __classPrivateFieldGet(this, _TransactionController_incomingTransactionOptions, "f").isEnabled,
|
|
286
|
-
messenger: this.
|
|
286
|
+
messenger: this.messagingSystem,
|
|
287
287
|
remoteTransactionSource: new AccountsApiRemoteTransactionSource_1.AccountsApiRemoteTransactionSource(),
|
|
288
288
|
trimTransactions: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_trimTransactionsForState).bind(this),
|
|
289
289
|
updateTransactions: __classPrivateFieldGet(this, _TransactionController_incomingTransactionOptions, "f").updateTransactions,
|
|
@@ -291,11 +291,11 @@ class TransactionController extends next_1.BaseController {
|
|
|
291
291
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_addIncomingTransactionHelperListeners).call(this, __classPrivateFieldGet(this, _TransactionController_incomingTransactionHelper, "f"));
|
|
292
292
|
// when transactionsController state changes
|
|
293
293
|
// check for pending transactions and start polling if there are any
|
|
294
|
-
this.
|
|
294
|
+
this.messagingSystem.subscribe('TransactionController:stateChange', __classPrivateFieldGet(this, _TransactionController_checkForPendingTransactionAndStartPolling, "f"));
|
|
295
295
|
new ResimulateHelper_1.ResimulateHelper({
|
|
296
296
|
simulateTransaction: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateSimulationData).bind(this),
|
|
297
297
|
onTransactionsUpdate: (listener) => {
|
|
298
|
-
this.
|
|
298
|
+
this.messagingSystem.subscribe('TransactionController:stateChange', listener, (controllerState) => controllerState.transactions);
|
|
299
299
|
},
|
|
300
300
|
getTransactions: () => this.state.transactions,
|
|
301
301
|
});
|
|
@@ -326,7 +326,7 @@ class TransactionController extends next_1.BaseController {
|
|
|
326
326
|
* @returns Result object containing the generated batch ID.
|
|
327
327
|
*/
|
|
328
328
|
async addTransactionBatch(request) {
|
|
329
|
-
const { blockTracker } = this.
|
|
329
|
+
const { blockTracker } = this.messagingSystem.call(`NetworkController:getNetworkClientById`, request.networkClientId);
|
|
330
330
|
return await (0, batch_1.addTransactionBatch)({
|
|
331
331
|
addTransaction: this.addTransaction.bind(this),
|
|
332
332
|
getChainId: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getChainId).bind(this),
|
|
@@ -342,7 +342,7 @@ class TransactionController extends next_1.BaseController {
|
|
|
342
342
|
}),
|
|
343
343
|
getTransaction: (transactionId) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionId),
|
|
344
344
|
isSimulationEnabled: __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f"),
|
|
345
|
-
messenger: this.
|
|
345
|
+
messenger: this.messagingSystem,
|
|
346
346
|
publishBatchHook: __classPrivateFieldGet(this, _TransactionController_publishBatchHook, "f"),
|
|
347
347
|
publicKeyEIP7702: __classPrivateFieldGet(this, _TransactionController_publicKeyEIP7702, "f"),
|
|
348
348
|
publishTransaction: (ethQuery, transactionMeta) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_publishTransaction).call(this, ethQuery, transactionMeta),
|
|
@@ -362,36 +362,17 @@ class TransactionController extends next_1.BaseController {
|
|
|
362
362
|
return (0, batch_1.isAtomicBatchSupported)({
|
|
363
363
|
...request,
|
|
364
364
|
getEthQuery: (chainId) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { chainId }),
|
|
365
|
-
messenger: this.
|
|
365
|
+
messenger: this.messagingSystem,
|
|
366
366
|
publicKeyEIP7702: __classPrivateFieldGet(this, _TransactionController_publicKeyEIP7702, "f"),
|
|
367
367
|
});
|
|
368
368
|
}
|
|
369
369
|
/**
|
|
370
370
|
* Add a new unapproved transaction to state. Parameters will be validated, a
|
|
371
|
-
* unique transaction
|
|
372
|
-
* if not provided.
|
|
371
|
+
* unique transaction ID will be generated, and `gas` and `gasPrice` will be calculated
|
|
372
|
+
* if not provided. A `<tx.id>:unapproved` hub event will be emitted once added.
|
|
373
373
|
*
|
|
374
374
|
* @param txParams - Standard parameters for an Ethereum transaction.
|
|
375
375
|
* @param options - Additional options to control how the transaction is added.
|
|
376
|
-
* @param options.actionId - Unique ID to prevent duplicate requests.
|
|
377
|
-
* @param options.assetsFiatValues - The fiat values of the assets being sent and received.
|
|
378
|
-
* @param options.batchId - A custom ID for the batch this transaction belongs to.
|
|
379
|
-
* @param options.deviceConfirmedOn - An enum to indicate what device confirmed the transaction.
|
|
380
|
-
* @param options.disableGasBuffer - Whether to disable the gas estimation buffer.
|
|
381
|
-
* @param options.isGasFeeIncluded - Whether MetaMask will be compensated for the gas fee by the transaction.
|
|
382
|
-
* @param options.method - RPC method that requested the transaction.
|
|
383
|
-
* @param options.nestedTransactions - Params for any nested transactions encoded in the data.
|
|
384
|
-
* @param options.origin - The origin of the transaction request, such as a dApp hostname.
|
|
385
|
-
* @param options.publishHook - Custom logic to publish the transaction.
|
|
386
|
-
* @param options.requireApproval - Whether the transaction requires approval by the user, defaults to true unless explicitly disabled.
|
|
387
|
-
* @param options.securityAlertResponse - Response from security validator.
|
|
388
|
-
* @param options.sendFlowHistory - The sendFlowHistory entries to add.
|
|
389
|
-
* @param options.type - Type of transaction to add, such as 'cancel' or 'swap'.
|
|
390
|
-
* @param options.swaps - Options for swaps transactions.
|
|
391
|
-
* @param options.swaps.hasApproveTx - Whether the transaction has an approval transaction.
|
|
392
|
-
* @param options.swaps.meta - Metadata for swap transaction.
|
|
393
|
-
* @param options.networkClientId - The id of the network client for this transaction.
|
|
394
|
-
* @param options.traceContext - The parent context for any new traces.
|
|
395
376
|
* @returns Object containing a promise resolving to the transaction hash if approved.
|
|
396
377
|
*/
|
|
397
378
|
async addTransaction(txParams, options) {
|
|
@@ -490,7 +471,7 @@ class TransactionController extends next_1.BaseController {
|
|
|
490
471
|
addedTransactionMeta = (0, swaps_1.updateSwapsTransaction)(addedTransactionMeta, transactionType, swaps, {
|
|
491
472
|
isSwapsDisabled: __classPrivateFieldGet(this, _TransactionController_isSwapsDisabled, "f"),
|
|
492
473
|
cancelTransaction: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_rejectTransaction).bind(this),
|
|
493
|
-
messenger: this.
|
|
474
|
+
messenger: this.messagingSystem,
|
|
494
475
|
});
|
|
495
476
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_addMetadata).call(this, addedTransactionMeta);
|
|
496
477
|
if (requireApproval !== false) {
|
|
@@ -500,8 +481,14 @@ class TransactionController extends next_1.BaseController {
|
|
|
500
481
|
(0, logger_1.projectLogger)('Error while updating simulation data', error);
|
|
501
482
|
throw error;
|
|
502
483
|
});
|
|
503
|
-
|
|
484
|
+
(0, first_time_interaction_1.updateFirstTimeInteraction)({
|
|
485
|
+
existingTransactions: this.state.transactions,
|
|
486
|
+
getTransaction: (transactionId) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId),
|
|
487
|
+
isFirstTimeInteractionEnabled: __classPrivateFieldGet(this, _TransactionController_isFirstTimeInteractionEnabled, "f"),
|
|
488
|
+
trace: __classPrivateFieldGet(this, _TransactionController_trace, "f"),
|
|
504
489
|
traceContext,
|
|
490
|
+
transactionMeta: addedTransactionMeta,
|
|
491
|
+
updateTransaction: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).bind(this),
|
|
505
492
|
}).catch((error) => {
|
|
506
493
|
(0, logger_1.projectLogger)('Error while updating first interaction properties', error);
|
|
507
494
|
});
|
|
@@ -509,7 +496,7 @@ class TransactionController extends next_1.BaseController {
|
|
|
509
496
|
else {
|
|
510
497
|
(0, logger_1.projectLogger)('Skipping simulation & first interaction update as approval not required');
|
|
511
498
|
}
|
|
512
|
-
this.
|
|
499
|
+
this.messagingSystem.publish(`${controllerName}:unapprovedTransactionAdded`, addedTransactionMeta);
|
|
513
500
|
}
|
|
514
501
|
return {
|
|
515
502
|
result: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_processApproval).call(this, addedTransactionMeta, {
|
|
@@ -562,7 +549,7 @@ class TransactionController extends next_1.BaseController {
|
|
|
562
549
|
txParams.value = '0x0';
|
|
563
550
|
},
|
|
564
551
|
afterSubmit: (newTransactionMeta) => {
|
|
565
|
-
this.
|
|
552
|
+
this.messagingSystem.publish(`${controllerName}:transactionFinished`, newTransactionMeta);
|
|
566
553
|
__classPrivateFieldGet(this, _TransactionController_internalEvents, "f").emit(`${newTransactionMeta.id}:finished`, newTransactionMeta);
|
|
567
554
|
},
|
|
568
555
|
});
|
|
@@ -586,7 +573,7 @@ class TransactionController extends next_1.BaseController {
|
|
|
586
573
|
transactionId,
|
|
587
574
|
transactionType: types_1.TransactionType.retry,
|
|
588
575
|
afterSubmit: (newTransactionMeta) => {
|
|
589
|
-
this.
|
|
576
|
+
this.messagingSystem.publish(`${controllerName}:speedupTransactionAdded`, newTransactionMeta);
|
|
590
577
|
},
|
|
591
578
|
});
|
|
592
579
|
}
|
|
@@ -609,7 +596,7 @@ class TransactionController extends next_1.BaseController {
|
|
|
609
596
|
ignoreDelegationSignatures,
|
|
610
597
|
isSimulationEnabled: __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this),
|
|
611
598
|
getSimulationConfig: __classPrivateFieldGet(this, _TransactionController_getSimulationConfig, "f"),
|
|
612
|
-
messenger: this.
|
|
599
|
+
messenger: this.messagingSystem,
|
|
613
600
|
txParams: transaction,
|
|
614
601
|
});
|
|
615
602
|
return { gas: estimatedGas, simulationFails };
|
|
@@ -631,7 +618,7 @@ class TransactionController extends next_1.BaseController {
|
|
|
631
618
|
ethQuery,
|
|
632
619
|
isSimulationEnabled: __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this),
|
|
633
620
|
getSimulationConfig: __classPrivateFieldGet(this, _TransactionController_getSimulationConfig, "f"),
|
|
634
|
-
messenger: this.
|
|
621
|
+
messenger: this.messagingSystem,
|
|
635
622
|
txParams: transaction,
|
|
636
623
|
});
|
|
637
624
|
const gas = (0, gas_1.addGasBuffer)(estimatedGas, blockGasLimit, multiplier);
|
|
@@ -733,7 +720,7 @@ class TransactionController extends next_1.BaseController {
|
|
|
733
720
|
(0, logger_1.projectLogger)('Error while updating post balance', error);
|
|
734
721
|
throw error;
|
|
735
722
|
});
|
|
736
|
-
this.
|
|
723
|
+
this.messagingSystem.publish(`${controllerName}:transactionConfirmed`, updatedTransactionMeta);
|
|
737
724
|
}
|
|
738
725
|
catch (error) {
|
|
739
726
|
console.error('Failed to confirm external transaction', error);
|
|
@@ -930,7 +917,7 @@ class TransactionController extends next_1.BaseController {
|
|
|
930
917
|
}
|
|
931
918
|
await (0, layer1_gas_fee_flow_1.updateTransactionLayer1GasFee)({
|
|
932
919
|
layer1GasFeeFlows: __classPrivateFieldGet(this, _TransactionController_layer1GasFeeFlows, "f"),
|
|
933
|
-
messenger: this.
|
|
920
|
+
messenger: this.messagingSystem,
|
|
934
921
|
provider,
|
|
935
922
|
transactionMeta: updatedTransaction,
|
|
936
923
|
});
|
|
@@ -1058,7 +1045,7 @@ class TransactionController extends next_1.BaseController {
|
|
|
1058
1045
|
this.updateTransaction(updatedTransactionMeta, `${controllerName}:updateCustodialTransaction - Custodial transaction updated`);
|
|
1059
1046
|
if (status &&
|
|
1060
1047
|
[types_1.TransactionStatus.submitted, types_1.TransactionStatus.failed].includes(status)) {
|
|
1061
|
-
this.
|
|
1048
|
+
this.messagingSystem.publish(`${controllerName}:transactionFinished`, updatedTransactionMeta);
|
|
1062
1049
|
__classPrivateFieldGet(this, _TransactionController_internalEvents, "f").emit(`${updatedTransactionMeta.id}:finished`, updatedTransactionMeta);
|
|
1063
1050
|
}
|
|
1064
1051
|
return updatedTransactionMeta;
|
|
@@ -1155,7 +1142,7 @@ class TransactionController extends next_1.BaseController {
|
|
|
1155
1142
|
networkClientId,
|
|
1156
1143
|
};
|
|
1157
1144
|
// Guaranteed as the default gas fee flow matches all transactions.
|
|
1158
|
-
const gasFeeFlow = (0, gas_flow_1.getGasFeeFlow)(transactionMeta, __classPrivateFieldGet(this, _TransactionController_gasFeeFlows, "f"), this.
|
|
1145
|
+
const gasFeeFlow = (0, gas_flow_1.getGasFeeFlow)(transactionMeta, __classPrivateFieldGet(this, _TransactionController_gasFeeFlows, "f"), this.messagingSystem);
|
|
1159
1146
|
const ethQuery = new eth_query_1.default(provider);
|
|
1160
1147
|
const gasFeeControllerData = await __classPrivateFieldGet(this, _TransactionController_getGasFeeEstimates, "f").call(this, {
|
|
1161
1148
|
networkClientId,
|
|
@@ -1163,7 +1150,7 @@ class TransactionController extends next_1.BaseController {
|
|
|
1163
1150
|
return gasFeeFlow.getGasFees({
|
|
1164
1151
|
ethQuery,
|
|
1165
1152
|
gasFeeControllerData,
|
|
1166
|
-
messenger: this.
|
|
1153
|
+
messenger: this.messagingSystem,
|
|
1167
1154
|
transactionMeta,
|
|
1168
1155
|
});
|
|
1169
1156
|
}
|
|
@@ -1183,7 +1170,7 @@ class TransactionController extends next_1.BaseController {
|
|
|
1183
1170
|
});
|
|
1184
1171
|
return await (0, layer1_gas_fee_flow_1.getTransactionLayer1GasFee)({
|
|
1185
1172
|
layer1GasFeeFlows: __classPrivateFieldGet(this, _TransactionController_layer1GasFeeFlows, "f"),
|
|
1186
|
-
messenger: this.
|
|
1173
|
+
messenger: this.messagingSystem,
|
|
1187
1174
|
provider,
|
|
1188
1175
|
transactionMeta: {
|
|
1189
1176
|
txParams: transactionParams,
|
|
@@ -1373,11 +1360,11 @@ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSig
|
|
|
1373
1360
|
newTransactionMeta.hash = hash;
|
|
1374
1361
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_addMetadata).call(this, newTransactionMeta);
|
|
1375
1362
|
// speedUpTransaction has no approval request, so we assume the user has already approved the transaction
|
|
1376
|
-
this.
|
|
1363
|
+
this.messagingSystem.publish(`${controllerName}:transactionApproved`, {
|
|
1377
1364
|
transactionMeta: newTransactionMeta,
|
|
1378
1365
|
actionId,
|
|
1379
1366
|
});
|
|
1380
|
-
this.
|
|
1367
|
+
this.messagingSystem.publish(`${controllerName}:transactionSubmitted`, {
|
|
1381
1368
|
transactionMeta: newTransactionMeta,
|
|
1382
1369
|
actionId,
|
|
1383
1370
|
});
|
|
@@ -1424,12 +1411,12 @@ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSig
|
|
|
1424
1411
|
gasFeeFlows: __classPrivateFieldGet(this, _TransactionController_gasFeeFlows, "f"),
|
|
1425
1412
|
getGasFeeEstimates: __classPrivateFieldGet(this, _TransactionController_getGasFeeEstimates, "f"),
|
|
1426
1413
|
getSavedGasFees: __classPrivateFieldGet(this, _TransactionController_getSavedGasFees, "f").bind(this),
|
|
1427
|
-
messenger: this.
|
|
1414
|
+
messenger: this.messagingSystem,
|
|
1428
1415
|
txMeta: transactionMeta,
|
|
1429
1416
|
}));
|
|
1430
1417
|
await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Update Layer 1 Gas Fees', parentContext: traceContext }, async () => await (0, layer1_gas_fee_flow_1.updateTransactionLayer1GasFee)({
|
|
1431
1418
|
layer1GasFeeFlows: __classPrivateFieldGet(this, _TransactionController_layer1GasFeeFlows, "f"),
|
|
1432
|
-
messenger: this.
|
|
1419
|
+
messenger: this.messagingSystem,
|
|
1433
1420
|
provider,
|
|
1434
1421
|
transactionMeta,
|
|
1435
1422
|
}));
|
|
@@ -1474,7 +1461,7 @@ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSig
|
|
|
1474
1461
|
resultCallbacks.success();
|
|
1475
1462
|
}
|
|
1476
1463
|
const updatedTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId);
|
|
1477
|
-
this.
|
|
1464
|
+
this.messagingSystem.publish(`${controllerName}:transactionApproved`, {
|
|
1478
1465
|
transactionMeta: updatedTransactionMeta,
|
|
1479
1466
|
actionId,
|
|
1480
1467
|
});
|
|
@@ -1562,7 +1549,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1562
1549
|
const rawTx = await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Sign', parentContext: traceContext }, () => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_signTransaction).call(this, transactionMeta));
|
|
1563
1550
|
if (!(await __classPrivateFieldGet(this, _TransactionController_beforePublish, "f").call(this, transactionMeta))) {
|
|
1564
1551
|
(0, logger_1.projectLogger)('Skipping publishing transaction based on hook');
|
|
1565
|
-
this.
|
|
1552
|
+
this.messagingSystem.publish(`${controllerName}:transactionPublishingSkipped`, transactionMeta);
|
|
1566
1553
|
return ApprovalState.SkippedViaBeforePublishHook;
|
|
1567
1554
|
}
|
|
1568
1555
|
if (!rawTx && !transactionMeta.isExternalSign) {
|
|
@@ -1612,10 +1599,10 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1612
1599
|
(0, logger_1.projectLogger)('Updated pre-transaction balance', preTxBalance);
|
|
1613
1600
|
}
|
|
1614
1601
|
});
|
|
1615
|
-
this.
|
|
1602
|
+
this.messagingSystem.publish(`${controllerName}:transactionSubmitted`, {
|
|
1616
1603
|
transactionMeta,
|
|
1617
1604
|
});
|
|
1618
|
-
this.
|
|
1605
|
+
this.messagingSystem.publish(`${controllerName}:transactionFinished`, transactionMeta);
|
|
1619
1606
|
__classPrivateFieldGet(this, _TransactionController_internalEvents, "f").emit(`${transactionId}:finished`, transactionMeta);
|
|
1620
1607
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_onTransactionStatusChange).call(this, transactionMeta);
|
|
1621
1608
|
return ApprovalState.Approved;
|
|
@@ -1649,9 +1636,9 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1649
1636
|
status: types_1.TransactionStatus.rejected,
|
|
1650
1637
|
error: (0, utils_2.normalizeTxError)(error ?? rpc_errors_1.providerErrors.userRejectedRequest()),
|
|
1651
1638
|
};
|
|
1652
|
-
this.
|
|
1639
|
+
this.messagingSystem.publish(`${controllerName}:transactionFinished`, updatedTransactionMeta);
|
|
1653
1640
|
__classPrivateFieldGet(this, _TransactionController_internalEvents, "f").emit(`${transactionMeta.id}:finished`, updatedTransactionMeta);
|
|
1654
|
-
this.
|
|
1641
|
+
this.messagingSystem.publish(`${controllerName}:transactionRejected`, {
|
|
1655
1642
|
transactionMeta: updatedTransactionMeta,
|
|
1656
1643
|
actionId,
|
|
1657
1644
|
});
|
|
@@ -1698,7 +1685,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1698
1685
|
id,
|
|
1699
1686
|
parentContext: traceContext,
|
|
1700
1687
|
});
|
|
1701
|
-
return (await this.
|
|
1688
|
+
return (await this.messagingSystem.call('ApprovalController:addRequest', {
|
|
1702
1689
|
id,
|
|
1703
1690
|
origin: origin || controller_utils_1.ORIGIN_METAMASK,
|
|
1704
1691
|
type,
|
|
@@ -1769,7 +1756,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1769
1756
|
]);
|
|
1770
1757
|
(0, logger_1.projectLogger)('Added incoming transactions to state', finalTransactions.length, finalTransactions);
|
|
1771
1758
|
});
|
|
1772
|
-
this.
|
|
1759
|
+
this.messagingSystem.publish(`${controllerName}:incomingTransactionsReceived`, finalTransactions);
|
|
1773
1760
|
}, _TransactionController_generateDappSuggestedGasFees = function _TransactionController_generateDappSuggestedGasFees(txParams, origin) {
|
|
1774
1761
|
if (!origin || origin === controller_utils_1.ORIGIN_METAMASK) {
|
|
1775
1762
|
return undefined;
|
|
@@ -1851,7 +1838,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1851
1838
|
...transactionMeta,
|
|
1852
1839
|
status: types_1.TransactionStatus.dropped,
|
|
1853
1840
|
};
|
|
1854
|
-
this.
|
|
1841
|
+
this.messagingSystem.publish(`${controllerName}:transactionDropped`, {
|
|
1855
1842
|
transactionMeta: updatedTransactionMeta,
|
|
1856
1843
|
});
|
|
1857
1844
|
this.updateTransaction(updatedTransactionMeta, 'TransactionController#setTransactionStatusDropped - Transaction dropped');
|
|
@@ -1887,7 +1874,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1887
1874
|
const { authorizationList, from } = txParams;
|
|
1888
1875
|
const signedAuthorizationList = await (0, eip7702_1.signAuthorizationList)({
|
|
1889
1876
|
authorizationList,
|
|
1890
|
-
messenger: this.
|
|
1877
|
+
messenger: this.messagingSystem,
|
|
1891
1878
|
transactionMeta,
|
|
1892
1879
|
});
|
|
1893
1880
|
if (signedAuthorizationList) {
|
|
@@ -1935,7 +1922,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1935
1922
|
this.updateTransaction(transactionMetaWithRawTx, 'TransactionController#approveTransaction - RawTransaction added');
|
|
1936
1923
|
return rawTx;
|
|
1937
1924
|
}, _TransactionController_onTransactionStatusChange = function _TransactionController_onTransactionStatusChange(transactionMeta) {
|
|
1938
|
-
this.
|
|
1925
|
+
this.messagingSystem.publish(`${controllerName}:transactionStatusUpdated`, {
|
|
1939
1926
|
transactionMeta,
|
|
1940
1927
|
});
|
|
1941
1928
|
}, _TransactionController_getNonceTrackerTransactions = function _TransactionController_getNonceTrackerTransactions(statuses, address, chainId) {
|
|
@@ -1943,7 +1930,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1943
1930
|
}, _TransactionController_onConfirmedTransaction = function _TransactionController_onConfirmedTransaction(transactionMeta) {
|
|
1944
1931
|
(0, logger_1.projectLogger)('Processing confirmed transaction', transactionMeta.id);
|
|
1945
1932
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_markNonceDuplicatesDropped).call(this, transactionMeta.id);
|
|
1946
|
-
this.
|
|
1933
|
+
this.messagingSystem.publish(`${controllerName}:transactionConfirmed`, transactionMeta);
|
|
1947
1934
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_onTransactionStatusChange).call(this, transactionMeta);
|
|
1948
1935
|
// Intentional given potential duration of process.
|
|
1949
1936
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updatePostBalance).call(this, transactionMeta).catch((error) => {
|
|
@@ -1962,7 +1949,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1962
1949
|
getTransaction: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).bind(this),
|
|
1963
1950
|
updateTransaction: this.updateTransaction.bind(this),
|
|
1964
1951
|
});
|
|
1965
|
-
this.
|
|
1952
|
+
this.messagingSystem.publish(`${controllerName}:postTransactionBalanceUpdated`, {
|
|
1966
1953
|
transactionMeta: updatedTransactionMeta,
|
|
1967
1954
|
approvalTransactionMeta,
|
|
1968
1955
|
});
|
|
@@ -1993,7 +1980,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1993
1980
|
getGlobalLock: () => __classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").acquireNonceLockForChainIdKey({
|
|
1994
1981
|
chainId,
|
|
1995
1982
|
}),
|
|
1996
|
-
messenger: this.
|
|
1983
|
+
messenger: this.messagingSystem,
|
|
1997
1984
|
publishTransaction: (_ethQuery, transactionMeta) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_publishTransaction).call(this, _ethQuery, transactionMeta, {
|
|
1998
1985
|
skipSubmitHistory: true,
|
|
1999
1986
|
}),
|
|
@@ -2082,48 +2069,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2082
2069
|
});
|
|
2083
2070
|
}
|
|
2084
2071
|
return transactionMeta;
|
|
2085
|
-
}, _TransactionController_updateFirstTimeInteraction = async function _TransactionController_updateFirstTimeInteraction(transactionMeta, { traceContext, } = {}) {
|
|
2086
|
-
if (!__classPrivateFieldGet(this, _TransactionController_isFirstTimeInteractionEnabled, "f").call(this)) {
|
|
2087
|
-
return;
|
|
2088
|
-
}
|
|
2089
|
-
const { chainId, id: transactionId, txParams: { to, from }, } = transactionMeta;
|
|
2090
|
-
const request = {
|
|
2091
|
-
chainId: (0, utils_1.hexToNumber)(chainId),
|
|
2092
|
-
to: to,
|
|
2093
|
-
from,
|
|
2094
|
-
};
|
|
2095
|
-
(0, validation_1.validateParamTo)(to);
|
|
2096
|
-
const existingTransaction = this.state.transactions.find((tx) => tx.chainId === chainId &&
|
|
2097
|
-
tx.txParams.from === from &&
|
|
2098
|
-
tx.txParams.to === to &&
|
|
2099
|
-
tx.id !== transactionId);
|
|
2100
|
-
// Check if there is an existing transaction with the same from, to, and chainId
|
|
2101
|
-
// else we continue to check the account address relationship from API
|
|
2102
|
-
if (existingTransaction) {
|
|
2103
|
-
return;
|
|
2104
|
-
}
|
|
2105
|
-
try {
|
|
2106
|
-
const { count } = await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Account Address Relationship', parentContext: traceContext }, () => (0, accounts_api_1.getAccountAddressRelationship)(request));
|
|
2107
|
-
const isFirstTimeInteraction = count === undefined ? undefined : count === 0;
|
|
2108
|
-
const finalTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId);
|
|
2109
|
-
/* istanbul ignore if */
|
|
2110
|
-
if (!finalTransactionMeta) {
|
|
2111
|
-
(0, logger_1.projectLogger)('Cannot update first time interaction as transaction not found', transactionId);
|
|
2112
|
-
return;
|
|
2113
|
-
}
|
|
2114
|
-
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
2115
|
-
transactionId,
|
|
2116
|
-
note: 'TransactionController#updateFirstInteraction - Update first time interaction',
|
|
2117
|
-
}, (txMeta) => {
|
|
2118
|
-
txMeta.isFirstTimeInteraction = isFirstTimeInteraction;
|
|
2119
|
-
});
|
|
2120
|
-
(0, logger_1.projectLogger)('Updated first time interaction', transactionId, {
|
|
2121
|
-
isFirstTimeInteraction,
|
|
2122
|
-
});
|
|
2123
|
-
}
|
|
2124
|
-
catch (error) {
|
|
2125
|
-
(0, logger_1.projectLogger)('Error fetching account address relationship, skipping first time interaction update', error);
|
|
2126
|
-
}
|
|
2127
2072
|
}, _TransactionController_updateSimulationData = async function _TransactionController_updateSimulationData(transactionMeta, { blockTime, traceContext, } = {}) {
|
|
2128
2073
|
const { chainId, id: transactionId, nestedTransactions, networkClientId, simulationData: prevSimulationData, txParams, } = transactionMeta;
|
|
2129
2074
|
let simulationData = {
|
|
@@ -2160,7 +2105,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2160
2105
|
chainId,
|
|
2161
2106
|
getSimulationConfig: __classPrivateFieldGet(this, _TransactionController_getSimulationConfig, "f"),
|
|
2162
2107
|
isEIP7702GasFeeTokensEnabled: __classPrivateFieldGet(this, _TransactionController_isEIP7702GasFeeTokensEnabled, "f"),
|
|
2163
|
-
messenger: this.
|
|
2108
|
+
messenger: this.messagingSystem,
|
|
2164
2109
|
publicKeyEIP7702: __classPrivateFieldGet(this, _TransactionController_publicKeyEIP7702, "f"),
|
|
2165
2110
|
transactionMeta,
|
|
2166
2111
|
});
|
|
@@ -2212,9 +2157,9 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2212
2157
|
state.transactionBatches[index] = updated ?? batch;
|
|
2213
2158
|
});
|
|
2214
2159
|
}, _TransactionController_getSelectedAccount = function _TransactionController_getSelectedAccount() {
|
|
2215
|
-
return this.
|
|
2160
|
+
return this.messagingSystem.call('AccountsController:getSelectedAccount');
|
|
2216
2161
|
}, _TransactionController_getInternalAccounts = function _TransactionController_getInternalAccounts() {
|
|
2217
|
-
const state = this.
|
|
2162
|
+
const state = this.messagingSystem.call('AccountsController:getState');
|
|
2218
2163
|
return Object.values(state.internalAccounts?.accounts ?? {})
|
|
2219
2164
|
.filter((account) => account.type === 'eip155:eoa')
|
|
2220
2165
|
.map((account) => account.address);
|
|
@@ -2254,16 +2199,18 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2254
2199
|
isCustomNetwork,
|
|
2255
2200
|
isSimulationEnabled: __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this),
|
|
2256
2201
|
getSimulationConfig: __classPrivateFieldGet(this, _TransactionController_getSimulationConfig, "f"),
|
|
2257
|
-
messenger: this.
|
|
2202
|
+
messenger: this.messagingSystem,
|
|
2258
2203
|
txMeta: transactionMeta,
|
|
2259
2204
|
});
|
|
2260
2205
|
}, _TransactionController_registerActionHandlers = function _TransactionController_registerActionHandlers() {
|
|
2261
|
-
this.
|
|
2262
|
-
this.
|
|
2263
|
-
this.
|
|
2264
|
-
this.
|
|
2265
|
-
this.
|
|
2266
|
-
this.
|
|
2206
|
+
this.messagingSystem.registerActionHandler(`${controllerName}:addTransaction`, this.addTransaction.bind(this));
|
|
2207
|
+
this.messagingSystem.registerActionHandler(`${controllerName}:addTransactionBatch`, this.addTransactionBatch.bind(this));
|
|
2208
|
+
this.messagingSystem.registerActionHandler(`${controllerName}:confirmExternalTransaction`, this.confirmExternalTransaction.bind(this));
|
|
2209
|
+
this.messagingSystem.registerActionHandler(`${controllerName}:estimateGas`, this.estimateGas.bind(this));
|
|
2210
|
+
this.messagingSystem.registerActionHandler(`${controllerName}:getNonceLock`, this.getNonceLock.bind(this));
|
|
2211
|
+
this.messagingSystem.registerActionHandler(`${controllerName}:getTransactions`, this.getTransactions.bind(this));
|
|
2212
|
+
this.messagingSystem.registerActionHandler(`${controllerName}:updateCustodialTransaction`, this.updateCustodialTransaction.bind(this));
|
|
2213
|
+
this.messagingSystem.registerActionHandler(`${controllerName}:updateTransaction`, this.updateTransaction.bind(this));
|
|
2267
2214
|
}, _TransactionController_deleteTransaction = function _TransactionController_deleteTransaction(transactionId) {
|
|
2268
2215
|
this.update((state) => {
|
|
2269
2216
|
const transactions = state.transactions.filter(({ id }) => id !== transactionId);
|
|
@@ -2303,13 +2250,13 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2303
2250
|
error: (0, utils_2.normalizeTxError)(error),
|
|
2304
2251
|
};
|
|
2305
2252
|
}
|
|
2306
|
-
this.
|
|
2253
|
+
this.messagingSystem.publish(`${controllerName}:transactionFailed`, {
|
|
2307
2254
|
actionId,
|
|
2308
2255
|
error: error.message,
|
|
2309
2256
|
transactionMeta: newTransactionMeta,
|
|
2310
2257
|
});
|
|
2311
2258
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_onTransactionStatusChange).call(this, newTransactionMeta);
|
|
2312
|
-
this.
|
|
2259
|
+
this.messagingSystem.publish(`${controllerName}:transactionFinished`, newTransactionMeta);
|
|
2313
2260
|
__classPrivateFieldGet(this, _TransactionController_internalEvents, "f").emit(`${transactionMeta.id}:finished`, newTransactionMeta);
|
|
2314
2261
|
}, _TransactionController_runAfterSimulateHook = async function _TransactionController_runAfterSimulateHook(transactionMeta) {
|
|
2315
2262
|
(0, logger_1.projectLogger)('Calling afterSimulate hook', transactionMeta);
|