viem 2.20.1 → 2.21.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (429) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +12 -0
  3. package/_cjs/actions/public/estimateFeesPerGas.js.map +1 -1
  4. package/_cjs/actions/public/estimateMaxPriorityFeePerGas.js +14 -10
  5. package/_cjs/actions/public/estimateMaxPriorityFeePerGas.js.map +1 -1
  6. package/_cjs/actions/wallet/prepareTransactionRequest.js +3 -3
  7. package/_cjs/actions/wallet/prepareTransactionRequest.js.map +1 -1
  8. package/_cjs/actions/wallet/sendTransaction.js +1 -0
  9. package/_cjs/actions/wallet/sendTransaction.js.map +1 -1
  10. package/_cjs/chains/definitions/fluence.js +23 -0
  11. package/_cjs/chains/definitions/fluence.js.map +1 -0
  12. package/_cjs/chains/definitions/fluenceStage.js +24 -0
  13. package/_cjs/chains/definitions/fluenceStage.js.map +1 -0
  14. package/_cjs/chains/definitions/fluenceTestnet.js +24 -0
  15. package/_cjs/chains/definitions/fluenceTestnet.js.map +1 -0
  16. package/_cjs/chains/definitions/linea.js +2 -0
  17. package/_cjs/chains/definitions/linea.js.map +1 -1
  18. package/_cjs/chains/definitions/lineaSepolia.js +2 -0
  19. package/_cjs/chains/definitions/lineaSepolia.js.map +1 -1
  20. package/_cjs/chains/definitions/soneiumMinato.js +29 -0
  21. package/_cjs/chains/definitions/soneiumMinato.js.map +1 -0
  22. package/_cjs/chains/definitions/sophonTestnet.js +3 -1
  23. package/_cjs/chains/definitions/sophonTestnet.js.map +1 -1
  24. package/_cjs/chains/definitions/storyTestnet.js +24 -0
  25. package/_cjs/chains/definitions/storyTestnet.js.map +1 -0
  26. package/_cjs/chains/definitions/tron.js +22 -0
  27. package/_cjs/chains/definitions/tron.js.map +1 -0
  28. package/_cjs/chains/index.js +17 -5
  29. package/_cjs/chains/index.js.map +1 -1
  30. package/_cjs/errors/node.js +1 -1
  31. package/_cjs/errors/node.js.map +1 -1
  32. package/_cjs/errors/version.js +1 -1
  33. package/_cjs/index.js.map +1 -1
  34. package/_cjs/linea/actions/estimateGas.js +57 -0
  35. package/_cjs/linea/actions/estimateGas.js.map +1 -0
  36. package/_cjs/linea/chainConfig.js +42 -0
  37. package/_cjs/linea/chainConfig.js.map +1 -0
  38. package/_cjs/linea/chains.js +8 -0
  39. package/_cjs/linea/chains.js.map +1 -0
  40. package/_cjs/linea/index.js +9 -0
  41. package/_cjs/linea/index.js.map +1 -0
  42. package/_cjs/linea/types/rpc.js +3 -0
  43. package/_cjs/linea/types/rpc.js.map +1 -0
  44. package/_cjs/zksync/actions/sendEip712Transaction.js +1 -0
  45. package/_cjs/zksync/actions/sendEip712Transaction.js.map +1 -1
  46. package/_cjs/zksync/index.js +5 -1
  47. package/_cjs/zksync/index.js.map +1 -1
  48. package/_esm/actions/public/estimateFeesPerGas.js.map +1 -1
  49. package/_esm/actions/public/estimateMaxPriorityFeePerGas.js +14 -10
  50. package/_esm/actions/public/estimateMaxPriorityFeePerGas.js.map +1 -1
  51. package/_esm/actions/wallet/prepareTransactionRequest.js +3 -3
  52. package/_esm/actions/wallet/prepareTransactionRequest.js.map +1 -1
  53. package/_esm/actions/wallet/sendTransaction.js +1 -0
  54. package/_esm/actions/wallet/sendTransaction.js.map +1 -1
  55. package/_esm/chains/definitions/fluence.js +20 -0
  56. package/_esm/chains/definitions/fluence.js.map +1 -0
  57. package/_esm/chains/definitions/fluenceStage.js +21 -0
  58. package/_esm/chains/definitions/fluenceStage.js.map +1 -0
  59. package/_esm/chains/definitions/fluenceTestnet.js +21 -0
  60. package/_esm/chains/definitions/fluenceTestnet.js.map +1 -0
  61. package/_esm/chains/definitions/linea.js +2 -0
  62. package/_esm/chains/definitions/linea.js.map +1 -1
  63. package/_esm/chains/definitions/lineaSepolia.js +2 -0
  64. package/_esm/chains/definitions/lineaSepolia.js.map +1 -1
  65. package/_esm/chains/definitions/soneiumMinato.js +26 -0
  66. package/_esm/chains/definitions/soneiumMinato.js.map +1 -0
  67. package/_esm/chains/definitions/sophonTestnet.js +3 -1
  68. package/_esm/chains/definitions/sophonTestnet.js.map +1 -1
  69. package/_esm/chains/definitions/storyTestnet.js +21 -0
  70. package/_esm/chains/definitions/storyTestnet.js.map +1 -0
  71. package/_esm/chains/definitions/tron.js +19 -0
  72. package/_esm/chains/definitions/tron.js.map +1 -0
  73. package/_esm/chains/index.js +6 -0
  74. package/_esm/chains/index.js.map +1 -1
  75. package/_esm/errors/node.js +1 -1
  76. package/_esm/errors/node.js.map +1 -1
  77. package/_esm/errors/version.js +1 -1
  78. package/_esm/index.js.map +1 -1
  79. package/_esm/linea/actions/estimateGas.js +77 -0
  80. package/_esm/linea/actions/estimateGas.js.map +1 -0
  81. package/_esm/linea/chainConfig.js +46 -0
  82. package/_esm/linea/chainConfig.js.map +1 -0
  83. package/_esm/linea/chains.js +4 -0
  84. package/_esm/linea/chains.js.map +1 -0
  85. package/_esm/linea/index.js +4 -0
  86. package/_esm/linea/index.js.map +1 -0
  87. package/_esm/linea/types/rpc.js +2 -0
  88. package/_esm/linea/types/rpc.js.map +1 -0
  89. package/_esm/zksync/actions/sendEip712Transaction.js +1 -0
  90. package/_esm/zksync/actions/sendEip712Transaction.js.map +1 -1
  91. package/_esm/zksync/index.js +2 -0
  92. package/_esm/zksync/index.js.map +1 -1
  93. package/_types/actions/public/estimateFeesPerGas.d.ts +2 -1
  94. package/_types/actions/public/estimateFeesPerGas.d.ts.map +1 -1
  95. package/_types/actions/public/estimateMaxPriorityFeePerGas.d.ts.map +1 -1
  96. package/_types/actions/wallet/prepareTransactionRequest.d.ts +10 -0
  97. package/_types/actions/wallet/prepareTransactionRequest.d.ts.map +1 -1
  98. package/_types/actions/wallet/sendTransaction.d.ts.map +1 -1
  99. package/_types/chains/definitions/abstractTestnet.d.ts +5 -4
  100. package/_types/chains/definitions/abstractTestnet.d.ts.map +1 -1
  101. package/_types/chains/definitions/acala.d.ts +4 -3
  102. package/_types/chains/definitions/acala.d.ts.map +1 -1
  103. package/_types/chains/definitions/anvil.d.ts +4 -3
  104. package/_types/chains/definitions/anvil.d.ts.map +1 -1
  105. package/_types/chains/definitions/areonNetwork.d.ts +4 -3
  106. package/_types/chains/definitions/areonNetwork.d.ts.map +1 -1
  107. package/_types/chains/definitions/areonNetworkTestnet.d.ts +4 -3
  108. package/_types/chains/definitions/areonNetworkTestnet.d.ts.map +1 -1
  109. package/_types/chains/definitions/auroraTestnet.d.ts +4 -3
  110. package/_types/chains/definitions/auroraTestnet.d.ts.map +1 -1
  111. package/_types/chains/definitions/auroria.d.ts +4 -3
  112. package/_types/chains/definitions/auroria.d.ts.map +1 -1
  113. package/_types/chains/definitions/b3.d.ts +4 -3
  114. package/_types/chains/definitions/b3.d.ts.map +1 -1
  115. package/_types/chains/definitions/b3Sepolia.d.ts +4 -3
  116. package/_types/chains/definitions/b3Sepolia.d.ts.map +1 -1
  117. package/_types/chains/definitions/bahamut.d.ts +4 -3
  118. package/_types/chains/definitions/bahamut.d.ts.map +1 -1
  119. package/_types/chains/definitions/bearNetworkChainMainnet.d.ts +4 -3
  120. package/_types/chains/definitions/bearNetworkChainMainnet.d.ts.map +1 -1
  121. package/_types/chains/definitions/bearNetworkChainTestnet.d.ts +4 -3
  122. package/_types/chains/definitions/bearNetworkChainTestnet.d.ts.map +1 -1
  123. package/_types/chains/definitions/berachainTestnet.d.ts +4 -3
  124. package/_types/chains/definitions/berachainTestnet.d.ts.map +1 -1
  125. package/_types/chains/definitions/bevmMainnet.d.ts +4 -3
  126. package/_types/chains/definitions/bevmMainnet.d.ts.map +1 -1
  127. package/_types/chains/definitions/bitTorrentTestnet.d.ts +4 -3
  128. package/_types/chains/definitions/bitTorrentTestnet.d.ts.map +1 -1
  129. package/_types/chains/definitions/bitkub.d.ts +4 -3
  130. package/_types/chains/definitions/bitkub.d.ts.map +1 -1
  131. package/_types/chains/definitions/bitkubTestnet.d.ts +4 -3
  132. package/_types/chains/definitions/bitkubTestnet.d.ts.map +1 -1
  133. package/_types/chains/definitions/bobaSepolia.d.ts +4 -3
  134. package/_types/chains/definitions/bobaSepolia.d.ts.map +1 -1
  135. package/_types/chains/definitions/botanixTestnet.d.ts +4 -3
  136. package/_types/chains/definitions/botanixTestnet.d.ts.map +1 -1
  137. package/_types/chains/definitions/bronos.d.ts +4 -3
  138. package/_types/chains/definitions/bronos.d.ts.map +1 -1
  139. package/_types/chains/definitions/bronosTestnet.d.ts +4 -3
  140. package/_types/chains/definitions/bronosTestnet.d.ts.map +1 -1
  141. package/_types/chains/definitions/bscGreenfield.d.ts +4 -3
  142. package/_types/chains/definitions/bscGreenfield.d.ts.map +1 -1
  143. package/_types/chains/definitions/btr.d.ts +4 -3
  144. package/_types/chains/definitions/btr.d.ts.map +1 -1
  145. package/_types/chains/definitions/btrTestnet.d.ts +4 -3
  146. package/_types/chains/definitions/btrTestnet.d.ts.map +1 -1
  147. package/_types/chains/definitions/bxn.d.ts +4 -3
  148. package/_types/chains/definitions/bxn.d.ts.map +1 -1
  149. package/_types/chains/definitions/bxnTestnet.d.ts +4 -3
  150. package/_types/chains/definitions/bxnTestnet.d.ts.map +1 -1
  151. package/_types/chains/definitions/chiliz.d.ts +4 -3
  152. package/_types/chains/definitions/chiliz.d.ts.map +1 -1
  153. package/_types/chains/definitions/chips.d.ts +4 -3
  154. package/_types/chains/definitions/chips.d.ts.map +1 -1
  155. package/_types/chains/definitions/classic.d.ts +4 -3
  156. package/_types/chains/definitions/classic.d.ts.map +1 -1
  157. package/_types/chains/definitions/cronoszkEVM.d.ts +4 -3
  158. package/_types/chains/definitions/cronoszkEVM.d.ts.map +1 -1
  159. package/_types/chains/definitions/cronoszkEVMTestnet.d.ts +4 -3
  160. package/_types/chains/definitions/cronoszkEVMTestnet.d.ts.map +1 -1
  161. package/_types/chains/definitions/curtis.d.ts +4 -3
  162. package/_types/chains/definitions/curtis.d.ts.map +1 -1
  163. package/_types/chains/definitions/degen.d.ts +4 -3
  164. package/_types/chains/definitions/degen.d.ts.map +1 -1
  165. package/_types/chains/definitions/dodochainTestnet.d.ts +4 -3
  166. package/_types/chains/definitions/dodochainTestnet.d.ts.map +1 -1
  167. package/_types/chains/definitions/dreyerxMainnet.d.ts +4 -3
  168. package/_types/chains/definitions/dreyerxMainnet.d.ts.map +1 -1
  169. package/_types/chains/definitions/dreyerxTestnet.d.ts +4 -3
  170. package/_types/chains/definitions/dreyerxTestnet.d.ts.map +1 -1
  171. package/_types/chains/definitions/edgeless.d.ts +4 -3
  172. package/_types/chains/definitions/edgeless.d.ts.map +1 -1
  173. package/_types/chains/definitions/edgelessTestnet.d.ts +4 -3
  174. package/_types/chains/definitions/edgelessTestnet.d.ts.map +1 -1
  175. package/_types/chains/definitions/edgewareTestnet.d.ts +4 -3
  176. package/_types/chains/definitions/edgewareTestnet.d.ts.map +1 -1
  177. package/_types/chains/definitions/ekta.d.ts +4 -3
  178. package/_types/chains/definitions/ekta.d.ts.map +1 -1
  179. package/_types/chains/definitions/ektaTestnet.d.ts +4 -3
  180. package/_types/chains/definitions/ektaTestnet.d.ts.map +1 -1
  181. package/_types/chains/definitions/etherlinkTestnet.d.ts +4 -3
  182. package/_types/chains/definitions/etherlinkTestnet.d.ts.map +1 -1
  183. package/_types/chains/definitions/evmos.d.ts +4 -3
  184. package/_types/chains/definitions/evmos.d.ts.map +1 -1
  185. package/_types/chains/definitions/evmosTestnet.d.ts +4 -3
  186. package/_types/chains/definitions/evmosTestnet.d.ts.map +1 -1
  187. package/_types/chains/definitions/fantomSonicTestnet.d.ts +4 -3
  188. package/_types/chains/definitions/fantomSonicTestnet.d.ts.map +1 -1
  189. package/_types/chains/definitions/fibo.d.ts +4 -3
  190. package/_types/chains/definitions/fibo.d.ts.map +1 -1
  191. package/_types/chains/definitions/filecoinCalibration.d.ts +4 -3
  192. package/_types/chains/definitions/filecoinCalibration.d.ts.map +1 -1
  193. package/_types/chains/definitions/filecoinHyperspace.d.ts +4 -3
  194. package/_types/chains/definitions/filecoinHyperspace.d.ts.map +1 -1
  195. package/_types/chains/definitions/flare.d.ts +4 -3
  196. package/_types/chains/definitions/flare.d.ts.map +1 -1
  197. package/_types/chains/definitions/flareTestnet.d.ts +4 -3
  198. package/_types/chains/definitions/flareTestnet.d.ts.map +1 -1
  199. package/_types/chains/definitions/flowMainnet.d.ts +4 -3
  200. package/_types/chains/definitions/flowMainnet.d.ts.map +1 -1
  201. package/_types/chains/definitions/fluence.d.ts +38 -0
  202. package/_types/chains/definitions/fluence.d.ts.map +1 -0
  203. package/_types/chains/definitions/fluenceStage.d.ts +38 -0
  204. package/_types/chains/definitions/fluenceStage.d.ts.map +1 -0
  205. package/_types/chains/definitions/fluenceTestnet.d.ts +38 -0
  206. package/_types/chains/definitions/fluenceTestnet.d.ts.map +1 -0
  207. package/_types/chains/definitions/foundry.d.ts +4 -3
  208. package/_types/chains/definitions/foundry.d.ts.map +1 -1
  209. package/_types/chains/definitions/fuseSparknet.d.ts +4 -3
  210. package/_types/chains/definitions/fuseSparknet.d.ts.map +1 -1
  211. package/_types/chains/definitions/ham.d.ts +4 -3
  212. package/_types/chains/definitions/ham.d.ts.map +1 -1
  213. package/_types/chains/definitions/haqqMainnet.d.ts +4 -3
  214. package/_types/chains/definitions/haqqMainnet.d.ts.map +1 -1
  215. package/_types/chains/definitions/haqqTestedge2.d.ts +4 -3
  216. package/_types/chains/definitions/haqqTestedge2.d.ts.map +1 -1
  217. package/_types/chains/definitions/hardhat.d.ts +4 -3
  218. package/_types/chains/definitions/hardhat.d.ts.map +1 -1
  219. package/_types/chains/definitions/hashkeyChainTestnet.d.ts +4 -3
  220. package/_types/chains/definitions/hashkeyChainTestnet.d.ts.map +1 -1
  221. package/_types/chains/definitions/hedera.d.ts +4 -3
  222. package/_types/chains/definitions/hedera.d.ts.map +1 -1
  223. package/_types/chains/definitions/hederaPreviewnet.d.ts +4 -3
  224. package/_types/chains/definitions/hederaPreviewnet.d.ts.map +1 -1
  225. package/_types/chains/definitions/hederaTestnet.d.ts +4 -3
  226. package/_types/chains/definitions/hederaTestnet.d.ts.map +1 -1
  227. package/_types/chains/definitions/iota.d.ts +4 -3
  228. package/_types/chains/definitions/iota.d.ts.map +1 -1
  229. package/_types/chains/definitions/iotaTestnet.d.ts +4 -3
  230. package/_types/chains/definitions/iotaTestnet.d.ts.map +1 -1
  231. package/_types/chains/definitions/kakarotSepolia.d.ts +4 -3
  232. package/_types/chains/definitions/kakarotSepolia.d.ts.map +1 -1
  233. package/_types/chains/definitions/karura.d.ts +4 -3
  234. package/_types/chains/definitions/karura.d.ts.map +1 -1
  235. package/_types/chains/definitions/kroma.d.ts +4 -3
  236. package/_types/chains/definitions/kroma.d.ts.map +1 -1
  237. package/_types/chains/definitions/kromaSepolia.d.ts +4 -3
  238. package/_types/chains/definitions/kromaSepolia.d.ts.map +1 -1
  239. package/_types/chains/definitions/l3x.d.ts +4 -3
  240. package/_types/chains/definitions/l3x.d.ts.map +1 -1
  241. package/_types/chains/definitions/l3xTestnet.d.ts +4 -3
  242. package/_types/chains/definitions/l3xTestnet.d.ts.map +1 -1
  243. package/_types/chains/definitions/lightlinkPegasus.d.ts +4 -3
  244. package/_types/chains/definitions/lightlinkPegasus.d.ts.map +1 -1
  245. package/_types/chains/definitions/lightlinkPhoenix.d.ts +4 -3
  246. package/_types/chains/definitions/lightlinkPhoenix.d.ts.map +1 -1
  247. package/_types/chains/definitions/linea.d.ts +4 -1
  248. package/_types/chains/definitions/linea.d.ts.map +1 -1
  249. package/_types/chains/definitions/lineaSepolia.d.ts +4 -1
  250. package/_types/chains/definitions/lineaSepolia.d.ts.map +1 -1
  251. package/_types/chains/definitions/localhost.d.ts +4 -3
  252. package/_types/chains/definitions/localhost.d.ts.map +1 -1
  253. package/_types/chains/definitions/lycan.d.ts +4 -3
  254. package/_types/chains/definitions/lycan.d.ts.map +1 -1
  255. package/_types/chains/definitions/mandala.d.ts +4 -3
  256. package/_types/chains/definitions/mandala.d.ts.map +1 -1
  257. package/_types/chains/definitions/merlin.d.ts +4 -3
  258. package/_types/chains/definitions/merlin.d.ts.map +1 -1
  259. package/_types/chains/definitions/meter.d.ts +4 -3
  260. package/_types/chains/definitions/meter.d.ts.map +1 -1
  261. package/_types/chains/definitions/meterTestnet.d.ts +4 -3
  262. package/_types/chains/definitions/meterTestnet.d.ts.map +1 -1
  263. package/_types/chains/definitions/mintSepoliaTestnet.d.ts +4 -3
  264. package/_types/chains/definitions/mintSepoliaTestnet.d.ts.map +1 -1
  265. package/_types/chains/definitions/moonbeamDev.d.ts +4 -3
  266. package/_types/chains/definitions/moonbeamDev.d.ts.map +1 -1
  267. package/_types/chains/definitions/morphHolesky.d.ts +4 -3
  268. package/_types/chains/definitions/morphHolesky.d.ts.map +1 -1
  269. package/_types/chains/definitions/morphSepolia.d.ts +4 -3
  270. package/_types/chains/definitions/morphSepolia.d.ts.map +1 -1
  271. package/_types/chains/definitions/nautilus.d.ts +4 -3
  272. package/_types/chains/definitions/nautilus.d.ts.map +1 -1
  273. package/_types/chains/definitions/oasisTestnet.d.ts +4 -3
  274. package/_types/chains/definitions/oasisTestnet.d.ts.map +1 -1
  275. package/_types/chains/definitions/oasys.d.ts +4 -3
  276. package/_types/chains/definitions/oasys.d.ts.map +1 -1
  277. package/_types/chains/definitions/oortmainnetDev.d.ts +4 -3
  278. package/_types/chains/definitions/oortmainnetDev.d.ts.map +1 -1
  279. package/_types/chains/definitions/playfiAlbireo.d.ts +1 -1
  280. package/_types/chains/definitions/plumeTestnet.d.ts +4 -3
  281. package/_types/chains/definitions/plumeTestnet.d.ts.map +1 -1
  282. package/_types/chains/definitions/qMainnet.d.ts +4 -3
  283. package/_types/chains/definitions/qMainnet.d.ts.map +1 -1
  284. package/_types/chains/definitions/qTestnet.d.ts +4 -3
  285. package/_types/chains/definitions/qTestnet.d.ts.map +1 -1
  286. package/_types/chains/definitions/redbellyTestnet.d.ts +4 -3
  287. package/_types/chains/definitions/redbellyTestnet.d.ts.map +1 -1
  288. package/_types/chains/definitions/redstone.d.ts +4 -3
  289. package/_types/chains/definitions/redstone.d.ts.map +1 -1
  290. package/_types/chains/definitions/reyaNetwork.d.ts +4 -3
  291. package/_types/chains/definitions/reyaNetwork.d.ts.map +1 -1
  292. package/_types/chains/definitions/rootstockTestnet.d.ts +4 -3
  293. package/_types/chains/definitions/rootstockTestnet.d.ts.map +1 -1
  294. package/_types/chains/definitions/sapphireTestnet.d.ts +4 -3
  295. package/_types/chains/definitions/sapphireTestnet.d.ts.map +1 -1
  296. package/_types/chains/definitions/satoshivm.d.ts +4 -3
  297. package/_types/chains/definitions/satoshivm.d.ts.map +1 -1
  298. package/_types/chains/definitions/satoshivmTestnet.d.ts +4 -3
  299. package/_types/chains/definitions/satoshivmTestnet.d.ts.map +1 -1
  300. package/_types/chains/definitions/seiDevnet.d.ts +4 -3
  301. package/_types/chains/definitions/seiDevnet.d.ts.map +1 -1
  302. package/_types/chains/definitions/seiTestnet.d.ts +4 -3
  303. package/_types/chains/definitions/seiTestnet.d.ts.map +1 -1
  304. package/_types/chains/definitions/shapeSepolia.d.ts +4 -3
  305. package/_types/chains/definitions/shapeSepolia.d.ts.map +1 -1
  306. package/_types/chains/definitions/shardeumSphinx.d.ts +4 -3
  307. package/_types/chains/definitions/shardeumSphinx.d.ts.map +1 -1
  308. package/_types/chains/definitions/shimmer.d.ts +4 -3
  309. package/_types/chains/definitions/shimmer.d.ts.map +1 -1
  310. package/_types/chains/definitions/shimmerTestnet.d.ts +4 -3
  311. package/_types/chains/definitions/shimmerTestnet.d.ts.map +1 -1
  312. package/_types/chains/definitions/sketchpad.d.ts +4 -3
  313. package/_types/chains/definitions/sketchpad.d.ts.map +1 -1
  314. package/_types/chains/definitions/soneiumMinato.d.ts +34 -0
  315. package/_types/chains/definitions/soneiumMinato.d.ts.map +1 -0
  316. package/_types/chains/definitions/songbird.d.ts +4 -3
  317. package/_types/chains/definitions/songbird.d.ts.map +1 -1
  318. package/_types/chains/definitions/songbirdTestnet.d.ts +4 -3
  319. package/_types/chains/definitions/songbirdTestnet.d.ts.map +1 -1
  320. package/_types/chains/definitions/sophonTestnet.d.ts +374 -4
  321. package/_types/chains/definitions/sophonTestnet.d.ts.map +1 -1
  322. package/_types/chains/definitions/spicy.d.ts +4 -3
  323. package/_types/chains/definitions/spicy.d.ts.map +1 -1
  324. package/_types/chains/definitions/storyTestnet.d.ts +36 -0
  325. package/_types/chains/definitions/storyTestnet.d.ts.map +1 -0
  326. package/_types/chains/definitions/stratis.d.ts +4 -3
  327. package/_types/chains/definitions/stratis.d.ts.map +1 -1
  328. package/_types/chains/definitions/taikoHekla.d.ts +4 -3
  329. package/_types/chains/definitions/taikoHekla.d.ts.map +1 -1
  330. package/_types/chains/definitions/taikoKatla.d.ts +4 -3
  331. package/_types/chains/definitions/taikoKatla.d.ts.map +1 -1
  332. package/_types/chains/definitions/taikoTestnetSepolia.d.ts +4 -3
  333. package/_types/chains/definitions/taikoTestnetSepolia.d.ts.map +1 -1
  334. package/_types/chains/definitions/taraxa.d.ts +4 -3
  335. package/_types/chains/definitions/taraxa.d.ts.map +1 -1
  336. package/_types/chains/definitions/taraxaTestnet.d.ts +4 -3
  337. package/_types/chains/definitions/taraxaTestnet.d.ts.map +1 -1
  338. package/_types/chains/definitions/telcoinTestnet.d.ts +4 -3
  339. package/_types/chains/definitions/telcoinTestnet.d.ts.map +1 -1
  340. package/_types/chains/definitions/telosTestnet.d.ts +4 -3
  341. package/_types/chains/definitions/telosTestnet.d.ts.map +1 -1
  342. package/_types/chains/definitions/tenet.d.ts +4 -3
  343. package/_types/chains/definitions/tenet.d.ts.map +1 -1
  344. package/_types/chains/definitions/thunderTestnet.d.ts +4 -3
  345. package/_types/chains/definitions/thunderTestnet.d.ts.map +1 -1
  346. package/_types/chains/definitions/tron.d.ts +37 -0
  347. package/_types/chains/definitions/tron.d.ts.map +1 -0
  348. package/_types/chains/definitions/vechain.d.ts +4 -3
  349. package/_types/chains/definitions/vechain.d.ts.map +1 -1
  350. package/_types/chains/definitions/wemix.d.ts +4 -3
  351. package/_types/chains/definitions/wemix.d.ts.map +1 -1
  352. package/_types/chains/definitions/wemixTestnet.d.ts +4 -3
  353. package/_types/chains/definitions/wemixTestnet.d.ts.map +1 -1
  354. package/_types/chains/definitions/xaiTestnet.d.ts +4 -3
  355. package/_types/chains/definitions/xaiTestnet.d.ts.map +1 -1
  356. package/_types/chains/definitions/xrSepolia.d.ts +4 -3
  357. package/_types/chains/definitions/xrSepolia.d.ts.map +1 -1
  358. package/_types/chains/definitions/yooldoVerse.d.ts +4 -3
  359. package/_types/chains/definitions/yooldoVerse.d.ts.map +1 -1
  360. package/_types/chains/definitions/yooldoVerseTestnet.d.ts +4 -3
  361. package/_types/chains/definitions/yooldoVerseTestnet.d.ts.map +1 -1
  362. package/_types/chains/definitions/zhejiang.d.ts +4 -3
  363. package/_types/chains/definitions/zhejiang.d.ts.map +1 -1
  364. package/_types/chains/definitions/zilliqa.d.ts +4 -3
  365. package/_types/chains/definitions/zilliqa.d.ts.map +1 -1
  366. package/_types/chains/definitions/zilliqaTestnet.d.ts +4 -3
  367. package/_types/chains/definitions/zilliqaTestnet.d.ts.map +1 -1
  368. package/_types/chains/definitions/zkFairTestnet.d.ts +4 -3
  369. package/_types/chains/definitions/zkFairTestnet.d.ts.map +1 -1
  370. package/_types/chains/definitions/zkLinkNova.d.ts +4 -3
  371. package/_types/chains/definitions/zkLinkNova.d.ts.map +1 -1
  372. package/_types/chains/definitions/zkLinkNovaSepoliaTestnet.d.ts +4 -3
  373. package/_types/chains/definitions/zkLinkNovaSepoliaTestnet.d.ts.map +1 -1
  374. package/_types/chains/definitions/zksync.d.ts +1 -1
  375. package/_types/chains/definitions/zksyncInMemoryNode.d.ts +5 -4
  376. package/_types/chains/definitions/zksyncInMemoryNode.d.ts.map +1 -1
  377. package/_types/chains/definitions/zksyncLocalNode.d.ts +5 -4
  378. package/_types/chains/definitions/zksyncLocalNode.d.ts.map +1 -1
  379. package/_types/chains/definitions/zksyncSepoliaTestnet.d.ts +1 -1
  380. package/_types/chains/index.d.ts +6 -0
  381. package/_types/chains/index.d.ts.map +1 -1
  382. package/_types/errors/node.d.ts.map +1 -1
  383. package/_types/errors/version.d.ts +1 -1
  384. package/_types/index.d.ts +1 -1
  385. package/_types/index.d.ts.map +1 -1
  386. package/_types/linea/actions/estimateGas.d.ts +36 -0
  387. package/_types/linea/actions/estimateGas.d.ts.map +1 -0
  388. package/_types/linea/chainConfig.d.ts +10 -0
  389. package/_types/linea/chainConfig.d.ts.map +1 -0
  390. package/_types/linea/chains.d.ts +3 -0
  391. package/_types/linea/chains.d.ts.map +1 -0
  392. package/_types/linea/index.d.ts +3 -0
  393. package/_types/linea/index.d.ts.map +1 -0
  394. package/_types/linea/types/rpc.d.ts +22 -0
  395. package/_types/linea/types/rpc.d.ts.map +1 -0
  396. package/_types/types/chain.d.ts +29 -23
  397. package/_types/types/chain.d.ts.map +1 -1
  398. package/_types/zksync/actions/sendEip712Transaction.d.ts.map +1 -1
  399. package/_types/zksync/chainConfig.d.ts +1 -1
  400. package/_types/zksync/formatters.d.ts +1 -1
  401. package/_types/zksync/index.d.ts +2 -0
  402. package/_types/zksync/index.d.ts.map +1 -1
  403. package/actions/public/estimateFeesPerGas.ts +2 -1
  404. package/actions/public/estimateMaxPriorityFeePerGas.ts +17 -11
  405. package/actions/wallet/prepareTransactionRequest.ts +13 -2
  406. package/actions/wallet/sendTransaction.ts +1 -0
  407. package/chains/definitions/fluence.ts +20 -0
  408. package/chains/definitions/fluenceStage.ts +21 -0
  409. package/chains/definitions/fluenceTestnet.ts +21 -0
  410. package/chains/definitions/linea.ts +2 -0
  411. package/chains/definitions/lineaSepolia.ts +2 -0
  412. package/chains/definitions/soneiumMinato.ts +26 -0
  413. package/chains/definitions/sophonTestnet.ts +3 -1
  414. package/chains/definitions/storyTestnet.ts +21 -0
  415. package/chains/definitions/tron.ts +19 -0
  416. package/chains/index.ts +6 -0
  417. package/errors/node.ts +2 -1
  418. package/errors/version.ts +1 -1
  419. package/index.ts +3 -0
  420. package/linea/actions/estimateGas.ts +137 -0
  421. package/linea/chainConfig.ts +53 -0
  422. package/linea/chains.ts +3 -0
  423. package/linea/index.ts +8 -0
  424. package/linea/package.json +6 -0
  425. package/linea/types/rpc.ts +28 -0
  426. package/package.json +6 -1
  427. package/types/chain.ts +73 -42
  428. package/zksync/actions/sendEip712Transaction.ts +1 -0
  429. package/zksync/index.ts +9 -0
@@ -55,6 +55,7 @@ import { commitmentsToVersionedHashes } from '../../utils/blob/commitmentsToVers
55
55
  import { toBlobSidecars } from '../../utils/blob/toBlobSidecars.js'
56
56
  import type { FormattedTransactionRequest } from '../../utils/formatters/transactionRequest.js'
57
57
  import { getAction } from '../../utils/getAction.js'
58
+ import type { NonceManager } from '../../utils/nonceManager.js'
58
59
  import {
59
60
  type AssertRequestErrorType,
60
61
  type AssertRequestParameters,
@@ -96,6 +97,15 @@ export type PrepareTransactionRequestRequest<
96
97
  _derivedChain extends Chain | undefined = DeriveChain<chain, chainOverride>,
97
98
  > = UnionOmit<FormattedTransactionRequest<_derivedChain>, 'from'> &
98
99
  GetTransactionRequestKzgParameter & {
100
+ /**
101
+ * Nonce manager to use for the transaction request.
102
+ */
103
+ nonceManager?: NonceManager | undefined
104
+ /**
105
+ * Parameters to prepare for the transaction request.
106
+ *
107
+ * @default ['blobVersionedHashes', 'chainId', 'fees', 'gas', 'nonce', 'type']
108
+ */
99
109
  parameters?: readonly PrepareTransactionRequestParameterType[] | undefined
100
110
  }
101
111
 
@@ -248,6 +258,7 @@ export async function prepareTransactionRequest<
248
258
  gas,
249
259
  kzg,
250
260
  nonce,
261
+ nonceManager,
251
262
  parameters = defaultParameters,
252
263
  type,
253
264
  } = args
@@ -306,9 +317,9 @@ export async function prepareTransactionRequest<
306
317
  if (parameters.includes('chainId')) request.chainId = await getChainId()
307
318
 
308
319
  if (parameters.includes('nonce') && typeof nonce === 'undefined' && account) {
309
- if (account.nonceManager) {
320
+ if (nonceManager) {
310
321
  const chainId = await getChainId()
311
- request.nonce = await account.nonceManager.consume({
322
+ request.nonce = await nonceManager.consume({
312
323
  address: account.address,
313
324
  chainId,
314
325
  client,
@@ -253,6 +253,7 @@ export async function sendTransaction<
253
253
  maxFeePerGas,
254
254
  maxPriorityFeePerGas,
255
255
  nonce,
256
+ nonceManager: account.nonceManager,
256
257
  parameters: [...defaultParameters, 'sidecars'],
257
258
  value,
258
259
  ...rest,
@@ -0,0 +1,20 @@
1
+ import { defineChain } from '../../utils/chain/defineChain.js'
2
+
3
+ export const fluence = /*#__PURE__*/ defineChain({
4
+ id: 9_999_999,
5
+ name: 'Fluence',
6
+ nativeCurrency: { name: 'FLT', symbol: 'FLT', decimals: 18 },
7
+ rpcUrls: {
8
+ default: {
9
+ http: ['https://rpc.mainnet.fluence.dev'],
10
+ webSocket: ['wss://ws.mainnet.fluence.dev'],
11
+ },
12
+ },
13
+ blockExplorers: {
14
+ default: {
15
+ name: 'Blockscout',
16
+ url: 'https://blockscout.mainnet.fluence.dev',
17
+ apiUrl: 'https://blockscout.mainnet.fluence.dev/api',
18
+ },
19
+ },
20
+ })
@@ -0,0 +1,21 @@
1
+ import { defineChain } from '../../utils/chain/defineChain.js'
2
+
3
+ export const fluenceStage = /*#__PURE__*/ defineChain({
4
+ id: 123_420_000_220,
5
+ name: 'Fluence Stage',
6
+ nativeCurrency: { name: 'tFLT', symbol: 'tFLT', decimals: 18 },
7
+ rpcUrls: {
8
+ default: {
9
+ http: ['https://rpc.stage.fluence.dev'],
10
+ webSocket: ['wss://ws.stage.fluence.dev'],
11
+ },
12
+ },
13
+ blockExplorers: {
14
+ default: {
15
+ name: 'Blockscout',
16
+ url: 'https://blockscout.stage.fluence.dev',
17
+ apiUrl: 'https://blockscout.stage.fluence.dev/api',
18
+ },
19
+ },
20
+ testnet: true,
21
+ })
@@ -0,0 +1,21 @@
1
+ import { defineChain } from '../../utils/chain/defineChain.js'
2
+
3
+ export const fluenceTestnet = /*#__PURE__*/ defineChain({
4
+ id: 52_164_803,
5
+ name: 'Fluence Testnet',
6
+ nativeCurrency: { name: 'tFLT', symbol: 'tFLT', decimals: 18 },
7
+ rpcUrls: {
8
+ default: {
9
+ http: ['https://rpc.testnet.fluence.dev'],
10
+ webSocket: ['wss://ws.testnet.fluence.dev'],
11
+ },
12
+ },
13
+ blockExplorers: {
14
+ default: {
15
+ name: 'Blockscout',
16
+ url: 'https://blockscout.testnet.fluence.dev',
17
+ apiUrl: 'https://blockscout.testnet.fluence.dev/api',
18
+ },
19
+ },
20
+ testnet: true,
21
+ })
@@ -1,6 +1,8 @@
1
+ import { chainConfig } from '../../linea/chainConfig.js'
1
2
  import { defineChain } from '../../utils/chain/defineChain.js'
2
3
 
3
4
  export const linea = /*#__PURE__*/ defineChain({
5
+ ...chainConfig,
4
6
  id: 59_144,
5
7
  name: 'Linea Mainnet',
6
8
  nativeCurrency: { name: 'Linea Ether', symbol: 'ETH', decimals: 18 },
@@ -1,6 +1,8 @@
1
+ import { chainConfig } from '../../linea/chainConfig.js'
1
2
  import { defineChain } from '../../utils/chain/defineChain.js'
2
3
 
3
4
  export const lineaSepolia = /*#__PURE__*/ defineChain({
5
+ ...chainConfig,
4
6
  id: 59_141,
5
7
  name: 'Linea Sepolia Testnet',
6
8
  nativeCurrency: { name: 'Linea Ether', symbol: 'ETH', decimals: 18 },
@@ -0,0 +1,26 @@
1
+ import { defineChain } from '../../utils/chain/defineChain.js'
2
+
3
+ export const soneiumMinato = defineChain({
4
+ id: 1946,
5
+ name: 'Soneium Minato',
6
+ nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },
7
+ rpcUrls: {
8
+ default: {
9
+ http: ['https://rpc.minato.soneium.org'],
10
+ },
11
+ },
12
+ blockExplorers: {
13
+ default: {
14
+ name: 'Minato Explorer',
15
+ url: 'https://explorer-testnet.soneium.org',
16
+ apiUrl: 'https://explorer-testnet.soneium.org/api/',
17
+ },
18
+ },
19
+ contracts: {
20
+ multicall3: {
21
+ address: '0xcA11bde05977b3631167028862bE2a173976CA11',
22
+ blockCreated: 1,
23
+ },
24
+ },
25
+ testnet: true,
26
+ })
@@ -1,12 +1,14 @@
1
1
  import { defineChain } from '../../utils/chain/defineChain.js'
2
+ import { chainConfig } from '../../zksync/chainConfig.js'
2
3
 
3
4
  export const sophonTestnet = /*#__PURE__*/ defineChain({
5
+ ...chainConfig,
4
6
  id: 531_050_104,
5
7
  name: 'Sophon Testnet',
6
8
  nativeCurrency: {
7
9
  decimals: 18,
8
10
  name: 'Sophon',
9
- symbol: 'ETH',
11
+ symbol: 'SOPH',
10
12
  },
11
13
  rpcUrls: {
12
14
  default: {
@@ -0,0 +1,21 @@
1
+ import { defineChain } from '../../utils/chain/defineChain.js'
2
+
3
+ export const storyTestnet = /*#__PURE__*/ defineChain({
4
+ id: 1513,
5
+ name: 'Story Testnet',
6
+ nativeCurrency: {
7
+ decimals: 18,
8
+ name: 'IP',
9
+ symbol: 'IP',
10
+ },
11
+ rpcUrls: {
12
+ default: { http: ['https://testnet.storyrpc.io'] },
13
+ },
14
+ blockExplorers: {
15
+ default: {
16
+ name: 'Story Testnet Explorer',
17
+ url: 'https://testnet.storyscan.xyz',
18
+ },
19
+ },
20
+ testnet: true,
21
+ })
@@ -0,0 +1,19 @@
1
+ import { defineChain } from '../../utils/chain/defineChain.js'
2
+
3
+ export const tron = /*#__PURE__*/ defineChain({
4
+ id: 728126428,
5
+ name: 'Tron',
6
+ nativeCurrency: { name: 'TRON', symbol: 'TRX', decimals: 6 },
7
+ rpcUrls: {
8
+ default: {
9
+ http: ['https://api.trongrid.io/jsonrpc'],
10
+ },
11
+ },
12
+ blockExplorers: {
13
+ default: {
14
+ name: 'Tronscan',
15
+ url: 'https://tronscan.org',
16
+ apiUrl: 'https://apilist.tronscanapi.com/api',
17
+ },
18
+ },
19
+ })
package/chains/index.ts CHANGED
@@ -111,6 +111,9 @@ export { flareTestnet } from './definitions/flareTestnet.js'
111
111
  export { flowPreviewnet } from './definitions/flowPreviewnet.js'
112
112
  export { flowMainnet } from './definitions/flowMainnet.js'
113
113
  export { flowTestnet } from './definitions/flowTestnet.js'
114
+ export { fluence } from './definitions/fluence.js'
115
+ export { fluenceStage } from './definitions/fluenceStage.js'
116
+ export { fluenceTestnet } from './definitions/fluenceTestnet.js'
114
117
  export { forma } from './definitions/forma.js'
115
118
  /** @deprecated Use `anvil` instead. */
116
119
  export { foundry } from './definitions/foundry.js'
@@ -277,6 +280,7 @@ export { skaleRazor } from './definitions/skale/razor.js'
277
280
  export { skaleTitan } from './definitions/skale/titan.js'
278
281
  export { skaleTitanTestnet } from './definitions/skale/titanTestnet.js'
279
282
  export { sketchpad } from './definitions/sketchpad.js'
283
+ export { soneiumMinato } from './definitions/soneiumMinato.js'
280
284
  export { songbird } from './definitions/songbird.js'
281
285
  export { songbirdTestnet } from './definitions/songbirdTestnet.js'
282
286
  export { sophonTestnet } from './definitions/sophonTestnet.js'
@@ -284,6 +288,7 @@ export { spicy } from './definitions/spicy.js'
284
288
  export { shardeumSphinx } from './definitions/shardeumSphinx.js'
285
289
  export { shibarium } from './definitions/shibarium.js'
286
290
  export { shibariumTestnet } from './definitions/shibariumTestnet.js'
291
+ export { storyTestnet } from './definitions/storyTestnet.js'
287
292
  export { stratis } from './definitions/stratis.js'
288
293
  export { syscoin } from './definitions/syscoin.js'
289
294
  export { syscoinTestnet } from './definitions/syscoinTestnet.js'
@@ -300,6 +305,7 @@ export { telosTestnet } from './definitions/telosTestnet.js'
300
305
  export { tenet } from './definitions/tenet.js'
301
306
  export { thaiChain } from './definitions/thaiChain.js'
302
307
  export { thunderTestnet } from './definitions/thunderTestnet.js'
308
+ export { tron } from './definitions/tron.js'
303
309
  export { unreal } from './definitions/unreal.js'
304
310
  export { vechain } from './definitions/vechain.js'
305
311
  export { wanchain } from './definitions/wanchain.js'
package/errors/node.ts CHANGED
@@ -150,7 +150,8 @@ export type InsufficientFundsErrorType = InsufficientFundsError & {
150
150
  name: 'InsufficientFundsError'
151
151
  }
152
152
  export class InsufficientFundsError extends BaseError {
153
- static nodeMessage = /insufficient funds/
153
+ static nodeMessage =
154
+ /insufficient funds|exceeds transaction sender account balance/
154
155
  constructor({ cause }: { cause?: BaseError | undefined } = {}) {
155
156
  super(
156
157
  [
package/errors/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = '2.20.1'
1
+ export const version = '2.21.1'
package/index.ts CHANGED
@@ -467,11 +467,14 @@ export type {
467
467
  } from './actions/wallet/writeContract.js'
468
468
  export type {
469
469
  Chain,
470
+ ChainConfig,
470
471
  ChainContract,
472
+ ChainEstimateFeesPerGasFn,
471
473
  ChainFees,
472
474
  ChainFeesFnParameters,
473
475
  ChainFormatter,
474
476
  ChainEstimateFeesPerGasFnParameters,
477
+ ChainMaxPriorityFeePerGasFn,
475
478
  DeriveChain,
476
479
  GetChainParameter,
477
480
  ChainFormatters,
@@ -0,0 +1,137 @@
1
+ import type { Account } from '../../accounts/types.js'
2
+ import { parseAccount } from '../../accounts/utils/parseAccount.js'
3
+ import type { EstimateGasParameters as EstimateGasParameters_base } from '../../actions/public/estimateGas.js'
4
+ import {
5
+ type PrepareTransactionRequestParameters,
6
+ prepareTransactionRequest,
7
+ } from '../../actions/wallet/prepareTransactionRequest.js'
8
+ import type { Client } from '../../clients/createClient.js'
9
+ import type { Transport } from '../../clients/transports/createTransport.js'
10
+ import { AccountNotFoundError } from '../../errors/account.js'
11
+ import type { BaseError } from '../../errors/base.js'
12
+ import type { GetAccountParameter } from '../../types/account.js'
13
+ import type { Chain } from '../../types/chain.js'
14
+ import type { TransactionRequest } from '../../types/transaction.js'
15
+ import type { Filter } from '../../types/utils.js'
16
+ import { numberToHex } from '../../utils/encoding/toHex.js'
17
+ import { getCallError } from '../../utils/errors/getCallError.js'
18
+ import { extract } from '../../utils/formatters/extract.js'
19
+ import { formatTransactionRequest } from '../../utils/formatters/transactionRequest.js'
20
+ import {
21
+ type AssertRequestParameters,
22
+ assertRequest,
23
+ } from '../../utils/transaction/assertRequest.js'
24
+ import type { LineaRpcSchema } from '../types/rpc.js'
25
+
26
+ export type EstimateGasParameters<
27
+ chain extends Chain | undefined = Chain | undefined,
28
+ account extends Account | undefined = Account | undefined,
29
+ > = EstimateGasParameters_base<chain> & GetAccountParameter<account>
30
+
31
+ export type EstimateGasReturnType = {
32
+ gasLimit: bigint
33
+ baseFeePerGas: bigint
34
+ priorityFeePerGas: bigint
35
+ }
36
+
37
+ /**
38
+ * Estimates the gas and fees per gas necessary to complete a transaction without submitting it to the network.
39
+ *
40
+ * @param client - Client to use
41
+ * @param parameters - {@link EstimateGasParameters}
42
+ * @returns A gas estimate and fees per gas (in wei). {@link EstimateGasReturnType}
43
+ *
44
+ * @example
45
+ * import { createPublicClient, http, parseEther } from 'viem'
46
+ * import { linea } from 'viem/chains'
47
+ * import { estimateGas } from 'viem/linea'
48
+ *
49
+ * const client = createPublicClient({
50
+ * chain: linea,
51
+ * transport: http(),
52
+ * })
53
+ * const gasEstimate = await estimateGas(client, {
54
+ * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
55
+ * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
56
+ * value: 0n,
57
+ * })
58
+ */
59
+ export async function estimateGas<
60
+ chain extends Chain | undefined,
61
+ account extends Account | undefined,
62
+ >(
63
+ client: Client<Transport, chain, account>,
64
+ args: EstimateGasParameters<chain>,
65
+ ): Promise<EstimateGasReturnType> {
66
+ const { account: account_ = client.account } = args
67
+
68
+ if (!account_) throw new AccountNotFoundError()
69
+ const account = parseAccount(account_)
70
+
71
+ try {
72
+ const {
73
+ accessList,
74
+ blockNumber,
75
+ blockTag,
76
+ data,
77
+ gas,
78
+ gasPrice,
79
+ maxFeePerGas,
80
+ maxPriorityFeePerGas,
81
+ nonce,
82
+ to,
83
+ value,
84
+ ...rest
85
+ } =
86
+ account?.type === 'local'
87
+ ? ((await prepareTransactionRequest(
88
+ client,
89
+ args as PrepareTransactionRequestParameters,
90
+ )) as EstimateGasParameters)
91
+ : args
92
+
93
+ const blockNumberHex = blockNumber ? numberToHex(blockNumber) : undefined
94
+ const block = blockNumberHex || blockTag
95
+
96
+ assertRequest(args as AssertRequestParameters)
97
+
98
+ const chainFormat = client.chain?.formatters?.transactionRequest?.format
99
+ const format = chainFormat || formatTransactionRequest
100
+
101
+ const request = format({
102
+ // Pick out extra data that might exist on the chain's transaction request type.
103
+ ...extract(rest, { format: chainFormat }),
104
+ from: account?.address,
105
+ accessList,
106
+ data,
107
+ gas,
108
+ gasPrice,
109
+ maxFeePerGas,
110
+ maxPriorityFeePerGas,
111
+ nonce,
112
+ to,
113
+ value,
114
+ } as TransactionRequest)
115
+
116
+ type LineaEstimateGasSchema = Filter<
117
+ LineaRpcSchema,
118
+ { Method: 'linea_estimateGas' }
119
+ >[0]
120
+ const { baseFeePerGas, gasLimit, priorityFeePerGas } =
121
+ await client.request<LineaEstimateGasSchema>({
122
+ method: 'linea_estimateGas',
123
+ params: block ? [request, block] : [request],
124
+ })
125
+ return {
126
+ baseFeePerGas: BigInt(baseFeePerGas),
127
+ gasLimit: BigInt(gasLimit),
128
+ priorityFeePerGas: BigInt(priorityFeePerGas),
129
+ }
130
+ } catch (err) {
131
+ throw getCallError(err as BaseError, {
132
+ ...args,
133
+ account,
134
+ chain: client.chain,
135
+ })
136
+ }
137
+ }
@@ -0,0 +1,53 @@
1
+ import type { ChainConfig, ChainEstimateFeesPerGasFn } from '../types/chain.js'
2
+ import { estimateGas } from './actions/estimateGas.js'
3
+
4
+ export const chainConfig = {
5
+ fees: {
6
+ estimateFeesPerGas,
7
+ async maxPriorityFeePerGas({ block, client, request }) {
8
+ const response = await estimateFeesPerGas({
9
+ block,
10
+ client,
11
+ multiply: (x) => x,
12
+ request,
13
+ type: 'eip1559',
14
+ })
15
+ // Returning `null` will trigger the base `estimateMaxPriorityFeePerGas` to perform
16
+ // fallback mechanisms to estimate priority fee.
17
+ if (!response?.maxPriorityFeePerGas) return null
18
+ return response.maxPriorityFeePerGas
19
+ },
20
+ },
21
+ } as const satisfies ChainConfig
22
+
23
+ ///////////////////////////////////////////////////////////////////////////
24
+ // Internal
25
+ ///////////////////////////////////////////////////////////////////////////
26
+
27
+ async function estimateFeesPerGas({
28
+ client,
29
+ multiply,
30
+ request,
31
+ type,
32
+ }: Parameters<ChainEstimateFeesPerGasFn>[0]): ReturnType<ChainEstimateFeesPerGasFn> {
33
+ try {
34
+ const response = await estimateGas(client, {
35
+ ...request,
36
+ account: request?.account!,
37
+ })
38
+ const { priorityFeePerGas: maxPriorityFeePerGas } = response
39
+
40
+ const baseFeePerGas = multiply(BigInt(response.baseFeePerGas))
41
+ const maxFeePerGas = baseFeePerGas + maxPriorityFeePerGas
42
+
43
+ if (type === 'legacy') return { gasPrice: maxFeePerGas }
44
+ return {
45
+ maxFeePerGas,
46
+ maxPriorityFeePerGas,
47
+ }
48
+ } catch {
49
+ // Returning `null` will trigger the base `estimateFeesPerGas` to perform
50
+ // fallback mechanisms to estimate fees.
51
+ return null
52
+ }
53
+ }
@@ -0,0 +1,3 @@
1
+ // biome-ignore lint/performance/noBarrelFile: entrypoint module
2
+ export { linea } from '../chains/definitions/linea.js'
3
+ export { lineaSepolia } from '../chains/definitions/lineaSepolia.js'
package/linea/index.ts ADDED
@@ -0,0 +1,8 @@
1
+ // biome-ignore lint/performance/noBarrelFile: entrypoint module
2
+ export {
3
+ estimateGas,
4
+ type EstimateGasParameters,
5
+ type EstimateGasReturnType,
6
+ } from './actions/estimateGas.js'
7
+
8
+ export { linea, lineaSepolia } from './chains.js'
@@ -0,0 +1,6 @@
1
+ {
2
+ "type": "module",
3
+ "types": "../_types/linea/index.d.ts",
4
+ "module": "../_esm/linea/index.js",
5
+ "main": "../_cjs/linea/index.js"
6
+ }
@@ -0,0 +1,28 @@
1
+ import type { BlockNumber, BlockTag } from '../../types/block.js'
2
+ import type { Hex } from '../../types/misc.js'
3
+ import type {
4
+ RpcStateOverride,
5
+ RpcTransactionRequest,
6
+ } from '../../types/rpc.js'
7
+
8
+ export type LineaRpcSchema = [
9
+ {
10
+ Method: 'linea_estimateGas'
11
+ Parameters?:
12
+ | [transaction: RpcTransactionRequest]
13
+ | [
14
+ transaction: RpcTransactionRequest,
15
+ block: Hex | BlockNumber | BlockTag,
16
+ ]
17
+ | [
18
+ transaction: RpcTransactionRequest,
19
+ block: BlockNumber | BlockTag,
20
+ stateOverride: RpcStateOverride,
21
+ ]
22
+ ReturnType: {
23
+ gasLimit: Hex
24
+ baseFeePerGas: Hex
25
+ priorityFeePerGas: Hex
26
+ }
27
+ },
28
+ ]
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "viem",
3
3
  "description": "TypeScript Interface for Ethereum",
4
- "version": "2.20.1",
4
+ "version": "2.21.1",
5
5
  "main": "./_cjs/index.js",
6
6
  "module": "./_esm/index.js",
7
7
  "types": "./_types/index.d.ts",
@@ -69,6 +69,11 @@
69
69
  "import": "./_esm/experimental/erc7739/index.js",
70
70
  "default": "./_cjs/experimental/erc7739/index.js"
71
71
  },
72
+ "./linea": {
73
+ "types": "./_types/linea/index.d.ts",
74
+ "import": "./_esm/linea/index.js",
75
+ "default": "./_cjs/linea/index.js"
76
+ },
72
77
  "./node": {
73
78
  "types": "./_types/node/index.d.ts",
74
79
  "import": "./_esm/node/index.js",