@metamask/transaction-controller 27.0.1 → 28.0.0
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 +12 -1
- package/dist/TransactionController.js +4 -4
- package/dist/TransactionController.mjs +3 -3
- package/dist/{chunk-5WFLNKCL.js → chunk-2XKEAKQG.js} +11 -5
- package/dist/chunk-2XKEAKQG.js.map +1 -0
- package/dist/{chunk-JDLNCMGI.mjs → chunk-H6NWVGHL.mjs} +76 -39
- package/dist/chunk-H6NWVGHL.mjs.map +1 -0
- package/dist/{chunk-35MG26Y3.mjs → chunk-HHK4QSNF.mjs} +44 -34
- package/dist/chunk-HHK4QSNF.mjs.map +1 -0
- package/dist/{chunk-W3CS5GRD.mjs → chunk-NOHEXQ7Y.mjs} +11 -5
- package/dist/chunk-NOHEXQ7Y.mjs.map +1 -0
- package/dist/{chunk-HUVOOFOM.js → chunk-V6UIRCOF.js} +43 -33
- package/dist/chunk-V6UIRCOF.js.map +1 -0
- package/dist/{chunk-5SKCGFUC.js → chunk-X5WPBDI5.js} +79 -42
- package/dist/chunk-X5WPBDI5.js.map +1 -0
- package/dist/helpers/GasFeePoller.js +3 -3
- package/dist/helpers/GasFeePoller.mjs +2 -2
- package/dist/index.js +4 -4
- package/dist/index.mjs +3 -3
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/TransactionController.d.ts +11 -6
- package/dist/types/TransactionController.d.ts.map +1 -1
- package/dist/types/helpers/GasFeePoller.d.ts.map +1 -1
- package/dist/types/utils/layer1-gas-fee-flow.d.ts.map +1 -1
- package/dist/utils/layer1-gas-fee-flow.js +2 -2
- package/dist/utils/layer1-gas-fee-flow.mjs +1 -1
- package/package.json +2 -2
- package/dist/chunk-35MG26Y3.mjs.map +0 -1
- package/dist/chunk-5SKCGFUC.js.map +0 -1
- package/dist/chunk-5WFLNKCL.js.map +0 -1
- package/dist/chunk-HUVOOFOM.js.map +0 -1
- package/dist/chunk-JDLNCMGI.mjs.map +0 -1
- package/dist/chunk-W3CS5GRD.mjs.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunk2XKEAKQGjs = require('./chunk-2XKEAKQG.js');
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
var _chunkUH7FNVKSjs = require('./chunk-UH7FNVKS.js');
|
|
@@ -20,7 +20,7 @@ var _utils = require('@metamask/utils');
|
|
|
20
20
|
var _events = require('events'); var _events2 = _interopRequireDefault(_events);
|
|
21
21
|
var log = _utils.createModuleLogger.call(void 0, _chunkS6VGOPUYjs.projectLogger, "gas-fee-poller");
|
|
22
22
|
var INTERVAL_MILLISECONDS = 1e4;
|
|
23
|
-
var _gasFeeFlows, _getGasFeeControllerEstimates, _getProvider, _getTransactions, _layer1GasFeeFlows, _timeout, _running, _start, start_fn, _stop, stop_fn, _onTimeout, onTimeout_fn,
|
|
23
|
+
var _gasFeeFlows, _getGasFeeControllerEstimates, _getProvider, _getTransactions, _layer1GasFeeFlows, _timeout, _running, _start, start_fn, _stop, stop_fn, _onTimeout, onTimeout_fn, _updateUnapprovedTransactions, updateUnapprovedTransactions_fn, _updateUnapprovedTransaction, updateUnapprovedTransaction_fn, _updateTransactionGasFeeEstimates, updateTransactionGasFeeEstimates_fn, _updateTransactionLayer1GasFee, updateTransactionLayer1GasFee_fn, _getUnapprovedTransactions, getUnapprovedTransactions_fn;
|
|
24
24
|
var GasFeePoller = class {
|
|
25
25
|
/**
|
|
26
26
|
* Constructs a new instance of the GasFeePoller.
|
|
@@ -43,8 +43,9 @@ var GasFeePoller = class {
|
|
|
43
43
|
_chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _start);
|
|
44
44
|
_chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _stop);
|
|
45
45
|
_chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _onTimeout);
|
|
46
|
+
_chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _updateUnapprovedTransactions);
|
|
47
|
+
_chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _updateUnapprovedTransaction);
|
|
46
48
|
_chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _updateTransactionGasFeeEstimates);
|
|
47
|
-
_chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _updateTransactionSuggestedFees);
|
|
48
49
|
_chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _updateTransactionLayer1GasFee);
|
|
49
50
|
_chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _getUnapprovedTransactions);
|
|
50
51
|
this.hub = new (0, _events2.default)();
|
|
@@ -98,30 +99,44 @@ stop_fn = function() {
|
|
|
98
99
|
};
|
|
99
100
|
_onTimeout = new WeakSet();
|
|
100
101
|
onTimeout_fn = async function() {
|
|
101
|
-
await _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this,
|
|
102
|
+
await _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _updateUnapprovedTransactions, updateUnapprovedTransactions_fn).call(this);
|
|
102
103
|
_chunkZ4BLTVTBjs.__privateSet.call(void 0, this, _timeout, setTimeout(() => _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _onTimeout, onTimeout_fn).call(this), INTERVAL_MILLISECONDS));
|
|
103
104
|
};
|
|
104
|
-
|
|
105
|
-
|
|
105
|
+
_updateUnapprovedTransactions = new WeakSet();
|
|
106
|
+
updateUnapprovedTransactions_fn = async function() {
|
|
106
107
|
const unapprovedTransactions = _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _getUnapprovedTransactions, getUnapprovedTransactions_fn).call(this);
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
}
|
|
108
|
+
if (unapprovedTransactions.length) {
|
|
109
|
+
log("Found unapproved transactions", unapprovedTransactions.length);
|
|
110
|
+
}
|
|
110
111
|
await Promise.all(
|
|
111
|
-
unapprovedTransactions.flatMap(
|
|
112
|
-
_chunkZ4BLTVTBjs.__privateMethod.call(void 0, this,
|
|
113
|
-
|
|
114
|
-
])
|
|
112
|
+
unapprovedTransactions.flatMap(
|
|
113
|
+
(tx) => _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _updateUnapprovedTransaction, updateUnapprovedTransaction_fn).call(this, tx)
|
|
114
|
+
)
|
|
115
115
|
);
|
|
116
116
|
};
|
|
117
|
-
|
|
118
|
-
|
|
117
|
+
_updateUnapprovedTransaction = new WeakSet();
|
|
118
|
+
updateUnapprovedTransaction_fn = async function(transactionMeta) {
|
|
119
|
+
const { id } = transactionMeta;
|
|
120
|
+
const [gasFeeEstimatesResponse, layer1GasFee] = await Promise.all([
|
|
121
|
+
_chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _updateTransactionGasFeeEstimates, updateTransactionGasFeeEstimates_fn).call(this, transactionMeta),
|
|
122
|
+
_chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _updateTransactionLayer1GasFee, updateTransactionLayer1GasFee_fn).call(this, transactionMeta)
|
|
123
|
+
]);
|
|
124
|
+
if (!gasFeeEstimatesResponse && !layer1GasFee) {
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
this.hub.emit("transaction-updated", {
|
|
128
|
+
transactionId: id,
|
|
129
|
+
gasFeeEstimates: gasFeeEstimatesResponse?.gasFeeEstimates,
|
|
130
|
+
gasFeeEstimatesLoaded: gasFeeEstimatesResponse?.gasFeeEstimatesLoaded,
|
|
131
|
+
layer1GasFee
|
|
132
|
+
});
|
|
133
|
+
};
|
|
134
|
+
_updateTransactionGasFeeEstimates = new WeakSet();
|
|
135
|
+
updateTransactionGasFeeEstimates_fn = async function(transactionMeta) {
|
|
119
136
|
const { chainId, networkClientId } = transactionMeta;
|
|
120
137
|
const ethQuery = new (0, _ethquery2.default)(_chunkZ4BLTVTBjs.__privateGet.call(void 0, this, _getProvider).call(this, chainId, networkClientId));
|
|
121
138
|
const gasFeeFlow = _chunkUH7FNVKSjs.getGasFeeFlow.call(void 0, transactionMeta, _chunkZ4BLTVTBjs.__privateGet.call(void 0, this, _gasFeeFlows));
|
|
122
|
-
if (
|
|
123
|
-
log("No gas fee flow found", transactionMeta.id);
|
|
124
|
-
} else {
|
|
139
|
+
if (gasFeeFlow) {
|
|
125
140
|
log(
|
|
126
141
|
"Found gas fee flow",
|
|
127
142
|
gasFeeFlow.constructor.name,
|
|
@@ -143,32 +158,27 @@ updateTransactionSuggestedFees_fn = async function(transactionMeta) {
|
|
|
143
158
|
}
|
|
144
159
|
}
|
|
145
160
|
if (!gasFeeEstimates && transactionMeta.gasFeeEstimatesLoaded) {
|
|
146
|
-
return;
|
|
161
|
+
return void 0;
|
|
147
162
|
}
|
|
148
|
-
|
|
149
|
-
...transactionMeta,
|
|
163
|
+
log("Updated gas fee estimates", {
|
|
150
164
|
gasFeeEstimates,
|
|
151
|
-
|
|
152
|
-
};
|
|
153
|
-
this.hub.emit("transaction-updated", updatedTransactionMeta);
|
|
154
|
-
log("Updated suggested gas fees", {
|
|
155
|
-
gasFeeEstimates: updatedTransactionMeta.gasFeeEstimates,
|
|
156
|
-
transaction: updatedTransactionMeta.id
|
|
165
|
+
transaction: transactionMeta.id
|
|
157
166
|
});
|
|
167
|
+
return { gasFeeEstimates, gasFeeEstimatesLoaded: true };
|
|
158
168
|
};
|
|
159
169
|
_updateTransactionLayer1GasFee = new WeakSet();
|
|
160
170
|
updateTransactionLayer1GasFee_fn = async function(transactionMeta) {
|
|
161
171
|
const { chainId, networkClientId } = transactionMeta;
|
|
162
172
|
const provider = _chunkZ4BLTVTBjs.__privateGet.call(void 0, this, _getProvider).call(this, chainId, networkClientId);
|
|
163
|
-
await
|
|
164
|
-
provider,
|
|
173
|
+
const layer1GasFee = await _chunk2XKEAKQGjs.getTransactionLayer1GasFee.call(void 0, {
|
|
165
174
|
layer1GasFeeFlows: _chunkZ4BLTVTBjs.__privateGet.call(void 0, this, _layer1GasFeeFlows),
|
|
175
|
+
provider,
|
|
166
176
|
transactionMeta
|
|
167
177
|
});
|
|
168
|
-
if (
|
|
169
|
-
|
|
178
|
+
if (layer1GasFee) {
|
|
179
|
+
log("Updated layer 1 gas fee", layer1GasFee, transactionMeta.id);
|
|
170
180
|
}
|
|
171
|
-
|
|
181
|
+
return layer1GasFee;
|
|
172
182
|
};
|
|
173
183
|
_getUnapprovedTransactions = new WeakSet();
|
|
174
184
|
getUnapprovedTransactions_fn = function() {
|
|
@@ -180,4 +190,4 @@ getUnapprovedTransactions_fn = function() {
|
|
|
180
190
|
|
|
181
191
|
|
|
182
192
|
exports.GasFeePoller = GasFeePoller;
|
|
183
|
-
//# sourceMappingURL=chunk-
|
|
193
|
+
//# sourceMappingURL=chunk-V6UIRCOF.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/helpers/GasFeePoller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,OAAO,cAAc;AAIrB,SAAS,0BAA0B;AACnC,OAAO,kBAAkB;AAazB,IAAM,MAAM,mBAAmB,eAAe,gBAAgB;AAE9D,IAAM,wBAAwB;AApB9B;AAyBO,IAAM,eAAN,MAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA2BxB,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAOG;AAkBH;AAcA;AAaA,uBAAM;AAON,uBAAM;AAcN,uBAAM;AAoBN,uBAAM;AAgDN,uBAAM;AAmBN;AAjMA,eAAoB,IAAI,aAAa;AAErC;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA,iCAAW;AA2BT,uBAAK,cAAe;AACpB,uBAAK,oBAAqB;AAC1B,uBAAK,+BAAgC;AACrC,uBAAK,cAAe;AACpB,uBAAK,kBAAmB;AAExB,kBAAc,MAAM;AAClB,YAAM,yBAAyB,sBAAK,0DAAL;AAE/B,UAAI,uBAAuB,QAAQ;AACjC,8BAAK,kBAAL;AAAA,MACF,OAAO;AACL,8BAAK,gBAAL;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AA8IF;AApME;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AA4CA;AAAA,WAAM,WAAG;AACP,MAAI,mBAAK,WAAU;AACjB;AAAA,EACF;AAIA,wBAAK,0BAAL;AAEA,qBAAK,UAAW;AAEhB,MAAI,iBAAiB;AACvB;AAEA;AAAA,UAAK,WAAG;AACN,MAAI,CAAC,mBAAK,WAAU;AAClB;AAAA,EACF;AAEA,eAAa,mBAAK,SAAQ;AAE1B,qBAAK,UAAW;AAChB,qBAAK,UAAW;AAEhB,MAAI,iBAAiB;AACvB;AAEM;AAAA,eAAU,iBAAG;AACjB,QAAM,sBAAK,gEAAL;AAGN,qBAAK,UAAW,WAAW,MAAM,sBAAK,0BAAL,YAAmB,qBAAqB;AAC3E;AAEM;AAAA,kCAA6B,iBAAG;AACpC,QAAM,yBAAyB,sBAAK,0DAAL;AAE/B,MAAI,uBAAuB,QAAQ;AACjC,QAAI,iCAAiC,uBAAuB,MAAM;AAAA,EACpE;AAEA,QAAM,QAAQ;AAAA,IACZ,uBAAuB;AAAA,MAAQ,CAAC,OAC9B,sBAAK,8DAAL,WAAkC;AAAA,IACpC;AAAA,EACF;AACF;AAEM;AAAA,iCAA4B,eAAC,iBAAkC;AACnE,QAAM,EAAE,GAAG,IAAI;AAEf,QAAM,CAAC,yBAAyB,YAAY,IAAI,MAAM,QAAQ,IAAI;AAAA,IAChE,sBAAK,wEAAL,WAAuC;AAAA,IACvC,sBAAK,kEAAL,WAAoC;AAAA,EACtC,CAAC;AAED,MAAI,CAAC,2BAA2B,CAAC,cAAc;AAC7C;AAAA,EACF;AAEA,OAAK,IAAI,KAAK,uBAAuB;AAAA,IACnC,eAAe;AAAA,IACf,iBAAiB,yBAAyB;AAAA,IAC1C,uBAAuB,yBAAyB;AAAA,IAChD;AAAA,EACF,CAAC;AACH;AAEM;AAAA,sCAAiC,eACrC,iBAIA;AACA,QAAM,EAAE,SAAS,gBAAgB,IAAI;AAErC,QAAM,WAAW,IAAI,SAAS,mBAAK,cAAL,WAAkB,SAAS,gBAAgB;AACzE,QAAM,aAAa,cAAc,iBAAiB,mBAAK,aAAY;AAEnE,MAAI,YAAY;AACd;AAAA,MACE;AAAA,MACA,WAAW,YAAY;AAAA,MACvB,gBAAgB;AAAA,IAClB;AAAA,EACF;AAEA,QAAM,UAA6B;AAAA,IACjC;AAAA,IACA,8BAA8B,mBAAK;AAAA,IACnC;AAAA,EACF;AAEA,MAAI;AAEJ,MAAI,YAAY;AACd,QAAI;AACF,YAAM,WAAW,MAAM,WAAW,WAAW,OAAO;AACpD,wBAAkB,SAAS;AAAA,IAC7B,SAAS,OAAO;AACd,UAAI,oCAAoC,gBAAgB,IAAI,KAAK;AAAA,IACnE;AAAA,EACF;AAEA,MAAI,CAAC,mBAAmB,gBAAgB,uBAAuB;AAC7D,WAAO;AAAA,EACT;AAEA,MAAI,6BAA6B;AAAA,IAC/B;AAAA,IACA,aAAa,gBAAgB;AAAA,EAC/B,CAAC;AAED,SAAO,EAAE,iBAAiB,uBAAuB,KAAK;AACxD;AAEM;AAAA,mCAA8B,eAClC,iBAC0B;AAC1B,QAAM,EAAE,SAAS,gBAAgB,IAAI;AACrC,QAAM,WAAW,mBAAK,cAAL,WAAkB,SAAS;AAE5C,QAAM,eAAe,MAAM,2BAA2B;AAAA,IACpD,mBAAmB,mBAAK;AAAA,IACxB;AAAA,IACA;AAAA,EACF,CAAC;AAED,MAAI,cAAc;AAChB,QAAI,2BAA2B,cAAc,gBAAgB,EAAE;AAAA,EACjE;AAEA,SAAO;AACT;AAEA;AAAA,+BAA0B,WAAG;AAC3B,SAAO,mBAAK,kBAAL,WAAwB;AAAA,IAC7B,CAAC,OAAO,GAAG;AAAA,EACb;AACF","sourcesContent":["import EthQuery from '@metamask/eth-query';\nimport type { GasFeeState } from '@metamask/gas-fee-controller';\nimport type { NetworkClientId, Provider } from '@metamask/network-controller';\nimport type { Hex } from '@metamask/utils';\nimport { createModuleLogger } from '@metamask/utils';\nimport EventEmitter from 'events';\n\nimport { projectLogger } from '../logger';\nimport type {\n GasFeeEstimates,\n GasFeeFlow,\n GasFeeFlowRequest,\n Layer1GasFeeFlow,\n} from '../types';\nimport { TransactionStatus, type TransactionMeta } from '../types';\nimport { getGasFeeFlow } from '../utils/gas-flow';\nimport { getTransactionLayer1GasFee } from '../utils/layer1-gas-fee-flow';\n\nconst log = createModuleLogger(projectLogger, 'gas-fee-poller');\n\nconst INTERVAL_MILLISECONDS = 10000;\n\n/**\n * Automatically polls and updates suggested gas fees on unapproved transactions.\n */\nexport class GasFeePoller {\n hub: EventEmitter = new EventEmitter();\n\n #gasFeeFlows: GasFeeFlow[];\n\n #getGasFeeControllerEstimates: () => Promise<GasFeeState>;\n\n #getProvider: (chainId: Hex, networkClientId?: NetworkClientId) => Provider;\n\n #getTransactions: () => TransactionMeta[];\n\n #layer1GasFeeFlows: Layer1GasFeeFlow[];\n\n #timeout: ReturnType<typeof setTimeout> | undefined;\n\n #running = false;\n\n /**\n * Constructs a new instance of the GasFeePoller.\n * @param options - The options for this instance.\n * @param options.gasFeeFlows - The gas fee flows to use to obtain suitable gas fees.\n * @param options.getGasFeeControllerEstimates - Callback to obtain the default fee estimates.\n * @param options.getProvider - Callback to obtain a provider instance.\n * @param options.getTransactions - Callback to obtain the transaction data.\n * @param options.layer1GasFeeFlows - The layer 1 gas fee flows to use to obtain suitable layer 1 gas fees.\n * @param options.onStateChange - Callback to register a listener for controller state changes.\n */\n constructor({\n gasFeeFlows,\n getGasFeeControllerEstimates,\n getProvider,\n getTransactions,\n layer1GasFeeFlows,\n onStateChange,\n }: {\n gasFeeFlows: GasFeeFlow[];\n getGasFeeControllerEstimates: () => Promise<GasFeeState>;\n getProvider: (chainId: Hex, networkClientId?: NetworkClientId) => Provider;\n getTransactions: () => TransactionMeta[];\n layer1GasFeeFlows: Layer1GasFeeFlow[];\n onStateChange: (listener: () => void) => void;\n }) {\n this.#gasFeeFlows = gasFeeFlows;\n this.#layer1GasFeeFlows = layer1GasFeeFlows;\n this.#getGasFeeControllerEstimates = getGasFeeControllerEstimates;\n this.#getProvider = getProvider;\n this.#getTransactions = getTransactions;\n\n onStateChange(() => {\n const unapprovedTransactions = this.#getUnapprovedTransactions();\n\n if (unapprovedTransactions.length) {\n this.#start();\n } else {\n this.#stop();\n }\n });\n }\n\n #start() {\n if (this.#running) {\n return;\n }\n\n // Intentionally not awaiting since this starts the timeout chain.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.#onTimeout();\n\n this.#running = true;\n\n log('Started polling');\n }\n\n #stop() {\n if (!this.#running) {\n return;\n }\n\n clearTimeout(this.#timeout);\n\n this.#timeout = undefined;\n this.#running = false;\n\n log('Stopped polling');\n }\n\n async #onTimeout() {\n await this.#updateUnapprovedTransactions();\n\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n this.#timeout = setTimeout(() => this.#onTimeout(), INTERVAL_MILLISECONDS);\n }\n\n async #updateUnapprovedTransactions() {\n const unapprovedTransactions = this.#getUnapprovedTransactions();\n\n if (unapprovedTransactions.length) {\n log('Found unapproved transactions', unapprovedTransactions.length);\n }\n\n await Promise.all(\n unapprovedTransactions.flatMap((tx) =>\n this.#updateUnapprovedTransaction(tx),\n ),\n );\n }\n\n async #updateUnapprovedTransaction(transactionMeta: TransactionMeta) {\n const { id } = transactionMeta;\n\n const [gasFeeEstimatesResponse, layer1GasFee] = await Promise.all([\n this.#updateTransactionGasFeeEstimates(transactionMeta),\n this.#updateTransactionLayer1GasFee(transactionMeta),\n ]);\n\n if (!gasFeeEstimatesResponse && !layer1GasFee) {\n return;\n }\n\n this.hub.emit('transaction-updated', {\n transactionId: id,\n gasFeeEstimates: gasFeeEstimatesResponse?.gasFeeEstimates,\n gasFeeEstimatesLoaded: gasFeeEstimatesResponse?.gasFeeEstimatesLoaded,\n layer1GasFee,\n });\n }\n\n async #updateTransactionGasFeeEstimates(\n transactionMeta: TransactionMeta,\n ): Promise<\n | { gasFeeEstimates?: GasFeeEstimates; gasFeeEstimatesLoaded: boolean }\n | undefined\n > {\n const { chainId, networkClientId } = transactionMeta;\n\n const ethQuery = new EthQuery(this.#getProvider(chainId, networkClientId));\n const gasFeeFlow = getGasFeeFlow(transactionMeta, this.#gasFeeFlows);\n\n if (gasFeeFlow) {\n log(\n 'Found gas fee flow',\n gasFeeFlow.constructor.name,\n transactionMeta.id,\n );\n }\n\n const request: GasFeeFlowRequest = {\n ethQuery,\n getGasFeeControllerEstimates: this.#getGasFeeControllerEstimates,\n transactionMeta,\n };\n\n let gasFeeEstimates: GasFeeEstimates | undefined;\n\n if (gasFeeFlow) {\n try {\n const response = await gasFeeFlow.getGasFees(request);\n gasFeeEstimates = response.estimates;\n } catch (error) {\n log('Failed to get suggested gas fees', transactionMeta.id, error);\n }\n }\n\n if (!gasFeeEstimates && transactionMeta.gasFeeEstimatesLoaded) {\n return undefined;\n }\n\n log('Updated gas fee estimates', {\n gasFeeEstimates,\n transaction: transactionMeta.id,\n });\n\n return { gasFeeEstimates, gasFeeEstimatesLoaded: true };\n }\n\n async #updateTransactionLayer1GasFee(\n transactionMeta: TransactionMeta,\n ): Promise<Hex | undefined> {\n const { chainId, networkClientId } = transactionMeta;\n const provider = this.#getProvider(chainId, networkClientId);\n\n const layer1GasFee = await getTransactionLayer1GasFee({\n layer1GasFeeFlows: this.#layer1GasFeeFlows,\n provider,\n transactionMeta,\n });\n\n if (layer1GasFee) {\n log('Updated layer 1 gas fee', layer1GasFee, transactionMeta.id);\n }\n\n return layer1GasFee;\n }\n\n #getUnapprovedTransactions() {\n return this.#getTransactions().filter(\n (tx) => tx.status === TransactionStatus.unapproved,\n );\n }\n}\n"]}
|
|
@@ -26,11 +26,11 @@ var _chunk3VF7ZGRVjs = require('./chunk-3VF7ZGRV.js');
|
|
|
26
26
|
var _chunkETMW527Mjs = require('./chunk-ETMW527M.js');
|
|
27
27
|
|
|
28
28
|
|
|
29
|
-
var
|
|
29
|
+
var _chunkV6UIRCOFjs = require('./chunk-V6UIRCOF.js');
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
|
|
33
|
-
var
|
|
33
|
+
var _chunk2XKEAKQGjs = require('./chunk-2XKEAKQG.js');
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
var _chunkDTDTOMTBjs = require('./chunk-DTDTOMTB.js');
|
|
@@ -134,7 +134,7 @@ function getDefaultTransactionControllerState() {
|
|
|
134
134
|
lastFetchedBlockNumbers: {}
|
|
135
135
|
};
|
|
136
136
|
}
|
|
137
|
-
var _internalEvents, _incomingTransactionOptions, _pendingTransactionOptions, _transactionHistoryLimit, _isSimulationEnabled, _multichainTrackingHelper, _createNonceTracker, createNonceTracker_fn, _createIncomingTransactionHelper, createIncomingTransactionHelper_fn, _createPendingTransactionTracker, createPendingTransactionTracker_fn, _checkForPendingTransactionAndStartPolling, _stopAllTracking, stopAllTracking_fn, _removeIncomingTransactionHelperListeners, removeIncomingTransactionHelperListeners_fn, _addIncomingTransactionHelperListeners, addIncomingTransactionHelperListeners_fn, _removePendingTransactionTrackerListeners, removePendingTransactionTrackerListeners_fn, _addPendingTransactionTrackerListeners, addPendingTransactionTrackerListeners_fn, _getNonceTrackerPendingTransactions, getNonceTrackerPendingTransactions_fn, _getGasFeeFlows, getGasFeeFlows_fn, _getLayer1GasFeeFlows, getLayer1GasFeeFlows_fn, _updateTransactionInternal, updateTransactionInternal_fn, _checkIfTransactionParamsUpdated, checkIfTransactionParamsUpdated_fn, _onTransactionParamsUpdated, onTransactionParamsUpdated_fn, _updateSimulationData, updateSimulationData_fn;
|
|
137
|
+
var _internalEvents, _incomingTransactionOptions, _pendingTransactionOptions, _transactionHistoryLimit, _isSimulationEnabled, _multichainTrackingHelper, _createNonceTracker, createNonceTracker_fn, _createIncomingTransactionHelper, createIncomingTransactionHelper_fn, _createPendingTransactionTracker, createPendingTransactionTracker_fn, _checkForPendingTransactionAndStartPolling, _stopAllTracking, stopAllTracking_fn, _removeIncomingTransactionHelperListeners, removeIncomingTransactionHelperListeners_fn, _addIncomingTransactionHelperListeners, addIncomingTransactionHelperListeners_fn, _removePendingTransactionTrackerListeners, removePendingTransactionTrackerListeners_fn, _addPendingTransactionTrackerListeners, addPendingTransactionTrackerListeners_fn, _getNonceTrackerPendingTransactions, getNonceTrackerPendingTransactions_fn, _getGasFeeFlows, getGasFeeFlows_fn, _getLayer1GasFeeFlows, getLayer1GasFeeFlows_fn, _updateTransactionInternal, updateTransactionInternal_fn, _checkIfTransactionParamsUpdated, checkIfTransactionParamsUpdated_fn, _onTransactionParamsUpdated, onTransactionParamsUpdated_fn, _updateSimulationData, updateSimulationData_fn, _onGasFeePollerTransactionUpdate, onGasFeePollerTransactionUpdate_fn;
|
|
138
138
|
var TransactionController = class extends _basecontroller.BaseController {
|
|
139
139
|
/**
|
|
140
140
|
* Constructs a TransactionController.
|
|
@@ -217,6 +217,7 @@ var TransactionController = class extends _basecontroller.BaseController {
|
|
|
217
217
|
_chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _checkIfTransactionParamsUpdated);
|
|
218
218
|
_chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _onTransactionParamsUpdated);
|
|
219
219
|
_chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _updateSimulationData);
|
|
220
|
+
_chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _onGasFeePollerTransactionUpdate);
|
|
220
221
|
_chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _internalEvents, new (0, _events.EventEmitter)());
|
|
221
222
|
this.inProcessOfSigning = /* @__PURE__ */ new Set();
|
|
222
223
|
this.mutex = new (0, _asyncmutex.Mutex)();
|
|
@@ -304,7 +305,7 @@ var TransactionController = class extends _basecontroller.BaseController {
|
|
|
304
305
|
});
|
|
305
306
|
this.gasFeeFlows = _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _getGasFeeFlows, getGasFeeFlows_fn).call(this);
|
|
306
307
|
this.layer1GasFeeFlows = _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _getLayer1GasFeeFlows, getLayer1GasFeeFlows_fn).call(this);
|
|
307
|
-
const gasFeePoller = new (0,
|
|
308
|
+
const gasFeePoller = new (0, _chunkV6UIRCOFjs.GasFeePoller)({
|
|
308
309
|
// Default gas fee polling is not yet supported by the clients
|
|
309
310
|
gasFeeFlows: this.gasFeeFlows.slice(0, -1),
|
|
310
311
|
getGasFeeControllerEstimates: this.getGasFeeEstimates,
|
|
@@ -323,7 +324,7 @@ var TransactionController = class extends _basecontroller.BaseController {
|
|
|
323
324
|
});
|
|
324
325
|
gasFeePoller.hub.on(
|
|
325
326
|
"transaction-updated",
|
|
326
|
-
|
|
327
|
+
_chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _onGasFeePollerTransactionUpdate, onGasFeePollerTransactionUpdate_fn).bind(this)
|
|
327
328
|
);
|
|
328
329
|
this.messagingSystem.subscribe(
|
|
329
330
|
"TransactionController:stateChange",
|
|
@@ -857,10 +858,8 @@ var TransactionController = class extends _basecontroller.BaseController {
|
|
|
857
858
|
* @param note - A note or update reason to include in the transaction history.
|
|
858
859
|
*/
|
|
859
860
|
updateTransaction(transactionMeta, note) {
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
skipHistory: this.isHistoryDisabled
|
|
863
|
-
});
|
|
861
|
+
const { id: transactionId } = transactionMeta;
|
|
862
|
+
_chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _updateTransactionInternal, updateTransactionInternal_fn).call(this, { transactionId, note, skipHistory: this.isHistoryDisabled }, () => ({ ...transactionMeta }));
|
|
864
863
|
}
|
|
865
864
|
/**
|
|
866
865
|
* Update the security alert response for a transaction.
|
|
@@ -1156,7 +1155,7 @@ var TransactionController = class extends _basecontroller.BaseController {
|
|
|
1156
1155
|
ethQuery
|
|
1157
1156
|
);
|
|
1158
1157
|
updatedTransaction.type = type;
|
|
1159
|
-
await
|
|
1158
|
+
await _chunk2XKEAKQGjs.updateTransactionLayer1GasFee.call(void 0, {
|
|
1160
1159
|
layer1GasFeeFlows: this.layer1GasFeeFlows,
|
|
1161
1160
|
provider,
|
|
1162
1161
|
transactionMeta: updatedTransaction
|
|
@@ -1367,18 +1366,23 @@ var TransactionController = class extends _basecontroller.BaseController {
|
|
|
1367
1366
|
return filteredTransactions;
|
|
1368
1367
|
}
|
|
1369
1368
|
/**
|
|
1370
|
-
*
|
|
1369
|
+
* Determine the layer 1 gas fee for the given transaction parameters.
|
|
1371
1370
|
*
|
|
1372
|
-
* @param
|
|
1373
|
-
* @param
|
|
1374
|
-
* @param
|
|
1371
|
+
* @param request - The request object.
|
|
1372
|
+
* @param request.transactionParams - The transaction parameters to estimate the layer 1 gas fee for.
|
|
1373
|
+
* @param request.chainId - The ID of the chain where the transaction will be executed.
|
|
1374
|
+
* @param request.networkClientId - The ID of a specific network client to process the transaction.
|
|
1375
1375
|
*/
|
|
1376
|
-
async getLayer1GasFee(
|
|
1376
|
+
async getLayer1GasFee({
|
|
1377
|
+
transactionParams,
|
|
1378
|
+
chainId,
|
|
1379
|
+
networkClientId
|
|
1380
|
+
}) {
|
|
1377
1381
|
const provider = _chunkZ4BLTVTBjs.__privateGet.call(void 0, this, _multichainTrackingHelper).getProvider({
|
|
1378
1382
|
networkClientId,
|
|
1379
1383
|
chainId
|
|
1380
1384
|
});
|
|
1381
|
-
|
|
1385
|
+
return await _chunk2XKEAKQGjs.getTransactionLayer1GasFee.call(void 0, {
|
|
1382
1386
|
layer1GasFeeFlows: this.layer1GasFeeFlows,
|
|
1383
1387
|
provider,
|
|
1384
1388
|
transactionMeta: {
|
|
@@ -1386,7 +1390,6 @@ var TransactionController = class extends _basecontroller.BaseController {
|
|
|
1386
1390
|
chainId
|
|
1387
1391
|
}
|
|
1388
1392
|
});
|
|
1389
|
-
return layer1GasFee;
|
|
1390
1393
|
}
|
|
1391
1394
|
async signExternalTransaction(chainId, transactionParams) {
|
|
1392
1395
|
if (!this.sign) {
|
|
@@ -1477,7 +1480,7 @@ var TransactionController = class extends _basecontroller.BaseController {
|
|
|
1477
1480
|
getSavedGasFees: this.getSavedGasFees.bind(this),
|
|
1478
1481
|
txMeta: transactionMeta
|
|
1479
1482
|
});
|
|
1480
|
-
await
|
|
1483
|
+
await _chunk2XKEAKQGjs.updateTransactionLayer1GasFee.call(void 0, {
|
|
1481
1484
|
layer1GasFeeFlows: this.layer1GasFeeFlows,
|
|
1482
1485
|
provider,
|
|
1483
1486
|
transactionMeta
|
|
@@ -2327,25 +2330,36 @@ getLayer1GasFeeFlows_fn = function() {
|
|
|
2327
2330
|
return [new (0, _chunkETMW527Mjs.OptimismLayer1GasFeeFlow)()];
|
|
2328
2331
|
};
|
|
2329
2332
|
_updateTransactionInternal = new WeakSet();
|
|
2330
|
-
updateTransactionInternal_fn = function(
|
|
2331
|
-
|
|
2332
|
-
|
|
2333
|
-
|
|
2334
|
-
|
|
2335
|
-
|
|
2336
|
-
const updatedTransactionParams = _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _checkIfTransactionParamsUpdated, checkIfTransactionParamsUpdated_fn).call(this, normalizedTransaction);
|
|
2337
|
-
const transactionWithUpdatedHistory = skipHistory === true ? normalizedTransaction : _chunkQP75SWIQjs.updateTransactionHistory.call(void 0,
|
|
2338
|
-
normalizedTransaction,
|
|
2339
|
-
note ?? "Transaction updated"
|
|
2340
|
-
);
|
|
2333
|
+
updateTransactionInternal_fn = function({
|
|
2334
|
+
transactionId,
|
|
2335
|
+
note,
|
|
2336
|
+
skipHistory
|
|
2337
|
+
}, callback) {
|
|
2338
|
+
let updatedTransactionParams = [];
|
|
2341
2339
|
this.update((state) => {
|
|
2342
2340
|
const index = state.transactions.findIndex(
|
|
2343
|
-
({ id }) =>
|
|
2341
|
+
({ id }) => id === transactionId
|
|
2344
2342
|
);
|
|
2345
|
-
state.transactions[index]
|
|
2343
|
+
let transactionMeta2 = state.transactions[index];
|
|
2344
|
+
transactionMeta2 = callback(transactionMeta2) ?? transactionMeta2;
|
|
2345
|
+
transactionMeta2.txParams = _chunkUGFBA4GVjs.normalizeTransactionParams.call(void 0,
|
|
2346
|
+
transactionMeta2.txParams
|
|
2347
|
+
);
|
|
2348
|
+
_chunkVH47Q6TSjs.validateTxParams.call(void 0, transactionMeta2.txParams);
|
|
2349
|
+
updatedTransactionParams = _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _checkIfTransactionParamsUpdated, checkIfTransactionParamsUpdated_fn).call(this, transactionMeta2);
|
|
2350
|
+
if (skipHistory !== true) {
|
|
2351
|
+
transactionMeta2 = _chunkQP75SWIQjs.updateTransactionHistory.call(void 0,
|
|
2352
|
+
transactionMeta2,
|
|
2353
|
+
note ?? "Transaction updated"
|
|
2354
|
+
);
|
|
2355
|
+
}
|
|
2356
|
+
state.transactions[index] = transactionMeta2;
|
|
2346
2357
|
});
|
|
2358
|
+
const transactionMeta = this.getTransaction(
|
|
2359
|
+
transactionId
|
|
2360
|
+
);
|
|
2347
2361
|
if (updatedTransactionParams.length > 0) {
|
|
2348
|
-
_chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _onTransactionParamsUpdated, onTransactionParamsUpdated_fn).call(this,
|
|
2362
|
+
_chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _onTransactionParamsUpdated, onTransactionParamsUpdated_fn).call(this, transactionMeta, updatedTransactionParams);
|
|
2349
2363
|
}
|
|
2350
2364
|
};
|
|
2351
2365
|
_checkIfTransactionParamsUpdated = new WeakSet();
|
|
@@ -2379,7 +2393,7 @@ onTransactionParamsUpdated_fn = function(transactionMeta, updatedParams) {
|
|
|
2379
2393
|
};
|
|
2380
2394
|
_updateSimulationData = new WeakSet();
|
|
2381
2395
|
updateSimulationData_fn = async function(transactionMeta) {
|
|
2382
|
-
const { id, chainId, txParams } = transactionMeta;
|
|
2396
|
+
const { id: transactionId, chainId, txParams } = transactionMeta;
|
|
2383
2397
|
const { from, to, value, data } = txParams;
|
|
2384
2398
|
let simulationData = {
|
|
2385
2399
|
error: {
|
|
@@ -2389,7 +2403,9 @@ updateSimulationData_fn = async function(transactionMeta) {
|
|
|
2389
2403
|
tokenBalanceChanges: []
|
|
2390
2404
|
};
|
|
2391
2405
|
if (_chunkZ4BLTVTBjs.__privateGet.call(void 0, this, _isSimulationEnabled).call(this)) {
|
|
2392
|
-
_chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _updateTransactionInternal, updateTransactionInternal_fn).call(this, {
|
|
2406
|
+
_chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _updateTransactionInternal, updateTransactionInternal_fn).call(this, { transactionId, skipHistory: true }, (txMeta) => {
|
|
2407
|
+
txMeta.simulationData = void 0;
|
|
2408
|
+
});
|
|
2393
2409
|
simulationData = await _chunk3VF7ZGRVjs.getSimulationData.call(void 0, {
|
|
2394
2410
|
chainId,
|
|
2395
2411
|
from,
|
|
@@ -2398,20 +2414,41 @@ updateSimulationData_fn = async function(transactionMeta) {
|
|
|
2398
2414
|
data
|
|
2399
2415
|
});
|
|
2400
2416
|
}
|
|
2401
|
-
const finalTransactionMeta = this.getTransaction(
|
|
2417
|
+
const finalTransactionMeta = this.getTransaction(transactionId);
|
|
2402
2418
|
if (!finalTransactionMeta) {
|
|
2403
2419
|
_chunkS6VGOPUYjs.projectLogger.call(void 0,
|
|
2404
2420
|
"Cannot update simulation data as transaction not found",
|
|
2405
|
-
|
|
2421
|
+
transactionId,
|
|
2406
2422
|
simulationData
|
|
2407
2423
|
);
|
|
2408
2424
|
return;
|
|
2409
2425
|
}
|
|
2410
|
-
this.
|
|
2411
|
-
|
|
2412
|
-
"TransactionController#updateSimulationData - Update simulation data"
|
|
2413
|
-
)
|
|
2414
|
-
|
|
2426
|
+
_chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _updateTransactionInternal, updateTransactionInternal_fn).call(this, {
|
|
2427
|
+
transactionId,
|
|
2428
|
+
note: "TransactionController#updateSimulationData - Update simulation data"
|
|
2429
|
+
}, (txMeta) => {
|
|
2430
|
+
txMeta.simulationData = simulationData;
|
|
2431
|
+
});
|
|
2432
|
+
_chunkS6VGOPUYjs.projectLogger.call(void 0, "Updated simulation data", transactionId, simulationData);
|
|
2433
|
+
};
|
|
2434
|
+
_onGasFeePollerTransactionUpdate = new WeakSet();
|
|
2435
|
+
onGasFeePollerTransactionUpdate_fn = function({
|
|
2436
|
+
transactionId,
|
|
2437
|
+
gasFeeEstimates,
|
|
2438
|
+
gasFeeEstimatesLoaded,
|
|
2439
|
+
layer1GasFee
|
|
2440
|
+
}) {
|
|
2441
|
+
_chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _updateTransactionInternal, updateTransactionInternal_fn).call(this, { transactionId, skipHistory: true }, (txMeta) => {
|
|
2442
|
+
if (gasFeeEstimates) {
|
|
2443
|
+
txMeta.gasFeeEstimates = gasFeeEstimates;
|
|
2444
|
+
}
|
|
2445
|
+
if (gasFeeEstimatesLoaded !== void 0) {
|
|
2446
|
+
txMeta.gasFeeEstimatesLoaded = gasFeeEstimatesLoaded;
|
|
2447
|
+
}
|
|
2448
|
+
if (layer1GasFee) {
|
|
2449
|
+
txMeta.layer1GasFee = layer1GasFee;
|
|
2450
|
+
}
|
|
2451
|
+
});
|
|
2415
2452
|
};
|
|
2416
2453
|
|
|
2417
2454
|
|
|
@@ -2421,4 +2458,4 @@ updateSimulationData_fn = async function(transactionMeta) {
|
|
|
2421
2458
|
|
|
2422
2459
|
|
|
2423
2460
|
exports.HARDFORK = HARDFORK; exports.CANCEL_RATE = CANCEL_RATE; exports.SPEED_UP_RATE = SPEED_UP_RATE; exports.ApprovalState = ApprovalState; exports.TransactionController = TransactionController;
|
|
2424
|
-
//# sourceMappingURL=chunk-
|
|
2461
|
+
//# sourceMappingURL=chunk-X5WPBDI5.js.map
|