@metamask/transaction-controller 27.0.1 → 28.1.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.
Files changed (128) hide show
  1. package/CHANGELOG.md +19 -1
  2. package/dist/TransactionController.js +19 -17
  3. package/dist/TransactionController.mjs +18 -16
  4. package/dist/{chunk-5WFLNKCL.js → chunk-2XKEAKQG.js} +11 -5
  5. package/dist/chunk-2XKEAKQG.js.map +1 -0
  6. package/dist/{chunk-LYD4TEKH.js → chunk-4RJXBKSR.js} +5 -5
  7. package/dist/{chunk-DRSMLO7B.mjs → chunk-5G6OHAXI.mjs} +2 -2
  8. package/dist/{chunk-CPYXP2OC.js → chunk-5XQ2KRYL.js} +3 -3
  9. package/dist/{chunk-WLCFETHR.js → chunk-C2LNDHP4.js} +10 -10
  10. package/dist/{chunk-TKWTUPCQ.mjs → chunk-CPMTUMMZ.mjs} +3 -3
  11. package/dist/{chunk-5SKCGFUC.js → chunk-DMMUAJKY.js} +106 -66
  12. package/dist/chunk-DMMUAJKY.js.map +1 -0
  13. package/dist/{chunk-L337FYVS.js → chunk-EQNKFFTM.js} +3 -3
  14. package/dist/{chunk-3JEUO765.js → chunk-EQT25RSP.js} +6 -6
  15. package/dist/{chunk-RXRJSBSF.mjs → chunk-F6E3TTR3.mjs} +2 -2
  16. package/dist/{chunk-F247MMTE.js → chunk-FDUCRHYT.js} +3 -3
  17. package/dist/chunk-FG74Z3F5.mjs +102 -0
  18. package/dist/chunk-FG74Z3F5.mjs.map +1 -0
  19. package/dist/{chunk-35MG26Y3.mjs → chunk-HHK4QSNF.mjs} +44 -34
  20. package/dist/chunk-HHK4QSNF.mjs.map +1 -0
  21. package/dist/{chunk-L7ZKSKEI.mjs → chunk-IZVRGO3P.mjs} +2 -2
  22. package/dist/{chunk-3VF7ZGRV.js → chunk-JAYYMCBQ.js} +4 -4
  23. package/dist/{chunk-P74YLPJO.mjs → chunk-LDXTSESK.mjs} +2 -2
  24. package/dist/{chunk-UBXRAA6G.js → chunk-LNX4JTOL.js} +3 -3
  25. package/dist/{chunk-JDLNCMGI.mjs → chunk-MG7HTD3H.mjs} +94 -54
  26. package/dist/chunk-MG7HTD3H.mjs.map +1 -0
  27. package/dist/{chunk-2XFBWPHD.mjs → chunk-NCRWKI6Y.mjs} +2 -2
  28. package/dist/{chunk-W3CS5GRD.mjs → chunk-NOHEXQ7Y.mjs} +11 -5
  29. package/dist/chunk-NOHEXQ7Y.mjs.map +1 -0
  30. package/dist/{chunk-CWWZQZVR.mjs → chunk-NPEXNXSY.mjs} +2 -2
  31. package/dist/chunk-NYKRCWBG.js +31 -0
  32. package/dist/chunk-NYKRCWBG.js.map +1 -0
  33. package/dist/{chunk-4VLQV2GA.mjs → chunk-O6ZZVIFH.mjs} +4 -2
  34. package/dist/{chunk-LQS2M5QR.js.map → chunk-O6ZZVIFH.mjs.map} +1 -1
  35. package/dist/{chunk-DOX6H5UJ.mjs → chunk-QZLPYOGC.mjs} +2 -2
  36. package/dist/{chunk-LQS2M5QR.js → chunk-UGN7PBON.js} +4 -2
  37. package/dist/chunk-UGN7PBON.js.map +1 -0
  38. package/dist/{chunk-HUVOOFOM.js → chunk-V6UIRCOF.js} +43 -33
  39. package/dist/chunk-V6UIRCOF.js.map +1 -0
  40. package/dist/{chunk-AO3AE3L7.js → chunk-V72C4MCR.js} +3 -3
  41. package/dist/chunk-VEVVBHP3.mjs +31 -0
  42. package/dist/chunk-VEVVBHP3.mjs.map +1 -0
  43. package/dist/chunk-WR5F34OW.js +23 -0
  44. package/dist/chunk-WR5F34OW.js.map +1 -0
  45. package/dist/chunk-YVCX6Z75.js +102 -0
  46. package/dist/chunk-YVCX6Z75.js.map +1 -0
  47. package/dist/chunk-Z4GV3YQQ.mjs +23 -0
  48. package/dist/chunk-Z4GV3YQQ.mjs.map +1 -0
  49. package/dist/{chunk-RBF6CW7D.mjs → chunk-ZGUNOEUQ.mjs} +2 -2
  50. package/dist/constants.js +2 -2
  51. package/dist/constants.mjs +1 -1
  52. package/dist/gas-flows/DefaultGasFeeFlow.js +5 -5
  53. package/dist/gas-flows/DefaultGasFeeFlow.mjs +4 -4
  54. package/dist/gas-flows/LineaGasFeeFlow.js +6 -6
  55. package/dist/gas-flows/LineaGasFeeFlow.mjs +5 -5
  56. package/dist/gas-flows/OptimismLayer1GasFeeFlow.js +4 -3
  57. package/dist/gas-flows/OptimismLayer1GasFeeFlow.mjs +3 -2
  58. package/dist/gas-flows/OracleLayer1GasFeeFlow.js +9 -0
  59. package/dist/gas-flows/OracleLayer1GasFeeFlow.js.map +1 -0
  60. package/dist/gas-flows/OracleLayer1GasFeeFlow.mjs +9 -0
  61. package/dist/gas-flows/OracleLayer1GasFeeFlow.mjs.map +1 -0
  62. package/dist/gas-flows/ScrollLayer1GasFeeFlow.js +11 -0
  63. package/dist/gas-flows/ScrollLayer1GasFeeFlow.js.map +1 -0
  64. package/dist/gas-flows/ScrollLayer1GasFeeFlow.mjs +11 -0
  65. package/dist/gas-flows/ScrollLayer1GasFeeFlow.mjs.map +1 -0
  66. package/dist/helpers/EtherscanRemoteTransactionSource.js +4 -4
  67. package/dist/helpers/EtherscanRemoteTransactionSource.mjs +3 -3
  68. package/dist/helpers/GasFeePoller.js +3 -3
  69. package/dist/helpers/GasFeePoller.mjs +2 -2
  70. package/dist/helpers/MultichainTrackingHelper.js +5 -5
  71. package/dist/helpers/MultichainTrackingHelper.mjs +4 -4
  72. package/dist/index.js +19 -17
  73. package/dist/index.mjs +18 -16
  74. package/dist/tsconfig.build.tsbuildinfo +1 -1
  75. package/dist/types/TransactionController.d.ts +11 -6
  76. package/dist/types/TransactionController.d.ts.map +1 -1
  77. package/dist/types/constants.d.ts +2 -0
  78. package/dist/types/constants.d.ts.map +1 -1
  79. package/dist/types/gas-flows/OptimismLayer1GasFeeFlow.d.ts +5 -5
  80. package/dist/types/gas-flows/OptimismLayer1GasFeeFlow.d.ts.map +1 -1
  81. package/dist/types/gas-flows/OracleLayer1GasFeeFlow.d.ts +12 -0
  82. package/dist/types/gas-flows/OracleLayer1GasFeeFlow.d.ts.map +1 -0
  83. package/dist/types/gas-flows/ScrollLayer1GasFeeFlow.d.ts +10 -0
  84. package/dist/types/gas-flows/ScrollLayer1GasFeeFlow.d.ts.map +1 -0
  85. package/dist/types/helpers/GasFeePoller.d.ts.map +1 -1
  86. package/dist/types/utils/layer1-gas-fee-flow.d.ts.map +1 -1
  87. package/dist/utils/etherscan.js +3 -3
  88. package/dist/utils/etherscan.mjs +2 -2
  89. package/dist/utils/gas-fees.js +4 -4
  90. package/dist/utils/gas-fees.mjs +3 -3
  91. package/dist/utils/gas.js +3 -3
  92. package/dist/utils/gas.mjs +2 -2
  93. package/dist/utils/layer1-gas-fee-flow.js +2 -2
  94. package/dist/utils/layer1-gas-fee-flow.mjs +1 -1
  95. package/dist/utils/simulation.js +3 -3
  96. package/dist/utils/simulation.mjs +2 -2
  97. package/dist/utils/swaps.js +3 -3
  98. package/dist/utils/swaps.mjs +2 -2
  99. package/package.json +2 -2
  100. package/dist/chunk-35MG26Y3.mjs.map +0 -1
  101. package/dist/chunk-4VLQV2GA.mjs.map +0 -1
  102. package/dist/chunk-53IYIDVS.mjs +0 -132
  103. package/dist/chunk-53IYIDVS.mjs.map +0 -1
  104. package/dist/chunk-5SKCGFUC.js.map +0 -1
  105. package/dist/chunk-5WFLNKCL.js.map +0 -1
  106. package/dist/chunk-ETMW527M.js +0 -132
  107. package/dist/chunk-ETMW527M.js.map +0 -1
  108. package/dist/chunk-HUVOOFOM.js.map +0 -1
  109. package/dist/chunk-JDLNCMGI.mjs.map +0 -1
  110. package/dist/chunk-W3CS5GRD.mjs.map +0 -1
  111. /package/dist/{chunk-LYD4TEKH.js.map → chunk-4RJXBKSR.js.map} +0 -0
  112. /package/dist/{chunk-DRSMLO7B.mjs.map → chunk-5G6OHAXI.mjs.map} +0 -0
  113. /package/dist/{chunk-CPYXP2OC.js.map → chunk-5XQ2KRYL.js.map} +0 -0
  114. /package/dist/{chunk-WLCFETHR.js.map → chunk-C2LNDHP4.js.map} +0 -0
  115. /package/dist/{chunk-TKWTUPCQ.mjs.map → chunk-CPMTUMMZ.mjs.map} +0 -0
  116. /package/dist/{chunk-L337FYVS.js.map → chunk-EQNKFFTM.js.map} +0 -0
  117. /package/dist/{chunk-3JEUO765.js.map → chunk-EQT25RSP.js.map} +0 -0
  118. /package/dist/{chunk-RXRJSBSF.mjs.map → chunk-F6E3TTR3.mjs.map} +0 -0
  119. /package/dist/{chunk-F247MMTE.js.map → chunk-FDUCRHYT.js.map} +0 -0
  120. /package/dist/{chunk-L7ZKSKEI.mjs.map → chunk-IZVRGO3P.mjs.map} +0 -0
  121. /package/dist/{chunk-3VF7ZGRV.js.map → chunk-JAYYMCBQ.js.map} +0 -0
  122. /package/dist/{chunk-P74YLPJO.mjs.map → chunk-LDXTSESK.mjs.map} +0 -0
  123. /package/dist/{chunk-UBXRAA6G.js.map → chunk-LNX4JTOL.js.map} +0 -0
  124. /package/dist/{chunk-2XFBWPHD.mjs.map → chunk-NCRWKI6Y.mjs.map} +0 -0
  125. /package/dist/{chunk-CWWZQZVR.mjs.map → chunk-NPEXNXSY.mjs.map} +0 -0
  126. /package/dist/{chunk-DOX6H5UJ.mjs.map → chunk-QZLPYOGC.mjs.map} +0 -0
  127. /package/dist/{chunk-AO3AE3L7.js.map → chunk-V72C4MCR.js.map} +0 -0
  128. /package/dist/{chunk-RBF6CW7D.mjs.map → chunk-ZGUNOEUQ.mjs.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/constants.ts"],"names":[],"mappings":"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","sourcesContent":["export const CHAIN_IDS = {\n MAINNET: '0x1',\n GOERLI: '0x5',\n BASE: '0x2105',\n BASE_TESTNET: '0x14a33',\n BSC: '0x38',\n BSC_TESTNET: '0x61',\n OPTIMISM: '0xa',\n OPTIMISM_TESTNET: '0x1a4',\n OPBNB: '0xcc',\n OPBNB_TESTNET: '0x15eb',\n OPTIMISM_SEPOLIA: '0xaa37dc',\n POLYGON: '0x89',\n POLYGON_TESTNET: '0x13881',\n AVALANCHE: '0xa86a',\n AVALANCHE_TESTNET: '0xa869',\n FANTOM: '0xfa',\n FANTOM_TESTNET: '0xfa2',\n SEPOLIA: '0xaa36a7',\n LINEA_GOERLI: '0xe704',\n LINEA_SEPOLIA: '0xe705',\n LINEA_MAINNET: '0xe708',\n MOONBEAM: '0x504',\n MOONBEAM_TESTNET: '0x507',\n MOONRIVER: '0x505',\n GNOSIS: '0x64',\n ARBITRUM: '0xa4b1',\n ZKSYNC_ERA: '0x144',\n ZORA: '0x76adf1',\n SCROLL: '0x82750',\n SCROLL_SEPOLIA: '0x8274f',\n} as const;\n\nexport const DEFAULT_ETHERSCAN_DOMAIN = 'etherscan.io';\nexport const DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX = 'api';\n\nexport const ETHERSCAN_SUPPORTED_NETWORKS = {\n [CHAIN_IDS.GOERLI]: {\n domain: DEFAULT_ETHERSCAN_DOMAIN,\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-goerli`,\n },\n [CHAIN_IDS.MAINNET]: {\n domain: DEFAULT_ETHERSCAN_DOMAIN,\n subdomain: DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX,\n },\n [CHAIN_IDS.SEPOLIA]: {\n domain: DEFAULT_ETHERSCAN_DOMAIN,\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-sepolia`,\n },\n [CHAIN_IDS.LINEA_GOERLI]: {\n domain: 'lineascan.build',\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-goerli`,\n },\n [CHAIN_IDS.LINEA_SEPOLIA]: {\n domain: 'lineascan.build',\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-sepolia`,\n },\n [CHAIN_IDS.LINEA_MAINNET]: {\n domain: 'lineascan.build',\n subdomain: DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX,\n },\n [CHAIN_IDS.BSC]: {\n domain: 'bscscan.com',\n subdomain: DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX,\n },\n [CHAIN_IDS.BSC_TESTNET]: {\n domain: 'bscscan.com',\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-testnet`,\n },\n [CHAIN_IDS.OPTIMISM]: {\n domain: DEFAULT_ETHERSCAN_DOMAIN,\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-optimistic`,\n },\n [CHAIN_IDS.OPTIMISM_SEPOLIA]: {\n domain: DEFAULT_ETHERSCAN_DOMAIN,\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-sepolia-optimistic`,\n },\n [CHAIN_IDS.POLYGON]: {\n domain: 'polygonscan.com',\n subdomain: DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX,\n },\n [CHAIN_IDS.POLYGON_TESTNET]: {\n domain: 'polygonscan.com',\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-mumbai`,\n },\n [CHAIN_IDS.AVALANCHE]: {\n domain: 'snowtrace.io',\n subdomain: DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX,\n },\n [CHAIN_IDS.AVALANCHE_TESTNET]: {\n domain: 'snowtrace.io',\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-testnet`,\n },\n [CHAIN_IDS.FANTOM]: {\n domain: 'ftmscan.com',\n subdomain: DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX,\n },\n [CHAIN_IDS.FANTOM_TESTNET]: {\n domain: 'ftmscan.com',\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-testnet`,\n },\n [CHAIN_IDS.MOONBEAM]: {\n domain: 'moonscan.io',\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-moonbeam`,\n },\n [CHAIN_IDS.MOONBEAM_TESTNET]: {\n domain: 'moonscan.io',\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-moonbase`,\n },\n [CHAIN_IDS.MOONRIVER]: {\n domain: 'moonscan.io',\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-moonriver`,\n },\n [CHAIN_IDS.GNOSIS]: {\n domain: 'gnosisscan.io',\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-gnosis`,\n },\n};\n\nexport const GAS_BUFFER_CHAIN_OVERRIDES = {\n [CHAIN_IDS.OPTIMISM]: 1,\n [CHAIN_IDS.OPTIMISM_SEPOLIA]: 1,\n};\n\n/** Extract of the Wrapped ERC-20 ABI required for simulation. */\nexport const ABI_SIMULATION_ERC20_WRAPPED = [\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'to', type: 'address' },\n { indexed: false, name: 'wad', type: 'uint256' },\n ],\n name: 'Deposit',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'from', type: 'address' },\n { indexed: false, name: 'wad', type: 'uint256' },\n ],\n name: 'Withdrawal',\n type: 'event',\n },\n];\n\n/** Extract of the legacy ERC-721 ABI required for simulation. */\nexport const ABI_SIMULATION_ERC721_LEGACY = [\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n name: '_from',\n type: 'address',\n },\n {\n indexed: false,\n name: '_to',\n type: 'address',\n },\n {\n indexed: false,\n name: '_tokenId',\n type: 'uint256',\n },\n ],\n name: 'Transfer',\n type: 'event',\n },\n];\n"]}
@@ -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 _chunk5WFLNKCLjs = require('./chunk-5WFLNKCL.js');
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, _updateTransactionGasFeeEstimates, updateTransactionGasFeeEstimates_fn, _updateTransactionSuggestedFees, updateTransactionSuggestedFees_fn, _updateTransactionLayer1GasFee, updateTransactionLayer1GasFee_fn, _getUnapprovedTransactions, getUnapprovedTransactions_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, _updateTransactionGasFeeEstimates, updateTransactionGasFeeEstimates_fn).call(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
- _updateTransactionGasFeeEstimates = new WeakSet();
105
- updateTransactionGasFeeEstimates_fn = async function() {
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
- log("Found unapproved transactions", {
108
- count: unapprovedTransactions.length
109
- });
108
+ if (unapprovedTransactions.length) {
109
+ log("Found unapproved transactions", unapprovedTransactions.length);
110
+ }
110
111
  await Promise.all(
111
- unapprovedTransactions.flatMap((tx) => [
112
- _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _updateTransactionSuggestedFees, updateTransactionSuggestedFees_fn).call(this, tx),
113
- _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _updateTransactionLayer1GasFee, updateTransactionLayer1GasFee_fn).call(this, tx)
114
- ])
112
+ unapprovedTransactions.flatMap(
113
+ (tx) => _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _updateUnapprovedTransaction, updateUnapprovedTransaction_fn).call(this, tx)
114
+ )
115
115
  );
116
116
  };
117
- _updateTransactionSuggestedFees = new WeakSet();
118
- updateTransactionSuggestedFees_fn = async function(transactionMeta) {
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 (!gasFeeFlow) {
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
- const updatedTransactionMeta = {
149
- ...transactionMeta,
163
+ log("Updated gas fee estimates", {
150
164
  gasFeeEstimates,
151
- gasFeeEstimatesLoaded: true
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 _chunk5WFLNKCLjs.updateTransactionLayer1GasFee.call(void 0, {
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 (transactionMeta.layer1GasFee === void 0) {
169
- return;
178
+ if (layer1GasFee) {
179
+ log("Updated layer 1 gas fee", layer1GasFee, transactionMeta.id);
170
180
  }
171
- this.hub.emit("transaction-updated", transactionMeta);
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-HUVOOFOM.js.map
193
+ //# sourceMappingURL=chunk-V6UIRCOF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/helpers/GasFeePoller.ts"],"names":[],"mappings":"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","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"]}
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkLQS2M5QRjs = require('./chunk-LQS2M5QR.js');
3
+ var _chunkUGN7PBONjs = require('./chunk-UGN7PBON.js');
4
4
 
5
5
 
6
6
  var _chunkS6VGOPUYjs = require('./chunk-S6VGOPUY.js');
@@ -97,7 +97,7 @@ async function getGas(request) {
97
97
  log("Using original estimate as custom network");
98
98
  return [estimatedGas, simulationFails];
99
99
  }
100
- const bufferMultiplier = _chunkLQS2M5QRjs.GAS_BUFFER_CHAIN_OVERRIDES[chainId] ?? DEFAULT_GAS_MULTIPLIER;
100
+ const bufferMultiplier = _chunkUGN7PBONjs.GAS_BUFFER_CHAIN_OVERRIDES[chainId] ?? DEFAULT_GAS_MULTIPLIER;
101
101
  const bufferedGas = addGasBuffer(
102
102
  estimatedGas,
103
103
  blockGasLimit,
@@ -134,4 +134,4 @@ async function getLatestBlock(ethQuery) {
134
134
 
135
135
 
136
136
  exports.log = log; exports.FIXED_GAS = FIXED_GAS; exports.DEFAULT_GAS_MULTIPLIER = DEFAULT_GAS_MULTIPLIER; exports.updateGas = updateGas; exports.estimateGas = estimateGas; exports.addGasBuffer = addGasBuffer;
137
- //# sourceMappingURL=chunk-AO3AE3L7.js.map
137
+ //# sourceMappingURL=chunk-V72C4MCR.js.map
@@ -0,0 +1,31 @@
1
+ import {
2
+ OracleLayer1GasFeeFlow
3
+ } from "./chunk-FG74Z3F5.mjs";
4
+ import {
5
+ CHAIN_IDS
6
+ } from "./chunk-O6ZZVIFH.mjs";
7
+
8
+ // src/gas-flows/OptimismLayer1GasFeeFlow.ts
9
+ var OPTIMISM_STACK_CHAIN_IDS = [
10
+ CHAIN_IDS.OPTIMISM,
11
+ CHAIN_IDS.OPTIMISM_TESTNET,
12
+ CHAIN_IDS.BASE,
13
+ CHAIN_IDS.BASE_TESTNET,
14
+ CHAIN_IDS.OPBNB,
15
+ CHAIN_IDS.OPBNB_TESTNET,
16
+ CHAIN_IDS.ZORA
17
+ ];
18
+ var OPTIMISM_GAS_PRICE_ORACLE_ADDRESS = "0x420000000000000000000000000000000000000F";
19
+ var OptimismLayer1GasFeeFlow = class extends OracleLayer1GasFeeFlow {
20
+ constructor() {
21
+ super(OPTIMISM_GAS_PRICE_ORACLE_ADDRESS);
22
+ }
23
+ matchesTransaction(transactionMeta) {
24
+ return OPTIMISM_STACK_CHAIN_IDS.includes(transactionMeta.chainId);
25
+ }
26
+ };
27
+
28
+ export {
29
+ OptimismLayer1GasFeeFlow
30
+ };
31
+ //# sourceMappingURL=chunk-VEVVBHP3.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/gas-flows/OptimismLayer1GasFeeFlow.ts"],"sourcesContent":["import { type Hex } from '@metamask/utils';\n\nimport { CHAIN_IDS } from '../constants';\nimport type { TransactionMeta } from '../types';\nimport { OracleLayer1GasFeeFlow } from './OracleLayer1GasFeeFlow';\n\nconst OPTIMISM_STACK_CHAIN_IDS: Hex[] = [\n CHAIN_IDS.OPTIMISM,\n CHAIN_IDS.OPTIMISM_TESTNET,\n CHAIN_IDS.BASE,\n CHAIN_IDS.BASE_TESTNET,\n CHAIN_IDS.OPBNB,\n CHAIN_IDS.OPBNB_TESTNET,\n CHAIN_IDS.ZORA,\n];\n\n// BlockExplorer link: https://optimistic.etherscan.io/address/0x420000000000000000000000000000000000000f#code\nconst OPTIMISM_GAS_PRICE_ORACLE_ADDRESS =\n '0x420000000000000000000000000000000000000F';\n\n/**\n * Optimism layer 1 gas fee flow that obtains gas fee estimate using an oracle contract.\n */\nexport class OptimismLayer1GasFeeFlow extends OracleLayer1GasFeeFlow {\n constructor() {\n super(OPTIMISM_GAS_PRICE_ORACLE_ADDRESS);\n }\n\n matchesTransaction(transactionMeta: TransactionMeta): boolean {\n return OPTIMISM_STACK_CHAIN_IDS.includes(transactionMeta.chainId);\n }\n}\n"],"mappings":";;;;;;;;AAMA,IAAM,2BAAkC;AAAA,EACtC,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AACZ;AAGA,IAAM,oCACJ;AAKK,IAAM,2BAAN,cAAuC,uBAAuB;AAAA,EACnE,cAAc;AACZ,UAAM,iCAAiC;AAAA,EACzC;AAAA,EAEA,mBAAmB,iBAA2C;AAC5D,WAAO,yBAAyB,SAAS,gBAAgB,OAAO;AAAA,EAClE;AACF;","names":[]}
@@ -0,0 +1,23 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunkYVCX6Z75js = require('./chunk-YVCX6Z75.js');
4
+
5
+
6
+ var _chunkUGN7PBONjs = require('./chunk-UGN7PBON.js');
7
+
8
+ // src/gas-flows/ScrollLayer1GasFeeFlow.ts
9
+ var SCROLL_CHAIN_IDS = [_chunkUGN7PBONjs.CHAIN_IDS.SCROLL, _chunkUGN7PBONjs.CHAIN_IDS.SCROLL_SEPOLIA];
10
+ var SCROLL_GAS_PRICE_ORACLE_ADDRESS = "0x5300000000000000000000000000000000000002";
11
+ var ScrollLayer1GasFeeFlow = class extends _chunkYVCX6Z75js.OracleLayer1GasFeeFlow {
12
+ constructor() {
13
+ super(SCROLL_GAS_PRICE_ORACLE_ADDRESS, true);
14
+ }
15
+ matchesTransaction(transactionMeta) {
16
+ return SCROLL_CHAIN_IDS.includes(transactionMeta.chainId);
17
+ }
18
+ };
19
+
20
+
21
+
22
+ exports.ScrollLayer1GasFeeFlow = ScrollLayer1GasFeeFlow;
23
+ //# sourceMappingURL=chunk-WR5F34OW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/gas-flows/ScrollLayer1GasFeeFlow.ts"],"names":[],"mappings":";;;;;;;;AAMA,IAAM,mBAA0B,CAAC,UAAU,QAAQ,UAAU,cAAc;AAG3E,IAAM,kCACJ;AAKK,IAAM,yBAAN,cAAqC,uBAAuB;AAAA,EACjE,cAAc;AACZ,UAAM,iCAAiC,IAAI;AAAA,EAC7C;AAAA,EAEA,mBAAmB,iBAA2C;AAC5D,WAAO,iBAAiB,SAAS,gBAAgB,OAAO;AAAA,EAC1D;AACF","sourcesContent":["import { type Hex } from '@metamask/utils';\n\nimport { CHAIN_IDS } from '../constants';\nimport type { TransactionMeta } from '../types';\nimport { OracleLayer1GasFeeFlow } from './OracleLayer1GasFeeFlow';\n\nconst SCROLL_CHAIN_IDS: Hex[] = [CHAIN_IDS.SCROLL, CHAIN_IDS.SCROLL_SEPOLIA];\n\n// BlockExplorer link: https://scrollscan.com/address/0x5300000000000000000000000000000000000002#code\nconst SCROLL_GAS_PRICE_ORACLE_ADDRESS =\n '0x5300000000000000000000000000000000000002';\n\n/**\n * Scroll layer 1 gas fee flow that obtains gas fee estimate using an oracle contract.\n */\nexport class ScrollLayer1GasFeeFlow extends OracleLayer1GasFeeFlow {\n constructor() {\n super(SCROLL_GAS_PRICE_ORACLE_ADDRESS, true);\n }\n\n matchesTransaction(transactionMeta: TransactionMeta): boolean {\n return SCROLL_CHAIN_IDS.includes(transactionMeta.chainId);\n }\n}\n"]}
@@ -0,0 +1,102 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunkS6VGOPUYjs = require('./chunk-S6VGOPUY.js');
4
+
5
+
6
+
7
+
8
+
9
+ var _chunkZ4BLTVTBjs = require('./chunk-Z4BLTVTB.js');
10
+
11
+ // src/gas-flows/OracleLayer1GasFeeFlow.ts
12
+ var _common = require('@ethereumjs/common');
13
+ var _tx = require('@ethereumjs/tx');
14
+ var _contracts = require('@ethersproject/contracts');
15
+ var _providers = require('@ethersproject/providers');
16
+ var _utils = require('@metamask/utils');
17
+ var _lodash = require('lodash');
18
+ var log = _utils.createModuleLogger.call(void 0, _chunkS6VGOPUYjs.projectLogger, "oracle-layer1-gas-fee-flow");
19
+ var DUMMY_KEY = "abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789";
20
+ var GAS_PRICE_ORACLE_ABI = [
21
+ {
22
+ inputs: [{ internalType: "bytes", name: "_data", type: "bytes" }],
23
+ name: "getL1Fee",
24
+ outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
25
+ stateMutability: "view",
26
+ type: "function"
27
+ }
28
+ ];
29
+ var _oracleAddress, _signTransaction, _getOracleLayer1GasFee, getOracleLayer1GasFee_fn, _buildUnserializedTransaction, buildUnserializedTransaction_fn, _buildTransactionParams, buildTransactionParams_fn, _buildTransactionCommon, buildTransactionCommon_fn;
30
+ var OracleLayer1GasFeeFlow = class {
31
+ constructor(oracleAddress, signTransaction) {
32
+ _chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _getOracleLayer1GasFee);
33
+ _chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _buildUnserializedTransaction);
34
+ _chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _buildTransactionParams);
35
+ _chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _buildTransactionCommon);
36
+ _chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _oracleAddress, void 0);
37
+ _chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _signTransaction, void 0);
38
+ _chunkZ4BLTVTBjs.__privateSet.call(void 0, this, _oracleAddress, oracleAddress);
39
+ _chunkZ4BLTVTBjs.__privateSet.call(void 0, this, _signTransaction, signTransaction ?? false);
40
+ }
41
+ async getLayer1Fee(request) {
42
+ try {
43
+ return await _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _getOracleLayer1GasFee, getOracleLayer1GasFee_fn).call(this, request);
44
+ } catch (error) {
45
+ log("Failed to get oracle layer 1 gas fee", error);
46
+ throw new Error(`Failed to get oracle layer 1 gas fee`);
47
+ }
48
+ }
49
+ };
50
+ _oracleAddress = new WeakMap();
51
+ _signTransaction = new WeakMap();
52
+ _getOracleLayer1GasFee = new WeakSet();
53
+ getOracleLayer1GasFee_fn = async function(request) {
54
+ const { provider, transactionMeta } = request;
55
+ const contract = new (0, _contracts.Contract)(
56
+ _chunkZ4BLTVTBjs.__privateGet.call(void 0, this, _oracleAddress),
57
+ GAS_PRICE_ORACLE_ABI,
58
+ // Network controller provider type is incompatible with ethers provider
59
+ new (0, _providers.Web3Provider)(provider)
60
+ );
61
+ const serializedTransaction = _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _buildUnserializedTransaction, buildUnserializedTransaction_fn).call(this, transactionMeta, _chunkZ4BLTVTBjs.__privateGet.call(void 0, this, _signTransaction)).serialize();
62
+ const result = await contract.getL1Fee(serializedTransaction);
63
+ if (result === void 0) {
64
+ throw new Error("No value returned from oracle contract");
65
+ }
66
+ return {
67
+ layer1Fee: result.toHexString()
68
+ };
69
+ };
70
+ _buildUnserializedTransaction = new WeakSet();
71
+ buildUnserializedTransaction_fn = function(transactionMeta, sign) {
72
+ const txParams = _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _buildTransactionParams, buildTransactionParams_fn).call(this, transactionMeta);
73
+ const common = _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _buildTransactionCommon, buildTransactionCommon_fn).call(this, transactionMeta);
74
+ let unserializedTransaction = _tx.TransactionFactory.fromTxData(txParams, {
75
+ common
76
+ });
77
+ if (sign) {
78
+ const keyBuffer = Buffer.from(DUMMY_KEY, "hex");
79
+ unserializedTransaction = unserializedTransaction.sign(keyBuffer);
80
+ }
81
+ return unserializedTransaction;
82
+ };
83
+ _buildTransactionParams = new WeakSet();
84
+ buildTransactionParams_fn = function(transactionMeta) {
85
+ return {
86
+ ..._lodash.omit.call(void 0, transactionMeta.txParams, "gas"),
87
+ gasLimit: transactionMeta.txParams.gas
88
+ };
89
+ };
90
+ _buildTransactionCommon = new WeakSet();
91
+ buildTransactionCommon_fn = function(transactionMeta) {
92
+ const chainId = Number(transactionMeta.chainId);
93
+ return _common.Common.custom({
94
+ chainId,
95
+ defaultHardfork: _common.Hardfork.London
96
+ });
97
+ };
98
+
99
+
100
+
101
+ exports.OracleLayer1GasFeeFlow = OracleLayer1GasFeeFlow;
102
+ //# sourceMappingURL=chunk-YVCX6Z75.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/gas-flows/OracleLayer1GasFeeFlow.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,SAAS,QAAQ,gBAAgB;AACjC,SAAS,0BAA0B;AACnC,SAAS,gBAAgB;AACzB,SAAS,oBAA2C;AAEpD,SAAS,0BAA0B;AACnC,SAAS,YAAY;AAUrB,IAAM,MAAM,mBAAmB,eAAe,4BAA4B;AAE1E,IAAM,YACJ;AAEF,IAAM,uBAAuB;AAAA,EAC3B;AAAA,IACE,QAAQ,CAAC,EAAE,cAAc,SAAS,MAAM,SAAS,MAAM,QAAQ,CAAC;AAAA,IAChE,MAAM;AAAA,IACN,SAAS,CAAC,EAAE,cAAc,WAAW,MAAM,IAAI,MAAM,UAAU,CAAC;AAAA,IAChE,iBAAiB;AAAA,IACjB,MAAM;AAAA,EACR;AACF;AA7BA;AAkCO,IAAe,yBAAf,MAAkE;AAAA,EAKvE,YAAY,eAAoB,iBAA2B;AAkB3D,uBAAM;AA4BN;AAmBA;AASA;AA9EA;AAEA;AAGE,uBAAK,gBAAiB;AACtB,uBAAK,kBAAmB,mBAAmB;AAAA,EAC7C;AAAA,EAIA,MAAM,aACJ,SACmC;AACnC,QAAI;AACF,aAAO,MAAM,sBAAK,kDAAL,WAA4B;AAAA,IAC3C,SAAS,OAAO;AACd,UAAI,wCAAwC,KAAK;AACjD,YAAM,IAAI,MAAM,sCAAsC;AAAA,IACxD;AAAA,EACF;AAkEF;AAtFE;AAEA;AAoBM;AAAA,2BAAsB,eAC1B,SACmC;AACnC,QAAM,EAAE,UAAU,gBAAgB,IAAI;AAEtC,QAAM,WAAW,IAAI;AAAA,IACnB,mBAAK;AAAA,IACL;AAAA;AAAA,IAEA,IAAI,aAAa,QAAuC;AAAA,EAC1D;AAEA,QAAM,wBAAwB,sBAAK,gEAAL,WAC5B,iBACA,mBAAK,mBACL,UAAU;AAEZ,QAAM,SAAS,MAAM,SAAS,SAAS,qBAAqB;AAE5D,MAAI,WAAW,QAAW;AACxB,UAAM,IAAI,MAAM,wCAAwC;AAAA,EAC1D;AAEA,SAAO;AAAA,IACL,WAAW,OAAO,YAAY;AAAA,EAChC;AACF;AAEA;AAAA,kCAA6B,SAC3B,iBACA,MACA;AACA,QAAM,WAAW,sBAAK,oDAAL,WAA6B;AAC9C,QAAM,SAAS,sBAAK,oDAAL,WAA6B;AAE5C,MAAI,0BAA0B,mBAAmB,WAAW,UAAU;AAAA,IACpE;AAAA,EACF,CAAC;AAED,MAAI,MAAM;AACR,UAAM,YAAY,OAAO,KAAK,WAAW,KAAK;AAC9C,8BAA0B,wBAAwB,KAAK,SAAS;AAAA,EAClE;AAEA,SAAO;AACT;AAEA;AAAA,4BAAuB,SACrB,iBAC6B;AAC7B,SAAO;AAAA,IACL,GAAG,KAAK,gBAAgB,UAAU,KAAK;AAAA,IACvC,UAAU,gBAAgB,SAAS;AAAA,EACrC;AACF;AAEA;AAAA,4BAAuB,SAAC,iBAAkC;AACxD,QAAM,UAAU,OAAO,gBAAgB,OAAO;AAE9C,SAAO,OAAO,OAAO;AAAA,IACnB;AAAA,IACA,iBAAiB,SAAS;AAAA,EAC5B,CAAC;AACH","sourcesContent":["import { Common, Hardfork } from '@ethereumjs/common';\nimport { TransactionFactory } from '@ethereumjs/tx';\nimport { Contract } from '@ethersproject/contracts';\nimport { Web3Provider, type ExternalProvider } from '@ethersproject/providers';\nimport type { Hex } from '@metamask/utils';\nimport { createModuleLogger } from '@metamask/utils';\nimport { omit } from 'lodash';\n\nimport { projectLogger } from '../logger';\nimport type {\n Layer1GasFeeFlow,\n Layer1GasFeeFlowRequest,\n Layer1GasFeeFlowResponse,\n TransactionMeta,\n} from '../types';\n\nconst log = createModuleLogger(projectLogger, 'oracle-layer1-gas-fee-flow');\n\nconst DUMMY_KEY =\n 'abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789';\n\nconst GAS_PRICE_ORACLE_ABI = [\n {\n inputs: [{ internalType: 'bytes', name: '_data', type: 'bytes' }],\n name: 'getL1Fee',\n outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function',\n },\n];\n\n/**\n * Layer 1 gas fee flow that obtains gas fee estimate using an oracle smart contract.\n */\nexport abstract class OracleLayer1GasFeeFlow implements Layer1GasFeeFlow {\n #oracleAddress: Hex;\n\n #signTransaction: boolean;\n\n constructor(oracleAddress: Hex, signTransaction?: boolean) {\n this.#oracleAddress = oracleAddress;\n this.#signTransaction = signTransaction ?? false;\n }\n\n abstract matchesTransaction(transactionMeta: TransactionMeta): boolean;\n\n async getLayer1Fee(\n request: Layer1GasFeeFlowRequest,\n ): Promise<Layer1GasFeeFlowResponse> {\n try {\n return await this.#getOracleLayer1GasFee(request);\n } catch (error) {\n log('Failed to get oracle layer 1 gas fee', error);\n throw new Error(`Failed to get oracle layer 1 gas fee`);\n }\n }\n\n async #getOracleLayer1GasFee(\n request: Layer1GasFeeFlowRequest,\n ): Promise<Layer1GasFeeFlowResponse> {\n const { provider, transactionMeta } = request;\n\n const contract = new Contract(\n this.#oracleAddress,\n GAS_PRICE_ORACLE_ABI,\n // Network controller provider type is incompatible with ethers provider\n new Web3Provider(provider as unknown as ExternalProvider),\n );\n\n const serializedTransaction = this.#buildUnserializedTransaction(\n transactionMeta,\n this.#signTransaction,\n ).serialize();\n\n const result = await contract.getL1Fee(serializedTransaction);\n\n if (result === undefined) {\n throw new Error('No value returned from oracle contract');\n }\n\n return {\n layer1Fee: result.toHexString(),\n };\n }\n\n #buildUnserializedTransaction(\n transactionMeta: TransactionMeta,\n sign: boolean,\n ) {\n const txParams = this.#buildTransactionParams(transactionMeta);\n const common = this.#buildTransactionCommon(transactionMeta);\n\n let unserializedTransaction = TransactionFactory.fromTxData(txParams, {\n common,\n });\n\n if (sign) {\n const keyBuffer = Buffer.from(DUMMY_KEY, 'hex');\n unserializedTransaction = unserializedTransaction.sign(keyBuffer);\n }\n\n return unserializedTransaction;\n }\n\n #buildTransactionParams(\n transactionMeta: TransactionMeta,\n ): TransactionMeta['txParams'] {\n return {\n ...omit(transactionMeta.txParams, 'gas'),\n gasLimit: transactionMeta.txParams.gas,\n };\n }\n\n #buildTransactionCommon(transactionMeta: TransactionMeta) {\n const chainId = Number(transactionMeta.chainId);\n\n return Common.custom({\n chainId,\n defaultHardfork: Hardfork.London,\n });\n }\n}\n"]}
@@ -0,0 +1,23 @@
1
+ import {
2
+ OracleLayer1GasFeeFlow
3
+ } from "./chunk-FG74Z3F5.mjs";
4
+ import {
5
+ CHAIN_IDS
6
+ } from "./chunk-O6ZZVIFH.mjs";
7
+
8
+ // src/gas-flows/ScrollLayer1GasFeeFlow.ts
9
+ var SCROLL_CHAIN_IDS = [CHAIN_IDS.SCROLL, CHAIN_IDS.SCROLL_SEPOLIA];
10
+ var SCROLL_GAS_PRICE_ORACLE_ADDRESS = "0x5300000000000000000000000000000000000002";
11
+ var ScrollLayer1GasFeeFlow = class extends OracleLayer1GasFeeFlow {
12
+ constructor() {
13
+ super(SCROLL_GAS_PRICE_ORACLE_ADDRESS, true);
14
+ }
15
+ matchesTransaction(transactionMeta) {
16
+ return SCROLL_CHAIN_IDS.includes(transactionMeta.chainId);
17
+ }
18
+ };
19
+
20
+ export {
21
+ ScrollLayer1GasFeeFlow
22
+ };
23
+ //# sourceMappingURL=chunk-Z4GV3YQQ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/gas-flows/ScrollLayer1GasFeeFlow.ts"],"sourcesContent":["import { type Hex } from '@metamask/utils';\n\nimport { CHAIN_IDS } from '../constants';\nimport type { TransactionMeta } from '../types';\nimport { OracleLayer1GasFeeFlow } from './OracleLayer1GasFeeFlow';\n\nconst SCROLL_CHAIN_IDS: Hex[] = [CHAIN_IDS.SCROLL, CHAIN_IDS.SCROLL_SEPOLIA];\n\n// BlockExplorer link: https://scrollscan.com/address/0x5300000000000000000000000000000000000002#code\nconst SCROLL_GAS_PRICE_ORACLE_ADDRESS =\n '0x5300000000000000000000000000000000000002';\n\n/**\n * Scroll layer 1 gas fee flow that obtains gas fee estimate using an oracle contract.\n */\nexport class ScrollLayer1GasFeeFlow extends OracleLayer1GasFeeFlow {\n constructor() {\n super(SCROLL_GAS_PRICE_ORACLE_ADDRESS, true);\n }\n\n matchesTransaction(transactionMeta: TransactionMeta): boolean {\n return SCROLL_CHAIN_IDS.includes(transactionMeta.chainId);\n }\n}\n"],"mappings":";;;;;;;;AAMA,IAAM,mBAA0B,CAAC,UAAU,QAAQ,UAAU,cAAc;AAG3E,IAAM,kCACJ;AAKK,IAAM,yBAAN,cAAqC,uBAAuB;AAAA,EACjE,cAAc;AACZ,UAAM,iCAAiC,IAAI;AAAA,EAC7C;AAAA,EAEA,mBAAmB,iBAA2C;AAC5D,WAAO,iBAAiB,SAAS,gBAAgB,OAAO;AAAA,EAC1D;AACF;","names":[]}
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-J56A7UCK.mjs";
4
4
  import {
5
5
  CHAIN_IDS
6
- } from "./chunk-4VLQV2GA.mjs";
6
+ } from "./chunk-O6ZZVIFH.mjs";
7
7
  import {
8
8
  createModuleLogger,
9
9
  projectLogger
@@ -208,4 +208,4 @@ export {
208
208
  updateSwapsTransaction,
209
209
  updatePostTransactionBalance
210
210
  };
211
- //# sourceMappingURL=chunk-RBF6CW7D.mjs.map
211
+ //# sourceMappingURL=chunk-ZGUNOEUQ.mjs.map
package/dist/constants.js CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- var _chunkLQS2M5QRjs = require('./chunk-LQS2M5QR.js');
9
+ var _chunkUGN7PBONjs = require('./chunk-UGN7PBON.js');
10
10
  require('./chunk-Z4BLTVTB.js');
11
11
 
12
12
 
@@ -16,5 +16,5 @@ require('./chunk-Z4BLTVTB.js');
16
16
 
17
17
 
18
18
 
19
- exports.ABI_SIMULATION_ERC20_WRAPPED = _chunkLQS2M5QRjs.ABI_SIMULATION_ERC20_WRAPPED; exports.ABI_SIMULATION_ERC721_LEGACY = _chunkLQS2M5QRjs.ABI_SIMULATION_ERC721_LEGACY; exports.CHAIN_IDS = _chunkLQS2M5QRjs.CHAIN_IDS; exports.DEFAULT_ETHERSCAN_DOMAIN = _chunkLQS2M5QRjs.DEFAULT_ETHERSCAN_DOMAIN; exports.DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX = _chunkLQS2M5QRjs.DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX; exports.ETHERSCAN_SUPPORTED_NETWORKS = _chunkLQS2M5QRjs.ETHERSCAN_SUPPORTED_NETWORKS; exports.GAS_BUFFER_CHAIN_OVERRIDES = _chunkLQS2M5QRjs.GAS_BUFFER_CHAIN_OVERRIDES;
19
+ exports.ABI_SIMULATION_ERC20_WRAPPED = _chunkUGN7PBONjs.ABI_SIMULATION_ERC20_WRAPPED; exports.ABI_SIMULATION_ERC721_LEGACY = _chunkUGN7PBONjs.ABI_SIMULATION_ERC721_LEGACY; exports.CHAIN_IDS = _chunkUGN7PBONjs.CHAIN_IDS; exports.DEFAULT_ETHERSCAN_DOMAIN = _chunkUGN7PBONjs.DEFAULT_ETHERSCAN_DOMAIN; exports.DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX = _chunkUGN7PBONjs.DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX; exports.ETHERSCAN_SUPPORTED_NETWORKS = _chunkUGN7PBONjs.ETHERSCAN_SUPPORTED_NETWORKS; exports.GAS_BUFFER_CHAIN_OVERRIDES = _chunkUGN7PBONjs.GAS_BUFFER_CHAIN_OVERRIDES;
20
20
  //# sourceMappingURL=constants.js.map
@@ -6,7 +6,7 @@ import {
6
6
  DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX,
7
7
  ETHERSCAN_SUPPORTED_NETWORKS,
8
8
  GAS_BUFFER_CHAIN_OVERRIDES
9
- } from "./chunk-4VLQV2GA.mjs";
9
+ } from "./chunk-O6ZZVIFH.mjs";
10
10
  import "./chunk-XUI43LEZ.mjs";
11
11
  export {
12
12
  ABI_SIMULATION_ERC20_WRAPPED,
@@ -1,15 +1,15 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkLYD4TEKHjs = require('../chunk-LYD4TEKH.js');
4
- require('../chunk-L337FYVS.js');
5
- require('../chunk-WLCFETHR.js');
3
+ var _chunk4RJXBKSRjs = require('../chunk-4RJXBKSR.js');
4
+ require('../chunk-EQNKFFTM.js');
5
+ require('../chunk-C2LNDHP4.js');
6
6
  require('../chunk-UGFBA4GV.js');
7
7
  require('../chunk-UH7FNVKS.js');
8
- require('../chunk-LQS2M5QR.js');
8
+ require('../chunk-UGN7PBON.js');
9
9
  require('../chunk-S6VGOPUY.js');
10
10
  require('../chunk-FK7AP6SH.js');
11
11
  require('../chunk-Z4BLTVTB.js');
12
12
 
13
13
 
14
- exports.DefaultGasFeeFlow = _chunkLYD4TEKHjs.DefaultGasFeeFlow;
14
+ exports.DefaultGasFeeFlow = _chunk4RJXBKSRjs.DefaultGasFeeFlow;
15
15
  //# sourceMappingURL=DefaultGasFeeFlow.js.map
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  DefaultGasFeeFlow
3
- } from "../chunk-CWWZQZVR.mjs";
4
- import "../chunk-P74YLPJO.mjs";
5
- import "../chunk-RBF6CW7D.mjs";
3
+ } from "../chunk-NPEXNXSY.mjs";
4
+ import "../chunk-LDXTSESK.mjs";
5
+ import "../chunk-ZGUNOEUQ.mjs";
6
6
  import "../chunk-J56A7UCK.mjs";
7
7
  import "../chunk-TWND5SFD.mjs";
8
- import "../chunk-4VLQV2GA.mjs";
8
+ import "../chunk-O6ZZVIFH.mjs";
9
9
  import "../chunk-UQQWZT6C.mjs";
10
10
  import "../chunk-YEJJKWT2.mjs";
11
11
  import "../chunk-XUI43LEZ.mjs";
@@ -1,16 +1,16 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkUBXRAA6Gjs = require('../chunk-UBXRAA6G.js');
4
- require('../chunk-LYD4TEKH.js');
5
- require('../chunk-L337FYVS.js');
6
- require('../chunk-WLCFETHR.js');
3
+ var _chunkLNX4JTOLjs = require('../chunk-LNX4JTOL.js');
4
+ require('../chunk-4RJXBKSR.js');
5
+ require('../chunk-EQNKFFTM.js');
6
+ require('../chunk-C2LNDHP4.js');
7
7
  require('../chunk-UGFBA4GV.js');
8
8
  require('../chunk-UH7FNVKS.js');
9
- require('../chunk-LQS2M5QR.js');
9
+ require('../chunk-UGN7PBON.js');
10
10
  require('../chunk-S6VGOPUY.js');
11
11
  require('../chunk-FK7AP6SH.js');
12
12
  require('../chunk-Z4BLTVTB.js');
13
13
 
14
14
 
15
- exports.LineaGasFeeFlow = _chunkUBXRAA6Gjs.LineaGasFeeFlow;
15
+ exports.LineaGasFeeFlow = _chunkLNX4JTOLjs.LineaGasFeeFlow;
16
16
  //# sourceMappingURL=LineaGasFeeFlow.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  LineaGasFeeFlow
3
- } from "../chunk-2XFBWPHD.mjs";
4
- import "../chunk-CWWZQZVR.mjs";
5
- import "../chunk-P74YLPJO.mjs";
6
- import "../chunk-RBF6CW7D.mjs";
3
+ } from "../chunk-NCRWKI6Y.mjs";
4
+ import "../chunk-NPEXNXSY.mjs";
5
+ import "../chunk-LDXTSESK.mjs";
6
+ import "../chunk-ZGUNOEUQ.mjs";
7
7
  import "../chunk-J56A7UCK.mjs";
8
8
  import "../chunk-TWND5SFD.mjs";
9
- import "../chunk-4VLQV2GA.mjs";
9
+ import "../chunk-O6ZZVIFH.mjs";
10
10
  import "../chunk-UQQWZT6C.mjs";
11
11
  import "../chunk-YEJJKWT2.mjs";
12
12
  import "../chunk-XUI43LEZ.mjs";
@@ -1,10 +1,11 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkETMW527Mjs = require('../chunk-ETMW527M.js');
4
- require('../chunk-LQS2M5QR.js');
3
+ var _chunkNYKRCWBGjs = require('../chunk-NYKRCWBG.js');
4
+ require('../chunk-YVCX6Z75.js');
5
+ require('../chunk-UGN7PBON.js');
5
6
  require('../chunk-S6VGOPUY.js');
6
7
  require('../chunk-Z4BLTVTB.js');
7
8
 
8
9
 
9
- exports.OptimismLayer1GasFeeFlow = _chunkETMW527Mjs.OptimismLayer1GasFeeFlow;
10
+ exports.OptimismLayer1GasFeeFlow = _chunkNYKRCWBGjs.OptimismLayer1GasFeeFlow;
10
11
  //# sourceMappingURL=OptimismLayer1GasFeeFlow.js.map
@@ -1,7 +1,8 @@
1
1
  import {
2
2
  OptimismLayer1GasFeeFlow
3
- } from "../chunk-53IYIDVS.mjs";
4
- import "../chunk-4VLQV2GA.mjs";
3
+ } from "../chunk-VEVVBHP3.mjs";
4
+ import "../chunk-FG74Z3F5.mjs";
5
+ import "../chunk-O6ZZVIFH.mjs";
5
6
  import "../chunk-UQQWZT6C.mjs";
6
7
  import "../chunk-XUI43LEZ.mjs";
7
8
  export {
@@ -0,0 +1,9 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunkYVCX6Z75js = require('../chunk-YVCX6Z75.js');
4
+ require('../chunk-S6VGOPUY.js');
5
+ require('../chunk-Z4BLTVTB.js');
6
+
7
+
8
+ exports.OracleLayer1GasFeeFlow = _chunkYVCX6Z75js.OracleLayer1GasFeeFlow;
9
+ //# sourceMappingURL=OracleLayer1GasFeeFlow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import {
2
+ OracleLayer1GasFeeFlow
3
+ } from "../chunk-FG74Z3F5.mjs";
4
+ import "../chunk-UQQWZT6C.mjs";
5
+ import "../chunk-XUI43LEZ.mjs";
6
+ export {
7
+ OracleLayer1GasFeeFlow
8
+ };
9
+ //# sourceMappingURL=OracleLayer1GasFeeFlow.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,11 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunkWR5F34OWjs = require('../chunk-WR5F34OW.js');
4
+ require('../chunk-YVCX6Z75.js');
5
+ require('../chunk-UGN7PBON.js');
6
+ require('../chunk-S6VGOPUY.js');
7
+ require('../chunk-Z4BLTVTB.js');
8
+
9
+
10
+ exports.ScrollLayer1GasFeeFlow = _chunkWR5F34OWjs.ScrollLayer1GasFeeFlow;
11
+ //# sourceMappingURL=ScrollLayer1GasFeeFlow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import {
2
+ ScrollLayer1GasFeeFlow
3
+ } from "../chunk-Z4GV3YQQ.mjs";
4
+ import "../chunk-FG74Z3F5.mjs";
5
+ import "../chunk-O6ZZVIFH.mjs";
6
+ import "../chunk-UQQWZT6C.mjs";
7
+ import "../chunk-XUI43LEZ.mjs";
8
+ export {
9
+ ScrollLayer1GasFeeFlow
10
+ };
11
+ //# sourceMappingURL=ScrollLayer1GasFeeFlow.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}