@metamask-previews/transaction-controller 69.6.1-preview-4f4c98e → 69.6.1-preview-eb263b0ee

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 (492) hide show
  1. package/CHANGELOG.md +0 -5
  2. package/dist/TransactionController-method-action-types.cjs +7 -0
  3. package/dist/TransactionController-method-action-types.cjs.map +1 -0
  4. package/dist/{TransactionController-method-action-types.d.ts → TransactionController-method-action-types.d.cts} +2 -2
  5. package/dist/TransactionController-method-action-types.d.cts.map +1 -0
  6. package/dist/TransactionController-method-action-types.d.mts +413 -0
  7. package/dist/TransactionController-method-action-types.d.mts.map +1 -0
  8. package/dist/{TransactionController-method-action-types.js → TransactionController-method-action-types.mjs} +1 -1
  9. package/dist/TransactionController-method-action-types.mjs.map +1 -0
  10. package/dist/TransactionController.cjs +2444 -0
  11. package/dist/TransactionController.cjs.map +1 -0
  12. package/dist/{TransactionController.d.ts → TransactionController.d.cts} +18 -18
  13. package/dist/TransactionController.d.cts.map +1 -0
  14. package/dist/TransactionController.d.mts +751 -0
  15. package/dist/TransactionController.d.mts.map +1 -0
  16. package/dist/{TransactionController.js → TransactionController.mjs} +50 -49
  17. package/dist/TransactionController.mjs.map +1 -0
  18. package/dist/api/accounts-api.cjs +57 -0
  19. package/dist/api/accounts-api.cjs.map +1 -0
  20. package/dist/api/{accounts-api.d.ts → accounts-api.d.cts} +1 -1
  21. package/dist/api/accounts-api.d.cts.map +1 -0
  22. package/dist/api/accounts-api.d.mts +44 -0
  23. package/dist/api/accounts-api.d.mts.map +1 -0
  24. package/dist/api/{accounts-api.js → accounts-api.mjs} +5 -5
  25. package/dist/api/accounts-api.mjs.map +1 -0
  26. package/dist/api/simulation-api.cjs +116 -0
  27. package/dist/api/simulation-api.cjs.map +1 -0
  28. package/dist/api/{simulation-api.d.ts → simulation-api.d.cts} +3 -3
  29. package/dist/api/simulation-api.d.cts.map +1 -0
  30. package/dist/api/simulation-api.d.mts +196 -0
  31. package/dist/api/simulation-api.d.mts.map +1 -0
  32. package/dist/api/{simulation-api.js → simulation-api.mjs} +8 -7
  33. package/dist/api/simulation-api.mjs.map +1 -0
  34. package/dist/constants.cjs +111 -0
  35. package/dist/constants.cjs.map +1 -0
  36. package/dist/{constants.d.ts → constants.d.cts} +37 -37
  37. package/dist/constants.d.cts.map +1 -0
  38. package/dist/constants.d.mts +78 -0
  39. package/dist/constants.d.mts.map +1 -0
  40. package/dist/{constants.js → constants.mjs} +1 -1
  41. package/dist/constants.mjs.map +1 -0
  42. package/dist/errors.cjs +37 -0
  43. package/dist/errors.cjs.map +1 -0
  44. package/dist/{errors.d.ts → errors.d.cts} +2 -2
  45. package/dist/errors.d.cts.map +1 -0
  46. package/dist/errors.d.mts +19 -0
  47. package/dist/errors.d.mts.map +1 -0
  48. package/dist/{errors.js → errors.mjs} +2 -2
  49. package/dist/errors.mjs.map +1 -0
  50. package/dist/gas-flows/DefaultGasFeeFlow.cjs +85 -0
  51. package/dist/gas-flows/{DefaultGasFeeFlow.js.map → DefaultGasFeeFlow.cjs.map} +1 -1
  52. package/dist/gas-flows/{DefaultGasFeeFlow.d.ts → DefaultGasFeeFlow.d.cts} +2 -2
  53. package/dist/gas-flows/DefaultGasFeeFlow.d.cts.map +1 -0
  54. package/dist/gas-flows/DefaultGasFeeFlow.d.mts +10 -0
  55. package/dist/gas-flows/DefaultGasFeeFlow.d.mts.map +1 -0
  56. package/dist/gas-flows/{DefaultGasFeeFlow.js → DefaultGasFeeFlow.mjs} +6 -6
  57. package/dist/gas-flows/DefaultGasFeeFlow.mjs.map +1 -0
  58. package/dist/gas-flows/LineaGasFeeFlow.cjs +111 -0
  59. package/dist/gas-flows/LineaGasFeeFlow.cjs.map +1 -0
  60. package/dist/gas-flows/{LineaGasFeeFlow.d.ts → LineaGasFeeFlow.d.cts} +3 -3
  61. package/dist/gas-flows/LineaGasFeeFlow.d.cts.map +1 -0
  62. package/dist/gas-flows/LineaGasFeeFlow.d.mts +16 -0
  63. package/dist/gas-flows/LineaGasFeeFlow.d.mts.map +1 -0
  64. package/dist/gas-flows/{LineaGasFeeFlow.js → LineaGasFeeFlow.mjs} +7 -7
  65. package/dist/gas-flows/LineaGasFeeFlow.mjs.map +1 -0
  66. package/dist/gas-flows/MantleLayer1GasFeeFlow.cjs +66 -0
  67. package/dist/gas-flows/MantleLayer1GasFeeFlow.cjs.map +1 -0
  68. package/dist/gas-flows/{MantleLayer1GasFeeFlow.d.ts → MantleLayer1GasFeeFlow.d.cts} +5 -5
  69. package/dist/gas-flows/MantleLayer1GasFeeFlow.d.cts.map +1 -0
  70. package/dist/gas-flows/MantleLayer1GasFeeFlow.d.mts +21 -0
  71. package/dist/gas-flows/MantleLayer1GasFeeFlow.d.mts.map +1 -0
  72. package/dist/gas-flows/{MantleLayer1GasFeeFlow.js → MantleLayer1GasFeeFlow.mjs} +6 -6
  73. package/dist/gas-flows/MantleLayer1GasFeeFlow.mjs.map +1 -0
  74. package/dist/gas-flows/OptimismLayer1GasFeeFlow.cjs +59 -0
  75. package/dist/gas-flows/OptimismLayer1GasFeeFlow.cjs.map +1 -0
  76. package/dist/gas-flows/{OptimismLayer1GasFeeFlow.d.ts → OptimismLayer1GasFeeFlow.d.cts} +4 -4
  77. package/dist/gas-flows/OptimismLayer1GasFeeFlow.d.cts.map +1 -0
  78. package/dist/gas-flows/OptimismLayer1GasFeeFlow.d.mts +14 -0
  79. package/dist/gas-flows/OptimismLayer1GasFeeFlow.d.mts.map +1 -0
  80. package/dist/gas-flows/{OptimismLayer1GasFeeFlow.js → OptimismLayer1GasFeeFlow.mjs} +5 -5
  81. package/dist/gas-flows/OptimismLayer1GasFeeFlow.mjs.map +1 -0
  82. package/dist/gas-flows/OracleLayer1GasFeeFlow.cjs +201 -0
  83. package/dist/gas-flows/OracleLayer1GasFeeFlow.cjs.map +1 -0
  84. package/dist/gas-flows/{OracleLayer1GasFeeFlow.d.ts → OracleLayer1GasFeeFlow.d.cts} +5 -5
  85. package/dist/gas-flows/OracleLayer1GasFeeFlow.d.cts.map +1 -0
  86. package/dist/gas-flows/OracleLayer1GasFeeFlow.d.mts +57 -0
  87. package/dist/gas-flows/OracleLayer1GasFeeFlow.d.mts.map +1 -0
  88. package/dist/gas-flows/{OracleLayer1GasFeeFlow.js → OracleLayer1GasFeeFlow.mjs} +15 -8
  89. package/dist/gas-flows/OracleLayer1GasFeeFlow.mjs.map +1 -0
  90. package/dist/gas-flows/RandomisedEstimationsGasFeeFlow.cjs +123 -0
  91. package/dist/gas-flows/RandomisedEstimationsGasFeeFlow.cjs.map +1 -0
  92. package/dist/gas-flows/{RandomisedEstimationsGasFeeFlow.d.ts → RandomisedEstimationsGasFeeFlow.d.cts} +4 -4
  93. package/dist/gas-flows/RandomisedEstimationsGasFeeFlow.d.cts.map +1 -0
  94. package/dist/gas-flows/RandomisedEstimationsGasFeeFlow.d.mts +28 -0
  95. package/dist/gas-flows/RandomisedEstimationsGasFeeFlow.d.mts.map +1 -0
  96. package/dist/gas-flows/{RandomisedEstimationsGasFeeFlow.js → RandomisedEstimationsGasFeeFlow.mjs} +8 -8
  97. package/dist/gas-flows/RandomisedEstimationsGasFeeFlow.mjs.map +1 -0
  98. package/dist/gas-flows/ScrollLayer1GasFeeFlow.cjs +24 -0
  99. package/dist/gas-flows/ScrollLayer1GasFeeFlow.cjs.map +1 -0
  100. package/dist/gas-flows/{ScrollLayer1GasFeeFlow.d.ts → ScrollLayer1GasFeeFlow.d.cts} +5 -5
  101. package/dist/gas-flows/ScrollLayer1GasFeeFlow.d.cts.map +1 -0
  102. package/dist/gas-flows/ScrollLayer1GasFeeFlow.d.mts +16 -0
  103. package/dist/gas-flows/ScrollLayer1GasFeeFlow.d.mts.map +1 -0
  104. package/dist/gas-flows/{ScrollLayer1GasFeeFlow.js → ScrollLayer1GasFeeFlow.mjs} +3 -3
  105. package/dist/gas-flows/ScrollLayer1GasFeeFlow.mjs.map +1 -0
  106. package/dist/gas-flows/TestGasFeeFlow.cjs +73 -0
  107. package/dist/gas-flows/TestGasFeeFlow.cjs.map +1 -0
  108. package/dist/gas-flows/{TestGasFeeFlow.d.ts → TestGasFeeFlow.d.cts} +2 -2
  109. package/dist/gas-flows/TestGasFeeFlow.d.cts.map +1 -0
  110. package/dist/gas-flows/TestGasFeeFlow.d.mts +12 -0
  111. package/dist/gas-flows/TestGasFeeFlow.d.mts.map +1 -0
  112. package/dist/gas-flows/{TestGasFeeFlow.js → TestGasFeeFlow.mjs} +3 -3
  113. package/dist/gas-flows/TestGasFeeFlow.mjs.map +1 -0
  114. package/dist/helpers/GasFeePoller.cjs +334 -0
  115. package/dist/helpers/GasFeePoller.cjs.map +1 -0
  116. package/dist/helpers/{GasFeePoller.d.ts → GasFeePoller.d.cts} +10 -7
  117. package/dist/helpers/GasFeePoller.d.cts.map +1 -0
  118. package/dist/helpers/GasFeePoller.d.mts +66 -0
  119. package/dist/helpers/GasFeePoller.d.mts.map +1 -0
  120. package/dist/helpers/{GasFeePoller.js → GasFeePoller.mjs} +9 -9
  121. package/dist/helpers/GasFeePoller.mjs.map +1 -0
  122. package/dist/helpers/MethodDataHelper.cjs +84 -0
  123. package/dist/helpers/MethodDataHelper.cjs.map +1 -0
  124. package/dist/helpers/{MethodDataHelper.d.ts → MethodDataHelper.d.cts} +7 -4
  125. package/dist/helpers/MethodDataHelper.d.cts.map +1 -0
  126. package/dist/helpers/MethodDataHelper.d.mts +16 -0
  127. package/dist/helpers/MethodDataHelper.d.mts.map +1 -0
  128. package/dist/helpers/{MethodDataHelper.js → MethodDataHelper.mjs} +7 -7
  129. package/dist/helpers/MethodDataHelper.mjs.map +1 -0
  130. package/dist/helpers/MultichainTrackingHelper.cjs +231 -0
  131. package/dist/helpers/MultichainTrackingHelper.cjs.map +1 -0
  132. package/dist/helpers/{MultichainTrackingHelper.d.ts → MultichainTrackingHelper.d.cts} +5 -5
  133. package/dist/helpers/MultichainTrackingHelper.d.cts.map +1 -0
  134. package/dist/helpers/MultichainTrackingHelper.d.mts +56 -0
  135. package/dist/helpers/MultichainTrackingHelper.d.mts.map +1 -0
  136. package/dist/helpers/{MultichainTrackingHelper.js → MultichainTrackingHelper.mjs} +8 -8
  137. package/dist/helpers/MultichainTrackingHelper.mjs.map +1 -0
  138. package/dist/helpers/PendingTransactionTracker.cjs +407 -0
  139. package/dist/helpers/PendingTransactionTracker.cjs.map +1 -0
  140. package/dist/helpers/{PendingTransactionTracker.d.ts → PendingTransactionTracker.d.cts} +8 -5
  141. package/dist/helpers/PendingTransactionTracker.d.cts.map +1 -0
  142. package/dist/helpers/PendingTransactionTracker.d.mts +54 -0
  143. package/dist/helpers/PendingTransactionTracker.d.mts.map +1 -0
  144. package/dist/helpers/{PendingTransactionTracker.js → PendingTransactionTracker.mjs} +15 -14
  145. package/dist/helpers/PendingTransactionTracker.mjs.map +1 -0
  146. package/dist/helpers/ResimulateHelper.cjs +274 -0
  147. package/dist/helpers/ResimulateHelper.cjs.map +1 -0
  148. package/dist/helpers/{ResimulateHelper.d.ts → ResimulateHelper.d.cts} +3 -3
  149. package/dist/helpers/ResimulateHelper.d.cts.map +1 -0
  150. package/dist/helpers/ResimulateHelper.d.mts +36 -0
  151. package/dist/helpers/ResimulateHelper.d.mts.map +1 -0
  152. package/dist/helpers/{ResimulateHelper.js → ResimulateHelper.mjs} +8 -7
  153. package/dist/helpers/ResimulateHelper.mjs.map +1 -0
  154. package/dist/helpers/TransactionPoller.cjs +175 -0
  155. package/dist/helpers/TransactionPoller.cjs.map +1 -0
  156. package/dist/helpers/{TransactionPoller.d.ts → TransactionPoller.d.cts} +5 -5
  157. package/dist/helpers/TransactionPoller.d.cts.map +1 -0
  158. package/dist/helpers/TransactionPoller.d.mts +37 -0
  159. package/dist/helpers/TransactionPoller.d.mts.map +1 -0
  160. package/dist/helpers/{TransactionPoller.js → TransactionPoller.mjs} +11 -10
  161. package/dist/helpers/TransactionPoller.mjs.map +1 -0
  162. package/dist/hooks/CollectPublishHook.cjs +94 -0
  163. package/dist/hooks/CollectPublishHook.cjs.map +1 -0
  164. package/dist/hooks/{CollectPublishHook.d.ts → CollectPublishHook.d.cts} +3 -3
  165. package/dist/hooks/CollectPublishHook.d.cts.map +1 -0
  166. package/dist/hooks/CollectPublishHook.d.mts +29 -0
  167. package/dist/hooks/CollectPublishHook.d.mts.map +1 -0
  168. package/dist/hooks/{CollectPublishHook.js → CollectPublishHook.mjs} +5 -4
  169. package/dist/hooks/CollectPublishHook.mjs.map +1 -0
  170. package/dist/hooks/ExtraTransactionsPublishHook.cjs +126 -0
  171. package/dist/hooks/ExtraTransactionsPublishHook.cjs.map +1 -0
  172. package/dist/hooks/{ExtraTransactionsPublishHook.d.ts → ExtraTransactionsPublishHook.d.cts} +3 -3
  173. package/dist/hooks/ExtraTransactionsPublishHook.d.cts.map +1 -0
  174. package/dist/hooks/ExtraTransactionsPublishHook.d.mts +19 -0
  175. package/dist/hooks/ExtraTransactionsPublishHook.d.mts.map +1 -0
  176. package/dist/hooks/{ExtraTransactionsPublishHook.js → ExtraTransactionsPublishHook.mjs} +3 -3
  177. package/dist/hooks/ExtraTransactionsPublishHook.mjs.map +1 -0
  178. package/dist/hooks/SequentialPublishBatchHook.cjs +112 -0
  179. package/dist/hooks/SequentialPublishBatchHook.cjs.map +1 -0
  180. package/dist/hooks/{SequentialPublishBatchHook.d.ts → SequentialPublishBatchHook.d.cts} +4 -4
  181. package/dist/hooks/SequentialPublishBatchHook.d.cts.map +1 -0
  182. package/dist/hooks/SequentialPublishBatchHook.d.mts +22 -0
  183. package/dist/hooks/SequentialPublishBatchHook.d.mts.map +1 -0
  184. package/dist/hooks/{SequentialPublishBatchHook.js → SequentialPublishBatchHook.mjs} +4 -4
  185. package/dist/hooks/SequentialPublishBatchHook.mjs.map +1 -0
  186. package/dist/index.cjs +40 -0
  187. package/dist/index.cjs.map +1 -0
  188. package/dist/{index.d.ts → index.d.cts} +16 -16
  189. package/dist/index.d.cts.map +1 -0
  190. package/dist/index.d.mts +16 -0
  191. package/dist/index.d.mts.map +1 -0
  192. package/dist/index.mjs +12 -0
  193. package/dist/index.mjs.map +1 -0
  194. package/dist/logger.cjs +9 -0
  195. package/dist/logger.cjs.map +1 -0
  196. package/dist/{logger.d.ts → logger.d.cts} +3 -2
  197. package/dist/logger.d.cts.map +1 -0
  198. package/dist/logger.d.mts +6 -0
  199. package/dist/logger.d.mts.map +1 -0
  200. package/dist/{logger.js → logger.mjs} +2 -2
  201. package/dist/logger.mjs.map +1 -0
  202. package/dist/types.cjs +382 -0
  203. package/dist/types.cjs.map +1 -0
  204. package/dist/{types.d.ts → types.d.cts} +8 -8
  205. package/dist/types.d.cts.map +1 -0
  206. package/dist/types.d.mts +1887 -0
  207. package/dist/types.d.mts.map +1 -0
  208. package/dist/{types.js → types.mjs} +1 -1
  209. package/dist/types.mjs.map +1 -0
  210. package/dist/utils/balance-changes.cjs +592 -0
  211. package/dist/utils/balance-changes.cjs.map +1 -0
  212. package/dist/utils/{balance-changes.d.ts → balance-changes.d.cts} +5 -5
  213. package/dist/utils/balance-changes.d.cts.map +1 -0
  214. package/dist/utils/balance-changes.d.mts +38 -0
  215. package/dist/utils/balance-changes.d.mts.map +1 -0
  216. package/dist/utils/{balance-changes.js → balance-changes.mjs} +20 -13
  217. package/dist/utils/balance-changes.mjs.map +1 -0
  218. package/dist/utils/balance.cjs +44 -0
  219. package/dist/utils/balance.cjs.map +1 -0
  220. package/dist/utils/{balance.d.ts → balance.d.cts} +5 -5
  221. package/dist/utils/balance.d.cts.map +1 -0
  222. package/dist/utils/balance.d.mts +26 -0
  223. package/dist/utils/balance.d.mts.map +1 -0
  224. package/dist/utils/{balance.js → balance.mjs} +3 -3
  225. package/dist/utils/balance.mjs.map +1 -0
  226. package/dist/utils/batch.cjs +712 -0
  227. package/dist/utils/batch.cjs.map +1 -0
  228. package/dist/utils/{batch.d.ts → batch.d.cts} +8 -8
  229. package/dist/utils/batch.d.cts.map +1 -0
  230. package/dist/utils/batch.d.mts +58 -0
  231. package/dist/utils/batch.d.mts.map +1 -0
  232. package/dist/utils/{batch.js → batch.mjs} +18 -18
  233. package/dist/utils/batch.mjs.map +1 -0
  234. package/dist/utils/eip7702.cjs +354 -0
  235. package/dist/utils/eip7702.cjs.map +1 -0
  236. package/dist/utils/{eip7702.d.ts → eip7702.d.cts} +5 -5
  237. package/dist/utils/eip7702.d.cts.map +1 -0
  238. package/dist/utils/eip7702.d.mts +137 -0
  239. package/dist/utils/eip7702.d.mts.map +1 -0
  240. package/dist/utils/{eip7702.js → eip7702.mjs} +12 -12
  241. package/dist/utils/eip7702.mjs.map +1 -0
  242. package/dist/utils/external-transactions.cjs +36 -0
  243. package/dist/utils/external-transactions.cjs.map +1 -0
  244. package/dist/utils/{external-transactions.d.ts → external-transactions.d.cts} +2 -2
  245. package/dist/utils/external-transactions.d.cts.map +1 -0
  246. package/dist/utils/external-transactions.d.mts +10 -0
  247. package/dist/utils/external-transactions.d.mts.map +1 -0
  248. package/dist/utils/{external-transactions.js → external-transactions.mjs} +3 -3
  249. package/dist/utils/external-transactions.mjs.map +1 -0
  250. package/dist/utils/feature-flags.cjs +255 -0
  251. package/dist/utils/feature-flags.cjs.map +1 -0
  252. package/dist/utils/{feature-flags.d.ts → feature-flags.d.cts} +3 -3
  253. package/dist/utils/feature-flags.d.cts.map +1 -0
  254. package/dist/utils/feature-flags.d.mts +313 -0
  255. package/dist/utils/feature-flags.d.mts.map +1 -0
  256. package/dist/utils/{feature-flags.js → feature-flags.mjs} +5 -5
  257. package/dist/utils/feature-flags.mjs.map +1 -0
  258. package/dist/utils/first-time-interaction.cjs +69 -0
  259. package/dist/utils/first-time-interaction.cjs.map +1 -0
  260. package/dist/utils/{first-time-interaction.d.ts → first-time-interaction.d.cts} +3 -3
  261. package/dist/utils/first-time-interaction.d.cts.map +1 -0
  262. package/dist/utils/first-time-interaction.d.mts +30 -0
  263. package/dist/utils/first-time-interaction.d.mts.map +1 -0
  264. package/dist/utils/{first-time-interaction.js → first-time-interaction.mjs} +6 -6
  265. package/dist/utils/first-time-interaction.mjs.map +1 -0
  266. package/dist/utils/gas-fee-tokens.cjs +174 -0
  267. package/dist/utils/gas-fee-tokens.cjs.map +1 -0
  268. package/dist/utils/{gas-fee-tokens.d.ts → gas-fee-tokens.d.cts} +5 -5
  269. package/dist/utils/gas-fee-tokens.d.cts.map +1 -0
  270. package/dist/utils/gas-fee-tokens.d.mts +46 -0
  271. package/dist/utils/gas-fee-tokens.d.mts.map +1 -0
  272. package/dist/utils/{gas-fee-tokens.js → gas-fee-tokens.mjs} +9 -9
  273. package/dist/utils/gas-fee-tokens.mjs.map +1 -0
  274. package/dist/utils/gas-fees.cjs +424 -0
  275. package/dist/utils/gas-fees.cjs.map +1 -0
  276. package/dist/utils/{gas-fees.d.ts → gas-fees.d.cts} +5 -5
  277. package/dist/utils/gas-fees.d.cts.map +1 -0
  278. package/dist/utils/gas-fees.d.mts +57 -0
  279. package/dist/utils/gas-fees.d.mts.map +1 -0
  280. package/dist/utils/{gas-fees.js → gas-fees.mjs} +9 -9
  281. package/dist/utils/gas-fees.mjs.map +1 -0
  282. package/dist/utils/gas-flow.cjs +81 -0
  283. package/dist/utils/gas-flow.cjs.map +1 -0
  284. package/dist/utils/{gas-flow.d.ts → gas-flow.d.cts} +6 -6
  285. package/dist/utils/gas-flow.d.cts.map +1 -0
  286. package/dist/utils/gas-flow.d.mts +29 -0
  287. package/dist/utils/gas-flow.d.mts.map +1 -0
  288. package/dist/utils/{gas-flow.js → gas-flow.mjs} +3 -3
  289. package/dist/utils/gas-flow.mjs.map +1 -0
  290. package/dist/utils/gas.cjs +545 -0
  291. package/dist/utils/gas.cjs.map +1 -0
  292. package/dist/utils/{gas.d.ts → gas.d.cts} +6 -5
  293. package/dist/utils/gas.d.cts.map +1 -0
  294. package/dist/utils/gas.d.mts +116 -0
  295. package/dist/utils/gas.d.mts.map +1 -0
  296. package/dist/utils/{gas.js → gas.mjs} +11 -11
  297. package/dist/utils/gas.mjs.map +1 -0
  298. package/dist/utils/layer1-gas-fee-flow.cjs +73 -0
  299. package/dist/utils/layer1-gas-fee-flow.cjs.map +1 -0
  300. package/dist/utils/{layer1-gas-fee-flow.d.ts → layer1-gas-fee-flow.d.cts} +4 -4
  301. package/dist/utils/layer1-gas-fee-flow.d.cts.map +1 -0
  302. package/dist/utils/layer1-gas-fee-flow.d.mts +28 -0
  303. package/dist/utils/layer1-gas-fee-flow.d.mts.map +1 -0
  304. package/dist/utils/{layer1-gas-fee-flow.js → layer1-gas-fee-flow.mjs} +3 -3
  305. package/dist/utils/layer1-gas-fee-flow.mjs.map +1 -0
  306. package/dist/utils/nonce.cjs +93 -0
  307. package/dist/utils/nonce.cjs.map +1 -0
  308. package/dist/utils/{nonce.d.ts → nonce.d.cts} +3 -3
  309. package/dist/utils/nonce.d.cts.map +1 -0
  310. package/dist/utils/nonce.d.mts +26 -0
  311. package/dist/utils/nonce.d.mts.map +1 -0
  312. package/dist/utils/{nonce.js → nonce.mjs} +4 -4
  313. package/dist/utils/nonce.mjs.map +1 -0
  314. package/dist/utils/prepare.cjs +97 -0
  315. package/dist/utils/prepare.cjs.map +1 -0
  316. package/dist/utils/{prepare.d.ts → prepare.d.cts} +5 -5
  317. package/dist/utils/prepare.d.cts.map +1 -0
  318. package/dist/utils/prepare.d.mts +22 -0
  319. package/dist/utils/prepare.d.mts.map +1 -0
  320. package/dist/utils/{prepare.js → prepare.mjs} +6 -5
  321. package/dist/utils/prepare.mjs.map +1 -0
  322. package/dist/utils/provider.cjs +106 -0
  323. package/dist/utils/provider.cjs.map +1 -0
  324. package/dist/utils/{provider.d.ts → provider.d.cts} +4 -4
  325. package/dist/utils/provider.d.cts.map +1 -0
  326. package/dist/utils/provider.d.mts +65 -0
  327. package/dist/utils/provider.d.mts.map +1 -0
  328. package/dist/utils/{provider.js → provider.mjs} +3 -3
  329. package/dist/utils/provider.mjs.map +1 -0
  330. package/dist/utils/recipient.cjs +31 -0
  331. package/dist/utils/recipient.cjs.map +1 -0
  332. package/dist/utils/{recipient.d.ts → recipient.d.cts} +2 -2
  333. package/dist/utils/recipient.d.cts.map +1 -0
  334. package/dist/utils/recipient.d.mts +13 -0
  335. package/dist/utils/recipient.d.mts.map +1 -0
  336. package/dist/utils/{recipient.js → recipient.mjs} +3 -3
  337. package/dist/utils/recipient.mjs.map +1 -0
  338. package/dist/utils/retry.cjs +93 -0
  339. package/dist/utils/retry.cjs.map +1 -0
  340. package/dist/utils/{retry.d.ts → retry.d.cts} +2 -2
  341. package/dist/utils/retry.d.cts.map +1 -0
  342. package/dist/utils/retry.d.mts +11 -0
  343. package/dist/utils/retry.d.mts.map +1 -0
  344. package/dist/utils/{retry.js → retry.mjs} +3 -3
  345. package/dist/utils/retry.mjs.map +1 -0
  346. package/dist/utils/revert-reason.cjs +192 -0
  347. package/dist/utils/revert-reason.cjs.map +1 -0
  348. package/dist/utils/{revert-reason.d.ts → revert-reason.d.cts} +5 -5
  349. package/dist/utils/revert-reason.d.cts.map +1 -0
  350. package/dist/utils/revert-reason.d.mts +57 -0
  351. package/dist/utils/revert-reason.d.mts.map +1 -0
  352. package/dist/utils/{revert-reason.js → revert-reason.mjs} +4 -4
  353. package/dist/utils/revert-reason.mjs.map +1 -0
  354. package/dist/utils/signature.cjs +26 -0
  355. package/dist/utils/signature.cjs.map +1 -0
  356. package/dist/utils/{signature.d.ts → signature.d.cts} +2 -2
  357. package/dist/utils/signature.d.cts.map +1 -0
  358. package/dist/utils/signature.d.mts +11 -0
  359. package/dist/utils/signature.d.mts.map +1 -0
  360. package/dist/utils/{signature.js → signature.mjs} +3 -3
  361. package/dist/utils/signature.mjs.map +1 -0
  362. package/dist/utils/swaps.cjs +332 -0
  363. package/dist/utils/swaps.cjs.map +1 -0
  364. package/dist/utils/{swaps.d.ts → swaps.d.cts} +5 -5
  365. package/dist/utils/swaps.d.cts.map +1 -0
  366. package/dist/utils/swaps.d.mts +90 -0
  367. package/dist/utils/swaps.d.mts.map +1 -0
  368. package/dist/utils/{swaps.js → swaps.mjs} +8 -7
  369. package/dist/utils/swaps.mjs.map +1 -0
  370. package/dist/utils/transaction-type.cjs +159 -0
  371. package/dist/utils/transaction-type.cjs.map +1 -0
  372. package/dist/utils/{transaction-type.d.ts → transaction-type.d.cts} +6 -6
  373. package/dist/utils/transaction-type.d.cts.map +1 -0
  374. package/dist/utils/transaction-type.d.mts +44 -0
  375. package/dist/utils/transaction-type.d.mts.map +1 -0
  376. package/dist/utils/{transaction-type.js → transaction-type.mjs} +6 -6
  377. package/dist/utils/transaction-type.mjs.map +1 -0
  378. package/dist/utils/utils.cjs +287 -0
  379. package/dist/utils/utils.cjs.map +1 -0
  380. package/dist/utils/{utils.d.ts → utils.d.cts} +4 -4
  381. package/dist/utils/utils.d.cts.map +1 -0
  382. package/dist/utils/utils.d.mts +101 -0
  383. package/dist/utils/utils.d.mts.map +1 -0
  384. package/dist/utils/{utils.js → utils.mjs} +12 -5
  385. package/dist/utils/utils.mjs.map +1 -0
  386. package/dist/utils/validation.cjs +389 -0
  387. package/dist/utils/validation.cjs.map +1 -0
  388. package/dist/utils/{validation.d.ts → validation.d.cts} +4 -4
  389. package/dist/utils/validation.d.cts.map +1 -0
  390. package/dist/utils/validation.d.mts +66 -0
  391. package/dist/utils/validation.d.mts.map +1 -0
  392. package/dist/utils/{validation.js → validation.mjs} +8 -8
  393. package/dist/utils/validation.mjs.map +1 -0
  394. package/package.json +19 -15
  395. package/dist/TransactionController-method-action-types.d.ts.map +0 -1
  396. package/dist/TransactionController-method-action-types.js.map +0 -1
  397. package/dist/TransactionController.d.ts.map +0 -1
  398. package/dist/TransactionController.js.map +0 -1
  399. package/dist/api/accounts-api.d.ts.map +0 -1
  400. package/dist/api/accounts-api.js.map +0 -1
  401. package/dist/api/simulation-api.d.ts.map +0 -1
  402. package/dist/api/simulation-api.js.map +0 -1
  403. package/dist/constants.d.ts.map +0 -1
  404. package/dist/constants.js.map +0 -1
  405. package/dist/errors.d.ts.map +0 -1
  406. package/dist/errors.js.map +0 -1
  407. package/dist/gas-flows/DefaultGasFeeFlow.d.ts.map +0 -1
  408. package/dist/gas-flows/LineaGasFeeFlow.d.ts.map +0 -1
  409. package/dist/gas-flows/LineaGasFeeFlow.js.map +0 -1
  410. package/dist/gas-flows/MantleLayer1GasFeeFlow.d.ts.map +0 -1
  411. package/dist/gas-flows/MantleLayer1GasFeeFlow.js.map +0 -1
  412. package/dist/gas-flows/OptimismLayer1GasFeeFlow.d.ts.map +0 -1
  413. package/dist/gas-flows/OptimismLayer1GasFeeFlow.js.map +0 -1
  414. package/dist/gas-flows/OracleLayer1GasFeeFlow.d.ts.map +0 -1
  415. package/dist/gas-flows/OracleLayer1GasFeeFlow.js.map +0 -1
  416. package/dist/gas-flows/RandomisedEstimationsGasFeeFlow.d.ts.map +0 -1
  417. package/dist/gas-flows/RandomisedEstimationsGasFeeFlow.js.map +0 -1
  418. package/dist/gas-flows/ScrollLayer1GasFeeFlow.d.ts.map +0 -1
  419. package/dist/gas-flows/ScrollLayer1GasFeeFlow.js.map +0 -1
  420. package/dist/gas-flows/TestGasFeeFlow.d.ts.map +0 -1
  421. package/dist/gas-flows/TestGasFeeFlow.js.map +0 -1
  422. package/dist/helpers/GasFeePoller.d.ts.map +0 -1
  423. package/dist/helpers/GasFeePoller.js.map +0 -1
  424. package/dist/helpers/MethodDataHelper.d.ts.map +0 -1
  425. package/dist/helpers/MethodDataHelper.js.map +0 -1
  426. package/dist/helpers/MultichainTrackingHelper.d.ts.map +0 -1
  427. package/dist/helpers/MultichainTrackingHelper.js.map +0 -1
  428. package/dist/helpers/PendingTransactionTracker.d.ts.map +0 -1
  429. package/dist/helpers/PendingTransactionTracker.js.map +0 -1
  430. package/dist/helpers/ResimulateHelper.d.ts.map +0 -1
  431. package/dist/helpers/ResimulateHelper.js.map +0 -1
  432. package/dist/helpers/TransactionPoller.d.ts.map +0 -1
  433. package/dist/helpers/TransactionPoller.js.map +0 -1
  434. package/dist/hooks/CollectPublishHook.d.ts.map +0 -1
  435. package/dist/hooks/CollectPublishHook.js.map +0 -1
  436. package/dist/hooks/ExtraTransactionsPublishHook.d.ts.map +0 -1
  437. package/dist/hooks/ExtraTransactionsPublishHook.js.map +0 -1
  438. package/dist/hooks/SequentialPublishBatchHook.d.ts.map +0 -1
  439. package/dist/hooks/SequentialPublishBatchHook.js.map +0 -1
  440. package/dist/index.d.ts.map +0 -1
  441. package/dist/index.js +0 -12
  442. package/dist/index.js.map +0 -1
  443. package/dist/logger.d.ts.map +0 -1
  444. package/dist/logger.js.map +0 -1
  445. package/dist/types.d.ts.map +0 -1
  446. package/dist/types.js.map +0 -1
  447. package/dist/utils/balance-changes.d.ts.map +0 -1
  448. package/dist/utils/balance-changes.js.map +0 -1
  449. package/dist/utils/balance.d.ts.map +0 -1
  450. package/dist/utils/balance.js.map +0 -1
  451. package/dist/utils/batch.d.ts.map +0 -1
  452. package/dist/utils/batch.js.map +0 -1
  453. package/dist/utils/eip7702.d.ts.map +0 -1
  454. package/dist/utils/eip7702.js.map +0 -1
  455. package/dist/utils/external-transactions.d.ts.map +0 -1
  456. package/dist/utils/external-transactions.js.map +0 -1
  457. package/dist/utils/feature-flags.d.ts.map +0 -1
  458. package/dist/utils/feature-flags.js.map +0 -1
  459. package/dist/utils/first-time-interaction.d.ts.map +0 -1
  460. package/dist/utils/first-time-interaction.js.map +0 -1
  461. package/dist/utils/gas-fee-tokens.d.ts.map +0 -1
  462. package/dist/utils/gas-fee-tokens.js.map +0 -1
  463. package/dist/utils/gas-fees.d.ts.map +0 -1
  464. package/dist/utils/gas-fees.js.map +0 -1
  465. package/dist/utils/gas-flow.d.ts.map +0 -1
  466. package/dist/utils/gas-flow.js.map +0 -1
  467. package/dist/utils/gas.d.ts.map +0 -1
  468. package/dist/utils/gas.js.map +0 -1
  469. package/dist/utils/layer1-gas-fee-flow.d.ts.map +0 -1
  470. package/dist/utils/layer1-gas-fee-flow.js.map +0 -1
  471. package/dist/utils/nonce.d.ts.map +0 -1
  472. package/dist/utils/nonce.js.map +0 -1
  473. package/dist/utils/prepare.d.ts.map +0 -1
  474. package/dist/utils/prepare.js.map +0 -1
  475. package/dist/utils/provider.d.ts.map +0 -1
  476. package/dist/utils/provider.js.map +0 -1
  477. package/dist/utils/recipient.d.ts.map +0 -1
  478. package/dist/utils/recipient.js.map +0 -1
  479. package/dist/utils/retry.d.ts.map +0 -1
  480. package/dist/utils/retry.js.map +0 -1
  481. package/dist/utils/revert-reason.d.ts.map +0 -1
  482. package/dist/utils/revert-reason.js.map +0 -1
  483. package/dist/utils/signature.d.ts.map +0 -1
  484. package/dist/utils/signature.js.map +0 -1
  485. package/dist/utils/swaps.d.ts.map +0 -1
  486. package/dist/utils/swaps.js.map +0 -1
  487. package/dist/utils/transaction-type.d.ts.map +0 -1
  488. package/dist/utils/transaction-type.js.map +0 -1
  489. package/dist/utils/utils.d.ts.map +0 -1
  490. package/dist/utils/utils.js.map +0 -1
  491. package/dist/utils/validation.d.ts.map +0 -1
  492. package/dist/utils/validation.js.map +0 -1
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.serializeTransaction = exports.prepareTransaction = exports.HARDFORK = void 0;
4
+ const common_1 = require("@ethereumjs/common");
5
+ const tx_1 = require("@ethereumjs/tx");
6
+ const utils_1 = require("@metamask/utils");
7
+ const lodash_1 = require("lodash");
8
+ exports.HARDFORK = common_1.Hardfork.Prague;
9
+ /**
10
+ * Creates an `etheruemjs/tx` transaction object from the raw transaction parameters.
11
+ *
12
+ * @param chainId - Chain ID of the transaction.
13
+ * @param txParams - Transaction parameters.
14
+ * @returns The transaction object.
15
+ */
16
+ function prepareTransaction(chainId, txParams) {
17
+ const normalizedData = normalizeParams(txParams);
18
+ // Does not allow `gasPrice` on type 4 transactions.
19
+ const data = normalizedData;
20
+ return tx_1.TransactionFactory.fromTxData(data, {
21
+ freeze: false,
22
+ common: getCommonConfiguration(chainId),
23
+ });
24
+ }
25
+ exports.prepareTransaction = prepareTransaction;
26
+ /**
27
+ * Serializes transaction data into a hex string.
28
+ *
29
+ * @param chainId - Chain ID of the transaction.
30
+ * @param txData - The signed transaction data.
31
+ * @returns The prefixed hex string.
32
+ */
33
+ function serializeTransaction(chainId, txData) {
34
+ return (0, utils_1.bytesToHex)(tx_1.TransactionFactory.fromTxData(txData, {
35
+ freeze: false,
36
+ common: getCommonConfiguration(chainId),
37
+ }).serialize());
38
+ }
39
+ exports.serializeTransaction = serializeTransaction;
40
+ /**
41
+ * Generates the configuration used to prepare transactions.
42
+ *
43
+ * @param chainId - Chain ID.
44
+ * @returns The common configuration.
45
+ */
46
+ function getCommonConfiguration(chainId) {
47
+ const customChainParams = {
48
+ chainId: parseInt(chainId, 16),
49
+ defaultHardfork: exports.HARDFORK,
50
+ };
51
+ return common_1.Common.custom(customChainParams, {
52
+ eips: [7702],
53
+ });
54
+ }
55
+ /**
56
+ * Normalize the transaction parameters for compatibility with `ethereumjs/tx`.
57
+ *
58
+ * @param params - The transaction parameters to normalize.
59
+ * @returns The normalized transaction parameters.
60
+ */
61
+ function normalizeParams(params) {
62
+ const newParams = (0, lodash_1.cloneDeep)(params);
63
+ normalizeAuthorizationList(newParams.authorizationList);
64
+ return newParams;
65
+ }
66
+ /**
67
+ * Normalize the authorization list for `ethereumjs/tx` compatibility.
68
+ *
69
+ * @param authorizationList - The list of authorizations to normalize.
70
+ */
71
+ function normalizeAuthorizationList(authorizationList) {
72
+ if (!authorizationList) {
73
+ return;
74
+ }
75
+ for (const authorization of authorizationList) {
76
+ authorization.nonce = removeLeadingZeroes(authorization.nonce);
77
+ authorization.r = removeLeadingZeroes(authorization.r);
78
+ authorization.s = removeLeadingZeroes(authorization.s);
79
+ authorization.yParity = removeLeadingZeroes(authorization.yParity);
80
+ }
81
+ }
82
+ /**
83
+ * Remove leading zeroes from a hexadecimal string.
84
+ *
85
+ * @param value - The hexadecimal string to process.
86
+ * @returns The processed hexadecimal string.
87
+ */
88
+ function removeLeadingZeroes(value) {
89
+ if (!value) {
90
+ return value;
91
+ }
92
+ if (value === '0x0') {
93
+ return '0x';
94
+ }
95
+ return value.replace?.(/^0x(00)+/u, '0x') ?? value;
96
+ }
97
+ //# sourceMappingURL=prepare.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepare.cjs","sourceRoot":"","sources":["../../src/utils/prepare.ts"],"names":[],"mappings":";;;AACA,+CAAsD;AAEtD,uCAAoD;AACpD,2CAA6C;AAE7C,mCAAmC;AAItB,QAAA,QAAQ,GAAG,iBAAQ,CAAC,MAAM,CAAC;AAExC;;;;;;GAMG;AACH,SAAgB,kBAAkB,CAChC,OAAY,EACZ,QAA2B;IAE3B,MAAM,cAAc,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAEjD,oDAAoD;IACpD,MAAM,IAAI,GAAG,cAA6B,CAAC;IAE3C,OAAO,uBAAkB,CAAC,UAAU,CAAC,IAAI,EAAE;QACzC,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,sBAAsB,CAAC,OAAO,CAAC;KACxC,CAAC,CAAC;AACL,CAAC;AAbD,gDAaC;AAED;;;;;;GAMG;AACH,SAAgB,oBAAoB,CAAC,OAAY,EAAE,MAAmB;IACpE,OAAO,IAAA,kBAAU,EACf,uBAAkB,CAAC,UAAU,CAAC,MAAM,EAAE;QACpC,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,sBAAsB,CAAC,OAAO,CAAC;KACxC,CAAC,CAAC,SAAS,EAAE,CACf,CAAC;AACJ,CAAC;AAPD,oDAOC;AAED;;;;;GAKG;AACH,SAAS,sBAAsB,CAAC,OAAY;IAC1C,MAAM,iBAAiB,GAAyB;QAC9C,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;QAC9B,eAAe,EAAE,gBAAQ;KAC1B,CAAC;IAEF,OAAO,eAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE;QACtC,IAAI,EAAE,CAAC,IAAI,CAAC;KACb,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,MAAyB;IAChD,MAAM,SAAS,GAAG,IAAA,kBAAS,EAAC,MAAM,CAAC,CAAC;IACpC,0BAA0B,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IACxD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,SAAS,0BAA0B,CACjC,iBAAqC;IAErC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,OAAO;IACT,CAAC;IAED,KAAK,MAAM,aAAa,IAAI,iBAAiB,EAAE,CAAC;QAC9C,aAAa,CAAC,KAAK,GAAG,mBAAmB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC/D,aAAa,CAAC,CAAC,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACvD,aAAa,CAAC,CAAC,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACvD,aAAa,CAAC,OAAO,GAAG,mBAAmB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACrE,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,KAAsB;IACjD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAQ,KAAK,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,IAAI,CAAS,IAAI,KAAK,CAAC;AAC9D,CAAC","sourcesContent":["import type { ChainConfig } from '@ethereumjs/common';\nimport { Common, Hardfork } from '@ethereumjs/common';\nimport type { TypedTransaction, TypedTxData } from '@ethereumjs/tx';\nimport { TransactionFactory } from '@ethereumjs/tx';\nimport { bytesToHex } from '@metamask/utils';\nimport type { Hex } from '@metamask/utils';\nimport { cloneDeep } from 'lodash';\n\nimport type { AuthorizationList, TransactionParams } from '../types.js';\n\nexport const HARDFORK = Hardfork.Prague;\n\n/**\n * Creates an `etheruemjs/tx` transaction object from the raw transaction parameters.\n *\n * @param chainId - Chain ID of the transaction.\n * @param txParams - Transaction parameters.\n * @returns The transaction object.\n */\nexport function prepareTransaction(\n chainId: Hex,\n txParams: TransactionParams,\n): TypedTransaction {\n const normalizedData = normalizeParams(txParams);\n\n // Does not allow `gasPrice` on type 4 transactions.\n const data = normalizedData as TypedTxData;\n\n return TransactionFactory.fromTxData(data, {\n freeze: false,\n common: getCommonConfiguration(chainId),\n });\n}\n\n/**\n * Serializes transaction data into a hex string.\n *\n * @param chainId - Chain ID of the transaction.\n * @param txData - The signed transaction data.\n * @returns The prefixed hex string.\n */\nexport function serializeTransaction(chainId: Hex, txData: TypedTxData): Hex {\n return bytesToHex(\n TransactionFactory.fromTxData(txData, {\n freeze: false,\n common: getCommonConfiguration(chainId),\n }).serialize(),\n );\n}\n\n/**\n * Generates the configuration used to prepare transactions.\n *\n * @param chainId - Chain ID.\n * @returns The common configuration.\n */\nfunction getCommonConfiguration(chainId: Hex): Common {\n const customChainParams: Partial<ChainConfig> = {\n chainId: parseInt(chainId, 16),\n defaultHardfork: HARDFORK,\n };\n\n return Common.custom(customChainParams, {\n eips: [7702],\n });\n}\n\n/**\n * Normalize the transaction parameters for compatibility with `ethereumjs/tx`.\n *\n * @param params - The transaction parameters to normalize.\n * @returns The normalized transaction parameters.\n */\nfunction normalizeParams(params: TransactionParams): TransactionParams {\n const newParams = cloneDeep(params);\n normalizeAuthorizationList(newParams.authorizationList);\n return newParams;\n}\n\n/**\n * Normalize the authorization list for `ethereumjs/tx` compatibility.\n *\n * @param authorizationList - The list of authorizations to normalize.\n */\nfunction normalizeAuthorizationList(\n authorizationList?: AuthorizationList,\n): void {\n if (!authorizationList) {\n return;\n }\n\n for (const authorization of authorizationList) {\n authorization.nonce = removeLeadingZeroes(authorization.nonce);\n authorization.r = removeLeadingZeroes(authorization.r);\n authorization.s = removeLeadingZeroes(authorization.s);\n authorization.yParity = removeLeadingZeroes(authorization.yParity);\n }\n}\n\n/**\n * Remove leading zeroes from a hexadecimal string.\n *\n * @param value - The hexadecimal string to process.\n * @returns The processed hexadecimal string.\n */\nfunction removeLeadingZeroes(value: Hex | undefined): Hex | undefined {\n if (!value) {\n return value;\n }\n\n if (value === '0x0') {\n return '0x';\n }\n\n return (value.replace?.(/^0x(00)+/u, '0x') as Hex) ?? value;\n}\n"]}
@@ -1,7 +1,7 @@
1
- import { Hardfork } from '@ethereumjs/common';
2
- import type { TypedTransaction, TypedTxData } from '@ethereumjs/tx';
3
- import type { Hex } from '@metamask/utils';
4
- import type { TransactionParams } from '../types.js';
1
+ import { Hardfork } from "@ethereumjs/common";
2
+ import type { TypedTransaction, TypedTxData } from "@ethereumjs/tx";
3
+ import type { Hex } from "@metamask/utils";
4
+ import type { TransactionParams } from "../types.cjs";
5
5
  export declare const HARDFORK = Hardfork.Prague;
6
6
  /**
7
7
  * Creates an `etheruemjs/tx` transaction object from the raw transaction parameters.
@@ -19,4 +19,4 @@ export declare function prepareTransaction(chainId: Hex, txParams: TransactionPa
19
19
  * @returns The prefixed hex string.
20
20
  */
21
21
  export declare function serializeTransaction(chainId: Hex, txData: TypedTxData): Hex;
22
- //# sourceMappingURL=prepare.d.ts.map
22
+ //# sourceMappingURL=prepare.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepare.d.cts","sourceRoot":"","sources":["../../src/utils/prepare.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,QAAQ,EAAE,2BAA2B;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,uBAAuB;AAGpE,OAAO,KAAK,EAAE,GAAG,EAAE,wBAAwB;AAG3C,OAAO,KAAK,EAAqB,iBAAiB,EAAE,qBAAoB;AAExE,eAAO,MAAM,QAAQ,kBAAkB,CAAC;AAExC;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,GAAG,EACZ,QAAQ,EAAE,iBAAiB,GAC1B,gBAAgB,CAUlB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,GAAG,GAAG,CAO3E"}
@@ -0,0 +1,22 @@
1
+ import { Hardfork } from "@ethereumjs/common";
2
+ import type { TypedTransaction, TypedTxData } from "@ethereumjs/tx";
3
+ import type { Hex } from "@metamask/utils";
4
+ import type { TransactionParams } from "../types.mjs";
5
+ export declare const HARDFORK = Hardfork.Prague;
6
+ /**
7
+ * Creates an `etheruemjs/tx` transaction object from the raw transaction parameters.
8
+ *
9
+ * @param chainId - Chain ID of the transaction.
10
+ * @param txParams - Transaction parameters.
11
+ * @returns The transaction object.
12
+ */
13
+ export declare function prepareTransaction(chainId: Hex, txParams: TransactionParams): TypedTransaction;
14
+ /**
15
+ * Serializes transaction data into a hex string.
16
+ *
17
+ * @param chainId - Chain ID of the transaction.
18
+ * @param txData - The signed transaction data.
19
+ * @returns The prefixed hex string.
20
+ */
21
+ export declare function serializeTransaction(chainId: Hex, txData: TypedTxData): Hex;
22
+ //# sourceMappingURL=prepare.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepare.d.mts","sourceRoot":"","sources":["../../src/utils/prepare.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,QAAQ,EAAE,2BAA2B;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,uBAAuB;AAGpE,OAAO,KAAK,EAAE,GAAG,EAAE,wBAAwB;AAG3C,OAAO,KAAK,EAAqB,iBAAiB,EAAE,qBAAoB;AAExE,eAAO,MAAM,QAAQ,kBAAkB,CAAC;AAExC;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,GAAG,EACZ,QAAQ,EAAE,iBAAiB,GAC1B,gBAAgB,CAUlB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,GAAG,GAAG,CAO3E"}
@@ -1,7 +1,8 @@
1
- import { Common, Hardfork } from '@ethereumjs/common';
2
- import { TransactionFactory } from '@ethereumjs/tx';
3
- import { bytesToHex } from '@metamask/utils';
4
- import { cloneDeep } from 'lodash-es';
1
+ import { Common, Hardfork } from "@ethereumjs/common";
2
+ import { TransactionFactory } from "@ethereumjs/tx";
3
+ import { bytesToHex } from "@metamask/utils";
4
+ import $lodash from "lodash";
5
+ const { cloneDeep } = $lodash;
5
6
  export const HARDFORK = Hardfork.Prague;
6
7
  /**
7
8
  * Creates an `etheruemjs/tx` transaction object from the raw transaction parameters.
@@ -89,4 +90,4 @@ function removeLeadingZeroes(value) {
89
90
  }
90
91
  return value.replace?.(/^0x(00)+/u, '0x') ?? value;
91
92
  }
92
- //# sourceMappingURL=prepare.js.map
93
+ //# sourceMappingURL=prepare.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepare.mjs","sourceRoot":"","sources":["../../src/utils/prepare.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,2BAA2B;AAEtD,OAAO,EAAE,kBAAkB,EAAE,uBAAuB;AACpD,OAAO,EAAE,UAAU,EAAE,wBAAwB;;;AAM7C,MAAM,CAAC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;AAExC;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAY,EACZ,QAA2B;IAE3B,MAAM,cAAc,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAEjD,oDAAoD;IACpD,MAAM,IAAI,GAAG,cAA6B,CAAC;IAE3C,OAAO,kBAAkB,CAAC,UAAU,CAAC,IAAI,EAAE;QACzC,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,sBAAsB,CAAC,OAAO,CAAC;KACxC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAY,EAAE,MAAmB;IACpE,OAAO,UAAU,CACf,kBAAkB,CAAC,UAAU,CAAC,MAAM,EAAE;QACpC,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,sBAAsB,CAAC,OAAO,CAAC;KACxC,CAAC,CAAC,SAAS,EAAE,CACf,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,sBAAsB,CAAC,OAAY;IAC1C,MAAM,iBAAiB,GAAyB;QAC9C,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;QAC9B,eAAe,EAAE,QAAQ;KAC1B,CAAC;IAEF,OAAO,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE;QACtC,IAAI,EAAE,CAAC,IAAI,CAAC;KACb,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,MAAyB;IAChD,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IACpC,0BAA0B,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IACxD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,SAAS,0BAA0B,CACjC,iBAAqC;IAErC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,OAAO;IACT,CAAC;IAED,KAAK,MAAM,aAAa,IAAI,iBAAiB,EAAE,CAAC;QAC9C,aAAa,CAAC,KAAK,GAAG,mBAAmB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC/D,aAAa,CAAC,CAAC,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACvD,aAAa,CAAC,CAAC,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACvD,aAAa,CAAC,OAAO,GAAG,mBAAmB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACrE,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,KAAsB;IACjD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAQ,KAAK,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,IAAI,CAAS,IAAI,KAAK,CAAC;AAC9D,CAAC","sourcesContent":["import type { ChainConfig } from '@ethereumjs/common';\nimport { Common, Hardfork } from '@ethereumjs/common';\nimport type { TypedTransaction, TypedTxData } from '@ethereumjs/tx';\nimport { TransactionFactory } from '@ethereumjs/tx';\nimport { bytesToHex } from '@metamask/utils';\nimport type { Hex } from '@metamask/utils';\nimport { cloneDeep } from 'lodash';\n\nimport type { AuthorizationList, TransactionParams } from '../types.js';\n\nexport const HARDFORK = Hardfork.Prague;\n\n/**\n * Creates an `etheruemjs/tx` transaction object from the raw transaction parameters.\n *\n * @param chainId - Chain ID of the transaction.\n * @param txParams - Transaction parameters.\n * @returns The transaction object.\n */\nexport function prepareTransaction(\n chainId: Hex,\n txParams: TransactionParams,\n): TypedTransaction {\n const normalizedData = normalizeParams(txParams);\n\n // Does not allow `gasPrice` on type 4 transactions.\n const data = normalizedData as TypedTxData;\n\n return TransactionFactory.fromTxData(data, {\n freeze: false,\n common: getCommonConfiguration(chainId),\n });\n}\n\n/**\n * Serializes transaction data into a hex string.\n *\n * @param chainId - Chain ID of the transaction.\n * @param txData - The signed transaction data.\n * @returns The prefixed hex string.\n */\nexport function serializeTransaction(chainId: Hex, txData: TypedTxData): Hex {\n return bytesToHex(\n TransactionFactory.fromTxData(txData, {\n freeze: false,\n common: getCommonConfiguration(chainId),\n }).serialize(),\n );\n}\n\n/**\n * Generates the configuration used to prepare transactions.\n *\n * @param chainId - Chain ID.\n * @returns The common configuration.\n */\nfunction getCommonConfiguration(chainId: Hex): Common {\n const customChainParams: Partial<ChainConfig> = {\n chainId: parseInt(chainId, 16),\n defaultHardfork: HARDFORK,\n };\n\n return Common.custom(customChainParams, {\n eips: [7702],\n });\n}\n\n/**\n * Normalize the transaction parameters for compatibility with `ethereumjs/tx`.\n *\n * @param params - The transaction parameters to normalize.\n * @returns The normalized transaction parameters.\n */\nfunction normalizeParams(params: TransactionParams): TransactionParams {\n const newParams = cloneDeep(params);\n normalizeAuthorizationList(newParams.authorizationList);\n return newParams;\n}\n\n/**\n * Normalize the authorization list for `ethereumjs/tx` compatibility.\n *\n * @param authorizationList - The list of authorizations to normalize.\n */\nfunction normalizeAuthorizationList(\n authorizationList?: AuthorizationList,\n): void {\n if (!authorizationList) {\n return;\n }\n\n for (const authorization of authorizationList) {\n authorization.nonce = removeLeadingZeroes(authorization.nonce);\n authorization.r = removeLeadingZeroes(authorization.r);\n authorization.s = removeLeadingZeroes(authorization.s);\n authorization.yParity = removeLeadingZeroes(authorization.yParity);\n }\n}\n\n/**\n * Remove leading zeroes from a hexadecimal string.\n *\n * @param value - The hexadecimal string to process.\n * @returns The processed hexadecimal string.\n */\nfunction removeLeadingZeroes(value: Hex | undefined): Hex | undefined {\n if (!value) {\n return value;\n }\n\n if (value === '0x0') {\n return '0x';\n }\n\n return (value.replace?.(/^0x(00)+/u, '0x') as Hex) ?? value;\n}\n"]}
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getChainId = exports.getNetworkClientId = exports.rpcRequest = exports.getProvider = void 0;
4
+ const network_controller_1 = require("@metamask/network-controller");
5
+ const logger_js_1 = require("../logger.cjs");
6
+ const log = (0, logger_js_1.createModuleLogger)(logger_js_1.projectLogger, 'provider');
7
+ /**
8
+ * Get a provider for the specified chain or network client.
9
+ * Resolves chainId to networkClientId if needed, then gets the provider.
10
+ *
11
+ * @param request - The request object.
12
+ * @param request.messenger - The TransactionController messenger.
13
+ * @param request.chainId - The chain ID to resolve to a network client.
14
+ * @param request.networkClientId - The network client ID to use directly.
15
+ * @returns The Provider instance.
16
+ */
17
+ function getProvider({ messenger, chainId, networkClientId, }) {
18
+ const resolvedId = getNetworkClientId({
19
+ messenger,
20
+ chainId,
21
+ networkClientId,
22
+ });
23
+ return getNetworkClient(messenger, resolvedId).provider;
24
+ }
25
+ exports.getProvider = getProvider;
26
+ /**
27
+ * Send an RPC request to the network for the specified chain or network client.
28
+ *
29
+ * @param request - The request object.
30
+ * @param request.messenger - The TransactionController messenger.
31
+ * @param request.chainId - The chain ID to resolve to a network client.
32
+ * @param request.networkClientId - The network client ID to use directly.
33
+ * @param request.method - The JSON-RPC method name.
34
+ * @param request.params - Optional parameters for the RPC call.
35
+ * @returns The RPC response.
36
+ */
37
+ async function rpcRequest({ messenger, chainId, networkClientId, method, params, }) {
38
+ const resolvedNetworkClientId = getNetworkClientId({
39
+ messenger,
40
+ chainId,
41
+ networkClientId,
42
+ });
43
+ const networkClient = getNetworkClient(messenger, resolvedNetworkClientId);
44
+ const { provider } = networkClient;
45
+ let response;
46
+ try {
47
+ response = await provider.request({ method, params });
48
+ }
49
+ catch (error) {
50
+ throwWithRpcContext(error, {
51
+ method,
52
+ networkClient,
53
+ });
54
+ }
55
+ log(method, { params, response });
56
+ return response;
57
+ }
58
+ exports.rpcRequest = rpcRequest;
59
+ /**
60
+ * Get the network client ID for the specified chain or network client.
61
+ *
62
+ * @param request - The request object.
63
+ * @param request.messenger - The TransactionController messenger.
64
+ * @param request.chainId - The chain ID to resolve to a network client.
65
+ * @param request.networkClientId - The network client ID to use directly.
66
+ * @returns The network client ID.
67
+ */
68
+ function getNetworkClientId({ messenger, chainId, networkClientId, }) {
69
+ if (networkClientId) {
70
+ return networkClientId;
71
+ }
72
+ if (chainId) {
73
+ return messenger.call('NetworkController:findNetworkClientIdByChainId', chainId);
74
+ }
75
+ throw new Error('Either chainId or networkClientId must be provided');
76
+ }
77
+ exports.getNetworkClientId = getNetworkClientId;
78
+ /**
79
+ * Get the chain ID for the specified network client.
80
+ *
81
+ * @param request - The request object.
82
+ * @param request.messenger - The TransactionController messenger.
83
+ * @param request.networkClientId - The network client ID.
84
+ * @returns The chain ID.
85
+ */
86
+ function getChainId({ messenger, networkClientId, }) {
87
+ return messenger.call('NetworkController:getNetworkClientById', networkClientId).configuration.chainId;
88
+ }
89
+ exports.getChainId = getChainId;
90
+ function getNetworkClient(messenger, networkClientId) {
91
+ return messenger.call('NetworkController:getNetworkClientById', networkClientId);
92
+ }
93
+ function throwWithRpcContext(error, { method, networkClient, }) {
94
+ const errorObject = error;
95
+ const message = errorObject.data?.message ?? errorObject.message;
96
+ const prefix = `RPC ${networkClient.configuration.chainId} ${getEndpointLabel(networkClient)} ${method}`;
97
+ const prefixedMessage = `${prefix}: ${message}`;
98
+ errorObject.message = prefixedMessage;
99
+ throw error;
100
+ }
101
+ function getEndpointLabel(networkClient) {
102
+ return networkClient.configuration.type === network_controller_1.NetworkClientType.Infura
103
+ ? 'Infura'
104
+ : 'Custom';
105
+ }
106
+ //# sourceMappingURL=provider.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.cjs","sourceRoot":"","sources":["../../src/utils/provider.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n NetworkClient,\n NetworkClientId,\n Provider,\n} from '@metamask/network-controller';\nimport { NetworkClientType } from '@metamask/network-controller';\nimport type { Hex } from '@metamask/utils';\n\nimport { createModuleLogger, projectLogger } from '../logger.js';\nimport type { TransactionControllerMessenger } from '../TransactionController.js';\n\nconst log = createModuleLogger(projectLogger, 'provider');\n\ntype ProviderRequestParams = Parameters<Provider['request']>[0]['params'];\n\n/**\n * Get a provider for the specified chain or network client.\n * Resolves chainId to networkClientId if needed, then gets the provider.\n *\n * @param request - The request object.\n * @param request.messenger - The TransactionController messenger.\n * @param request.chainId - The chain ID to resolve to a network client.\n * @param request.networkClientId - The network client ID to use directly.\n * @returns The Provider instance.\n */\nexport function getProvider({\n messenger,\n chainId,\n networkClientId,\n}: {\n messenger: TransactionControllerMessenger;\n chainId?: Hex;\n networkClientId?: NetworkClientId;\n}): Provider {\n const resolvedId = getNetworkClientId({\n messenger,\n chainId,\n networkClientId,\n });\n\n return getNetworkClient(messenger, resolvedId).provider;\n}\n\n/**\n * Send an RPC request to the network for the specified chain or network client.\n *\n * @param request - The request object.\n * @param request.messenger - The TransactionController messenger.\n * @param request.chainId - The chain ID to resolve to a network client.\n * @param request.networkClientId - The network client ID to use directly.\n * @param request.method - The JSON-RPC method name.\n * @param request.params - Optional parameters for the RPC call.\n * @returns The RPC response.\n */\nexport async function rpcRequest({\n messenger,\n chainId,\n networkClientId,\n method,\n params,\n}: {\n messenger: TransactionControllerMessenger;\n chainId?: Hex;\n networkClientId?: NetworkClientId;\n method: string;\n params?: ProviderRequestParams;\n}): Promise<unknown> {\n const resolvedNetworkClientId = getNetworkClientId({\n messenger,\n chainId,\n networkClientId,\n });\n\n const networkClient = getNetworkClient(messenger, resolvedNetworkClientId);\n const { provider } = networkClient;\n\n let response: unknown;\n try {\n response = await provider.request({ method, params });\n } catch (error) {\n throwWithRpcContext(error, {\n method,\n networkClient,\n });\n }\n\n log(method, { params, response });\n\n return response;\n}\n\n/**\n * Get the network client ID for the specified chain or network client.\n *\n * @param request - The request object.\n * @param request.messenger - The TransactionController messenger.\n * @param request.chainId - The chain ID to resolve to a network client.\n * @param request.networkClientId - The network client ID to use directly.\n * @returns The network client ID.\n */\nexport function getNetworkClientId({\n messenger,\n chainId,\n networkClientId,\n}: {\n messenger: TransactionControllerMessenger;\n chainId?: Hex;\n networkClientId?: NetworkClientId;\n}): NetworkClientId {\n if (networkClientId) {\n return networkClientId;\n }\n\n if (chainId) {\n return messenger.call(\n 'NetworkController:findNetworkClientIdByChainId',\n chainId,\n );\n }\n\n throw new Error('Either chainId or networkClientId must be provided');\n}\n\n/**\n * Get the chain ID for the specified network client.\n *\n * @param request - The request object.\n * @param request.messenger - The TransactionController messenger.\n * @param request.networkClientId - The network client ID.\n * @returns The chain ID.\n */\nexport function getChainId({\n messenger,\n networkClientId,\n}: {\n messenger: TransactionControllerMessenger;\n networkClientId: NetworkClientId;\n}): Hex {\n return (\n messenger.call(\n 'NetworkController:getNetworkClientById',\n networkClientId,\n ) as {\n configuration: { chainId: Hex };\n }\n ).configuration.chainId;\n}\n\nfunction getNetworkClient(\n messenger: TransactionControllerMessenger,\n networkClientId: NetworkClientId,\n): NetworkClient {\n return messenger.call(\n 'NetworkController:getNetworkClientById',\n networkClientId,\n ) as NetworkClient;\n}\n\nfunction throwWithRpcContext(\n error: unknown,\n {\n method,\n networkClient,\n }: {\n method: string;\n networkClient: NetworkClient;\n },\n): never {\n const errorObject = error as {\n data?: { message?: string };\n message?: string;\n };\n const message = errorObject.data?.message ?? errorObject.message;\n const prefix = `RPC ${networkClient.configuration.chainId} ${getEndpointLabel(\n networkClient,\n )} ${method}`;\n const prefixedMessage = `${prefix}: ${message}`;\n\n errorObject.message = prefixedMessage;\n throw error;\n}\n\nfunction getEndpointLabel(networkClient: NetworkClient): 'Infura' | 'Custom' {\n return networkClient.configuration.type === NetworkClientType.Infura\n ? 'Infura'\n : 'Custom';\n}\n"]}
@@ -1,6 +1,6 @@
1
- import type { NetworkClientId, Provider } from '@metamask/network-controller';
2
- import type { Hex } from '@metamask/utils';
3
- import type { TransactionControllerMessenger } from '../TransactionController.js';
1
+ import type { NetworkClientId, Provider } from "@metamask/network-controller";
2
+ import type { Hex } from "@metamask/utils";
3
+ import type { TransactionControllerMessenger } from "../TransactionController.cjs";
4
4
  type ProviderRequestParams = Parameters<Provider['request']>[0]['params'];
5
5
  /**
6
6
  * Get a provider for the specified chain or network client.
@@ -62,4 +62,4 @@ export declare function getChainId({ messenger, networkClientId, }: {
62
62
  networkClientId: NetworkClientId;
63
63
  }): Hex;
64
64
  export {};
65
- //# sourceMappingURL=provider.d.ts.map
65
+ //# sourceMappingURL=provider.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.cts","sourceRoot":"","sources":["../../src/utils/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,eAAe,EACf,QAAQ,EACT,qCAAqC;AAEtC,OAAO,KAAK,EAAE,GAAG,EAAE,wBAAwB;AAG3C,OAAO,KAAK,EAAE,8BAA8B,EAAE,qCAAoC;AAIlF,KAAK,qBAAqB,GAAG,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AAE1E;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,EAC1B,SAAS,EACT,OAAO,EACP,eAAe,GAChB,EAAE;IACD,SAAS,EAAE,8BAA8B,CAAC;IAC1C,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC,GAAG,QAAQ,CAQX;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,UAAU,CAAC,EAC/B,SAAS,EACT,OAAO,EACP,eAAe,EACf,MAAM,EACN,MAAM,GACP,EAAE;IACD,SAAS,EAAE,8BAA8B,CAAC;IAC1C,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,qBAAqB,CAAC;CAChC,GAAG,OAAO,CAAC,OAAO,CAAC,CAuBnB;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,SAAS,EACT,OAAO,EACP,eAAe,GAChB,EAAE;IACD,SAAS,EAAE,8BAA8B,CAAC;IAC1C,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC,GAAG,eAAe,CAalB;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,eAAe,GAChB,EAAE;IACD,SAAS,EAAE,8BAA8B,CAAC;IAC1C,eAAe,EAAE,eAAe,CAAC;CAClC,GAAG,GAAG,CASN"}
@@ -0,0 +1,65 @@
1
+ import type { NetworkClientId, Provider } from "@metamask/network-controller";
2
+ import type { Hex } from "@metamask/utils";
3
+ import type { TransactionControllerMessenger } from "../TransactionController.mjs";
4
+ type ProviderRequestParams = Parameters<Provider['request']>[0]['params'];
5
+ /**
6
+ * Get a provider for the specified chain or network client.
7
+ * Resolves chainId to networkClientId if needed, then gets the provider.
8
+ *
9
+ * @param request - The request object.
10
+ * @param request.messenger - The TransactionController messenger.
11
+ * @param request.chainId - The chain ID to resolve to a network client.
12
+ * @param request.networkClientId - The network client ID to use directly.
13
+ * @returns The Provider instance.
14
+ */
15
+ export declare function getProvider({ messenger, chainId, networkClientId, }: {
16
+ messenger: TransactionControllerMessenger;
17
+ chainId?: Hex;
18
+ networkClientId?: NetworkClientId;
19
+ }): Provider;
20
+ /**
21
+ * Send an RPC request to the network for the specified chain or network client.
22
+ *
23
+ * @param request - The request object.
24
+ * @param request.messenger - The TransactionController messenger.
25
+ * @param request.chainId - The chain ID to resolve to a network client.
26
+ * @param request.networkClientId - The network client ID to use directly.
27
+ * @param request.method - The JSON-RPC method name.
28
+ * @param request.params - Optional parameters for the RPC call.
29
+ * @returns The RPC response.
30
+ */
31
+ export declare function rpcRequest({ messenger, chainId, networkClientId, method, params, }: {
32
+ messenger: TransactionControllerMessenger;
33
+ chainId?: Hex;
34
+ networkClientId?: NetworkClientId;
35
+ method: string;
36
+ params?: ProviderRequestParams;
37
+ }): Promise<unknown>;
38
+ /**
39
+ * Get the network client ID for the specified chain or network client.
40
+ *
41
+ * @param request - The request object.
42
+ * @param request.messenger - The TransactionController messenger.
43
+ * @param request.chainId - The chain ID to resolve to a network client.
44
+ * @param request.networkClientId - The network client ID to use directly.
45
+ * @returns The network client ID.
46
+ */
47
+ export declare function getNetworkClientId({ messenger, chainId, networkClientId, }: {
48
+ messenger: TransactionControllerMessenger;
49
+ chainId?: Hex;
50
+ networkClientId?: NetworkClientId;
51
+ }): NetworkClientId;
52
+ /**
53
+ * Get the chain ID for the specified network client.
54
+ *
55
+ * @param request - The request object.
56
+ * @param request.messenger - The TransactionController messenger.
57
+ * @param request.networkClientId - The network client ID.
58
+ * @returns The chain ID.
59
+ */
60
+ export declare function getChainId({ messenger, networkClientId, }: {
61
+ messenger: TransactionControllerMessenger;
62
+ networkClientId: NetworkClientId;
63
+ }): Hex;
64
+ export {};
65
+ //# sourceMappingURL=provider.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.mts","sourceRoot":"","sources":["../../src/utils/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,eAAe,EACf,QAAQ,EACT,qCAAqC;AAEtC,OAAO,KAAK,EAAE,GAAG,EAAE,wBAAwB;AAG3C,OAAO,KAAK,EAAE,8BAA8B,EAAE,qCAAoC;AAIlF,KAAK,qBAAqB,GAAG,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AAE1E;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,EAC1B,SAAS,EACT,OAAO,EACP,eAAe,GAChB,EAAE;IACD,SAAS,EAAE,8BAA8B,CAAC;IAC1C,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC,GAAG,QAAQ,CAQX;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,UAAU,CAAC,EAC/B,SAAS,EACT,OAAO,EACP,eAAe,EACf,MAAM,EACN,MAAM,GACP,EAAE;IACD,SAAS,EAAE,8BAA8B,CAAC;IAC1C,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,qBAAqB,CAAC;CAChC,GAAG,OAAO,CAAC,OAAO,CAAC,CAuBnB;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,SAAS,EACT,OAAO,EACP,eAAe,GAChB,EAAE;IACD,SAAS,EAAE,8BAA8B,CAAC;IAC1C,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC,GAAG,eAAe,CAalB;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,eAAe,GAChB,EAAE;IACD,SAAS,EAAE,8BAA8B,CAAC;IAC1C,eAAe,EAAE,eAAe,CAAC;CAClC,GAAG,GAAG,CASN"}
@@ -1,5 +1,5 @@
1
- import { NetworkClientType } from '@metamask/network-controller';
2
- import { createModuleLogger, projectLogger } from '../logger.js';
1
+ import { NetworkClientType } from "@metamask/network-controller";
2
+ import { createModuleLogger, projectLogger } from "../logger.mjs";
3
3
  const log = createModuleLogger(projectLogger, 'provider');
4
4
  /**
5
5
  * Get a provider for the specified chain or network client.
@@ -96,4 +96,4 @@ function getEndpointLabel(networkClient) {
96
96
  ? 'Infura'
97
97
  : 'Custom';
98
98
  }
99
- //# sourceMappingURL=provider.js.map
99
+ //# sourceMappingURL=provider.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.mjs","sourceRoot":"","sources":["../../src/utils/provider.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n NetworkClient,\n NetworkClientId,\n Provider,\n} from '@metamask/network-controller';\nimport { NetworkClientType } from '@metamask/network-controller';\nimport type { Hex } from '@metamask/utils';\n\nimport { createModuleLogger, projectLogger } from '../logger.js';\nimport type { TransactionControllerMessenger } from '../TransactionController.js';\n\nconst log = createModuleLogger(projectLogger, 'provider');\n\ntype ProviderRequestParams = Parameters<Provider['request']>[0]['params'];\n\n/**\n * Get a provider for the specified chain or network client.\n * Resolves chainId to networkClientId if needed, then gets the provider.\n *\n * @param request - The request object.\n * @param request.messenger - The TransactionController messenger.\n * @param request.chainId - The chain ID to resolve to a network client.\n * @param request.networkClientId - The network client ID to use directly.\n * @returns The Provider instance.\n */\nexport function getProvider({\n messenger,\n chainId,\n networkClientId,\n}: {\n messenger: TransactionControllerMessenger;\n chainId?: Hex;\n networkClientId?: NetworkClientId;\n}): Provider {\n const resolvedId = getNetworkClientId({\n messenger,\n chainId,\n networkClientId,\n });\n\n return getNetworkClient(messenger, resolvedId).provider;\n}\n\n/**\n * Send an RPC request to the network for the specified chain or network client.\n *\n * @param request - The request object.\n * @param request.messenger - The TransactionController messenger.\n * @param request.chainId - The chain ID to resolve to a network client.\n * @param request.networkClientId - The network client ID to use directly.\n * @param request.method - The JSON-RPC method name.\n * @param request.params - Optional parameters for the RPC call.\n * @returns The RPC response.\n */\nexport async function rpcRequest({\n messenger,\n chainId,\n networkClientId,\n method,\n params,\n}: {\n messenger: TransactionControllerMessenger;\n chainId?: Hex;\n networkClientId?: NetworkClientId;\n method: string;\n params?: ProviderRequestParams;\n}): Promise<unknown> {\n const resolvedNetworkClientId = getNetworkClientId({\n messenger,\n chainId,\n networkClientId,\n });\n\n const networkClient = getNetworkClient(messenger, resolvedNetworkClientId);\n const { provider } = networkClient;\n\n let response: unknown;\n try {\n response = await provider.request({ method, params });\n } catch (error) {\n throwWithRpcContext(error, {\n method,\n networkClient,\n });\n }\n\n log(method, { params, response });\n\n return response;\n}\n\n/**\n * Get the network client ID for the specified chain or network client.\n *\n * @param request - The request object.\n * @param request.messenger - The TransactionController messenger.\n * @param request.chainId - The chain ID to resolve to a network client.\n * @param request.networkClientId - The network client ID to use directly.\n * @returns The network client ID.\n */\nexport function getNetworkClientId({\n messenger,\n chainId,\n networkClientId,\n}: {\n messenger: TransactionControllerMessenger;\n chainId?: Hex;\n networkClientId?: NetworkClientId;\n}): NetworkClientId {\n if (networkClientId) {\n return networkClientId;\n }\n\n if (chainId) {\n return messenger.call(\n 'NetworkController:findNetworkClientIdByChainId',\n chainId,\n );\n }\n\n throw new Error('Either chainId or networkClientId must be provided');\n}\n\n/**\n * Get the chain ID for the specified network client.\n *\n * @param request - The request object.\n * @param request.messenger - The TransactionController messenger.\n * @param request.networkClientId - The network client ID.\n * @returns The chain ID.\n */\nexport function getChainId({\n messenger,\n networkClientId,\n}: {\n messenger: TransactionControllerMessenger;\n networkClientId: NetworkClientId;\n}): Hex {\n return (\n messenger.call(\n 'NetworkController:getNetworkClientById',\n networkClientId,\n ) as {\n configuration: { chainId: Hex };\n }\n ).configuration.chainId;\n}\n\nfunction getNetworkClient(\n messenger: TransactionControllerMessenger,\n networkClientId: NetworkClientId,\n): NetworkClient {\n return messenger.call(\n 'NetworkController:getNetworkClientById',\n networkClientId,\n ) as NetworkClient;\n}\n\nfunction throwWithRpcContext(\n error: unknown,\n {\n method,\n networkClient,\n }: {\n method: string;\n networkClient: NetworkClient;\n },\n): never {\n const errorObject = error as {\n data?: { message?: string };\n message?: string;\n };\n const message = errorObject.data?.message ?? errorObject.message;\n const prefix = `RPC ${networkClient.configuration.chainId} ${getEndpointLabel(\n networkClient,\n )} ${method}`;\n const prefixedMessage = `${prefix}: ${message}`;\n\n errorObject.message = prefixedMessage;\n throw error;\n}\n\nfunction getEndpointLabel(networkClient: NetworkClient): 'Infura' | 'Custom' {\n return networkClient.configuration.type === NetworkClientType.Infura\n ? 'Infura'\n : 'Custom';\n}\n"]}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getEffectiveRecipient = void 0;
4
+ const types_js_1 = require("../types.cjs");
5
+ const transaction_type_js_1 = require("./transaction-type.cjs");
6
+ const TOKEN_TRANSFER_TYPES = [
7
+ types_js_1.TransactionType.tokenMethodTransfer,
8
+ types_js_1.TransactionType.tokenMethodTransferFrom,
9
+ types_js_1.TransactionType.tokenMethodSafeTransferFrom,
10
+ ];
11
+ /**
12
+ * Returns the effective recipient of a transaction.
13
+ * For ERC-20/ERC-721/ERC-1155 token transfer methods, the recipient is decoded
14
+ * from the calldata since `txParams.to` is the token contract rather than the
15
+ * address receiving the tokens. For all other transaction types, `txParams.to`
16
+ * is returned as-is.
17
+ *
18
+ * @param transactionMeta - Transaction meta with txParams and type.
19
+ * @returns Effective recipient address, or undefined.
20
+ */
21
+ function getEffectiveRecipient(transactionMeta) {
22
+ const { data, to } = transactionMeta?.txParams ?? {};
23
+ if (data &&
24
+ TOKEN_TRANSFER_TYPES.includes(transactionMeta?.type)) {
25
+ const parsed = (0, transaction_type_js_1.decodeTransactionData)(data);
26
+ return (parsed?.args?._to ?? parsed?.args?.to ?? to);
27
+ }
28
+ return to;
29
+ }
30
+ exports.getEffectiveRecipient = getEffectiveRecipient;
31
+ //# sourceMappingURL=recipient.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recipient.cjs","sourceRoot":"","sources":["../../src/utils/recipient.ts"],"names":[],"mappings":";;;AAEA,2CAA8C;AAE9C,gEAA8D;AAE9D,MAAM,oBAAoB,GAAG;IAC3B,0BAAe,CAAC,mBAAmB;IACnC,0BAAe,CAAC,uBAAuB;IACvC,0BAAe,CAAC,2BAA2B;CAC5C,CAAC;AAEF;;;;;;;;;GASG;AACH,SAAgB,qBAAqB,CACnC,eAAgC;IAEhC,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,eAAe,EAAE,QAAQ,IAAI,EAAE,CAAC;IACrD,IACE,IAAI;QACJ,oBAAoB,CAAC,QAAQ,CAAC,eAAe,EAAE,IAAuB,CAAC,EACvE,CAAC;QACD,MAAM,MAAM,GAAG,IAAA,2CAAqB,EAAC,IAAI,CAA2B,CAAC;QACrE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAuB,CAAC;IAC7E,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAZD,sDAYC","sourcesContent":["import type { TransactionDescription } from '@ethersproject/abi';\n\nimport { TransactionType } from '../types.js';\nimport type { TransactionMeta } from '../types.js';\nimport { decodeTransactionData } from './transaction-type.js';\n\nconst TOKEN_TRANSFER_TYPES = [\n TransactionType.tokenMethodTransfer,\n TransactionType.tokenMethodTransferFrom,\n TransactionType.tokenMethodSafeTransferFrom,\n];\n\n/**\n * Returns the effective recipient of a transaction.\n * For ERC-20/ERC-721/ERC-1155 token transfer methods, the recipient is decoded\n * from the calldata since `txParams.to` is the token contract rather than the\n * address receiving the tokens. For all other transaction types, `txParams.to`\n * is returned as-is.\n *\n * @param transactionMeta - Transaction meta with txParams and type.\n * @returns Effective recipient address, or undefined.\n */\nexport function getEffectiveRecipient(\n transactionMeta: TransactionMeta,\n): string | undefined {\n const { data, to } = transactionMeta?.txParams ?? {};\n if (\n data &&\n TOKEN_TRANSFER_TYPES.includes(transactionMeta?.type as TransactionType)\n ) {\n const parsed = decodeTransactionData(data) as TransactionDescription;\n return (parsed?.args?._to ?? parsed?.args?.to ?? to) as string | undefined;\n }\n return to;\n}\n"]}
@@ -1,4 +1,4 @@
1
- import type { TransactionMeta } from '../types.js';
1
+ import type { TransactionMeta } from "../types.cjs";
2
2
  /**
3
3
  * Returns the effective recipient of a transaction.
4
4
  * For ERC-20/ERC-721/ERC-1155 token transfer methods, the recipient is decoded
@@ -10,4 +10,4 @@ import type { TransactionMeta } from '../types.js';
10
10
  * @returns Effective recipient address, or undefined.
11
11
  */
12
12
  export declare function getEffectiveRecipient(transactionMeta: TransactionMeta): string | undefined;
13
- //# sourceMappingURL=recipient.d.ts.map
13
+ //# sourceMappingURL=recipient.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recipient.d.cts","sourceRoot":"","sources":["../../src/utils/recipient.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,qBAAoB;AASnD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,eAAe,EAAE,eAAe,GAC/B,MAAM,GAAG,SAAS,CAUpB"}
@@ -0,0 +1,13 @@
1
+ import type { TransactionMeta } from "../types.mjs";
2
+ /**
3
+ * Returns the effective recipient of a transaction.
4
+ * For ERC-20/ERC-721/ERC-1155 token transfer methods, the recipient is decoded
5
+ * from the calldata since `txParams.to` is the token contract rather than the
6
+ * address receiving the tokens. For all other transaction types, `txParams.to`
7
+ * is returned as-is.
8
+ *
9
+ * @param transactionMeta - Transaction meta with txParams and type.
10
+ * @returns Effective recipient address, or undefined.
11
+ */
12
+ export declare function getEffectiveRecipient(transactionMeta: TransactionMeta): string | undefined;
13
+ //# sourceMappingURL=recipient.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recipient.d.mts","sourceRoot":"","sources":["../../src/utils/recipient.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,qBAAoB;AASnD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,eAAe,EAAE,eAAe,GAC/B,MAAM,GAAG,SAAS,CAUpB"}
@@ -1,5 +1,5 @@
1
- import { TransactionType } from '../types.js';
2
- import { decodeTransactionData } from './transaction-type.js';
1
+ import { TransactionType } from "../types.mjs";
2
+ import { decodeTransactionData } from "./transaction-type.mjs";
3
3
  const TOKEN_TRANSFER_TYPES = [
4
4
  TransactionType.tokenMethodTransfer,
5
5
  TransactionType.tokenMethodTransferFrom,
@@ -24,4 +24,4 @@ export function getEffectiveRecipient(transactionMeta) {
24
24
  }
25
25
  return to;
26
26
  }
27
- //# sourceMappingURL=recipient.js.map
27
+ //# sourceMappingURL=recipient.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recipient.mjs","sourceRoot":"","sources":["../../src/utils/recipient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,qBAAoB;AAE9C,OAAO,EAAE,qBAAqB,EAAE,+BAA8B;AAE9D,MAAM,oBAAoB,GAAG;IAC3B,eAAe,CAAC,mBAAmB;IACnC,eAAe,CAAC,uBAAuB;IACvC,eAAe,CAAC,2BAA2B;CAC5C,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB,CACnC,eAAgC;IAEhC,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,eAAe,EAAE,QAAQ,IAAI,EAAE,CAAC;IACrD,IACE,IAAI;QACJ,oBAAoB,CAAC,QAAQ,CAAC,eAAe,EAAE,IAAuB,CAAC,EACvE,CAAC;QACD,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,CAA2B,CAAC;QACrE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAuB,CAAC;IAC7E,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC","sourcesContent":["import type { TransactionDescription } from '@ethersproject/abi';\n\nimport { TransactionType } from '../types.js';\nimport type { TransactionMeta } from '../types.js';\nimport { decodeTransactionData } from './transaction-type.js';\n\nconst TOKEN_TRANSFER_TYPES = [\n TransactionType.tokenMethodTransfer,\n TransactionType.tokenMethodTransferFrom,\n TransactionType.tokenMethodSafeTransferFrom,\n];\n\n/**\n * Returns the effective recipient of a transaction.\n * For ERC-20/ERC-721/ERC-1155 token transfer methods, the recipient is decoded\n * from the calldata since `txParams.to` is the token contract rather than the\n * address receiving the tokens. For all other transaction types, `txParams.to`\n * is returned as-is.\n *\n * @param transactionMeta - Transaction meta with txParams and type.\n * @returns Effective recipient address, or undefined.\n */\nexport function getEffectiveRecipient(\n transactionMeta: TransactionMeta,\n): string | undefined {\n const { data, to } = transactionMeta?.txParams ?? {};\n if (\n data &&\n TOKEN_TRANSFER_TYPES.includes(transactionMeta?.type as TransactionType)\n ) {\n const parsed = decodeTransactionData(data) as TransactionDescription;\n return (parsed?.args?._to ?? parsed?.args?.to ?? to) as string | undefined;\n }\n return to;\n}\n"]}
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTransactionParamsWithIncreasedGasFee = void 0;
4
+ const controller_utils_1 = require("@metamask/controller-utils");
5
+ const utils_1 = require("@metamask/utils");
6
+ /**
7
+ * Returns new transaction parameters with increased gas fees.
8
+ *
9
+ * @param originalTransactionParams - The original transaction parameters.
10
+ * @param rate - The rate by which to increase the existing gas fee properties.
11
+ * @param newGasValues - Optional new gas values to use instead of increased the existing values.
12
+ * @returns The new transaction parameters with the increased gas fee properties.
13
+ */
14
+ function getTransactionParamsWithIncreasedGasFee(originalTransactionParams, rate, newGasValues) {
15
+ const newGasPrice = getIncreasedGasPrice(originalTransactionParams, rate, newGasValues);
16
+ const new1559Values = getIncreased1559Values(originalTransactionParams, rate, newGasValues);
17
+ if (new1559Values) {
18
+ const newTxParams = {
19
+ ...originalTransactionParams,
20
+ ...new1559Values,
21
+ };
22
+ delete newTxParams.gasPrice;
23
+ return newTxParams;
24
+ }
25
+ if (newGasPrice) {
26
+ const newTxParams = {
27
+ ...originalTransactionParams,
28
+ gasPrice: newGasPrice,
29
+ };
30
+ delete newTxParams.maxFeePerGas;
31
+ delete newTxParams.maxPriorityFeePerGas;
32
+ return newTxParams;
33
+ }
34
+ throw new Error('Cannot increase gas fee as no current values and no new values were provided');
35
+ }
36
+ exports.getTransactionParamsWithIncreasedGasFee = getTransactionParamsWithIncreasedGasFee;
37
+ /**
38
+ * Generate the increased EIP-1559 gas properties.
39
+ *
40
+ * @param originalTransactionParams - The original transaction parameters.
41
+ * @param rate - The rate by which to increase the existing gas fee properties.
42
+ * @param newGasValues - Optional new gas values to use instead of increased the existing values.
43
+ * @returns The new EIP-1559 gas properties.
44
+ */
45
+ function getIncreased1559Values(originalTransactionParams, rate, newGasValues) {
46
+ if (newGasValues &&
47
+ 'maxFeePerGas' in newGasValues &&
48
+ 'maxPriorityFeePerGas' in newGasValues) {
49
+ return newGasValues;
50
+ }
51
+ const currentMaxFeePerGas = originalTransactionParams.maxFeePerGas;
52
+ const currentMaxPriorityFeePerGas = originalTransactionParams.maxPriorityFeePerGas;
53
+ if (!currentMaxFeePerGas ||
54
+ !currentMaxPriorityFeePerGas ||
55
+ currentMaxFeePerGas === '0x0' ||
56
+ currentMaxPriorityFeePerGas === '0x0') {
57
+ return undefined;
58
+ }
59
+ const maxFeePerGas = multiplyHex(currentMaxFeePerGas, rate);
60
+ const maxPriorityFeePerGas = multiplyHex(currentMaxPriorityFeePerGas, rate);
61
+ return { maxFeePerGas, maxPriorityFeePerGas };
62
+ }
63
+ /**
64
+ * Generate the increased gas price.
65
+ *
66
+ * @param originalTransactionParams - The original transaction parameters.
67
+ * @param rate - The rate by which to increase the existing gas fee properties.
68
+ * @param newGasValues - Optional new gas values to use instead of increased the existing values.
69
+ * @returns The new gas price.
70
+ */
71
+ function getIncreasedGasPrice(originalTransactionParams, rate, newGasValues) {
72
+ if (newGasValues && 'gasPrice' in newGasValues) {
73
+ return newGasValues.gasPrice;
74
+ }
75
+ const currentGasPrice = originalTransactionParams.gasPrice;
76
+ if (!currentGasPrice || currentGasPrice === '0x0') {
77
+ return undefined;
78
+ }
79
+ return multiplyHex(currentGasPrice, rate);
80
+ }
81
+ /**
82
+ * Multiply a hex value by a multiplier.
83
+ *
84
+ * @param value - The hex value to multiply.
85
+ * @param multiplier - The multiplier.
86
+ * @returns The multiplied hex value.
87
+ */
88
+ function multiplyHex(value, multiplier) {
89
+ const decimalValue = (0, controller_utils_1.convertHexToDecimal)(value);
90
+ const decimalResult = parseInt(`${decimalValue * multiplier}`, 10);
91
+ return (0, utils_1.add0x)(decimalResult.toString(16));
92
+ }
93
+ //# sourceMappingURL=retry.cjs.map