viem 2.0.0-beta.9 → 2.0.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (627) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/README.md +9 -3
  3. package/_cjs/actions/ens/getEnsName.js +4 -2
  4. package/_cjs/actions/ens/getEnsName.js.map +1 -1
  5. package/_cjs/actions/index.js +16 -2
  6. package/_cjs/actions/index.js.map +1 -1
  7. package/_cjs/actions/public/getFilterChanges.js +3 -2
  8. package/_cjs/actions/public/getFilterChanges.js.map +1 -1
  9. package/_cjs/actions/public/getFilterLogs.js +3 -2
  10. package/_cjs/actions/public/getFilterLogs.js.map +1 -1
  11. package/_cjs/actions/public/getLogs.js +3 -2
  12. package/_cjs/actions/public/getLogs.js.map +1 -1
  13. package/_cjs/actions/public/verifyTypedData.js +2 -1
  14. package/_cjs/actions/public/verifyTypedData.js.map +1 -1
  15. package/_cjs/actions/wallet/prepareTransactionRequest.js.map +1 -1
  16. package/_cjs/chains/celo/formatters.js +0 -10
  17. package/_cjs/chains/celo/formatters.js.map +1 -1
  18. package/_cjs/chains/definitions/arbitrumSepolia.js +4 -0
  19. package/_cjs/chains/definitions/arbitrumSepolia.js.map +1 -1
  20. package/_cjs/chains/definitions/astar.js +0 -1
  21. package/_cjs/chains/definitions/astar.js.map +1 -1
  22. package/_cjs/chains/definitions/astarZkatana.js +0 -6
  23. package/_cjs/chains/definitions/astarZkatana.js.map +1 -1
  24. package/_cjs/chains/definitions/base.js +5 -0
  25. package/_cjs/chains/definitions/base.js.map +1 -1
  26. package/_cjs/chains/definitions/baseGoerli.js +5 -0
  27. package/_cjs/chains/definitions/baseGoerli.js.map +1 -1
  28. package/_cjs/chains/definitions/baseSepolia.js +5 -3
  29. package/_cjs/chains/definitions/baseSepolia.js.map +1 -1
  30. package/_cjs/chains/definitions/bscTestnet.js +0 -1
  31. package/_cjs/chains/definitions/bscTestnet.js.map +1 -1
  32. package/_cjs/chains/definitions/confluxESpaceTestnet.js +0 -4
  33. package/_cjs/chains/definitions/confluxESpaceTestnet.js.map +1 -1
  34. package/_cjs/chains/definitions/fantomSonicTestnet.js +25 -0
  35. package/_cjs/chains/definitions/fantomSonicTestnet.js.map +1 -0
  36. package/_cjs/chains/definitions/kava.js +0 -1
  37. package/_cjs/chains/definitions/kava.js.map +1 -1
  38. package/_cjs/chains/definitions/kavaTestnet.js +0 -1
  39. package/_cjs/chains/definitions/kavaTestnet.js.map +1 -1
  40. package/_cjs/chains/definitions/klaytnBaobab.js +0 -1
  41. package/_cjs/chains/definitions/klaytnBaobab.js.map +1 -1
  42. package/_cjs/chains/definitions/lukso.js +0 -4
  43. package/_cjs/chains/definitions/lukso.js.map +1 -1
  44. package/_cjs/chains/definitions/manta.js +0 -1
  45. package/_cjs/chains/definitions/manta.js.map +1 -1
  46. package/_cjs/chains/definitions/mantaTestnet.js +0 -1
  47. package/_cjs/chains/definitions/mantaTestnet.js.map +1 -1
  48. package/_cjs/chains/definitions/neonMainnet.js +0 -3
  49. package/_cjs/chains/definitions/neonMainnet.js.map +1 -1
  50. package/_cjs/chains/definitions/optimism.js +5 -0
  51. package/_cjs/chains/definitions/optimism.js.map +1 -1
  52. package/_cjs/chains/definitions/optimismGoerli.js +5 -0
  53. package/_cjs/chains/definitions/optimismGoerli.js.map +1 -1
  54. package/_cjs/chains/definitions/optimismSepolia.js +5 -0
  55. package/_cjs/chains/definitions/optimismSepolia.js.map +1 -1
  56. package/_cjs/chains/definitions/pgn.js +12 -3
  57. package/_cjs/chains/definitions/pgn.js.map +1 -1
  58. package/_cjs/chains/definitions/pgnTestnet.js +7 -3
  59. package/_cjs/chains/definitions/pgnTestnet.js.map +1 -1
  60. package/_cjs/chains/definitions/rootstock.js +0 -1
  61. package/_cjs/chains/definitions/rootstock.js.map +1 -1
  62. package/_cjs/chains/definitions/sapphire.js +0 -4
  63. package/_cjs/chains/definitions/sapphire.js.map +1 -1
  64. package/_cjs/chains/definitions/sapphireTestnet.js +0 -4
  65. package/_cjs/chains/definitions/sapphireTestnet.js.map +1 -1
  66. package/_cjs/chains/definitions/shibarium.js +0 -3
  67. package/_cjs/chains/definitions/shibarium.js.map +1 -1
  68. package/_cjs/chains/definitions/shimmer.js +0 -3
  69. package/_cjs/chains/definitions/shimmer.js.map +1 -1
  70. package/_cjs/chains/definitions/shimmerTestnet.js +0 -3
  71. package/_cjs/chains/definitions/shimmerTestnet.js.map +1 -1
  72. package/_cjs/chains/definitions/taikoJolnir.js +2 -2
  73. package/_cjs/chains/definitions/taikoJolnir.js.map +1 -1
  74. package/_cjs/chains/definitions/tenet.js +0 -1
  75. package/_cjs/chains/definitions/tenet.js.map +1 -1
  76. package/_cjs/chains/definitions/zilliqa.js +23 -0
  77. package/_cjs/chains/definitions/zilliqa.js.map +1 -0
  78. package/_cjs/chains/definitions/zilliqaTestnet.js +23 -0
  79. package/_cjs/chains/definitions/zilliqaTestnet.js.map +1 -0
  80. package/_cjs/chains/definitions/zkSyncSepoliaTestnet.js +31 -0
  81. package/_cjs/chains/definitions/zkSyncSepoliaTestnet.js.map +1 -0
  82. package/_cjs/chains/definitions/zkSyncTestnet.js.map +1 -1
  83. package/_cjs/chains/definitions/zora.js +5 -0
  84. package/_cjs/chains/definitions/zora.js.map +1 -1
  85. package/_cjs/chains/definitions/zoraSepolia.js +5 -4
  86. package/_cjs/chains/definitions/zoraSepolia.js.map +1 -1
  87. package/_cjs/chains/index.js +12 -4
  88. package/_cjs/chains/index.js.map +1 -1
  89. package/_cjs/chains/opStack/abis.js +366 -1
  90. package/_cjs/chains/opStack/abis.js.map +1 -1
  91. package/_cjs/chains/opStack/actions/buildDepositTransaction.js +1 -1
  92. package/_cjs/chains/opStack/actions/buildDepositTransaction.js.map +1 -1
  93. package/_cjs/chains/opStack/actions/buildInitiateWithdrawal.js +29 -0
  94. package/_cjs/chains/opStack/actions/buildInitiateWithdrawal.js.map +1 -0
  95. package/_cjs/chains/opStack/actions/buildProveWithdrawal.js +39 -0
  96. package/_cjs/chains/opStack/actions/buildProveWithdrawal.js.map +1 -0
  97. package/_cjs/chains/opStack/actions/depositTransaction.js +11 -6
  98. package/_cjs/chains/opStack/actions/depositTransaction.js.map +1 -1
  99. package/_cjs/chains/opStack/actions/estimateDepositTransactionGas.js +37 -0
  100. package/_cjs/chains/opStack/actions/estimateDepositTransactionGas.js.map +1 -0
  101. package/_cjs/chains/opStack/actions/estimateFinalizeWithdrawalGas.js +29 -0
  102. package/_cjs/chains/opStack/actions/estimateFinalizeWithdrawalGas.js.map +1 -0
  103. package/_cjs/chains/opStack/actions/estimateInitiateWithdrawalGas.js +24 -0
  104. package/_cjs/chains/opStack/actions/estimateInitiateWithdrawalGas.js.map +1 -0
  105. package/_cjs/chains/opStack/actions/estimateProveWithdrawalGas.js +29 -0
  106. package/_cjs/chains/opStack/actions/estimateProveWithdrawalGas.js.map +1 -0
  107. package/_cjs/chains/opStack/actions/finalizeWithdrawal.js +33 -0
  108. package/_cjs/chains/opStack/actions/finalizeWithdrawal.js.map +1 -0
  109. package/_cjs/chains/opStack/actions/getL2Output.js +30 -0
  110. package/_cjs/chains/opStack/actions/getL2Output.js.map +1 -0
  111. package/_cjs/chains/opStack/actions/getTimeToFinalize.js +46 -0
  112. package/_cjs/chains/opStack/actions/getTimeToFinalize.js.map +1 -0
  113. package/_cjs/chains/opStack/actions/getTimeToNextL2Output.js +63 -0
  114. package/_cjs/chains/opStack/actions/getTimeToNextL2Output.js.map +1 -0
  115. package/_cjs/chains/opStack/actions/getTimeToProve.js +13 -0
  116. package/_cjs/chains/opStack/actions/getTimeToProve.js.map +1 -0
  117. package/_cjs/chains/opStack/actions/getWithdrawalStatus.js +71 -0
  118. package/_cjs/chains/opStack/actions/getWithdrawalStatus.js.map +1 -0
  119. package/_cjs/chains/opStack/actions/initiateWithdrawal.js +28 -0
  120. package/_cjs/chains/opStack/actions/initiateWithdrawal.js.map +1 -0
  121. package/_cjs/chains/opStack/actions/proveWithdrawal.js +33 -0
  122. package/_cjs/chains/opStack/actions/proveWithdrawal.js.map +1 -0
  123. package/_cjs/chains/opStack/actions/waitForNextL2Output.js +32 -0
  124. package/_cjs/chains/opStack/actions/waitForNextL2Output.js.map +1 -0
  125. package/_cjs/chains/opStack/actions/waitToFinalize.js +11 -0
  126. package/_cjs/chains/opStack/actions/waitToFinalize.js.map +1 -0
  127. package/_cjs/chains/opStack/actions/waitToProve.js +21 -0
  128. package/_cjs/chains/opStack/actions/waitToProve.js.map +1 -0
  129. package/_cjs/chains/opStack/chains.js +5 -1
  130. package/_cjs/chains/opStack/chains.js.map +1 -1
  131. package/_cjs/chains/opStack/decorators/publicL1.js +35 -0
  132. package/_cjs/chains/opStack/decorators/publicL1.js.map +1 -0
  133. package/_cjs/chains/opStack/decorators/publicL2.js +5 -1
  134. package/_cjs/chains/opStack/decorators/publicL2.js.map +1 -1
  135. package/_cjs/chains/opStack/decorators/walletL1.js +4 -0
  136. package/_cjs/chains/opStack/decorators/walletL1.js.map +1 -1
  137. package/_cjs/chains/opStack/decorators/walletL2.js +13 -0
  138. package/_cjs/chains/opStack/decorators/walletL2.js.map +1 -0
  139. package/_cjs/chains/opStack/errors/withdrawal.js +17 -0
  140. package/_cjs/chains/opStack/errors/withdrawal.js.map +1 -0
  141. package/_cjs/chains/opStack/index.js +43 -15
  142. package/_cjs/chains/opStack/index.js.map +1 -1
  143. package/_cjs/chains/opStack/types/deposit.js +3 -0
  144. package/_cjs/chains/opStack/types/deposit.js.map +1 -0
  145. package/_cjs/chains/opStack/types/withdrawal.js +3 -0
  146. package/_cjs/chains/opStack/types/withdrawal.js.map +1 -0
  147. package/_cjs/chains/opStack/utils/extractWithdrawalMessageLogs.js +14 -0
  148. package/_cjs/chains/opStack/utils/extractWithdrawalMessageLogs.js.map +1 -0
  149. package/_cjs/chains/opStack/utils/getL2TransactionHash.js +2 -2
  150. package/_cjs/chains/opStack/utils/getL2TransactionHash.js.map +1 -1
  151. package/_cjs/chains/opStack/utils/getWithdrawalHashStorageSlot.js +11 -0
  152. package/_cjs/chains/opStack/utils/getWithdrawalHashStorageSlot.js.map +1 -0
  153. package/_cjs/chains/opStack/utils/getWithdrawals.js +10 -0
  154. package/_cjs/chains/opStack/utils/getWithdrawals.js.map +1 -0
  155. package/_cjs/chains/opStack/utils/{fromOpaqueData.js → opaqueDataToDepositData.js} +4 -4
  156. package/_cjs/chains/opStack/utils/opaqueDataToDepositData.js.map +1 -0
  157. package/_cjs/errors/abi.js +21 -1
  158. package/_cjs/errors/abi.js.map +1 -1
  159. package/_cjs/errors/version.js +1 -1
  160. package/_cjs/errors/version.js.map +1 -1
  161. package/_cjs/index.js +10 -2
  162. package/_cjs/index.js.map +1 -1
  163. package/_cjs/utils/abi/getAbiItem.js +46 -3
  164. package/_cjs/utils/abi/getAbiItem.js.map +1 -1
  165. package/_cjs/utils/hash/ripemd160.js +16 -0
  166. package/_cjs/utils/hash/ripemd160.js.map +1 -0
  167. package/_cjs/utils/hash/sha256.js +16 -0
  168. package/_cjs/utils/hash/sha256.js.map +1 -0
  169. package/_cjs/utils/index.js +5 -1
  170. package/_cjs/utils/index.js.map +1 -1
  171. package/_esm/actions/ens/getEnsName.js +4 -2
  172. package/_esm/actions/ens/getEnsName.js.map +1 -1
  173. package/_esm/actions/index.js +7 -0
  174. package/_esm/actions/index.js.map +1 -1
  175. package/_esm/actions/public/getFilterChanges.js +3 -2
  176. package/_esm/actions/public/getFilterChanges.js.map +1 -1
  177. package/_esm/actions/public/getFilterLogs.js +3 -2
  178. package/_esm/actions/public/getFilterLogs.js.map +1 -1
  179. package/_esm/actions/public/getLogs.js +3 -2
  180. package/_esm/actions/public/getLogs.js.map +1 -1
  181. package/_esm/actions/public/verifyTypedData.js +2 -1
  182. package/_esm/actions/public/verifyTypedData.js.map +1 -1
  183. package/_esm/actions/wallet/prepareTransactionRequest.js.map +1 -1
  184. package/_esm/chains/celo/formatters.js +0 -10
  185. package/_esm/chains/celo/formatters.js.map +1 -1
  186. package/_esm/chains/definitions/arbitrumSepolia.js +4 -0
  187. package/_esm/chains/definitions/arbitrumSepolia.js.map +1 -1
  188. package/_esm/chains/definitions/astar.js +0 -1
  189. package/_esm/chains/definitions/astar.js.map +1 -1
  190. package/_esm/chains/definitions/astarZkatana.js +0 -6
  191. package/_esm/chains/definitions/astarZkatana.js.map +1 -1
  192. package/_esm/chains/definitions/base.js +5 -0
  193. package/_esm/chains/definitions/base.js.map +1 -1
  194. package/_esm/chains/definitions/baseGoerli.js +5 -0
  195. package/_esm/chains/definitions/baseGoerli.js.map +1 -1
  196. package/_esm/chains/definitions/baseSepolia.js +5 -3
  197. package/_esm/chains/definitions/baseSepolia.js.map +1 -1
  198. package/_esm/chains/definitions/bscTestnet.js +0 -1
  199. package/_esm/chains/definitions/bscTestnet.js.map +1 -1
  200. package/_esm/chains/definitions/confluxESpaceTestnet.js +0 -4
  201. package/_esm/chains/definitions/confluxESpaceTestnet.js.map +1 -1
  202. package/_esm/chains/definitions/fantomSonicTestnet.js +22 -0
  203. package/_esm/chains/definitions/fantomSonicTestnet.js.map +1 -0
  204. package/_esm/chains/definitions/kava.js +0 -1
  205. package/_esm/chains/definitions/kava.js.map +1 -1
  206. package/_esm/chains/definitions/kavaTestnet.js +0 -1
  207. package/_esm/chains/definitions/kavaTestnet.js.map +1 -1
  208. package/_esm/chains/definitions/klaytnBaobab.js +0 -1
  209. package/_esm/chains/definitions/klaytnBaobab.js.map +1 -1
  210. package/_esm/chains/definitions/lukso.js +0 -4
  211. package/_esm/chains/definitions/lukso.js.map +1 -1
  212. package/_esm/chains/definitions/manta.js +0 -1
  213. package/_esm/chains/definitions/manta.js.map +1 -1
  214. package/_esm/chains/definitions/mantaTestnet.js +0 -1
  215. package/_esm/chains/definitions/mantaTestnet.js.map +1 -1
  216. package/_esm/chains/definitions/neonMainnet.js +0 -3
  217. package/_esm/chains/definitions/neonMainnet.js.map +1 -1
  218. package/_esm/chains/definitions/optimism.js +5 -0
  219. package/_esm/chains/definitions/optimism.js.map +1 -1
  220. package/_esm/chains/definitions/optimismGoerli.js +5 -0
  221. package/_esm/chains/definitions/optimismGoerli.js.map +1 -1
  222. package/_esm/chains/definitions/optimismSepolia.js +5 -0
  223. package/_esm/chains/definitions/optimismSepolia.js.map +1 -1
  224. package/_esm/chains/definitions/pgn.js +12 -3
  225. package/_esm/chains/definitions/pgn.js.map +1 -1
  226. package/_esm/chains/definitions/pgnTestnet.js +7 -3
  227. package/_esm/chains/definitions/pgnTestnet.js.map +1 -1
  228. package/_esm/chains/definitions/rootstock.js +0 -1
  229. package/_esm/chains/definitions/rootstock.js.map +1 -1
  230. package/_esm/chains/definitions/sapphire.js +0 -4
  231. package/_esm/chains/definitions/sapphire.js.map +1 -1
  232. package/_esm/chains/definitions/sapphireTestnet.js +0 -4
  233. package/_esm/chains/definitions/sapphireTestnet.js.map +1 -1
  234. package/_esm/chains/definitions/shibarium.js +0 -3
  235. package/_esm/chains/definitions/shibarium.js.map +1 -1
  236. package/_esm/chains/definitions/shimmer.js +0 -3
  237. package/_esm/chains/definitions/shimmer.js.map +1 -1
  238. package/_esm/chains/definitions/shimmerTestnet.js +0 -3
  239. package/_esm/chains/definitions/shimmerTestnet.js.map +1 -1
  240. package/_esm/chains/definitions/taikoJolnir.js +2 -2
  241. package/_esm/chains/definitions/taikoJolnir.js.map +1 -1
  242. package/_esm/chains/definitions/tenet.js +0 -1
  243. package/_esm/chains/definitions/tenet.js.map +1 -1
  244. package/_esm/chains/definitions/zilliqa.js +20 -0
  245. package/_esm/chains/definitions/zilliqa.js.map +1 -0
  246. package/_esm/chains/definitions/zilliqaTestnet.js +20 -0
  247. package/_esm/chains/definitions/zilliqaTestnet.js.map +1 -0
  248. package/_esm/chains/definitions/zkSyncSepoliaTestnet.js +28 -0
  249. package/_esm/chains/definitions/zkSyncSepoliaTestnet.js.map +1 -0
  250. package/_esm/chains/definitions/zkSyncTestnet.js +1 -0
  251. package/_esm/chains/definitions/zkSyncTestnet.js.map +1 -1
  252. package/_esm/chains/definitions/zora.js +5 -0
  253. package/_esm/chains/definitions/zora.js.map +1 -1
  254. package/_esm/chains/definitions/zoraSepolia.js +5 -4
  255. package/_esm/chains/definitions/zoraSepolia.js.map +1 -1
  256. package/_esm/chains/index.js +4 -0
  257. package/_esm/chains/index.js.map +1 -1
  258. package/_esm/chains/opStack/abis.js +365 -0
  259. package/_esm/chains/opStack/abis.js.map +1 -1
  260. package/_esm/chains/opStack/actions/buildDepositTransaction.js +2 -2
  261. package/_esm/chains/opStack/actions/buildDepositTransaction.js.map +1 -1
  262. package/_esm/chains/opStack/actions/buildInitiateWithdrawal.js +50 -0
  263. package/_esm/chains/opStack/actions/buildInitiateWithdrawal.js.map +1 -0
  264. package/_esm/chains/opStack/actions/buildProveWithdrawal.js +59 -0
  265. package/_esm/chains/opStack/actions/buildProveWithdrawal.js.map +1 -0
  266. package/_esm/chains/opStack/actions/depositTransaction.js +17 -14
  267. package/_esm/chains/opStack/actions/depositTransaction.js.map +1 -1
  268. package/_esm/chains/opStack/actions/estimateDepositTransactionGas.js +62 -0
  269. package/_esm/chains/opStack/actions/estimateDepositTransactionGas.js.map +1 -0
  270. package/_esm/chains/opStack/actions/estimateFinalizeWithdrawalGas.js +50 -0
  271. package/_esm/chains/opStack/actions/estimateFinalizeWithdrawalGas.js.map +1 -0
  272. package/_esm/chains/opStack/actions/estimateInitiateWithdrawalGas.js +48 -0
  273. package/_esm/chains/opStack/actions/estimateInitiateWithdrawalGas.js.map +1 -0
  274. package/_esm/chains/opStack/actions/estimateProveWithdrawalGas.js +53 -0
  275. package/_esm/chains/opStack/actions/estimateProveWithdrawalGas.js.map +1 -0
  276. package/_esm/chains/opStack/actions/finalizeWithdrawal.js +53 -0
  277. package/_esm/chains/opStack/actions/finalizeWithdrawal.js.map +1 -0
  278. package/_esm/chains/opStack/actions/getL2Output.js +50 -0
  279. package/_esm/chains/opStack/actions/getL2Output.js.map +1 -0
  280. package/_esm/chains/opStack/actions/getTimeToFinalize.js +77 -0
  281. package/_esm/chains/opStack/actions/getTimeToFinalize.js.map +1 -0
  282. package/_esm/chains/opStack/actions/getTimeToNextL2Output.js +91 -0
  283. package/_esm/chains/opStack/actions/getTimeToNextL2Output.js.map +1 -0
  284. package/_esm/chains/opStack/actions/getTimeToProve.js +39 -0
  285. package/_esm/chains/opStack/actions/getTimeToProve.js.map +1 -0
  286. package/_esm/chains/opStack/actions/getWithdrawalStatus.js +99 -0
  287. package/_esm/chains/opStack/actions/getWithdrawalStatus.js.map +1 -0
  288. package/_esm/chains/opStack/actions/initiateWithdrawal.js +76 -0
  289. package/_esm/chains/opStack/actions/initiateWithdrawal.js.map +1 -0
  290. package/_esm/chains/opStack/actions/proveWithdrawal.js +57 -0
  291. package/_esm/chains/opStack/actions/proveWithdrawal.js.map +1 -0
  292. package/_esm/chains/opStack/actions/waitForNextL2Output.js +58 -0
  293. package/_esm/chains/opStack/actions/waitForNextL2Output.js.map +1 -0
  294. package/_esm/chains/opStack/actions/waitToFinalize.js +41 -0
  295. package/_esm/chains/opStack/actions/waitToFinalize.js.map +1 -0
  296. package/_esm/chains/opStack/actions/waitToProve.js +47 -0
  297. package/_esm/chains/opStack/actions/waitToProve.js.map +1 -0
  298. package/_esm/chains/opStack/chains.js +2 -0
  299. package/_esm/chains/opStack/chains.js.map +1 -1
  300. package/_esm/chains/opStack/decorators/publicL1.js +31 -0
  301. package/_esm/chains/opStack/decorators/publicL1.js.map +1 -0
  302. package/_esm/chains/opStack/decorators/publicL2.js +5 -1
  303. package/_esm/chains/opStack/decorators/publicL2.js.map +1 -1
  304. package/_esm/chains/opStack/decorators/walletL1.js +4 -0
  305. package/_esm/chains/opStack/decorators/walletL1.js.map +1 -1
  306. package/_esm/chains/opStack/decorators/walletL2.js +9 -0
  307. package/_esm/chains/opStack/decorators/walletL2.js.map +1 -0
  308. package/_esm/chains/opStack/errors/withdrawal.js +13 -0
  309. package/_esm/chains/opStack/errors/withdrawal.js.map +1 -0
  310. package/_esm/chains/opStack/index.js +21 -3
  311. package/_esm/chains/opStack/index.js.map +1 -1
  312. package/_esm/chains/opStack/types/deposit.js +2 -0
  313. package/_esm/chains/opStack/types/deposit.js.map +1 -0
  314. package/_esm/chains/opStack/types/withdrawal.js +2 -0
  315. package/_esm/chains/opStack/types/withdrawal.js.map +1 -0
  316. package/_esm/chains/opStack/utils/extractWithdrawalMessageLogs.js +10 -0
  317. package/_esm/chains/opStack/utils/extractWithdrawalMessageLogs.js.map +1 -0
  318. package/_esm/chains/opStack/utils/getL2TransactionHash.js +2 -2
  319. package/_esm/chains/opStack/utils/getL2TransactionHash.js.map +1 -1
  320. package/_esm/chains/opStack/utils/getWithdrawalHashStorageSlot.js +7 -0
  321. package/_esm/chains/opStack/utils/getWithdrawalHashStorageSlot.js.map +1 -0
  322. package/_esm/chains/opStack/utils/getWithdrawals.js +6 -0
  323. package/_esm/chains/opStack/utils/getWithdrawals.js.map +1 -0
  324. package/_esm/chains/opStack/utils/{fromOpaqueData.js → opaqueDataToDepositData.js} +2 -2
  325. package/_esm/chains/opStack/utils/opaqueDataToDepositData.js.map +1 -0
  326. package/_esm/errors/abi.js +19 -0
  327. package/_esm/errors/abi.js.map +1 -1
  328. package/_esm/errors/version.js +1 -1
  329. package/_esm/errors/version.js.map +1 -1
  330. package/_esm/index.js +4 -0
  331. package/_esm/index.js.map +1 -1
  332. package/_esm/utils/abi/getAbiItem.js +46 -2
  333. package/_esm/utils/abi/getAbiItem.js.map +1 -1
  334. package/_esm/utils/hash/ripemd160.js +12 -0
  335. package/_esm/utils/hash/ripemd160.js.map +1 -0
  336. package/_esm/utils/hash/sha256.js +12 -0
  337. package/_esm/utils/hash/sha256.js.map +1 -0
  338. package/_esm/utils/index.js +2 -0
  339. package/_esm/utils/index.js.map +1 -1
  340. package/_types/actions/ens/getEnsName.d.ts.map +1 -1
  341. package/_types/actions/index.d.ts +7 -0
  342. package/_types/actions/index.d.ts.map +1 -1
  343. package/_types/actions/public/getFilterChanges.d.ts.map +1 -1
  344. package/_types/actions/public/verifyTypedData.d.ts +2 -4
  345. package/_types/actions/public/verifyTypedData.d.ts.map +1 -1
  346. package/_types/actions/wallet/prepareTransactionRequest.d.ts +5 -5
  347. package/_types/actions/wallet/prepareTransactionRequest.d.ts.map +1 -1
  348. package/_types/chains/celo/chainConfig.d.ts +97 -120
  349. package/_types/chains/celo/chainConfig.d.ts.map +1 -1
  350. package/_types/chains/celo/formatters.d.ts +98 -121
  351. package/_types/chains/celo/formatters.d.ts.map +1 -1
  352. package/_types/chains/celo/index.d.ts +1 -1
  353. package/_types/chains/celo/index.d.ts.map +1 -1
  354. package/_types/chains/celo/types.d.ts +2 -14
  355. package/_types/chains/celo/types.d.ts.map +1 -1
  356. package/_types/chains/definitions/arbitrumSepolia.d.ts +4 -0
  357. package/_types/chains/definitions/arbitrumSepolia.d.ts.map +1 -1
  358. package/_types/chains/definitions/astar.d.ts +0 -3
  359. package/_types/chains/definitions/astar.d.ts.map +1 -1
  360. package/_types/chains/definitions/astarZkatana.d.ts +0 -3
  361. package/_types/chains/definitions/astarZkatana.d.ts.map +1 -1
  362. package/_types/chains/definitions/base.d.ts +80 -75
  363. package/_types/chains/definitions/base.d.ts.map +1 -1
  364. package/_types/chains/definitions/baseGoerli.d.ts +80 -75
  365. package/_types/chains/definitions/baseGoerli.d.ts.map +1 -1
  366. package/_types/chains/definitions/baseSepolia.d.ts +80 -78
  367. package/_types/chains/definitions/baseSepolia.d.ts.map +1 -1
  368. package/_types/chains/definitions/bscTestnet.d.ts +0 -3
  369. package/_types/chains/definitions/bscTestnet.d.ts.map +1 -1
  370. package/_types/chains/definitions/celo.d.ts +97 -120
  371. package/_types/chains/definitions/celo.d.ts.map +1 -1
  372. package/_types/chains/definitions/celoAlfajores.d.ts +97 -120
  373. package/_types/chains/definitions/celoAlfajores.d.ts.map +1 -1
  374. package/_types/chains/definitions/celoCannoli.d.ts +97 -120
  375. package/_types/chains/definitions/celoCannoli.d.ts.map +1 -1
  376. package/_types/chains/definitions/confluxESpaceTestnet.d.ts +0 -4
  377. package/_types/chains/definitions/confluxESpaceTestnet.d.ts.map +1 -1
  378. package/_types/chains/definitions/fantomSonicTestnet.d.ts +35 -0
  379. package/_types/chains/definitions/fantomSonicTestnet.d.ts.map +1 -0
  380. package/_types/chains/definitions/kava.d.ts +0 -3
  381. package/_types/chains/definitions/kava.d.ts.map +1 -1
  382. package/_types/chains/definitions/kavaTestnet.d.ts +0 -3
  383. package/_types/chains/definitions/kavaTestnet.d.ts.map +1 -1
  384. package/_types/chains/definitions/klaytnBaobab.d.ts +0 -3
  385. package/_types/chains/definitions/klaytnBaobab.d.ts.map +1 -1
  386. package/_types/chains/definitions/lukso.d.ts +0 -4
  387. package/_types/chains/definitions/lukso.d.ts.map +1 -1
  388. package/_types/chains/definitions/manta.d.ts +0 -3
  389. package/_types/chains/definitions/manta.d.ts.map +1 -1
  390. package/_types/chains/definitions/mantaTestnet.d.ts +0 -3
  391. package/_types/chains/definitions/mantaTestnet.d.ts.map +1 -1
  392. package/_types/chains/definitions/neonMainnet.d.ts +0 -3
  393. package/_types/chains/definitions/neonMainnet.d.ts.map +1 -1
  394. package/_types/chains/definitions/optimism.d.ts +80 -75
  395. package/_types/chains/definitions/optimism.d.ts.map +1 -1
  396. package/_types/chains/definitions/optimismGoerli.d.ts +80 -75
  397. package/_types/chains/definitions/optimismGoerli.d.ts.map +1 -1
  398. package/_types/chains/definitions/optimismSepolia.d.ts +80 -75
  399. package/_types/chains/definitions/optimismSepolia.d.ts.map +1 -1
  400. package/_types/chains/definitions/pgn.d.ts +85 -78
  401. package/_types/chains/definitions/pgn.d.ts.map +1 -1
  402. package/_types/chains/definitions/pgnTestnet.d.ts +80 -78
  403. package/_types/chains/definitions/pgnTestnet.d.ts.map +1 -1
  404. package/_types/chains/definitions/rootstock.d.ts +0 -3
  405. package/_types/chains/definitions/rootstock.d.ts.map +1 -1
  406. package/_types/chains/definitions/sapphire.d.ts +0 -4
  407. package/_types/chains/definitions/sapphire.d.ts.map +1 -1
  408. package/_types/chains/definitions/sapphireTestnet.d.ts +0 -4
  409. package/_types/chains/definitions/sapphireTestnet.d.ts.map +1 -1
  410. package/_types/chains/definitions/shibarium.d.ts +0 -3
  411. package/_types/chains/definitions/shibarium.d.ts.map +1 -1
  412. package/_types/chains/definitions/shimmer.d.ts +0 -3
  413. package/_types/chains/definitions/shimmer.d.ts.map +1 -1
  414. package/_types/chains/definitions/shimmerTestnet.d.ts +0 -3
  415. package/_types/chains/definitions/shimmerTestnet.d.ts.map +1 -1
  416. package/_types/chains/definitions/taikoJolnir.d.ts +2 -2
  417. package/_types/chains/definitions/tenet.d.ts +0 -3
  418. package/_types/chains/definitions/tenet.d.ts.map +1 -1
  419. package/_types/chains/definitions/zilliqa.d.ts +35 -0
  420. package/_types/chains/definitions/zilliqa.d.ts.map +1 -0
  421. package/_types/chains/definitions/zilliqaTestnet.d.ts +35 -0
  422. package/_types/chains/definitions/zilliqaTestnet.d.ts.map +1 -0
  423. package/_types/chains/definitions/zkSync.d.ts +9 -9
  424. package/_types/chains/definitions/zkSyncSepoliaTestnet.d.ts +529 -0
  425. package/_types/chains/definitions/zkSyncSepoliaTestnet.d.ts.map +1 -0
  426. package/_types/chains/definitions/zkSyncTestnet.d.ts +10 -9
  427. package/_types/chains/definitions/zkSyncTestnet.d.ts.map +1 -1
  428. package/_types/chains/definitions/zora.d.ts +80 -75
  429. package/_types/chains/definitions/zora.d.ts.map +1 -1
  430. package/_types/chains/definitions/zoraSepolia.d.ts +80 -79
  431. package/_types/chains/definitions/zoraSepolia.d.ts.map +1 -1
  432. package/_types/chains/definitions/zoraTestnet.d.ts +75 -75
  433. package/_types/chains/index.d.ts +5 -1
  434. package/_types/chains/index.d.ts.map +1 -1
  435. package/_types/chains/opStack/abis.d.ts +457 -0
  436. package/_types/chains/opStack/abis.d.ts.map +1 -1
  437. package/_types/chains/opStack/actions/buildDepositTransaction.d.ts +5 -3
  438. package/_types/chains/opStack/actions/buildDepositTransaction.d.ts.map +1 -1
  439. package/_types/chains/opStack/actions/buildInitiateWithdrawal.d.ts +50 -0
  440. package/_types/chains/opStack/actions/buildInitiateWithdrawal.d.ts.map +1 -0
  441. package/_types/chains/opStack/actions/buildProveWithdrawal.d.ts +48 -0
  442. package/_types/chains/opStack/actions/buildProveWithdrawal.d.ts.map +1 -0
  443. package/_types/chains/opStack/actions/depositTransaction.d.ts +18 -34
  444. package/_types/chains/opStack/actions/depositTransaction.d.ts.map +1 -1
  445. package/_types/chains/opStack/actions/estimateDepositTransactionGas.d.ts +50 -0
  446. package/_types/chains/opStack/actions/estimateDepositTransactionGas.d.ts.map +1 -0
  447. package/_types/chains/opStack/actions/estimateFinalizeWithdrawalGas.d.ts +45 -0
  448. package/_types/chains/opStack/actions/estimateFinalizeWithdrawalGas.d.ts.map +1 -0
  449. package/_types/chains/opStack/actions/estimateInitiateWithdrawalGas.d.ts +51 -0
  450. package/_types/chains/opStack/actions/estimateInitiateWithdrawalGas.d.ts.map +1 -0
  451. package/_types/chains/opStack/actions/estimateProveWithdrawalGas.d.ts +63 -0
  452. package/_types/chains/opStack/actions/estimateProveWithdrawalGas.d.ts.map +1 -0
  453. package/_types/chains/opStack/actions/finalizeWithdrawal.d.ts +49 -0
  454. package/_types/chains/opStack/actions/finalizeWithdrawal.d.ts.map +1 -0
  455. package/_types/chains/opStack/actions/getL2Output.d.ts +44 -0
  456. package/_types/chains/opStack/actions/getL2Output.d.ts.map +1 -0
  457. package/_types/chains/opStack/actions/getTimeToFinalize.d.ts +57 -0
  458. package/_types/chains/opStack/actions/getTimeToFinalize.d.ts.map +1 -0
  459. package/_types/chains/opStack/actions/getTimeToNextL2Output.d.ts +61 -0
  460. package/_types/chains/opStack/actions/getTimeToNextL2Output.d.ts.map +1 -0
  461. package/_types/chains/opStack/actions/getTimeToProve.d.ts +50 -0
  462. package/_types/chains/opStack/actions/getTimeToProve.d.ts.map +1 -0
  463. package/_types/chains/opStack/actions/getWithdrawalStatus.d.ts +48 -0
  464. package/_types/chains/opStack/actions/getWithdrawalStatus.d.ts.map +1 -0
  465. package/_types/chains/opStack/actions/initiateWithdrawal.d.ts +77 -0
  466. package/_types/chains/opStack/actions/initiateWithdrawal.d.ts.map +1 -0
  467. package/_types/chains/opStack/actions/proveWithdrawal.d.ts +67 -0
  468. package/_types/chains/opStack/actions/proveWithdrawal.d.ts.map +1 -0
  469. package/_types/chains/opStack/actions/waitForNextL2Output.d.ts +55 -0
  470. package/_types/chains/opStack/actions/waitForNextL2Output.d.ts.map +1 -0
  471. package/_types/chains/opStack/actions/waitToFinalize.d.ts +45 -0
  472. package/_types/chains/opStack/actions/waitToFinalize.d.ts.map +1 -0
  473. package/_types/chains/opStack/actions/waitToProve.d.ts +55 -0
  474. package/_types/chains/opStack/actions/waitToProve.d.ts.map +1 -0
  475. package/_types/chains/opStack/chainConfig.d.ts +74 -74
  476. package/_types/chains/opStack/chains.d.ts +2 -0
  477. package/_types/chains/opStack/chains.d.ts.map +1 -1
  478. package/_types/chains/opStack/decorators/publicL1.d.ts +386 -0
  479. package/_types/chains/opStack/decorators/publicL1.d.ts.map +1 -0
  480. package/_types/chains/opStack/decorators/publicL2.d.ts +82 -26
  481. package/_types/chains/opStack/decorators/publicL2.d.ts.map +1 -1
  482. package/_types/chains/opStack/decorators/walletL1.d.ts +57 -2
  483. package/_types/chains/opStack/decorators/walletL1.d.ts.map +1 -1
  484. package/_types/chains/opStack/decorators/walletL2.d.ts +62 -0
  485. package/_types/chains/opStack/decorators/walletL2.d.ts.map +1 -0
  486. package/_types/chains/opStack/errors/withdrawal.d.ts +12 -0
  487. package/_types/chains/opStack/errors/withdrawal.d.ts.map +1 -0
  488. package/_types/chains/opStack/formatters.d.ts +74 -74
  489. package/_types/chains/opStack/index.d.ts +21 -3
  490. package/_types/chains/opStack/index.d.ts.map +1 -1
  491. package/_types/chains/opStack/types/deposit.d.ts +25 -0
  492. package/_types/chains/opStack/types/deposit.d.ts.map +1 -0
  493. package/_types/chains/opStack/types/withdrawal.d.ts +22 -0
  494. package/_types/chains/opStack/types/withdrawal.d.ts.map +1 -0
  495. package/_types/chains/opStack/utils/extractWithdrawalMessageLogs.d.ts +137 -0
  496. package/_types/chains/opStack/utils/extractWithdrawalMessageLogs.d.ts.map +1 -0
  497. package/_types/chains/opStack/utils/getWithdrawalHashStorageSlot.d.ts +11 -0
  498. package/_types/chains/opStack/utils/getWithdrawalHashStorageSlot.d.ts.map +1 -0
  499. package/_types/chains/opStack/utils/getWithdrawals.d.ts +12 -0
  500. package/_types/chains/opStack/utils/getWithdrawals.d.ts.map +1 -0
  501. package/_types/chains/opStack/utils/opaqueDataToDepositData.d.ts +15 -0
  502. package/_types/chains/opStack/utils/opaqueDataToDepositData.d.ts.map +1 -0
  503. package/_types/chains/zksync/chainConfig.d.ts +9 -9
  504. package/_types/chains/zksync/formatters.d.ts +9 -9
  505. package/_types/clients/decorators/public.d.ts +2 -2
  506. package/_types/clients/decorators/public.d.ts.map +1 -1
  507. package/_types/clients/decorators/wallet.d.ts +2 -2
  508. package/_types/clients/decorators/wallet.d.ts.map +1 -1
  509. package/_types/errors/abi.d.ts +14 -1
  510. package/_types/errors/abi.d.ts.map +1 -1
  511. package/_types/errors/version.d.ts +1 -1
  512. package/_types/errors/version.d.ts.map +1 -1
  513. package/_types/index.d.ts +15 -1
  514. package/_types/index.d.ts.map +1 -1
  515. package/_types/types/account.d.ts +1 -1
  516. package/_types/types/account.d.ts.map +1 -1
  517. package/_types/types/eip1193.d.ts +12 -0
  518. package/_types/types/eip1193.d.ts.map +1 -1
  519. package/_types/utils/abi/getAbiItem.d.ts +2 -1
  520. package/_types/utils/abi/getAbiItem.d.ts.map +1 -1
  521. package/_types/utils/formatters/transaction.d.ts +1 -1
  522. package/_types/utils/formatters/transactionRequest.d.ts +1 -1
  523. package/_types/utils/hash/ripemd160.d.ts +11 -0
  524. package/_types/utils/hash/ripemd160.d.ts.map +1 -0
  525. package/_types/utils/hash/sha256.d.ts +11 -0
  526. package/_types/utils/hash/sha256.d.ts.map +1 -0
  527. package/_types/utils/index.d.ts +2 -0
  528. package/_types/utils/index.d.ts.map +1 -1
  529. package/actions/ens/getEnsName.ts +3 -2
  530. package/actions/index.ts +31 -0
  531. package/actions/public/getFilterChanges.ts +3 -5
  532. package/actions/public/getFilterLogs.ts +3 -3
  533. package/actions/public/getLogs.ts +3 -3
  534. package/actions/public/verifyTypedData.ts +13 -8
  535. package/actions/wallet/prepareTransactionRequest.ts +16 -9
  536. package/chains/celo/formatters.ts +0 -14
  537. package/chains/celo/index.ts +0 -4
  538. package/chains/celo/types.ts +0 -18
  539. package/chains/definitions/arbitrumSepolia.ts +4 -0
  540. package/chains/definitions/astar.ts +0 -1
  541. package/chains/definitions/astarZkatana.ts +0 -6
  542. package/chains/definitions/base.ts +5 -0
  543. package/chains/definitions/baseGoerli.ts +5 -0
  544. package/chains/definitions/baseSepolia.ts +5 -3
  545. package/chains/definitions/bscTestnet.ts +0 -1
  546. package/chains/definitions/confluxESpaceTestnet.ts +0 -4
  547. package/chains/definitions/fantomSonicTestnet.ts +22 -0
  548. package/chains/definitions/kava.ts +0 -1
  549. package/chains/definitions/kavaTestnet.ts +0 -1
  550. package/chains/definitions/klaytnBaobab.ts +0 -1
  551. package/chains/definitions/lukso.ts +0 -4
  552. package/chains/definitions/manta.ts +0 -1
  553. package/chains/definitions/mantaTestnet.ts +0 -1
  554. package/chains/definitions/neonMainnet.ts +0 -3
  555. package/chains/definitions/optimism.ts +5 -0
  556. package/chains/definitions/optimismGoerli.ts +5 -0
  557. package/chains/definitions/optimismSepolia.ts +5 -0
  558. package/chains/definitions/pgn.ts +13 -3
  559. package/chains/definitions/pgnTestnet.ts +8 -3
  560. package/chains/definitions/rootstock.ts +0 -1
  561. package/chains/definitions/sapphire.ts +0 -4
  562. package/chains/definitions/sapphireTestnet.ts +0 -4
  563. package/chains/definitions/shibarium.ts +0 -3
  564. package/chains/definitions/shimmer.ts +0 -3
  565. package/chains/definitions/shimmerTestnet.ts +0 -3
  566. package/chains/definitions/taikoJolnir.ts +2 -2
  567. package/chains/definitions/tenet.ts +0 -1
  568. package/chains/definitions/zilliqa.ts +20 -0
  569. package/chains/definitions/zilliqaTestnet.ts +20 -0
  570. package/chains/definitions/zkSyncSepoliaTestnet.ts +28 -0
  571. package/chains/definitions/zkSyncTestnet.ts +1 -0
  572. package/chains/definitions/zora.ts +5 -0
  573. package/chains/definitions/zoraSepolia.ts +5 -4
  574. package/chains/index.ts +9 -0
  575. package/chains/opStack/abis.ts +367 -0
  576. package/chains/opStack/actions/buildDepositTransaction.ts +11 -6
  577. package/chains/opStack/actions/buildInitiateWithdrawal.ts +118 -0
  578. package/chains/opStack/actions/buildProveWithdrawal.ts +149 -0
  579. package/chains/opStack/actions/depositTransaction.ts +50 -44
  580. package/chains/opStack/actions/estimateDepositTransactionGas.ts +138 -0
  581. package/chains/opStack/actions/estimateFinalizeWithdrawalGas.ts +118 -0
  582. package/chains/opStack/actions/estimateInitiateWithdrawalGas.ts +118 -0
  583. package/chains/opStack/actions/estimateProveWithdrawalGas.ts +139 -0
  584. package/chains/opStack/actions/finalizeWithdrawal.ts +130 -0
  585. package/chains/opStack/actions/getL2Output.ts +89 -0
  586. package/chains/opStack/actions/getTimeToFinalize.ts +122 -0
  587. package/chains/opStack/actions/getTimeToNextL2Output.ts +162 -0
  588. package/chains/opStack/actions/getTimeToProve.ts +79 -0
  589. package/chains/opStack/actions/getWithdrawalStatus.ts +152 -0
  590. package/chains/opStack/actions/initiateWithdrawal.ts +153 -0
  591. package/chains/opStack/actions/proveWithdrawal.ts +151 -0
  592. package/chains/opStack/actions/waitForNextL2Output.ts +111 -0
  593. package/chains/opStack/actions/waitToFinalize.ts +64 -0
  594. package/chains/opStack/actions/waitToProve.ts +99 -0
  595. package/chains/opStack/chains.ts +2 -0
  596. package/chains/opStack/decorators/publicL1.ts +514 -0
  597. package/chains/opStack/decorators/publicL2.ts +129 -37
  598. package/chains/opStack/decorators/walletL1.ts +71 -2
  599. package/chains/opStack/decorators/walletL2.ts +84 -0
  600. package/chains/opStack/errors/withdrawal.ts +15 -0
  601. package/chains/opStack/index.ts +112 -21
  602. package/chains/opStack/types/deposit.ts +28 -0
  603. package/chains/opStack/types/withdrawal.ts +23 -0
  604. package/chains/opStack/utils/extractWithdrawalMessageLogs.ts +36 -0
  605. package/chains/opStack/utils/getL2TransactionHash.ts +2 -2
  606. package/chains/opStack/utils/getWithdrawalHashStorageSlot.ts +29 -0
  607. package/chains/opStack/utils/getWithdrawals.ts +25 -0
  608. package/chains/opStack/utils/{fromOpaqueData.ts → opaqueDataToDepositData.ts} +9 -4
  609. package/clients/decorators/public.ts +2 -2
  610. package/clients/decorators/wallet.ts +2 -2
  611. package/errors/abi.ts +22 -1
  612. package/errors/version.ts +1 -1
  613. package/index.ts +40 -0
  614. package/package.json +1 -1
  615. package/types/account.ts +1 -1
  616. package/types/eip1193.ts +12 -0
  617. package/utils/abi/getAbiItem.ts +71 -2
  618. package/utils/hash/ripemd160.ts +31 -0
  619. package/utils/hash/sha256.ts +31 -0
  620. package/utils/index.ts +2 -0
  621. package/_cjs/chains/opStack/utils/fromOpaqueData.js.map +0 -1
  622. package/_esm/chains/opStack/utils/fromOpaqueData.js.map +0 -1
  623. package/_types/chains/opStack/utils/fromOpaqueData.d.ts +0 -15
  624. package/_types/chains/opStack/utils/fromOpaqueData.d.ts.map +0 -1
  625. package/chains/celo/package.json +0 -6
  626. package/chains/opStack/package.json +0 -6
  627. package/chains/zksync/package.json +0 -6
@@ -0,0 +1,149 @@
1
+ import type { Address } from 'abitype'
2
+ import {
3
+ type GetBlockErrorType,
4
+ getBlock,
5
+ } from '../../../actions/public/getBlock.js'
6
+ import {
7
+ type GetProofErrorType,
8
+ getProof,
9
+ } from '../../../actions/public/getProof.js'
10
+ import type { Client } from '../../../clients/createClient.js'
11
+ import type { Transport } from '../../../clients/transports/createTransport.js'
12
+ import type { ErrorType } from '../../../errors/utils.js'
13
+ import type {
14
+ Account,
15
+ DeriveAccount,
16
+ GetAccountParameter,
17
+ } from '../../../types/account.js'
18
+ import type {
19
+ Chain,
20
+ DeriveChain,
21
+ GetChainParameter,
22
+ } from '../../../types/chain.js'
23
+ import type { Prettify } from '../../../types/utils.js'
24
+ import { contracts } from '../contracts.js'
25
+ import type { Withdrawal } from '../types/withdrawal.js'
26
+ import {
27
+ type GetWithdrawalHashStorageSlotErrorType,
28
+ getWithdrawalHashStorageSlot,
29
+ } from '../utils/getWithdrawalHashStorageSlot.js'
30
+ import type { GetL2OutputReturnType } from './getL2Output.js'
31
+ import type { ProveWithdrawalParameters } from './proveWithdrawal.js'
32
+
33
+ const outputRootProofVersion =
34
+ '0x0000000000000000000000000000000000000000000000000000000000000000' as const
35
+
36
+ export type BuildProveWithdrawalParameters<
37
+ chain extends Chain | undefined = Chain | undefined,
38
+ account extends Account | undefined = Account | undefined,
39
+ chainOverride extends Chain | undefined = Chain | undefined,
40
+ accountOverride extends Account | Address | undefined =
41
+ | Account
42
+ | Address
43
+ | undefined,
44
+ _derivedChain extends Chain | undefined = DeriveChain<chain, chainOverride>,
45
+ > = GetAccountParameter<account, accountOverride, false> &
46
+ GetChainParameter<chain, chainOverride> & {
47
+ withdrawal: Withdrawal
48
+ output: GetL2OutputReturnType
49
+ }
50
+
51
+ export type BuildProveWithdrawalReturnType<
52
+ chain extends Chain | undefined = Chain | undefined,
53
+ account extends Account | undefined = Account | undefined,
54
+ chainOverride extends Chain | undefined = Chain | undefined,
55
+ accountOverride extends Account | Address | undefined =
56
+ | Account
57
+ | Address
58
+ | undefined,
59
+ > = Prettify<
60
+ Pick<
61
+ ProveWithdrawalParameters,
62
+ 'l2OutputIndex' | 'outputRootProof' | 'withdrawalProof' | 'withdrawal'
63
+ > & {
64
+ account: DeriveAccount<account, accountOverride>
65
+ targetChain: DeriveChain<chain, chainOverride>
66
+ }
67
+ >
68
+
69
+ export type BuildProveWithdrawalErrorType =
70
+ | GetBlockErrorType
71
+ | GetProofErrorType
72
+ | GetWithdrawalHashStorageSlotErrorType
73
+ | ErrorType
74
+
75
+ /**
76
+ * Builds the transaction that proves a withdrawal was initiated on an L2. Used in the Withdrawal flow.
77
+ *
78
+ * - Docs: https://viem.sh/op-stack/actions/buildProveWithdrawal.html
79
+ *
80
+ * @param client - Client to use
81
+ * @param parameters - {@link BuildProveWithdrawalParameters}
82
+ * @returns The prove withdraw transaction request. {@link BuildProveWithdrawalReturnType}
83
+ *
84
+ * @example
85
+ * import { createPublicClient, http } from 'viem'
86
+ * import { optimism } from 'viem/chains'
87
+ * import { buildProveWithdrawal } from 'viem/op-stack'
88
+ *
89
+ * const publicClientL2 = createPublicClient({
90
+ * chain: optimism,
91
+ * transport: http(),
92
+ * })
93
+ *
94
+ * const args = await buildProveWithdrawal(publicClientL2, {
95
+ * output: { ... },
96
+ * withdrawal: { ... },
97
+ * })
98
+ */
99
+ export async function buildProveWithdrawal<
100
+ chain extends Chain | undefined,
101
+ account extends Account | undefined,
102
+ chainOverride extends Chain | undefined = undefined,
103
+ accountOverride extends Account | Address | undefined = undefined,
104
+ >(
105
+ client: Client<Transport, chain, account>,
106
+ args: BuildProveWithdrawalParameters<
107
+ chain,
108
+ account,
109
+ chainOverride,
110
+ accountOverride
111
+ >,
112
+ ): Promise<
113
+ BuildProveWithdrawalReturnType<chain, account, chainOverride, accountOverride>
114
+ > {
115
+ const { account, chain = client.chain, output, withdrawal } = args
116
+ const { withdrawalHash } = withdrawal
117
+ const { l2BlockNumber } = output
118
+
119
+ const slot = getWithdrawalHashStorageSlot({ withdrawalHash })
120
+ const [proof, block] = await Promise.all([
121
+ getProof(client, {
122
+ address: contracts.l2ToL1MessagePasser.address,
123
+ storageKeys: [slot],
124
+ blockNumber: l2BlockNumber,
125
+ }),
126
+ getBlock(client, {
127
+ blockNumber: l2BlockNumber,
128
+ }),
129
+ ])
130
+
131
+ return {
132
+ account,
133
+ l2OutputIndex: output.outputIndex,
134
+ outputRootProof: {
135
+ latestBlockhash: block.hash,
136
+ messagePasserStorageRoot: proof.storageHash,
137
+ stateRoot: block.stateRoot,
138
+ version: outputRootProofVersion,
139
+ },
140
+ targetChain: chain,
141
+ withdrawalProof: proof.storageProof[0].proof,
142
+ withdrawal,
143
+ } as unknown as BuildProveWithdrawalReturnType<
144
+ chain,
145
+ account,
146
+ chainOverride,
147
+ accountOverride
148
+ >
149
+ }
@@ -1,6 +1,7 @@
1
1
  import type { Address } from 'abitype'
2
2
  import {
3
3
  type WriteContractErrorType,
4
+ type WriteContractParameters,
4
5
  writeContract,
5
6
  } from '../../../actions/wallet/writeContract.js'
6
7
  import type { Client } from '../../../clients/createClient.js'
@@ -13,11 +14,17 @@ import type {
13
14
  DeriveChain,
14
15
  GetChainParameter,
15
16
  } from '../../../types/chain.js'
16
- import type { Hash, Hex } from '../../../types/misc.js'
17
+ import type { Hash } from '../../../types/misc.js'
17
18
  import type { UnionEvaluate, UnionOmit } from '../../../types/utils.js'
18
19
  import type { FormattedTransactionRequest } from '../../../utils/formatters/transactionRequest.js'
19
20
  import { portalAbi } from '../abis.js'
20
21
  import type { GetContractAddressParameter } from '../types/contract.js'
22
+ import type { DepositRequest } from '../types/deposit.js'
23
+ import {
24
+ type EstimateDepositTransactionGasErrorType,
25
+ type EstimateDepositTransactionGasParameters,
26
+ estimateDepositTransactionGas,
27
+ } from './estimateDepositTransactionGas.js'
21
28
 
22
29
  export type DepositTransactionParameters<
23
30
  chain extends Chain | undefined = Chain | undefined,
@@ -40,35 +47,19 @@ export type DepositTransactionParameters<
40
47
  GetAccountParameter<account, Account | Address> &
41
48
  GetChainParameter<chain, chainOverride> &
42
49
  GetContractAddressParameter<_derivedChain, 'portal'> & {
43
- /** Arguments supplied to the L2 transaction. */
44
- args: {
45
- /** Gas limit for transaction execution on the L2. */
46
- gas: bigint
47
- /** Value in wei to mint (deposit) on the L2. Debited from the caller's L1 balance. */
48
- mint?: bigint
49
- /** Value in wei sent with this transaction on the L2. Debited from the caller's L2 balance. */
50
- value?: bigint
51
- } & (
52
- | {
53
- /** Encoded contract method & arguments. */
54
- data?: Hex
55
- /** Whether or not this is a contract deployment transaction. */
56
- isCreation?: false
57
- /** L2 Transaction recipient. */
58
- to?: Address
59
- }
60
- | {
61
- /** Contract deployment bytecode. Required for contract deployment transactions. */
62
- data: Hex
63
- /** Whether or not this is a contract deployment transaction. */
64
- isCreation: true
65
- /** L2 Transaction recipient. Cannot exist for contract deployment transactions. */
66
- to?: never
67
- }
68
- )
50
+ /** L2 transaction request. */
51
+ request: DepositRequest
52
+ /**
53
+ * Gas limit for transaction execution on the L1.
54
+ * `null` to skip gas estimation & defer calculation to signer.
55
+ */
56
+ gas?: bigint | null
69
57
  }
70
58
  export type DepositTransactionReturnType = Hash
71
- export type DepositTransactionErrorType = WriteContractErrorType | ErrorType
59
+ export type DepositTransactionErrorType =
60
+ | EstimateDepositTransactionGasErrorType
61
+ | WriteContractErrorType
62
+ | ErrorType
72
63
 
73
64
  /**
74
65
  * Initiates a [deposit transaction](https://github.com/ethereum-optimism/optimism/blob/develop/specs/deposits.md) on an L1, which executes a transaction on L2.
@@ -85,17 +76,16 @@ export type DepositTransactionErrorType = WriteContractErrorType | ErrorType
85
76
  * @example
86
77
  * import { createWalletClient, custom, parseEther } from 'viem'
87
78
  * import { base, mainnet } from 'viem/chains'
88
- * import { walletActionsL1 } from 'viem/op-stack'
89
- * import { depositTransaction } from 'viem/wallet'
79
+ * import { depositTransaction } from 'viem/op-stack'
90
80
  *
91
81
  * const client = createWalletClient({
92
82
  * chain: mainnet,
93
83
  * transport: custom(window.ethereum),
94
- * }).extend(walletActionsL1())
84
+ * })
95
85
  *
96
86
  * const hash = await depositTransaction(client, {
97
87
  * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
98
- * args: {
88
+ * request: {
99
89
  * gas: 21_000n,
100
90
  * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
101
91
  * value: parseEther('1'),
@@ -108,17 +98,16 @@ export type DepositTransactionErrorType = WriteContractErrorType | ErrorType
108
98
  * import { createWalletClient, http } from 'viem'
109
99
  * import { privateKeyToAccount } from 'viem/accounts'
110
100
  * import { base, mainnet } from 'viem/chains'
111
- * import { walletActionsL1 } from 'viem/op-stack'
112
- * import { depositTransaction } from 'viem/wallet'
101
+ * import { depositTransaction } from 'viem/op-stack'
113
102
  *
114
103
  * const client = createWalletClient({
115
104
  * account: privateKeyToAccount('0x…'),
116
105
  * chain: mainnet,
117
106
  * transport: http(),
118
- * }).extend(walletActionsL1())
107
+ * })
119
108
  *
120
109
  * const hash = await depositTransaction(client, {
121
- * args: {
110
+ * request: {
122
111
  * gas: 21_000n,
123
112
  * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
124
113
  * value: parseEther('1'),
@@ -126,32 +115,48 @@ export type DepositTransactionErrorType = WriteContractErrorType | ErrorType
126
115
  * targetChain: base,
127
116
  * })
128
117
  */
129
- export function depositTransaction<
118
+ export async function depositTransaction<
130
119
  chain extends Chain | undefined,
131
120
  account extends Account | undefined,
132
121
  chainOverride extends Chain | undefined = undefined,
133
122
  >(
134
123
  client: Client<Transport, chain, account>,
135
- args: DepositTransactionParameters<chain, account, chainOverride>,
124
+ parameters: DepositTransactionParameters<chain, account, chainOverride>,
136
125
  ) {
137
126
  const {
138
127
  account,
139
- args: { data = '0x', gas, isCreation = false, mint, to = '0x', value },
140
128
  chain = client.chain,
129
+ gas,
141
130
  maxFeePerGas,
142
131
  maxPriorityFeePerGas,
143
132
  nonce,
133
+ request: {
134
+ data = '0x',
135
+ gas: l2Gas,
136
+ isCreation = false,
137
+ mint,
138
+ to = '0x',
139
+ value,
140
+ },
144
141
  targetChain,
145
- } = args
142
+ } = parameters
146
143
 
147
144
  const portalAddress = (() => {
148
- if (args.portalAddress) return args.portalAddress
145
+ if (parameters.portalAddress) return parameters.portalAddress
149
146
  if (chain) return targetChain!.contracts.portal[chain.id].address
150
147
  return Object.values(targetChain!.contracts.portal)[0].address
151
148
  })()
152
149
 
150
+ const gas_ =
151
+ typeof gas !== 'number' && gas !== null
152
+ ? await estimateDepositTransactionGas(
153
+ client,
154
+ parameters as EstimateDepositTransactionGasParameters,
155
+ )
156
+ : undefined
157
+
153
158
  return writeContract(client, {
154
- account,
159
+ account: account!,
155
160
  abi: portalAbi,
156
161
  address: portalAddress,
157
162
  chain,
@@ -159,7 +164,7 @@ export function depositTransaction<
159
164
  args: [
160
165
  isCreation ? zeroAddress : to,
161
166
  value ?? mint ?? 0n,
162
- gas,
167
+ l2Gas,
163
168
  isCreation,
164
169
  data,
165
170
  ],
@@ -167,5 +172,6 @@ export function depositTransaction<
167
172
  maxPriorityFeePerGas,
168
173
  nonce,
169
174
  value: mint,
170
- } as any)
175
+ gas: gas_,
176
+ } satisfies WriteContractParameters as any)
171
177
  }
@@ -0,0 +1,138 @@
1
+ import type { Address } from 'abitype'
2
+ import {
3
+ type EstimateContractGasErrorType,
4
+ type EstimateContractGasParameters,
5
+ estimateContractGas,
6
+ } from '../../../actions/public/estimateContractGas.js'
7
+ import type { Client } from '../../../clients/createClient.js'
8
+ import type { Transport } from '../../../clients/transports/createTransport.js'
9
+ import { zeroAddress } from '../../../constants/address.js'
10
+ import type { ErrorType } from '../../../errors/utils.js'
11
+ import type { Account, GetAccountParameter } from '../../../types/account.js'
12
+ import type {
13
+ Chain,
14
+ DeriveChain,
15
+ GetChainParameter,
16
+ } from '../../../types/chain.js'
17
+ import type { UnionEvaluate, UnionOmit } from '../../../types/utils.js'
18
+ import type { FormattedTransactionRequest } from '../../../utils/formatters/transactionRequest.js'
19
+ import { portalAbi } from '../abis.js'
20
+ import type { GetContractAddressParameter } from '../types/contract.js'
21
+ import type { DepositRequest } from '../types/deposit.js'
22
+
23
+ export type EstimateDepositTransactionGasParameters<
24
+ chain extends Chain | undefined = Chain | undefined,
25
+ account extends Account | undefined = Account | undefined,
26
+ chainOverride extends Chain | undefined = Chain | undefined,
27
+ _derivedChain extends Chain | undefined = DeriveChain<chain, chainOverride>,
28
+ > = UnionEvaluate<
29
+ UnionOmit<
30
+ FormattedTransactionRequest<_derivedChain>,
31
+ | 'accessList'
32
+ | 'data'
33
+ | 'from'
34
+ | 'gas'
35
+ | 'gasPrice'
36
+ | 'to'
37
+ | 'type'
38
+ | 'value'
39
+ >
40
+ > &
41
+ GetAccountParameter<account, Account | Address> &
42
+ GetChainParameter<chain, chainOverride> &
43
+ GetContractAddressParameter<_derivedChain, 'portal'> & {
44
+ /** L2 transaction request. */
45
+ request: DepositRequest
46
+ /** Gas limit for transaction execution on the L1. */
47
+ gas?: bigint | null
48
+ }
49
+ export type EstimateDepositTransactionGasReturnType = bigint
50
+ export type EstimateDepositTransactionGasErrorType =
51
+ | EstimateContractGasErrorType
52
+ | ErrorType
53
+
54
+ /**
55
+ * Estimates gas required to initiate a [deposit transaction](https://github.com/ethereum-optimism/optimism/blob/develop/specs/deposits.md) on an L1, which executes a transaction on L2.
56
+ *
57
+ * - Docs: https://viem.sh/op-stack/actions/estimateDepositTransactionGas.html
58
+ *
59
+ * @param client - Client to use
60
+ * @param parameters - {@link EstimateDepositTransactionGasParameters}
61
+ * @returns The L1 transaction hash. {@link EstimateDepositTransactionGasReturnType}
62
+ *
63
+ * @example
64
+ * import { createPublicClient, custom, parseEther } from 'viem'
65
+ * import { base, mainnet } from 'viem/chains'
66
+ * import { estimateDepositTransactionGas } from 'viem/op-stack'
67
+ *
68
+ * const client = createPublicClient({
69
+ * chain: mainnet,
70
+ * transport: custom(window.ethereum),
71
+ * })
72
+ *
73
+ * const gas = await estimateDepositTransactionGas(client, {
74
+ * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
75
+ * args: {
76
+ * gas: 21_000n,
77
+ * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
78
+ * value: parseEther('1'),
79
+ * },
80
+ * targetChain: base,
81
+ * })
82
+ */
83
+ export async function estimateDepositTransactionGas<
84
+ chain extends Chain | undefined,
85
+ account extends Account | undefined,
86
+ chainOverride extends Chain | undefined = undefined,
87
+ >(
88
+ client: Client<Transport, chain, account>,
89
+ parameters: EstimateDepositTransactionGasParameters<
90
+ chain,
91
+ account,
92
+ chainOverride
93
+ >,
94
+ ) {
95
+ const {
96
+ account,
97
+ chain = client.chain,
98
+ gas,
99
+ maxFeePerGas,
100
+ maxPriorityFeePerGas,
101
+ nonce,
102
+ request: {
103
+ data = '0x',
104
+ gas: l2Gas,
105
+ isCreation = false,
106
+ mint,
107
+ to = '0x',
108
+ value,
109
+ },
110
+ targetChain,
111
+ } = parameters
112
+
113
+ const portalAddress = (() => {
114
+ if (parameters.portalAddress) return parameters.portalAddress
115
+ if (chain) return targetChain!.contracts.portal[chain.id].address
116
+ return Object.values(targetChain!.contracts.portal)[0].address
117
+ })()
118
+
119
+ return estimateContractGas(client, {
120
+ account,
121
+ abi: portalAbi,
122
+ address: portalAddress,
123
+ chain,
124
+ functionName: 'depositTransaction',
125
+ args: [
126
+ isCreation ? zeroAddress : to,
127
+ value ?? mint ?? 0n,
128
+ l2Gas,
129
+ isCreation,
130
+ data,
131
+ ],
132
+ gas,
133
+ maxFeePerGas,
134
+ maxPriorityFeePerGas,
135
+ nonce,
136
+ value: mint,
137
+ } as EstimateContractGasParameters)
138
+ }
@@ -0,0 +1,118 @@
1
+ import type { Address } from 'abitype'
2
+ import {
3
+ type EstimateContractGasErrorType,
4
+ type EstimateContractGasParameters,
5
+ estimateContractGas,
6
+ } from '../../../actions/public/estimateContractGas.js'
7
+ import type { Client } from '../../../clients/createClient.js'
8
+ import type { Transport } from '../../../clients/transports/createTransport.js'
9
+ import type { ErrorType } from '../../../errors/utils.js'
10
+ import type { Account, GetAccountParameter } from '../../../types/account.js'
11
+ import type {
12
+ Chain,
13
+ DeriveChain,
14
+ GetChainParameter,
15
+ } from '../../../types/chain.js'
16
+ import type { UnionEvaluate, UnionOmit } from '../../../types/utils.js'
17
+ import type { FormattedTransactionRequest } from '../../../utils/formatters/transactionRequest.js'
18
+ import { portalAbi } from '../abis.js'
19
+ import type { GetContractAddressParameter } from '../types/contract.js'
20
+ import type { Withdrawal } from '../types/withdrawal.js'
21
+
22
+ export type EstimateFinalizeWithdrawalGasParameters<
23
+ chain extends Chain | undefined = Chain | undefined,
24
+ account extends Account | undefined = Account | undefined,
25
+ chainOverride extends Chain | undefined = Chain | undefined,
26
+ _derivedChain extends Chain | undefined = DeriveChain<chain, chainOverride>,
27
+ > = UnionEvaluate<
28
+ UnionOmit<
29
+ FormattedTransactionRequest<_derivedChain>,
30
+ | 'accessList'
31
+ | 'data'
32
+ | 'from'
33
+ | 'gas'
34
+ | 'gasPrice'
35
+ | 'to'
36
+ | 'type'
37
+ | 'value'
38
+ >
39
+ > &
40
+ GetAccountParameter<account, Account | Address> &
41
+ GetChainParameter<chain, chainOverride> &
42
+ GetContractAddressParameter<_derivedChain, 'portal'> & {
43
+ /** Gas limit for transaction execution on the L2. */
44
+ gas?: bigint | null
45
+ withdrawal: Withdrawal
46
+ }
47
+ export type EstimateFinalizeWithdrawalGasReturnType = bigint
48
+ export type EstimateFinalizeWithdrawalGasErrorType =
49
+ | EstimateContractGasErrorType
50
+ | ErrorType
51
+
52
+ /**
53
+ * Estimates gas required to finalize a withdrawal that occurred on an L2.
54
+ *
55
+ * - Docs: https://viem.sh/op-stack/actions/estimateFinalizeWithdrawalGas.html
56
+ *
57
+ * @param client - Client to use
58
+ * @param parameters - {@link EstimateFinalizeWithdrawalGasParameters}
59
+ * @returns Estimated gas. {@link EstimateFinalizeWithdrawalGasReturnType}
60
+ *
61
+ * @example
62
+ * import { createPublicClient, http, parseEther } from 'viem'
63
+ * import { base, mainnet } from 'viem/chains'
64
+ * import { estimateFinalizeWithdrawalGas } from 'viem/op-stack'
65
+ *
66
+ * const client = createPublicClient({
67
+ * chain: mainnet,
68
+ * transport: http(),
69
+ * })
70
+ *
71
+ * const gas = await estimateFinalizeWithdrawalGas(client, {
72
+ * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
73
+ * targetChain: optimism,
74
+ * withdrawal: { ... },
75
+ * })
76
+ */
77
+ export async function estimateFinalizeWithdrawalGas<
78
+ chain extends Chain | undefined,
79
+ account extends Account | undefined,
80
+ chainOverride extends Chain | undefined = undefined,
81
+ >(
82
+ client: Client<Transport, chain, account>,
83
+ parameters: EstimateFinalizeWithdrawalGasParameters<
84
+ chain,
85
+ account,
86
+ chainOverride
87
+ >,
88
+ ) {
89
+ const {
90
+ account,
91
+ chain = client.chain,
92
+ gas,
93
+ maxFeePerGas,
94
+ maxPriorityFeePerGas,
95
+ nonce,
96
+ targetChain,
97
+ withdrawal,
98
+ } = parameters
99
+
100
+ const portalAddress = (() => {
101
+ if (parameters.portalAddress) return parameters.portalAddress
102
+ if (chain) return targetChain!.contracts.portal[chain.id].address
103
+ return Object.values(targetChain!.contracts.portal)[0].address
104
+ })()
105
+
106
+ return estimateContractGas(client, {
107
+ account,
108
+ abi: portalAbi,
109
+ address: portalAddress,
110
+ chain,
111
+ functionName: 'finalizeWithdrawalTransaction',
112
+ args: [withdrawal],
113
+ gas,
114
+ maxFeePerGas,
115
+ maxPriorityFeePerGas,
116
+ nonce,
117
+ } as EstimateContractGasParameters)
118
+ }