@metamask/transaction-controller 28.0.0 → 28.1.1

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 (113) hide show
  1. package/CHANGELOG.md +19 -1
  2. package/dist/TransactionController.js +17 -15
  3. package/dist/TransactionController.mjs +16 -14
  4. package/dist/{chunk-LYD4TEKH.js → chunk-4RJXBKSR.js} +5 -5
  5. package/dist/{chunk-DRSMLO7B.mjs → chunk-5G6OHAXI.mjs} +2 -2
  6. package/dist/{chunk-CPYXP2OC.js → chunk-5XQ2KRYL.js} +3 -3
  7. package/dist/{chunk-WLCFETHR.js → chunk-C2LNDHP4.js} +10 -10
  8. package/dist/{chunk-TKWTUPCQ.mjs → chunk-CPMTUMMZ.mjs} +3 -3
  9. package/dist/{chunk-L337FYVS.js → chunk-EQNKFFTM.js} +3 -3
  10. package/dist/{chunk-3JEUO765.js → chunk-EQT25RSP.js} +6 -6
  11. package/dist/{chunk-RXRJSBSF.mjs → chunk-F6E3TTR3.mjs} +2 -2
  12. package/dist/{chunk-F247MMTE.js → chunk-FDUCRHYT.js} +3 -3
  13. package/dist/chunk-FG74Z3F5.mjs +102 -0
  14. package/dist/chunk-FG74Z3F5.mjs.map +1 -0
  15. package/dist/{chunk-X5WPBDI5.js → chunk-FMCTVRU2.js} +28 -25
  16. package/dist/chunk-FMCTVRU2.js.map +1 -0
  17. package/dist/{chunk-H6NWVGHL.mjs → chunk-HQAADNXH.mjs} +19 -16
  18. package/dist/chunk-HQAADNXH.mjs.map +1 -0
  19. package/dist/{chunk-P74YLPJO.mjs → chunk-LDXTSESK.mjs} +2 -2
  20. package/dist/{chunk-UBXRAA6G.js → chunk-LNX4JTOL.js} +3 -3
  21. package/dist/{chunk-L7ZKSKEI.mjs → chunk-MDRMMUMS.mjs} +33 -19
  22. package/dist/chunk-MDRMMUMS.mjs.map +1 -0
  23. package/dist/{chunk-2XFBWPHD.mjs → chunk-NCRWKI6Y.mjs} +2 -2
  24. package/dist/{chunk-CWWZQZVR.mjs → chunk-NPEXNXSY.mjs} +2 -2
  25. package/dist/chunk-NYKRCWBG.js +31 -0
  26. package/dist/chunk-NYKRCWBG.js.map +1 -0
  27. package/dist/{chunk-4VLQV2GA.mjs → chunk-O6ZZVIFH.mjs} +4 -2
  28. package/dist/{chunk-LQS2M5QR.js.map → chunk-O6ZZVIFH.mjs.map} +1 -1
  29. package/dist/{chunk-DOX6H5UJ.mjs → chunk-QZLPYOGC.mjs} +2 -2
  30. package/dist/{chunk-LQS2M5QR.js → chunk-UGN7PBON.js} +4 -2
  31. package/dist/chunk-UGN7PBON.js.map +1 -0
  32. package/dist/{chunk-AO3AE3L7.js → chunk-V72C4MCR.js} +3 -3
  33. package/dist/chunk-VEVVBHP3.mjs +31 -0
  34. package/dist/chunk-VEVVBHP3.mjs.map +1 -0
  35. package/dist/chunk-WR5F34OW.js +23 -0
  36. package/dist/chunk-WR5F34OW.js.map +1 -0
  37. package/dist/{chunk-3VF7ZGRV.js → chunk-X3KACH5P.js} +35 -21
  38. package/dist/chunk-X3KACH5P.js.map +1 -0
  39. package/dist/chunk-YVCX6Z75.js +102 -0
  40. package/dist/chunk-YVCX6Z75.js.map +1 -0
  41. package/dist/chunk-Z4GV3YQQ.mjs +23 -0
  42. package/dist/chunk-Z4GV3YQQ.mjs.map +1 -0
  43. package/dist/{chunk-RBF6CW7D.mjs → chunk-ZGUNOEUQ.mjs} +2 -2
  44. package/dist/constants.js +2 -2
  45. package/dist/constants.mjs +1 -1
  46. package/dist/gas-flows/DefaultGasFeeFlow.js +5 -5
  47. package/dist/gas-flows/DefaultGasFeeFlow.mjs +4 -4
  48. package/dist/gas-flows/LineaGasFeeFlow.js +6 -6
  49. package/dist/gas-flows/LineaGasFeeFlow.mjs +5 -5
  50. package/dist/gas-flows/OptimismLayer1GasFeeFlow.js +4 -3
  51. package/dist/gas-flows/OptimismLayer1GasFeeFlow.mjs +3 -2
  52. package/dist/gas-flows/OracleLayer1GasFeeFlow.js +9 -0
  53. package/dist/gas-flows/OracleLayer1GasFeeFlow.js.map +1 -0
  54. package/dist/gas-flows/OracleLayer1GasFeeFlow.mjs +9 -0
  55. package/dist/gas-flows/OracleLayer1GasFeeFlow.mjs.map +1 -0
  56. package/dist/gas-flows/ScrollLayer1GasFeeFlow.js +11 -0
  57. package/dist/gas-flows/ScrollLayer1GasFeeFlow.js.map +1 -0
  58. package/dist/gas-flows/ScrollLayer1GasFeeFlow.mjs +11 -0
  59. package/dist/gas-flows/ScrollLayer1GasFeeFlow.mjs.map +1 -0
  60. package/dist/helpers/EtherscanRemoteTransactionSource.js +4 -4
  61. package/dist/helpers/EtherscanRemoteTransactionSource.mjs +3 -3
  62. package/dist/helpers/MultichainTrackingHelper.js +5 -5
  63. package/dist/helpers/MultichainTrackingHelper.mjs +4 -4
  64. package/dist/index.js +17 -15
  65. package/dist/index.mjs +16 -14
  66. package/dist/tsconfig.build.tsbuildinfo +1 -1
  67. package/dist/types/TransactionController.d.ts.map +1 -1
  68. package/dist/types/constants.d.ts +2 -0
  69. package/dist/types/constants.d.ts.map +1 -1
  70. package/dist/types/gas-flows/OptimismLayer1GasFeeFlow.d.ts +5 -5
  71. package/dist/types/gas-flows/OptimismLayer1GasFeeFlow.d.ts.map +1 -1
  72. package/dist/types/gas-flows/OracleLayer1GasFeeFlow.d.ts +12 -0
  73. package/dist/types/gas-flows/OracleLayer1GasFeeFlow.d.ts.map +1 -0
  74. package/dist/types/gas-flows/ScrollLayer1GasFeeFlow.d.ts +10 -0
  75. package/dist/types/gas-flows/ScrollLayer1GasFeeFlow.d.ts.map +1 -0
  76. package/dist/types/utils/simulation.d.ts +18 -0
  77. package/dist/types/utils/simulation.d.ts.map +1 -1
  78. package/dist/utils/etherscan.js +3 -3
  79. package/dist/utils/etherscan.mjs +2 -2
  80. package/dist/utils/gas-fees.js +4 -4
  81. package/dist/utils/gas-fees.mjs +3 -3
  82. package/dist/utils/gas.js +3 -3
  83. package/dist/utils/gas.mjs +2 -2
  84. package/dist/utils/simulation.js +5 -3
  85. package/dist/utils/simulation.mjs +4 -2
  86. package/dist/utils/swaps.js +3 -3
  87. package/dist/utils/swaps.mjs +2 -2
  88. package/package.json +2 -2
  89. package/dist/chunk-3VF7ZGRV.js.map +0 -1
  90. package/dist/chunk-4VLQV2GA.mjs.map +0 -1
  91. package/dist/chunk-53IYIDVS.mjs +0 -132
  92. package/dist/chunk-53IYIDVS.mjs.map +0 -1
  93. package/dist/chunk-ETMW527M.js +0 -132
  94. package/dist/chunk-ETMW527M.js.map +0 -1
  95. package/dist/chunk-H6NWVGHL.mjs.map +0 -1
  96. package/dist/chunk-L7ZKSKEI.mjs.map +0 -1
  97. package/dist/chunk-X5WPBDI5.js.map +0 -1
  98. /package/dist/{chunk-LYD4TEKH.js.map → chunk-4RJXBKSR.js.map} +0 -0
  99. /package/dist/{chunk-DRSMLO7B.mjs.map → chunk-5G6OHAXI.mjs.map} +0 -0
  100. /package/dist/{chunk-CPYXP2OC.js.map → chunk-5XQ2KRYL.js.map} +0 -0
  101. /package/dist/{chunk-WLCFETHR.js.map → chunk-C2LNDHP4.js.map} +0 -0
  102. /package/dist/{chunk-TKWTUPCQ.mjs.map → chunk-CPMTUMMZ.mjs.map} +0 -0
  103. /package/dist/{chunk-L337FYVS.js.map → chunk-EQNKFFTM.js.map} +0 -0
  104. /package/dist/{chunk-3JEUO765.js.map → chunk-EQT25RSP.js.map} +0 -0
  105. /package/dist/{chunk-RXRJSBSF.mjs.map → chunk-F6E3TTR3.mjs.map} +0 -0
  106. /package/dist/{chunk-F247MMTE.js.map → chunk-FDUCRHYT.js.map} +0 -0
  107. /package/dist/{chunk-P74YLPJO.mjs.map → chunk-LDXTSESK.mjs.map} +0 -0
  108. /package/dist/{chunk-UBXRAA6G.js.map → chunk-LNX4JTOL.js.map} +0 -0
  109. /package/dist/{chunk-2XFBWPHD.mjs.map → chunk-NCRWKI6Y.mjs.map} +0 -0
  110. /package/dist/{chunk-CWWZQZVR.mjs.map → chunk-NPEXNXSY.mjs.map} +0 -0
  111. /package/dist/{chunk-DOX6H5UJ.mjs.map → chunk-QZLPYOGC.mjs.map} +0 -0
  112. /package/dist/{chunk-AO3AE3L7.js.map → chunk-V72C4MCR.js.map} +0 -0
  113. /package/dist/{chunk-RBF6CW7D.mjs.map → chunk-ZGUNOEUQ.mjs.map} +0 -0
package/CHANGELOG.md CHANGED
@@ -7,6 +7,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [28.1.1]
11
+
12
+ ### Changed
13
+
14
+ - Bump `@metamask/gas-fee-controller` to ^15.1.0 ([#4220](https://github.com/MetaMask/core/pull/4220))
15
+
16
+ ### Fixed
17
+
18
+ - Fixed simulating minting NFTs where the nft owner was checked before minting, causing a revert. ([#4217](https://github.com/MetaMask/core/pull/4217))
19
+
20
+ ## [28.1.0]
21
+
22
+ ### Added
23
+
24
+ - Support retrieval of layer 1 gas fees on Scroll networks ([#4155](https://github.com/MetaMask/core/pull/4155))
25
+
10
26
  ## [28.0.0]
11
27
 
12
28
  ### Changed
@@ -774,7 +790,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
774
790
 
775
791
  All changes listed after this point were applied to this package following the monorepo conversion.
776
792
 
777
- [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@28.0.0...HEAD
793
+ [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@28.1.1...HEAD
794
+ [28.1.1]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@28.1.0...@metamask/transaction-controller@28.1.1
795
+ [28.1.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@28.0.0...@metamask/transaction-controller@28.1.0
778
796
  [28.0.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@27.0.1...@metamask/transaction-controller@28.0.0
779
797
  [27.0.1]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@27.0.0...@metamask/transaction-controller@27.0.1
780
798
  [27.0.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@26.0.0...@metamask/transaction-controller@27.0.0
@@ -4,31 +4,33 @@
4
4
 
5
5
 
6
6
 
7
- var _chunkX5WPBDI5js = require('./chunk-X5WPBDI5.js');
7
+ var _chunkFMCTVRU2js = require('./chunk-FMCTVRU2.js');
8
+ require('./chunk-X3KACH5P.js');
9
+ require('./chunk-KT6UAKBB.js');
8
10
  require('./chunk-SD6CWFDF.js');
9
11
  require('./chunk-VH47Q6TS.js');
10
- require('./chunk-AO3AE3L7.js');
12
+ require('./chunk-7LXE4KHV.js');
13
+ require('./chunk-V72C4MCR.js');
11
14
  require('./chunk-QP75SWIQ.js');
12
15
  require('./chunk-ZNZEJDOE.js');
13
- require('./chunk-3VF7ZGRV.js');
14
- require('./chunk-KT6UAKBB.js');
15
- require('./chunk-ETMW527M.js');
16
+ require('./chunk-NYKRCWBG.js');
17
+ require('./chunk-WR5F34OW.js');
18
+ require('./chunk-YVCX6Z75.js');
16
19
  require('./chunk-V6UIRCOF.js');
17
20
  require('./chunk-2XKEAKQG.js');
18
21
  require('./chunk-DTDTOMTB.js');
19
- require('./chunk-CPYXP2OC.js');
20
- require('./chunk-3JEUO765.js');
22
+ require('./chunk-5XQ2KRYL.js');
23
+ require('./chunk-EQT25RSP.js');
24
+ require('./chunk-FDUCRHYT.js');
21
25
  require('./chunk-5KMU2IAT.js');
22
- require('./chunk-F247MMTE.js');
23
- require('./chunk-7LXE4KHV.js');
24
26
  require('./chunk-HMOSP33F.js');
25
- require('./chunk-UBXRAA6G.js');
26
- require('./chunk-LYD4TEKH.js');
27
- require('./chunk-L337FYVS.js');
28
- require('./chunk-WLCFETHR.js');
27
+ require('./chunk-LNX4JTOL.js');
28
+ require('./chunk-4RJXBKSR.js');
29
+ require('./chunk-EQNKFFTM.js');
30
+ require('./chunk-C2LNDHP4.js');
29
31
  require('./chunk-UGFBA4GV.js');
30
32
  require('./chunk-UH7FNVKS.js');
31
- require('./chunk-LQS2M5QR.js');
33
+ require('./chunk-UGN7PBON.js');
32
34
  require('./chunk-S6VGOPUY.js');
33
35
  require('./chunk-FK7AP6SH.js');
34
36
  require('./chunk-Z4BLTVTB.js');
@@ -38,5 +40,5 @@ require('./chunk-Z4BLTVTB.js');
38
40
 
39
41
 
40
42
 
41
- exports.ApprovalState = _chunkX5WPBDI5js.ApprovalState; exports.CANCEL_RATE = _chunkX5WPBDI5js.CANCEL_RATE; exports.HARDFORK = _chunkX5WPBDI5js.HARDFORK; exports.SPEED_UP_RATE = _chunkX5WPBDI5js.SPEED_UP_RATE; exports.TransactionController = _chunkX5WPBDI5js.TransactionController;
43
+ exports.ApprovalState = _chunkFMCTVRU2js.ApprovalState; exports.CANCEL_RATE = _chunkFMCTVRU2js.CANCEL_RATE; exports.HARDFORK = _chunkFMCTVRU2js.HARDFORK; exports.SPEED_UP_RATE = _chunkFMCTVRU2js.SPEED_UP_RATE; exports.TransactionController = _chunkFMCTVRU2js.TransactionController;
42
44
  //# sourceMappingURL=TransactionController.js.map
@@ -4,31 +4,33 @@ import {
4
4
  HARDFORK,
5
5
  SPEED_UP_RATE,
6
6
  TransactionController
7
- } from "./chunk-H6NWVGHL.mjs";
7
+ } from "./chunk-HQAADNXH.mjs";
8
+ import "./chunk-MDRMMUMS.mjs";
9
+ import "./chunk-K4KOSAGM.mjs";
8
10
  import "./chunk-KG4UW4K4.mjs";
9
11
  import "./chunk-NM6OYEPP.mjs";
10
- import "./chunk-DRSMLO7B.mjs";
12
+ import "./chunk-FRKQ3Z2L.mjs";
13
+ import "./chunk-5G6OHAXI.mjs";
11
14
  import "./chunk-XGRAHX6T.mjs";
12
15
  import "./chunk-NHRBO3LU.mjs";
13
- import "./chunk-L7ZKSKEI.mjs";
14
- import "./chunk-K4KOSAGM.mjs";
15
- import "./chunk-53IYIDVS.mjs";
16
+ import "./chunk-VEVVBHP3.mjs";
17
+ import "./chunk-Z4GV3YQQ.mjs";
18
+ import "./chunk-FG74Z3F5.mjs";
16
19
  import "./chunk-HHK4QSNF.mjs";
17
20
  import "./chunk-NOHEXQ7Y.mjs";
18
21
  import "./chunk-Y7ENNK7L.mjs";
19
- import "./chunk-RXRJSBSF.mjs";
20
- import "./chunk-TKWTUPCQ.mjs";
22
+ import "./chunk-F6E3TTR3.mjs";
23
+ import "./chunk-CPMTUMMZ.mjs";
24
+ import "./chunk-QZLPYOGC.mjs";
21
25
  import "./chunk-5YES3V2R.mjs";
22
- import "./chunk-DOX6H5UJ.mjs";
23
- import "./chunk-FRKQ3Z2L.mjs";
24
26
  import "./chunk-HQSNKCXI.mjs";
25
- import "./chunk-2XFBWPHD.mjs";
26
- import "./chunk-CWWZQZVR.mjs";
27
- import "./chunk-P74YLPJO.mjs";
28
- import "./chunk-RBF6CW7D.mjs";
27
+ import "./chunk-NCRWKI6Y.mjs";
28
+ import "./chunk-NPEXNXSY.mjs";
29
+ import "./chunk-LDXTSESK.mjs";
30
+ import "./chunk-ZGUNOEUQ.mjs";
29
31
  import "./chunk-J56A7UCK.mjs";
30
32
  import "./chunk-TWND5SFD.mjs";
31
- import "./chunk-4VLQV2GA.mjs";
33
+ import "./chunk-O6ZZVIFH.mjs";
32
34
  import "./chunk-UQQWZT6C.mjs";
33
35
  import "./chunk-YEJJKWT2.mjs";
34
36
  import "./chunk-XUI43LEZ.mjs";
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkL337FYVSjs = require('./chunk-L337FYVS.js');
3
+ var _chunkEQNKFFTMjs = require('./chunk-EQNKFFTM.js');
4
4
 
5
5
 
6
6
  var _chunkS6VGOPUYjs = require('./chunk-S6VGOPUY.js');
@@ -64,10 +64,10 @@ getEstimateLevel_fn = function({
64
64
  };
65
65
  _getFeeMarketLevel = new WeakSet();
66
66
  getFeeMarketLevel_fn = function(gasFeeEstimates, level) {
67
- const maxFeePerGas = _chunkL337FYVSjs.gweiDecimalToWeiHex.call(void 0,
67
+ const maxFeePerGas = _chunkEQNKFFTMjs.gweiDecimalToWeiHex.call(void 0,
68
68
  gasFeeEstimates[level].suggestedMaxFeePerGas
69
69
  );
70
- const maxPriorityFeePerGas = _chunkL337FYVSjs.gweiDecimalToWeiHex.call(void 0,
70
+ const maxPriorityFeePerGas = _chunkEQNKFFTMjs.gweiDecimalToWeiHex.call(void 0,
71
71
  gasFeeEstimates[level].suggestedMaxPriorityFeePerGas
72
72
  );
73
73
  return {
@@ -77,7 +77,7 @@ getFeeMarketLevel_fn = function(gasFeeEstimates, level) {
77
77
  };
78
78
  _getLegacyLevel = new WeakSet();
79
79
  getLegacyLevel_fn = function(gasFeeEstimates, level) {
80
- const gasPrice = _chunkL337FYVSjs.gweiDecimalToWeiHex.call(void 0, gasFeeEstimates[level]);
80
+ const gasPrice = _chunkEQNKFFTMjs.gweiDecimalToWeiHex.call(void 0, gasFeeEstimates[level]);
81
81
  return {
82
82
  maxFeePerGas: gasPrice,
83
83
  maxPriorityFeePerGas: gasPrice
@@ -87,4 +87,4 @@ getLegacyLevel_fn = function(gasFeeEstimates, level) {
87
87
 
88
88
 
89
89
  exports.DefaultGasFeeFlow = DefaultGasFeeFlow;
90
- //# sourceMappingURL=chunk-LYD4TEKH.js.map
90
+ //# sourceMappingURL=chunk-4RJXBKSR.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  GAS_BUFFER_CHAIN_OVERRIDES
3
- } from "./chunk-4VLQV2GA.mjs";
3
+ } from "./chunk-O6ZZVIFH.mjs";
4
4
  import {
5
5
  projectLogger
6
6
  } from "./chunk-UQQWZT6C.mjs";
@@ -134,4 +134,4 @@ export {
134
134
  estimateGas,
135
135
  addGasBuffer
136
136
  };
137
- //# sourceMappingURL=chunk-DRSMLO7B.mjs.map
137
+ //# sourceMappingURL=chunk-5G6OHAXI.mjs.map
@@ -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 _chunk3JEUO765js = require('./chunk-3JEUO765.js');
3
+ var _chunkEQT25RSPjs = require('./chunk-EQT25RSP.js');
4
4
 
5
5
 
6
6
  var _chunkS6VGOPUYjs = require('./chunk-S6VGOPUY.js');
@@ -275,7 +275,7 @@ startTrackingByNetworkClientId_fn = function(networkClientId) {
275
275
  } = _chunkZ4BLTVTBjs.__privateGet.call(void 0, this, _getNetworkClientById).call(this, networkClientId);
276
276
  let etherscanRemoteTransactionSource = _chunkZ4BLTVTBjs.__privateGet.call(void 0, this, _etherscanRemoteTransactionSourcesMap).get(chainId);
277
277
  if (!etherscanRemoteTransactionSource) {
278
- etherscanRemoteTransactionSource = new (0, _chunk3JEUO765js.EtherscanRemoteTransactionSource)({
278
+ etherscanRemoteTransactionSource = new (0, _chunkEQT25RSPjs.EtherscanRemoteTransactionSource)({
279
279
  includeTokenTransfers: _chunkZ4BLTVTBjs.__privateGet.call(void 0, this, _incomingTransactionOptions).includeTokenTransfers
280
280
  });
281
281
  _chunkZ4BLTVTBjs.__privateGet.call(void 0, this, _etherscanRemoteTransactionSourcesMap).set(
@@ -332,4 +332,4 @@ getNetworkClient_fn = function({
332
332
 
333
333
 
334
334
  exports.MultichainTrackingHelper = MultichainTrackingHelper;
335
- //# sourceMappingURL=chunk-CPYXP2OC.js.map
335
+ //# sourceMappingURL=chunk-5XQ2KRYL.js.map
@@ -3,7 +3,7 @@
3
3
  var _chunkUGFBA4GVjs = require('./chunk-UGFBA4GV.js');
4
4
 
5
5
 
6
- var _chunkLQS2M5QRjs = require('./chunk-LQS2M5QR.js');
6
+ var _chunkUGN7PBONjs = require('./chunk-UGN7PBON.js');
7
7
 
8
8
 
9
9
 
@@ -57,15 +57,15 @@ var ZKSYNC_ERA_SWAPS_TOKEN_OBJECT = {
57
57
  ...ETH_SWAPS_TOKEN_OBJECT
58
58
  };
59
59
  var SWAPS_CHAINID_DEFAULT_TOKEN_MAP = {
60
- [_chunkLQS2M5QRjs.CHAIN_IDS.MAINNET]: ETH_SWAPS_TOKEN_OBJECT,
60
+ [_chunkUGN7PBONjs.CHAIN_IDS.MAINNET]: ETH_SWAPS_TOKEN_OBJECT,
61
61
  [SWAPS_TESTNET_CHAIN_ID]: TEST_ETH_SWAPS_TOKEN_OBJECT,
62
- [_chunkLQS2M5QRjs.CHAIN_IDS.BSC]: BNB_SWAPS_TOKEN_OBJECT,
63
- [_chunkLQS2M5QRjs.CHAIN_IDS.POLYGON]: MATIC_SWAPS_TOKEN_OBJECT,
64
- [_chunkLQS2M5QRjs.CHAIN_IDS.GOERLI]: GOERLI_SWAPS_TOKEN_OBJECT,
65
- [_chunkLQS2M5QRjs.CHAIN_IDS.AVALANCHE]: AVAX_SWAPS_TOKEN_OBJECT,
66
- [_chunkLQS2M5QRjs.CHAIN_IDS.OPTIMISM]: OPTIMISM_SWAPS_TOKEN_OBJECT,
67
- [_chunkLQS2M5QRjs.CHAIN_IDS.ARBITRUM]: ARBITRUM_SWAPS_TOKEN_OBJECT,
68
- [_chunkLQS2M5QRjs.CHAIN_IDS.ZKSYNC_ERA]: ZKSYNC_ERA_SWAPS_TOKEN_OBJECT
62
+ [_chunkUGN7PBONjs.CHAIN_IDS.BSC]: BNB_SWAPS_TOKEN_OBJECT,
63
+ [_chunkUGN7PBONjs.CHAIN_IDS.POLYGON]: MATIC_SWAPS_TOKEN_OBJECT,
64
+ [_chunkUGN7PBONjs.CHAIN_IDS.GOERLI]: GOERLI_SWAPS_TOKEN_OBJECT,
65
+ [_chunkUGN7PBONjs.CHAIN_IDS.AVALANCHE]: AVAX_SWAPS_TOKEN_OBJECT,
66
+ [_chunkUGN7PBONjs.CHAIN_IDS.OPTIMISM]: OPTIMISM_SWAPS_TOKEN_OBJECT,
67
+ [_chunkUGN7PBONjs.CHAIN_IDS.ARBITRUM]: ARBITRUM_SWAPS_TOKEN_OBJECT,
68
+ [_chunkUGN7PBONjs.CHAIN_IDS.ZKSYNC_ERA]: ZKSYNC_ERA_SWAPS_TOKEN_OBJECT
69
69
  };
70
70
  var SWAP_TRANSACTION_TYPES = [
71
71
  "swap" /* swap */,
@@ -208,4 +208,4 @@ function sleep(ms) {
208
208
 
209
209
 
210
210
  exports.UPDATE_POST_TX_BALANCE_TIMEOUT = UPDATE_POST_TX_BALANCE_TIMEOUT; exports.UPDATE_POST_TX_BALANCE_ATTEMPTS = UPDATE_POST_TX_BALANCE_ATTEMPTS; exports.DEFAULT_TOKEN_ADDRESS = DEFAULT_TOKEN_ADDRESS; exports.SWAPS_CHAINID_DEFAULT_TOKEN_MAP = SWAPS_CHAINID_DEFAULT_TOKEN_MAP; exports.SWAP_TRANSACTION_TYPES = SWAP_TRANSACTION_TYPES; exports.updateSwapsTransaction = updateSwapsTransaction; exports.updatePostTransactionBalance = updatePostTransactionBalance;
211
- //# sourceMappingURL=chunk-WLCFETHR.js.map
211
+ //# sourceMappingURL=chunk-C2LNDHP4.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  fetchEtherscanTokenTransactions,
3
3
  fetchEtherscanTransactions
4
- } from "./chunk-DOX6H5UJ.mjs";
4
+ } from "./chunk-QZLPYOGC.mjs";
5
5
  import {
6
6
  ETHERSCAN_SUPPORTED_NETWORKS
7
- } from "./chunk-4VLQV2GA.mjs";
7
+ } from "./chunk-O6ZZVIFH.mjs";
8
8
  import {
9
9
  incomingTransactionsLogger
10
10
  } from "./chunk-UQQWZT6C.mjs";
@@ -167,4 +167,4 @@ normalizeTransactionBase_fn = function(txMeta, currentChainId) {
167
167
  export {
168
168
  EtherscanRemoteTransactionSource
169
169
  };
170
- //# sourceMappingURL=chunk-TKWTUPCQ.mjs.map
170
+ //# sourceMappingURL=chunk-CPMTUMMZ.mjs.map
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkWLCFETHRjs = require('./chunk-WLCFETHR.js');
3
+ var _chunkC2LNDHP4js = require('./chunk-C2LNDHP4.js');
4
4
 
5
5
 
6
6
  var _chunkUH7FNVKSjs = require('./chunk-UH7FNVKS.js');
@@ -20,7 +20,7 @@ var log = _utils.createModuleLogger.call(void 0, _chunkS6VGOPUYjs.projectLogger,
20
20
  async function updateGasFees(request) {
21
21
  const { txMeta } = request;
22
22
  const initialParams = { ...txMeta.txParams };
23
- const isSwap = _chunkWLCFETHRjs.SWAP_TRANSACTION_TYPES.includes(
23
+ const isSwap = _chunkC2LNDHP4js.SWAP_TRANSACTION_TYPES.includes(
24
24
  txMeta.type
25
25
  );
26
26
  const savedGasFees = isSwap ? void 0 : request.getSavedGasFees(txMeta.chainId);
@@ -205,4 +205,4 @@ async function getSuggestedGasFees(request) {
205
205
 
206
206
 
207
207
  exports.updateGasFees = updateGasFees; exports.gweiDecimalToWeiHex = gweiDecimalToWeiHex;
208
- //# sourceMappingURL=chunk-L337FYVS.js.map
208
+ //# sourceMappingURL=chunk-EQNKFFTM.js.map
@@ -1,10 +1,10 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
2
 
3
3
 
4
- var _chunkF247MMTEjs = require('./chunk-F247MMTE.js');
4
+ var _chunkFDUCRHYTjs = require('./chunk-FDUCRHYT.js');
5
5
 
6
6
 
7
- var _chunkLQS2M5QRjs = require('./chunk-LQS2M5QR.js');
7
+ var _chunkUGN7PBONjs = require('./chunk-UGN7PBON.js');
8
8
 
9
9
 
10
10
  var _chunkS6VGOPUYjs = require('./chunk-S6VGOPUY.js');
@@ -36,7 +36,7 @@ var EtherscanRemoteTransactionSource = class {
36
36
  _chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _mutex, new (0, _asyncmutex.Mutex)());
37
37
  _chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _fetchNormalTransactions, async (request, etherscanRequest) => {
38
38
  const { currentChainId } = request;
39
- const etherscanTransactions = await _chunkF247MMTEjs.fetchEtherscanTransactions.call(void 0,
39
+ const etherscanTransactions = await _chunkFDUCRHYTjs.fetchEtherscanTransactions.call(void 0,
40
40
  etherscanRequest
41
41
  );
42
42
  return _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _getResponseTransactions, getResponseTransactions_fn).call(this, etherscanTransactions).map(
@@ -45,7 +45,7 @@ var EtherscanRemoteTransactionSource = class {
45
45
  });
46
46
  _chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _fetchTokenTransactions, async (request, etherscanRequest) => {
47
47
  const { currentChainId } = request;
48
- const etherscanTransactions = await _chunkF247MMTEjs.fetchEtherscanTokenTransactions.call(void 0,
48
+ const etherscanTransactions = await _chunkFDUCRHYTjs.fetchEtherscanTokenTransactions.call(void 0,
49
49
  etherscanRequest
50
50
  );
51
51
  return _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _getResponseTransactions, getResponseTransactions_fn).call(this, etherscanTransactions).map(
@@ -56,7 +56,7 @@ var EtherscanRemoteTransactionSource = class {
56
56
  _chunkZ4BLTVTBjs.__privateSet.call(void 0, this, _isTokenRequestPending, false);
57
57
  }
58
58
  isSupportedNetwork(chainId) {
59
- return Object.keys(_chunkLQS2M5QRjs.ETHERSCAN_SUPPORTED_NETWORKS).includes(chainId);
59
+ return Object.keys(_chunkUGN7PBONjs.ETHERSCAN_SUPPORTED_NETWORKS).includes(chainId);
60
60
  }
61
61
  getLastBlockVariations() {
62
62
  return [_chunkZ4BLTVTBjs.__privateGet.call(void 0, this, _isTokenRequestPending) ? "token" : "normal"];
@@ -167,4 +167,4 @@ normalizeTransactionBase_fn = function(txMeta, currentChainId) {
167
167
 
168
168
 
169
169
  exports.EtherscanRemoteTransactionSource = EtherscanRemoteTransactionSource;
170
- //# sourceMappingURL=chunk-3JEUO765.js.map
170
+ //# sourceMappingURL=chunk-EQT25RSP.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  EtherscanRemoteTransactionSource
3
- } from "./chunk-TKWTUPCQ.mjs";
3
+ } from "./chunk-CPMTUMMZ.mjs";
4
4
  import {
5
5
  incomingTransactionsLogger
6
6
  } from "./chunk-UQQWZT6C.mjs";
@@ -332,4 +332,4 @@ getNetworkClient_fn = function({
332
332
  export {
333
333
  MultichainTrackingHelper
334
334
  };
335
- //# sourceMappingURL=chunk-RXRJSBSF.mjs.map
335
+ //# sourceMappingURL=chunk-F6E3TTR3.mjs.map
@@ -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');
@@ -70,7 +70,7 @@ function getEtherscanApiUrl(chainId, urlParams) {
70
70
  return url;
71
71
  }
72
72
  function getEtherscanApiHost(chainId) {
73
- const networkInfo = _chunkLQS2M5QRjs.ETHERSCAN_SUPPORTED_NETWORKS[chainId];
73
+ const networkInfo = _chunkUGN7PBONjs.ETHERSCAN_SUPPORTED_NETWORKS[chainId];
74
74
  if (!networkInfo) {
75
75
  throw new Error(`Etherscan does not support chain with ID: ${chainId}`);
76
76
  }
@@ -82,4 +82,4 @@ function getEtherscanApiHost(chainId) {
82
82
 
83
83
 
84
84
  exports.fetchEtherscanTransactions = fetchEtherscanTransactions; exports.fetchEtherscanTokenTransactions = fetchEtherscanTokenTransactions; exports.getEtherscanApiHost = getEtherscanApiHost;
85
- //# sourceMappingURL=chunk-F247MMTE.js.map
85
+ //# sourceMappingURL=chunk-FDUCRHYT.js.map
@@ -0,0 +1,102 @@
1
+ import {
2
+ projectLogger
3
+ } from "./chunk-UQQWZT6C.mjs";
4
+ import {
5
+ __privateAdd,
6
+ __privateGet,
7
+ __privateMethod,
8
+ __privateSet
9
+ } from "./chunk-XUI43LEZ.mjs";
10
+
11
+ // src/gas-flows/OracleLayer1GasFeeFlow.ts
12
+ import { Common, Hardfork } from "@ethereumjs/common";
13
+ import { TransactionFactory } from "@ethereumjs/tx";
14
+ import { Contract } from "@ethersproject/contracts";
15
+ import { Web3Provider } from "@ethersproject/providers";
16
+ import { createModuleLogger } from "@metamask/utils";
17
+ import { omit } from "lodash";
18
+ var log = createModuleLogger(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
+ __privateAdd(this, _getOracleLayer1GasFee);
33
+ __privateAdd(this, _buildUnserializedTransaction);
34
+ __privateAdd(this, _buildTransactionParams);
35
+ __privateAdd(this, _buildTransactionCommon);
36
+ __privateAdd(this, _oracleAddress, void 0);
37
+ __privateAdd(this, _signTransaction, void 0);
38
+ __privateSet(this, _oracleAddress, oracleAddress);
39
+ __privateSet(this, _signTransaction, signTransaction ?? false);
40
+ }
41
+ async getLayer1Fee(request) {
42
+ try {
43
+ return await __privateMethod(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 Contract(
56
+ __privateGet(this, _oracleAddress),
57
+ GAS_PRICE_ORACLE_ABI,
58
+ // Network controller provider type is incompatible with ethers provider
59
+ new Web3Provider(provider)
60
+ );
61
+ const serializedTransaction = __privateMethod(this, _buildUnserializedTransaction, buildUnserializedTransaction_fn).call(this, transactionMeta, __privateGet(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 = __privateMethod(this, _buildTransactionParams, buildTransactionParams_fn).call(this, transactionMeta);
73
+ const common = __privateMethod(this, _buildTransactionCommon, buildTransactionCommon_fn).call(this, transactionMeta);
74
+ let unserializedTransaction = 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
+ ...omit(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.custom({
94
+ chainId,
95
+ defaultHardfork: Hardfork.London
96
+ });
97
+ };
98
+
99
+ export {
100
+ OracleLayer1GasFeeFlow
101
+ };
102
+ //# sourceMappingURL=chunk-FG74Z3F5.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/gas-flows/OracleLayer1GasFeeFlow.ts"],"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"],"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;","names":[]}