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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (457) hide show
  1. package/CHANGELOG.md +44 -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/wallet/prepareTransactionRequest.js.map +1 -1
  8. package/_cjs/chains/definitions/arbitrumSepolia.js +4 -0
  9. package/_cjs/chains/definitions/arbitrumSepolia.js.map +1 -1
  10. package/_cjs/chains/definitions/base.js +5 -0
  11. package/_cjs/chains/definitions/base.js.map +1 -1
  12. package/_cjs/chains/definitions/baseGoerli.js +5 -0
  13. package/_cjs/chains/definitions/baseGoerli.js.map +1 -1
  14. package/_cjs/chains/definitions/baseSepolia.js +5 -0
  15. package/_cjs/chains/definitions/baseSepolia.js.map +1 -1
  16. package/_cjs/chains/definitions/fantomSonicTestnet.js +26 -0
  17. package/_cjs/chains/definitions/fantomSonicTestnet.js.map +1 -0
  18. package/_cjs/chains/definitions/optimism.js +5 -0
  19. package/_cjs/chains/definitions/optimism.js.map +1 -1
  20. package/_cjs/chains/definitions/optimismGoerli.js +5 -0
  21. package/_cjs/chains/definitions/optimismGoerli.js.map +1 -1
  22. package/_cjs/chains/definitions/optimismSepolia.js +5 -0
  23. package/_cjs/chains/definitions/optimismSepolia.js.map +1 -1
  24. package/_cjs/chains/definitions/pgn.js +12 -0
  25. package/_cjs/chains/definitions/pgn.js.map +1 -1
  26. package/_cjs/chains/definitions/pgnTestnet.js +7 -0
  27. package/_cjs/chains/definitions/pgnTestnet.js.map +1 -1
  28. package/_cjs/chains/definitions/zilliqa.js +26 -0
  29. package/_cjs/chains/definitions/zilliqa.js.map +1 -0
  30. package/_cjs/chains/definitions/zilliqaTestnet.js +26 -0
  31. package/_cjs/chains/definitions/zilliqaTestnet.js.map +1 -0
  32. package/_cjs/chains/definitions/zkSyncSepoliaTestnet.js +35 -0
  33. package/_cjs/chains/definitions/zkSyncSepoliaTestnet.js.map +1 -0
  34. package/_cjs/chains/definitions/zkSyncTestnet.js +4 -0
  35. package/_cjs/chains/definitions/zkSyncTestnet.js.map +1 -1
  36. package/_cjs/chains/definitions/zora.js +5 -0
  37. package/_cjs/chains/definitions/zora.js.map +1 -1
  38. package/_cjs/chains/definitions/zoraSepolia.js +5 -0
  39. package/_cjs/chains/definitions/zoraSepolia.js.map +1 -1
  40. package/_cjs/chains/index.js +12 -4
  41. package/_cjs/chains/index.js.map +1 -1
  42. package/_cjs/chains/opStack/abis.js +366 -1
  43. package/_cjs/chains/opStack/abis.js.map +1 -1
  44. package/_cjs/chains/opStack/actions/buildDepositTransaction.js +1 -1
  45. package/_cjs/chains/opStack/actions/buildDepositTransaction.js.map +1 -1
  46. package/_cjs/chains/opStack/actions/buildInitiateWithdrawal.js +29 -0
  47. package/_cjs/chains/opStack/actions/buildInitiateWithdrawal.js.map +1 -0
  48. package/_cjs/chains/opStack/actions/buildProveWithdrawal.js +39 -0
  49. package/_cjs/chains/opStack/actions/buildProveWithdrawal.js.map +1 -0
  50. package/_cjs/chains/opStack/actions/depositTransaction.js +11 -6
  51. package/_cjs/chains/opStack/actions/depositTransaction.js.map +1 -1
  52. package/_cjs/chains/opStack/actions/estimateDepositTransactionGas.js +37 -0
  53. package/_cjs/chains/opStack/actions/estimateDepositTransactionGas.js.map +1 -0
  54. package/_cjs/chains/opStack/actions/estimateFinalizeWithdrawalGas.js +29 -0
  55. package/_cjs/chains/opStack/actions/estimateFinalizeWithdrawalGas.js.map +1 -0
  56. package/_cjs/chains/opStack/actions/estimateInitiateWithdrawalGas.js +24 -0
  57. package/_cjs/chains/opStack/actions/estimateInitiateWithdrawalGas.js.map +1 -0
  58. package/_cjs/chains/opStack/actions/estimateProveWithdrawalGas.js +29 -0
  59. package/_cjs/chains/opStack/actions/estimateProveWithdrawalGas.js.map +1 -0
  60. package/_cjs/chains/opStack/actions/finalizeWithdrawal.js +33 -0
  61. package/_cjs/chains/opStack/actions/finalizeWithdrawal.js.map +1 -0
  62. package/_cjs/chains/opStack/actions/getL2Output.js +30 -0
  63. package/_cjs/chains/opStack/actions/getL2Output.js.map +1 -0
  64. package/_cjs/chains/opStack/actions/getTimeToFinalize.js +46 -0
  65. package/_cjs/chains/opStack/actions/getTimeToFinalize.js.map +1 -0
  66. package/_cjs/chains/opStack/actions/getTimeToNextL2Output.js +63 -0
  67. package/_cjs/chains/opStack/actions/getTimeToNextL2Output.js.map +1 -0
  68. package/_cjs/chains/opStack/actions/getTimeToProve.js +13 -0
  69. package/_cjs/chains/opStack/actions/getTimeToProve.js.map +1 -0
  70. package/_cjs/chains/opStack/actions/getWithdrawalStatus.js +71 -0
  71. package/_cjs/chains/opStack/actions/getWithdrawalStatus.js.map +1 -0
  72. package/_cjs/chains/opStack/actions/initiateWithdrawal.js +28 -0
  73. package/_cjs/chains/opStack/actions/initiateWithdrawal.js.map +1 -0
  74. package/_cjs/chains/opStack/actions/proveWithdrawal.js +33 -0
  75. package/_cjs/chains/opStack/actions/proveWithdrawal.js.map +1 -0
  76. package/_cjs/chains/opStack/actions/waitForNextL2Output.js +32 -0
  77. package/_cjs/chains/opStack/actions/waitForNextL2Output.js.map +1 -0
  78. package/_cjs/chains/opStack/actions/waitToFinalize.js +11 -0
  79. package/_cjs/chains/opStack/actions/waitToFinalize.js.map +1 -0
  80. package/_cjs/chains/opStack/actions/waitToProve.js +21 -0
  81. package/_cjs/chains/opStack/actions/waitToProve.js.map +1 -0
  82. package/_cjs/chains/opStack/chains.js +5 -1
  83. package/_cjs/chains/opStack/chains.js.map +1 -1
  84. package/_cjs/chains/opStack/decorators/publicL1.js +35 -0
  85. package/_cjs/chains/opStack/decorators/publicL1.js.map +1 -0
  86. package/_cjs/chains/opStack/decorators/publicL2.js +5 -1
  87. package/_cjs/chains/opStack/decorators/publicL2.js.map +1 -1
  88. package/_cjs/chains/opStack/decorators/walletL1.js +4 -0
  89. package/_cjs/chains/opStack/decorators/walletL1.js.map +1 -1
  90. package/_cjs/chains/opStack/decorators/walletL2.js +13 -0
  91. package/_cjs/chains/opStack/decorators/walletL2.js.map +1 -0
  92. package/_cjs/chains/opStack/errors/withdrawal.js +17 -0
  93. package/_cjs/chains/opStack/errors/withdrawal.js.map +1 -0
  94. package/_cjs/chains/opStack/index.js +43 -15
  95. package/_cjs/chains/opStack/index.js.map +1 -1
  96. package/_cjs/chains/opStack/types/deposit.js +3 -0
  97. package/_cjs/chains/opStack/types/deposit.js.map +1 -0
  98. package/_cjs/chains/opStack/types/withdrawal.js +3 -0
  99. package/_cjs/chains/opStack/types/withdrawal.js.map +1 -0
  100. package/_cjs/chains/opStack/utils/extractWithdrawalMessageLogs.js +14 -0
  101. package/_cjs/chains/opStack/utils/extractWithdrawalMessageLogs.js.map +1 -0
  102. package/_cjs/chains/opStack/utils/getL2TransactionHash.js +2 -2
  103. package/_cjs/chains/opStack/utils/getL2TransactionHash.js.map +1 -1
  104. package/_cjs/chains/opStack/utils/getWithdrawalHashStorageSlot.js +11 -0
  105. package/_cjs/chains/opStack/utils/getWithdrawalHashStorageSlot.js.map +1 -0
  106. package/_cjs/chains/opStack/utils/getWithdrawals.js +10 -0
  107. package/_cjs/chains/opStack/utils/getWithdrawals.js.map +1 -0
  108. package/_cjs/chains/opStack/utils/{fromOpaqueData.js → opaqueDataToDepositData.js} +4 -4
  109. package/_cjs/chains/opStack/utils/opaqueDataToDepositData.js.map +1 -0
  110. package/_cjs/errors/abi.js +21 -1
  111. package/_cjs/errors/abi.js.map +1 -1
  112. package/_cjs/errors/version.js +1 -1
  113. package/_cjs/errors/version.js.map +1 -1
  114. package/_cjs/index.js +10 -2
  115. package/_cjs/index.js.map +1 -1
  116. package/_cjs/utils/abi/getAbiItem.js +46 -3
  117. package/_cjs/utils/abi/getAbiItem.js.map +1 -1
  118. package/_cjs/utils/hash/ripemd160.js +16 -0
  119. package/_cjs/utils/hash/ripemd160.js.map +1 -0
  120. package/_cjs/utils/hash/sha256.js +16 -0
  121. package/_cjs/utils/hash/sha256.js.map +1 -0
  122. package/_cjs/utils/index.js +5 -1
  123. package/_cjs/utils/index.js.map +1 -1
  124. package/_esm/actions/ens/getEnsName.js +4 -2
  125. package/_esm/actions/ens/getEnsName.js.map +1 -1
  126. package/_esm/actions/index.js +7 -0
  127. package/_esm/actions/index.js.map +1 -1
  128. package/_esm/actions/wallet/prepareTransactionRequest.js.map +1 -1
  129. package/_esm/chains/definitions/arbitrumSepolia.js +4 -0
  130. package/_esm/chains/definitions/arbitrumSepolia.js.map +1 -1
  131. package/_esm/chains/definitions/base.js +5 -0
  132. package/_esm/chains/definitions/base.js.map +1 -1
  133. package/_esm/chains/definitions/baseGoerli.js +5 -0
  134. package/_esm/chains/definitions/baseGoerli.js.map +1 -1
  135. package/_esm/chains/definitions/baseSepolia.js +5 -0
  136. package/_esm/chains/definitions/baseSepolia.js.map +1 -1
  137. package/_esm/chains/definitions/fantomSonicTestnet.js +23 -0
  138. package/_esm/chains/definitions/fantomSonicTestnet.js.map +1 -0
  139. package/_esm/chains/definitions/optimism.js +5 -0
  140. package/_esm/chains/definitions/optimism.js.map +1 -1
  141. package/_esm/chains/definitions/optimismGoerli.js +5 -0
  142. package/_esm/chains/definitions/optimismGoerli.js.map +1 -1
  143. package/_esm/chains/definitions/optimismSepolia.js +5 -0
  144. package/_esm/chains/definitions/optimismSepolia.js.map +1 -1
  145. package/_esm/chains/definitions/pgn.js +12 -0
  146. package/_esm/chains/definitions/pgn.js.map +1 -1
  147. package/_esm/chains/definitions/pgnTestnet.js +7 -0
  148. package/_esm/chains/definitions/pgnTestnet.js.map +1 -1
  149. package/_esm/chains/definitions/zilliqa.js +23 -0
  150. package/_esm/chains/definitions/zilliqa.js.map +1 -0
  151. package/_esm/chains/definitions/zilliqaTestnet.js +23 -0
  152. package/_esm/chains/definitions/zilliqaTestnet.js.map +1 -0
  153. package/_esm/chains/definitions/zkSyncSepoliaTestnet.js +32 -0
  154. package/_esm/chains/definitions/zkSyncSepoliaTestnet.js.map +1 -0
  155. package/_esm/chains/definitions/zkSyncTestnet.js +5 -0
  156. package/_esm/chains/definitions/zkSyncTestnet.js.map +1 -1
  157. package/_esm/chains/definitions/zora.js +5 -0
  158. package/_esm/chains/definitions/zora.js.map +1 -1
  159. package/_esm/chains/definitions/zoraSepolia.js +5 -0
  160. package/_esm/chains/definitions/zoraSepolia.js.map +1 -1
  161. package/_esm/chains/index.js +4 -0
  162. package/_esm/chains/index.js.map +1 -1
  163. package/_esm/chains/opStack/abis.js +365 -0
  164. package/_esm/chains/opStack/abis.js.map +1 -1
  165. package/_esm/chains/opStack/actions/buildDepositTransaction.js +2 -2
  166. package/_esm/chains/opStack/actions/buildDepositTransaction.js.map +1 -1
  167. package/_esm/chains/opStack/actions/buildInitiateWithdrawal.js +50 -0
  168. package/_esm/chains/opStack/actions/buildInitiateWithdrawal.js.map +1 -0
  169. package/_esm/chains/opStack/actions/buildProveWithdrawal.js +59 -0
  170. package/_esm/chains/opStack/actions/buildProveWithdrawal.js.map +1 -0
  171. package/_esm/chains/opStack/actions/depositTransaction.js +17 -14
  172. package/_esm/chains/opStack/actions/depositTransaction.js.map +1 -1
  173. package/_esm/chains/opStack/actions/estimateDepositTransactionGas.js +62 -0
  174. package/_esm/chains/opStack/actions/estimateDepositTransactionGas.js.map +1 -0
  175. package/_esm/chains/opStack/actions/estimateFinalizeWithdrawalGas.js +50 -0
  176. package/_esm/chains/opStack/actions/estimateFinalizeWithdrawalGas.js.map +1 -0
  177. package/_esm/chains/opStack/actions/estimateInitiateWithdrawalGas.js +48 -0
  178. package/_esm/chains/opStack/actions/estimateInitiateWithdrawalGas.js.map +1 -0
  179. package/_esm/chains/opStack/actions/estimateProveWithdrawalGas.js +53 -0
  180. package/_esm/chains/opStack/actions/estimateProveWithdrawalGas.js.map +1 -0
  181. package/_esm/chains/opStack/actions/finalizeWithdrawal.js +53 -0
  182. package/_esm/chains/opStack/actions/finalizeWithdrawal.js.map +1 -0
  183. package/_esm/chains/opStack/actions/getL2Output.js +50 -0
  184. package/_esm/chains/opStack/actions/getL2Output.js.map +1 -0
  185. package/_esm/chains/opStack/actions/getTimeToFinalize.js +77 -0
  186. package/_esm/chains/opStack/actions/getTimeToFinalize.js.map +1 -0
  187. package/_esm/chains/opStack/actions/getTimeToNextL2Output.js +91 -0
  188. package/_esm/chains/opStack/actions/getTimeToNextL2Output.js.map +1 -0
  189. package/_esm/chains/opStack/actions/getTimeToProve.js +39 -0
  190. package/_esm/chains/opStack/actions/getTimeToProve.js.map +1 -0
  191. package/_esm/chains/opStack/actions/getWithdrawalStatus.js +99 -0
  192. package/_esm/chains/opStack/actions/getWithdrawalStatus.js.map +1 -0
  193. package/_esm/chains/opStack/actions/initiateWithdrawal.js +76 -0
  194. package/_esm/chains/opStack/actions/initiateWithdrawal.js.map +1 -0
  195. package/_esm/chains/opStack/actions/proveWithdrawal.js +57 -0
  196. package/_esm/chains/opStack/actions/proveWithdrawal.js.map +1 -0
  197. package/_esm/chains/opStack/actions/waitForNextL2Output.js +58 -0
  198. package/_esm/chains/opStack/actions/waitForNextL2Output.js.map +1 -0
  199. package/_esm/chains/opStack/actions/waitToFinalize.js +41 -0
  200. package/_esm/chains/opStack/actions/waitToFinalize.js.map +1 -0
  201. package/_esm/chains/opStack/actions/waitToProve.js +47 -0
  202. package/_esm/chains/opStack/actions/waitToProve.js.map +1 -0
  203. package/_esm/chains/opStack/chains.js +2 -0
  204. package/_esm/chains/opStack/chains.js.map +1 -1
  205. package/_esm/chains/opStack/decorators/publicL1.js +31 -0
  206. package/_esm/chains/opStack/decorators/publicL1.js.map +1 -0
  207. package/_esm/chains/opStack/decorators/publicL2.js +5 -1
  208. package/_esm/chains/opStack/decorators/publicL2.js.map +1 -1
  209. package/_esm/chains/opStack/decorators/walletL1.js +4 -0
  210. package/_esm/chains/opStack/decorators/walletL1.js.map +1 -1
  211. package/_esm/chains/opStack/decorators/walletL2.js +9 -0
  212. package/_esm/chains/opStack/decorators/walletL2.js.map +1 -0
  213. package/_esm/chains/opStack/errors/withdrawal.js +13 -0
  214. package/_esm/chains/opStack/errors/withdrawal.js.map +1 -0
  215. package/_esm/chains/opStack/index.js +21 -3
  216. package/_esm/chains/opStack/index.js.map +1 -1
  217. package/_esm/chains/opStack/types/deposit.js +2 -0
  218. package/_esm/chains/opStack/types/deposit.js.map +1 -0
  219. package/_esm/chains/opStack/types/withdrawal.js +2 -0
  220. package/_esm/chains/opStack/types/withdrawal.js.map +1 -0
  221. package/_esm/chains/opStack/utils/extractWithdrawalMessageLogs.js +10 -0
  222. package/_esm/chains/opStack/utils/extractWithdrawalMessageLogs.js.map +1 -0
  223. package/_esm/chains/opStack/utils/getL2TransactionHash.js +2 -2
  224. package/_esm/chains/opStack/utils/getL2TransactionHash.js.map +1 -1
  225. package/_esm/chains/opStack/utils/getWithdrawalHashStorageSlot.js +7 -0
  226. package/_esm/chains/opStack/utils/getWithdrawalHashStorageSlot.js.map +1 -0
  227. package/_esm/chains/opStack/utils/getWithdrawals.js +6 -0
  228. package/_esm/chains/opStack/utils/getWithdrawals.js.map +1 -0
  229. package/_esm/chains/opStack/utils/{fromOpaqueData.js → opaqueDataToDepositData.js} +2 -2
  230. package/_esm/chains/opStack/utils/opaqueDataToDepositData.js.map +1 -0
  231. package/_esm/errors/abi.js +19 -0
  232. package/_esm/errors/abi.js.map +1 -1
  233. package/_esm/errors/version.js +1 -1
  234. package/_esm/errors/version.js.map +1 -1
  235. package/_esm/index.js +4 -0
  236. package/_esm/index.js.map +1 -1
  237. package/_esm/utils/abi/getAbiItem.js +46 -2
  238. package/_esm/utils/abi/getAbiItem.js.map +1 -1
  239. package/_esm/utils/hash/ripemd160.js +12 -0
  240. package/_esm/utils/hash/ripemd160.js.map +1 -0
  241. package/_esm/utils/hash/sha256.js +12 -0
  242. package/_esm/utils/hash/sha256.js.map +1 -0
  243. package/_esm/utils/index.js +2 -0
  244. package/_esm/utils/index.js.map +1 -1
  245. package/_types/actions/ens/getEnsName.d.ts.map +1 -1
  246. package/_types/actions/index.d.ts +7 -0
  247. package/_types/actions/index.d.ts.map +1 -1
  248. package/_types/actions/wallet/prepareTransactionRequest.d.ts +5 -5
  249. package/_types/actions/wallet/prepareTransactionRequest.d.ts.map +1 -1
  250. package/_types/chains/celo/chainConfig.d.ts +180 -180
  251. package/_types/chains/celo/formatters.d.ts +180 -180
  252. package/_types/chains/definitions/arbitrumSepolia.d.ts +4 -0
  253. package/_types/chains/definitions/arbitrumSepolia.d.ts.map +1 -1
  254. package/_types/chains/definitions/base.d.ts +142 -137
  255. package/_types/chains/definitions/base.d.ts.map +1 -1
  256. package/_types/chains/definitions/baseGoerli.d.ts +142 -137
  257. package/_types/chains/definitions/baseGoerli.d.ts.map +1 -1
  258. package/_types/chains/definitions/baseSepolia.d.ts +142 -137
  259. package/_types/chains/definitions/baseSepolia.d.ts.map +1 -1
  260. package/_types/chains/definitions/celo.d.ts +180 -180
  261. package/_types/chains/definitions/celoAlfajores.d.ts +180 -180
  262. package/_types/chains/definitions/celoCannoli.d.ts +180 -180
  263. package/_types/chains/definitions/fantomSonicTestnet.d.ts +38 -0
  264. package/_types/chains/definitions/fantomSonicTestnet.d.ts.map +1 -0
  265. package/_types/chains/definitions/optimism.d.ts +142 -137
  266. package/_types/chains/definitions/optimism.d.ts.map +1 -1
  267. package/_types/chains/definitions/optimismGoerli.d.ts +142 -137
  268. package/_types/chains/definitions/optimismGoerli.d.ts.map +1 -1
  269. package/_types/chains/definitions/optimismSepolia.d.ts +142 -137
  270. package/_types/chains/definitions/optimismSepolia.d.ts.map +1 -1
  271. package/_types/chains/definitions/pgn.d.ts +147 -137
  272. package/_types/chains/definitions/pgn.d.ts.map +1 -1
  273. package/_types/chains/definitions/pgnTestnet.d.ts +142 -137
  274. package/_types/chains/definitions/pgnTestnet.d.ts.map +1 -1
  275. package/_types/chains/definitions/zilliqa.d.ts +38 -0
  276. package/_types/chains/definitions/zilliqa.d.ts.map +1 -0
  277. package/_types/chains/definitions/zilliqaTestnet.d.ts +38 -0
  278. package/_types/chains/definitions/zilliqaTestnet.d.ts.map +1 -0
  279. package/_types/chains/definitions/zkSync.d.ts +24 -24
  280. package/_types/chains/definitions/zkSyncSepoliaTestnet.d.ts +533 -0
  281. package/_types/chains/definitions/zkSyncSepoliaTestnet.d.ts.map +1 -0
  282. package/_types/chains/definitions/zkSyncTestnet.d.ts +29 -24
  283. package/_types/chains/definitions/zkSyncTestnet.d.ts.map +1 -1
  284. package/_types/chains/definitions/zora.d.ts +142 -137
  285. package/_types/chains/definitions/zora.d.ts.map +1 -1
  286. package/_types/chains/definitions/zoraSepolia.d.ts +142 -137
  287. package/_types/chains/definitions/zoraSepolia.d.ts.map +1 -1
  288. package/_types/chains/definitions/zoraTestnet.d.ts +137 -137
  289. package/_types/chains/index.d.ts +5 -1
  290. package/_types/chains/index.d.ts.map +1 -1
  291. package/_types/chains/opStack/abis.d.ts +457 -0
  292. package/_types/chains/opStack/abis.d.ts.map +1 -1
  293. package/_types/chains/opStack/actions/buildDepositTransaction.d.ts +5 -3
  294. package/_types/chains/opStack/actions/buildDepositTransaction.d.ts.map +1 -1
  295. package/_types/chains/opStack/actions/buildInitiateWithdrawal.d.ts +50 -0
  296. package/_types/chains/opStack/actions/buildInitiateWithdrawal.d.ts.map +1 -0
  297. package/_types/chains/opStack/actions/buildProveWithdrawal.d.ts +48 -0
  298. package/_types/chains/opStack/actions/buildProveWithdrawal.d.ts.map +1 -0
  299. package/_types/chains/opStack/actions/depositTransaction.d.ts +18 -34
  300. package/_types/chains/opStack/actions/depositTransaction.d.ts.map +1 -1
  301. package/_types/chains/opStack/actions/estimateDepositTransactionGas.d.ts +50 -0
  302. package/_types/chains/opStack/actions/estimateDepositTransactionGas.d.ts.map +1 -0
  303. package/_types/chains/opStack/actions/estimateFinalizeWithdrawalGas.d.ts +45 -0
  304. package/_types/chains/opStack/actions/estimateFinalizeWithdrawalGas.d.ts.map +1 -0
  305. package/_types/chains/opStack/actions/estimateInitiateWithdrawalGas.d.ts +51 -0
  306. package/_types/chains/opStack/actions/estimateInitiateWithdrawalGas.d.ts.map +1 -0
  307. package/_types/chains/opStack/actions/estimateProveWithdrawalGas.d.ts +63 -0
  308. package/_types/chains/opStack/actions/estimateProveWithdrawalGas.d.ts.map +1 -0
  309. package/_types/chains/opStack/actions/finalizeWithdrawal.d.ts +49 -0
  310. package/_types/chains/opStack/actions/finalizeWithdrawal.d.ts.map +1 -0
  311. package/_types/chains/opStack/actions/getL2Output.d.ts +44 -0
  312. package/_types/chains/opStack/actions/getL2Output.d.ts.map +1 -0
  313. package/_types/chains/opStack/actions/getTimeToFinalize.d.ts +57 -0
  314. package/_types/chains/opStack/actions/getTimeToFinalize.d.ts.map +1 -0
  315. package/_types/chains/opStack/actions/getTimeToNextL2Output.d.ts +61 -0
  316. package/_types/chains/opStack/actions/getTimeToNextL2Output.d.ts.map +1 -0
  317. package/_types/chains/opStack/actions/getTimeToProve.d.ts +50 -0
  318. package/_types/chains/opStack/actions/getTimeToProve.d.ts.map +1 -0
  319. package/_types/chains/opStack/actions/getWithdrawalStatus.d.ts +48 -0
  320. package/_types/chains/opStack/actions/getWithdrawalStatus.d.ts.map +1 -0
  321. package/_types/chains/opStack/actions/initiateWithdrawal.d.ts +77 -0
  322. package/_types/chains/opStack/actions/initiateWithdrawal.d.ts.map +1 -0
  323. package/_types/chains/opStack/actions/proveWithdrawal.d.ts +67 -0
  324. package/_types/chains/opStack/actions/proveWithdrawal.d.ts.map +1 -0
  325. package/_types/chains/opStack/actions/waitForNextL2Output.d.ts +55 -0
  326. package/_types/chains/opStack/actions/waitForNextL2Output.d.ts.map +1 -0
  327. package/_types/chains/opStack/actions/waitToFinalize.d.ts +45 -0
  328. package/_types/chains/opStack/actions/waitToFinalize.d.ts.map +1 -0
  329. package/_types/chains/opStack/actions/waitToProve.d.ts +55 -0
  330. package/_types/chains/opStack/actions/waitToProve.d.ts.map +1 -0
  331. package/_types/chains/opStack/chainConfig.d.ts +136 -136
  332. package/_types/chains/opStack/chains.d.ts +2 -0
  333. package/_types/chains/opStack/chains.d.ts.map +1 -1
  334. package/_types/chains/opStack/decorators/publicL1.d.ts +386 -0
  335. package/_types/chains/opStack/decorators/publicL1.d.ts.map +1 -0
  336. package/_types/chains/opStack/decorators/publicL2.d.ts +82 -26
  337. package/_types/chains/opStack/decorators/publicL2.d.ts.map +1 -1
  338. package/_types/chains/opStack/decorators/walletL1.d.ts +57 -2
  339. package/_types/chains/opStack/decorators/walletL1.d.ts.map +1 -1
  340. package/_types/chains/opStack/decorators/walletL2.d.ts +62 -0
  341. package/_types/chains/opStack/decorators/walletL2.d.ts.map +1 -0
  342. package/_types/chains/opStack/errors/withdrawal.d.ts +12 -0
  343. package/_types/chains/opStack/errors/withdrawal.d.ts.map +1 -0
  344. package/_types/chains/opStack/formatters.d.ts +136 -136
  345. package/_types/chains/opStack/index.d.ts +21 -3
  346. package/_types/chains/opStack/index.d.ts.map +1 -1
  347. package/_types/chains/opStack/types/deposit.d.ts +25 -0
  348. package/_types/chains/opStack/types/deposit.d.ts.map +1 -0
  349. package/_types/chains/opStack/types/withdrawal.d.ts +22 -0
  350. package/_types/chains/opStack/types/withdrawal.d.ts.map +1 -0
  351. package/_types/chains/opStack/utils/extractWithdrawalMessageLogs.d.ts +137 -0
  352. package/_types/chains/opStack/utils/extractWithdrawalMessageLogs.d.ts.map +1 -0
  353. package/_types/chains/opStack/utils/getWithdrawalHashStorageSlot.d.ts +11 -0
  354. package/_types/chains/opStack/utils/getWithdrawalHashStorageSlot.d.ts.map +1 -0
  355. package/_types/chains/opStack/utils/getWithdrawals.d.ts +12 -0
  356. package/_types/chains/opStack/utils/getWithdrawals.d.ts.map +1 -0
  357. package/_types/chains/opStack/utils/opaqueDataToDepositData.d.ts +15 -0
  358. package/_types/chains/opStack/utils/opaqueDataToDepositData.d.ts.map +1 -0
  359. package/_types/chains/zksync/chainConfig.d.ts +24 -24
  360. package/_types/chains/zksync/formatters.d.ts +24 -24
  361. package/_types/clients/decorators/public.d.ts +2 -2
  362. package/_types/clients/decorators/public.d.ts.map +1 -1
  363. package/_types/clients/decorators/wallet.d.ts +2 -2
  364. package/_types/clients/decorators/wallet.d.ts.map +1 -1
  365. package/_types/errors/abi.d.ts +14 -1
  366. package/_types/errors/abi.d.ts.map +1 -1
  367. package/_types/errors/version.d.ts +1 -1
  368. package/_types/errors/version.d.ts.map +1 -1
  369. package/_types/index.d.ts +15 -1
  370. package/_types/index.d.ts.map +1 -1
  371. package/_types/types/account.d.ts +1 -1
  372. package/_types/types/account.d.ts.map +1 -1
  373. package/_types/types/eip1193.d.ts +12 -0
  374. package/_types/types/eip1193.d.ts.map +1 -1
  375. package/_types/utils/abi/getAbiItem.d.ts +2 -1
  376. package/_types/utils/abi/getAbiItem.d.ts.map +1 -1
  377. package/_types/utils/formatters/transaction.d.ts +1 -1
  378. package/_types/utils/formatters/transactionRequest.d.ts +1 -1
  379. package/_types/utils/hash/ripemd160.d.ts +11 -0
  380. package/_types/utils/hash/ripemd160.d.ts.map +1 -0
  381. package/_types/utils/hash/sha256.d.ts +11 -0
  382. package/_types/utils/hash/sha256.d.ts.map +1 -0
  383. package/_types/utils/index.d.ts +2 -0
  384. package/_types/utils/index.d.ts.map +1 -1
  385. package/actions/ens/getEnsName.ts +3 -2
  386. package/actions/index.ts +31 -0
  387. package/actions/wallet/prepareTransactionRequest.ts +16 -9
  388. package/chains/definitions/arbitrumSepolia.ts +4 -0
  389. package/chains/definitions/base.ts +5 -0
  390. package/chains/definitions/baseGoerli.ts +5 -0
  391. package/chains/definitions/baseSepolia.ts +5 -0
  392. package/chains/definitions/fantomSonicTestnet.ts +23 -0
  393. package/chains/definitions/optimism.ts +5 -0
  394. package/chains/definitions/optimismGoerli.ts +5 -0
  395. package/chains/definitions/optimismSepolia.ts +5 -0
  396. package/chains/definitions/pgn.ts +13 -0
  397. package/chains/definitions/pgnTestnet.ts +8 -0
  398. package/chains/definitions/zilliqa.ts +23 -0
  399. package/chains/definitions/zilliqaTestnet.ts +23 -0
  400. package/chains/definitions/zkSyncSepoliaTestnet.ts +32 -0
  401. package/chains/definitions/zkSyncTestnet.ts +5 -0
  402. package/chains/definitions/zora.ts +5 -0
  403. package/chains/definitions/zoraSepolia.ts +5 -0
  404. package/chains/index.ts +9 -0
  405. package/chains/opStack/abis.ts +367 -0
  406. package/chains/opStack/actions/buildDepositTransaction.ts +11 -6
  407. package/chains/opStack/actions/buildInitiateWithdrawal.ts +118 -0
  408. package/chains/opStack/actions/buildProveWithdrawal.ts +149 -0
  409. package/chains/opStack/actions/depositTransaction.ts +50 -44
  410. package/chains/opStack/actions/estimateDepositTransactionGas.ts +138 -0
  411. package/chains/opStack/actions/estimateFinalizeWithdrawalGas.ts +118 -0
  412. package/chains/opStack/actions/estimateInitiateWithdrawalGas.ts +118 -0
  413. package/chains/opStack/actions/estimateProveWithdrawalGas.ts +139 -0
  414. package/chains/opStack/actions/finalizeWithdrawal.ts +130 -0
  415. package/chains/opStack/actions/getL2Output.ts +89 -0
  416. package/chains/opStack/actions/getTimeToFinalize.ts +122 -0
  417. package/chains/opStack/actions/getTimeToNextL2Output.ts +162 -0
  418. package/chains/opStack/actions/getTimeToProve.ts +79 -0
  419. package/chains/opStack/actions/getWithdrawalStatus.ts +152 -0
  420. package/chains/opStack/actions/initiateWithdrawal.ts +153 -0
  421. package/chains/opStack/actions/proveWithdrawal.ts +151 -0
  422. package/chains/opStack/actions/waitForNextL2Output.ts +111 -0
  423. package/chains/opStack/actions/waitToFinalize.ts +64 -0
  424. package/chains/opStack/actions/waitToProve.ts +99 -0
  425. package/chains/opStack/chains.ts +2 -0
  426. package/chains/opStack/decorators/publicL1.ts +514 -0
  427. package/chains/opStack/decorators/publicL2.ts +129 -37
  428. package/chains/opStack/decorators/walletL1.ts +71 -2
  429. package/chains/opStack/decorators/walletL2.ts +84 -0
  430. package/chains/opStack/errors/withdrawal.ts +15 -0
  431. package/chains/opStack/index.ts +112 -21
  432. package/chains/opStack/types/deposit.ts +28 -0
  433. package/chains/opStack/types/withdrawal.ts +23 -0
  434. package/chains/opStack/utils/extractWithdrawalMessageLogs.ts +36 -0
  435. package/chains/opStack/utils/getL2TransactionHash.ts +2 -2
  436. package/chains/opStack/utils/getWithdrawalHashStorageSlot.ts +29 -0
  437. package/chains/opStack/utils/getWithdrawals.ts +25 -0
  438. package/chains/opStack/utils/{fromOpaqueData.ts → opaqueDataToDepositData.ts} +9 -4
  439. package/clients/decorators/public.ts +2 -2
  440. package/clients/decorators/wallet.ts +2 -2
  441. package/errors/abi.ts +22 -1
  442. package/errors/version.ts +1 -1
  443. package/index.ts +40 -0
  444. package/package.json +1 -1
  445. package/types/account.ts +1 -1
  446. package/types/eip1193.ts +12 -0
  447. package/utils/abi/getAbiItem.ts +71 -2
  448. package/utils/hash/ripemd160.ts +31 -0
  449. package/utils/hash/sha256.ts +31 -0
  450. package/utils/index.ts +2 -0
  451. package/_cjs/chains/opStack/utils/fromOpaqueData.js.map +0 -1
  452. package/_esm/chains/opStack/utils/fromOpaqueData.js.map +0 -1
  453. package/_types/chains/opStack/utils/fromOpaqueData.d.ts +0 -15
  454. package/_types/chains/opStack/utils/fromOpaqueData.d.ts.map +0 -1
  455. package/chains/celo/package.json +0 -6
  456. package/chains/opStack/package.json +0 -6
  457. package/chains/zksync/package.json +0 -6
@@ -0,0 +1,514 @@
1
+ import type { Address } from 'abitype'
2
+ import type { Client } from '../../../clients/createClient.js'
3
+ import type { Transport } from '../../../clients/transports/createTransport.js'
4
+ import type { Account } from '../../../types/account.js'
5
+ import type { Chain } from '../../../types/chain.js'
6
+ import {
7
+ type BuildInitiateWithdrawalParameters,
8
+ type BuildInitiateWithdrawalReturnType,
9
+ buildInitiateWithdrawal,
10
+ } from '../actions/buildInitiateWithdrawal.js'
11
+ import {
12
+ type EstimateDepositTransactionGasParameters,
13
+ type EstimateDepositTransactionGasReturnType,
14
+ estimateDepositTransactionGas,
15
+ } from '../actions/estimateDepositTransactionGas.js'
16
+ import {
17
+ type EstimateFinalizeWithdrawalGasParameters,
18
+ type EstimateFinalizeWithdrawalGasReturnType,
19
+ estimateFinalizeWithdrawalGas,
20
+ } from '../actions/estimateFinalizeWithdrawalGas.js'
21
+ import {
22
+ type EstimateProveWithdrawalGasParameters,
23
+ type EstimateProveWithdrawalGasReturnType,
24
+ estimateProveWithdrawalGas,
25
+ } from '../actions/estimateProveWithdrawalGas.js'
26
+ import {
27
+ type GetL2OutputParameters,
28
+ type GetL2OutputReturnType,
29
+ getL2Output,
30
+ } from '../actions/getL2Output.js'
31
+ import {
32
+ type GetTimeToFinalizeParameters,
33
+ type GetTimeToFinalizeReturnType,
34
+ getTimeToFinalize,
35
+ } from '../actions/getTimeToFinalize.js'
36
+ import {
37
+ type GetTimeToNextL2OutputParameters,
38
+ type GetTimeToNextL2OutputReturnType,
39
+ getTimeToNextL2Output,
40
+ } from '../actions/getTimeToNextL2Output.js'
41
+ import {
42
+ type GetTimeToProveParameters,
43
+ type GetTimeToProveReturnType,
44
+ getTimeToProve,
45
+ } from '../actions/getTimeToProve.js'
46
+ import {
47
+ type GetWithdrawalStatusParameters,
48
+ type GetWithdrawalStatusReturnType,
49
+ getWithdrawalStatus,
50
+ } from '../actions/getWithdrawalStatus.js'
51
+ import {
52
+ type WaitForNextL2OutputParameters,
53
+ type WaitForNextL2OutputReturnType,
54
+ waitForNextL2Output,
55
+ } from '../actions/waitForNextL2Output.js'
56
+ import {
57
+ type WaitToFinalizeParameters,
58
+ type WaitToFinalizeReturnType,
59
+ waitToFinalize,
60
+ } from '../actions/waitToFinalize.js'
61
+ import {
62
+ type WaitToProveParameters,
63
+ type WaitToProveReturnType,
64
+ waitToProve,
65
+ } from '../actions/waitToProve.js'
66
+
67
+ export type PublicActionsL1<
68
+ chain extends Chain | undefined = Chain | undefined,
69
+ account extends Account | undefined = Account | undefined,
70
+ > = {
71
+ /**
72
+ * Prepares parameters for a [deposit transaction](https://github.com/ethereum-optimism/optimism/blob/develop/specs/deposits.md) to be initiated on an L1.
73
+ *
74
+ * - Docs: https://viem.sh/op-stack/actions/buildInitiateWithdrawal.html
75
+ *
76
+ * @param client - Client to use
77
+ * @param parameters - {@link BuildInitiateWithdrawalParameters}
78
+ * @returns Parameters for `depositTransaction`. {@link DepositTransactionReturnType}
79
+ *
80
+ * @example
81
+ * import { createWalletClient, http, parseEther } from 'viem'
82
+ * import { base } from 'viem/chains'
83
+ * import { publicActionsL1 } from 'viem/op-stack'
84
+ *
85
+ * const client = createWalletClient({
86
+ * chain: base,
87
+ * transport: http(),
88
+ * }).extend(publicActionsL1())
89
+ *
90
+ * const args = await client.buildInitiateWithdrawal({
91
+ * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
92
+ * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
93
+ * value: parseEther('1'),
94
+ * })
95
+ */
96
+ buildInitiateWithdrawal: <
97
+ chainOverride extends Chain | undefined = undefined,
98
+ accountOverride extends Account | Address | undefined = undefined,
99
+ >(
100
+ parameters: BuildInitiateWithdrawalParameters<
101
+ chain,
102
+ account,
103
+ chainOverride,
104
+ accountOverride
105
+ >,
106
+ ) => Promise<BuildInitiateWithdrawalReturnType<account, accountOverride>>
107
+ /**
108
+ * 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.
109
+ *
110
+ * - Docs: https://viem.sh/op-stack/actions/estimateDepositTransactionGas.html
111
+ *
112
+ * @param client - Client to use
113
+ * @param parameters - {@link EstimateDepositTransactionGasParameters}
114
+ * @returns The L1 transaction hash. {@link EstimateDepositTransactionGasReturnType}
115
+ *
116
+ * @example
117
+ * import { createPublicClient, custom, parseEther } from 'viem'
118
+ * import { base, mainnet } from 'viem/chains'
119
+ * import { publicActionsL1 } from 'viem/op-stack'
120
+ *
121
+ * const client = createPublicClient({
122
+ * chain: mainnet,
123
+ * transport: custom(window.ethereum),
124
+ * }).extend(publicActionsL1())
125
+ *
126
+ * const gas = await client.estimateDepositTransactionGas({
127
+ * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
128
+ * args: {
129
+ * gas: 21_000n,
130
+ * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
131
+ * value: parseEther('1'),
132
+ * },
133
+ * targetChain: base,
134
+ * })
135
+ */
136
+ estimateDepositTransactionGas: <
137
+ chainOverride extends Chain | undefined = undefined,
138
+ >(
139
+ parameters: EstimateDepositTransactionGasParameters<
140
+ chain,
141
+ account,
142
+ chainOverride
143
+ >,
144
+ ) => Promise<EstimateDepositTransactionGasReturnType>
145
+ /**
146
+ * Estimates gas required to prove a withdrawal that occurred on an L2.
147
+ *
148
+ * - Docs: https://viem.sh/op-stack/actions/estimateProveWithdrawalGas.html
149
+ *
150
+ * @param client - Client to use
151
+ * @param parameters - {@link EstimateProveWithdrawalGasParameters}
152
+ * @returns Estimated gas. {@link EstimateProveWithdrawalGasReturnType}
153
+ *
154
+ * @example
155
+ * import { createPublicClient, http, parseEther } from 'viem'
156
+ * import { base, mainnet } from 'viem/chains'
157
+ * import { publicActionsL1 } from 'viem/op-stack'
158
+ *
159
+ * const client = createPublicClient({
160
+ * chain: mainnet,
161
+ * transport: http(),
162
+ * }).extend(publicActionsL1())
163
+ *
164
+ * const gas = await client.estimateProveWithdrawalGas({
165
+ * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
166
+ * l2OutputIndex: 4529n,
167
+ * outputRootProof: { ... },
168
+ * targetChain: optimism,
169
+ * withdrawalProof: [ ... ],
170
+ * withdrawal: { ... },
171
+ * })
172
+ */
173
+ estimateProveWithdrawalGas: <
174
+ chainOverride extends Chain | undefined = undefined,
175
+ >(
176
+ parameters: EstimateProveWithdrawalGasParameters<
177
+ chain,
178
+ account,
179
+ chainOverride
180
+ >,
181
+ ) => Promise<EstimateProveWithdrawalGasReturnType>
182
+ /**
183
+ * Estimates gas required to finalize a withdrawal that occurred on an L2.
184
+ *
185
+ * - Docs: https://viem.sh/op-stack/actions/estimateFinalizeWithdrawalGas.html
186
+ *
187
+ * @param client - Client to use
188
+ * @param parameters - {@link EstimateFinalizeWithdrawalGasParameters}
189
+ * @returns Estimated gas. {@link EstimateFinalizeWithdrawalGasReturnType}
190
+ *
191
+ * @example
192
+ * import { createPublicClient, http, parseEther } from 'viem'
193
+ * import { base, mainnet } from 'viem/chains'
194
+ * import { publicActionsL1 } from 'viem/op-stack'
195
+ *
196
+ * const client = createPublicClient({
197
+ * chain: mainnet,
198
+ * transport: http(),
199
+ * }).extend(publicActionsL1())
200
+ *
201
+ * const gas = await client.estimateFinalizeWithdrawalGas({
202
+ * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
203
+ * targetChain: optimism,
204
+ * withdrawal: { ... },
205
+ * })
206
+ */
207
+ estimateFinalizeWithdrawalGas: <
208
+ chainOverride extends Chain | undefined = undefined,
209
+ >(
210
+ parameters: EstimateFinalizeWithdrawalGasParameters<
211
+ chain,
212
+ account,
213
+ chainOverride
214
+ >,
215
+ ) => Promise<EstimateFinalizeWithdrawalGasReturnType>
216
+ /**
217
+ * Retrieves the first L2 output proposal that occurred after a provided block number. Used for the [Withdrawal](/op-stack/guides/withdrawals.html) flow.
218
+ *
219
+ * - Docs: https://viem.sh/op-stack/actions/getL2Output.html
220
+ *
221
+ * @param client - Client to use
222
+ * @param parameters - {@link GetL2OutputParameters}
223
+ * @returns The L2 output. {@link GetL2OutputReturnType}
224
+ *
225
+ * @example
226
+ * import { createPublicClient, http } from 'viem'
227
+ * import { mainnet, optimism } from 'viem/chains'
228
+ * import { publicActionsL1 } from 'viem/op-stack'
229
+ *
230
+ * const publicClientL1 = createPublicClient({
231
+ * chain: mainnet,
232
+ * transport: http(),
233
+ * }).extend(publicActionsL1())
234
+ *
235
+ * const output = await publicClientL1.getL2Output({
236
+ * l2BlockNumber: 69420n,
237
+ * targetChain: optimism
238
+ * })
239
+ */
240
+ getL2Output: <chainOverride extends Chain | undefined = undefined>(
241
+ parameters: GetL2OutputParameters<chain, chainOverride>,
242
+ ) => Promise<GetL2OutputReturnType>
243
+ /**
244
+ * Returns the time until the withdrawal transaction can be finalized. Used for the [Withdrawal](/op-stack/guides/withdrawals.html) flow.
245
+ *
246
+ * - Docs: https://viem.sh/op-stack/actions/getTimeToFinalize.html
247
+ *
248
+ * @param client - Client to use
249
+ * @param parameters - {@link GetTimeToFinalizeParameters}
250
+ * @returns Time until finalize. {@link GetTimeToFinalizeReturnType}
251
+ *
252
+ * @example
253
+ * import { createPublicClient, http } from 'viem'
254
+ * import { getBlockNumber } from 'viem/actions'
255
+ * import { mainnet, optimism } from 'viem/chains'
256
+ * import { publicActionsL1 } from 'viem/op-stack'
257
+ *
258
+ * const publicClientL1 = createPublicClient({
259
+ * chain: mainnet,
260
+ * transport: http(),
261
+ * }).extend(publicActionsL1())
262
+ * const publicClientL2 = createPublicClient({
263
+ * chain: optimism,
264
+ * transport: http(),
265
+ * })
266
+ *
267
+ * const receipt = await publicClientL2.getTransactionReceipt({
268
+ * hash: '0x9a2f4283636ddeb9ac32382961b22c177c9e86dd3b283735c154f897b1a7ff4a',
269
+ * })
270
+ *
271
+ * const [withdrawal] = getWithdrawals(receipt)
272
+ *
273
+ * const { seconds } = await publicClientL1.getTimeToFinalize({
274
+ * withdrawalHash: withdrawal.withdrawalHash,
275
+ * targetChain: optimism
276
+ * })
277
+ */
278
+ getTimeToFinalize: <chainOverride extends Chain | undefined = undefined>(
279
+ parameters: GetTimeToFinalizeParameters<chain, chainOverride>,
280
+ ) => Promise<GetTimeToFinalizeReturnType>
281
+ /**
282
+ * Returns the time until the next L2 output (after a provided block number) is submitted. Used for the [Withdrawal](/op-stack/guides/withdrawals.html) flow.
283
+ *
284
+ * - Docs: https://viem.sh/op-stack/actions/getTimeToNextL2Output.html
285
+ *
286
+ * @param client - Client to use
287
+ * @param parameters - {@link GetTimeToNextL2OutputParameters}
288
+ * @returns The L2 transaction hash. {@link GetTimeToNextL2OutputReturnType}
289
+ *
290
+ * @example
291
+ * import { createPublicClient, http } from 'viem'
292
+ * import { mainnet, optimism } from 'viem/chains'
293
+ * import { publicActionsL1 } from 'viem/op-stack'
294
+ *
295
+ * const publicClientL1 = createPublicClient({
296
+ * chain: mainnet,
297
+ * transport: http(),
298
+ * }).extend(publicActionsL1())
299
+ * const publicClientL2 = createPublicClient({
300
+ * chain: optimism,
301
+ * transport: http(),
302
+ * })
303
+ *
304
+ * const l2BlockNumber = await publicClientL2.getBlockNumber()
305
+ * const { seconds } = await publicClientL1.getTimeToNextL2Output({
306
+ * l2BlockNumber,
307
+ * targetChain: optimism
308
+ * })
309
+ */
310
+ getTimeToNextL2Output: <chainOverride extends Chain | undefined = undefined>(
311
+ parameters: GetTimeToNextL2OutputParameters<chain, chainOverride>,
312
+ ) => Promise<GetTimeToNextL2OutputReturnType>
313
+ /**
314
+ * Returns the time until the withdrawal transaction can be finalized. Used for the [Withdrawal](/op-stack/guides/withdrawals.html) flow.
315
+ *
316
+ * - Docs: https://viem.sh/op-stack/actions/getTimeToFinalize.html
317
+ *
318
+ * @param client - Client to use
319
+ * @param parameters - {@link GetTimeToFinalizeParameters}
320
+ * @returns Time until finalize. {@link GetTimeToFinalizeReturnType}
321
+ *
322
+ * @example
323
+ * import { createPublicClient, http } from 'viem'
324
+ * import { getBlockNumber } from 'viem/actions'
325
+ * import { mainnet, optimism } from 'viem/chains'
326
+ * import { publicActionsL1 } from 'viem/op-stack'
327
+ *
328
+ * const publicClientL1 = createPublicClient({
329
+ * chain: mainnet,
330
+ * transport: http(),
331
+ * }).extend(publicActionsL1())
332
+ * const publicClientL2 = createPublicClient({
333
+ * chain: optimism,
334
+ * transport: http(),
335
+ * })
336
+ *
337
+ * const receipt = await publicClientL2.getTransactionReceipt({
338
+ * hash: '0x9a2f4283636ddeb9ac32382961b22c177c9e86dd3b283735c154f897b1a7ff4a',
339
+ * })
340
+ *
341
+ * const [withdrawal] = getWithdrawals(receipt)
342
+ *
343
+ * const { seconds } = await publicClientL1.getTimeToFinalize({
344
+ * withdrawalHash: withdrawal.withdrawalHash,
345
+ * targetChain: optimism
346
+ * })
347
+ */
348
+ getTimeToProve: <chainOverride extends Chain | undefined = undefined>(
349
+ parameters: GetTimeToProveParameters<chain, chainOverride>,
350
+ ) => Promise<GetTimeToProveReturnType>
351
+ /**
352
+ * Returns the current status of a withdrawal. Used for the [Withdrawal](/op-stack/guides/withdrawals.html) flow.
353
+ *
354
+ * - Docs: https://viem.sh/op-stack/actions/getWithdrawalStatus.html
355
+ *
356
+ * @param client - Client to use
357
+ * @param parameters - {@link GetWithdrawalStatusParameters}
358
+ * @returns Status of the withdrawal. {@link GetWithdrawalStatusReturnType}
359
+ *
360
+ * @example
361
+ * import { createPublicClient, http } from 'viem'
362
+ * import { getBlockNumber } from 'viem/actions'
363
+ * import { mainnet, optimism } from 'viem/chains'
364
+ * import { publicActionsL1 } from 'viem/op-stack'
365
+ *
366
+ * const publicClientL1 = createPublicClient({
367
+ * chain: mainnet,
368
+ * transport: http(),
369
+ * }).extend(publicActionsL1())
370
+ * const publicClientL2 = createPublicClient({
371
+ * chain: optimism,
372
+ * transport: http(),
373
+ * })
374
+ *
375
+ * const receipt = await publicClientL2.getTransactionReceipt({ hash: '0x...' })
376
+ * const status = await publicClientL1.getWithdrawalStatus({
377
+ * receipt,
378
+ * targetChain: optimism
379
+ * })
380
+ */
381
+ getWithdrawalStatus: <chainOverride extends Chain | undefined = undefined>(
382
+ parameters: GetWithdrawalStatusParameters<chain, chainOverride>,
383
+ ) => Promise<GetWithdrawalStatusReturnType>
384
+ /**
385
+ * Waits for the next L2 output (after the provided block number) to be submitted.
386
+ *
387
+ * - Docs: https://viem.sh/op-stack/actions/waitForNextL2Output.html
388
+ *
389
+ * @param client - Client to use
390
+ * @param parameters - {@link WaitForNextL2OutputParameters}
391
+ * @returns The L2 transaction hash. {@link WaitForNextL2OutputReturnType}
392
+ *
393
+ * @example
394
+ * import { createPublicClient, http } from 'viem'
395
+ * import { mainnet, optimism } from 'viem/chains'
396
+ * import { publicActionsL1 } from 'viem/op-stack'
397
+ *
398
+ * const publicClientL1 = createPublicClient({
399
+ * chain: mainnet,
400
+ * transport: http(),
401
+ * }).extend(publicActionsL1())
402
+ * const publicClientL2 = createPublicClient({
403
+ * chain: optimism,
404
+ * transport: http(),
405
+ * })
406
+ *
407
+ * const l2BlockNumber = await getBlockNumber(publicClientL2)
408
+ * await waitForNextL2Output(publicClientL1, {
409
+ * l2BlockNumber,
410
+ * targetChain: optimism
411
+ * })
412
+ */
413
+ waitForNextL2Output: <chainOverride extends Chain | undefined = undefined>(
414
+ parameters: WaitForNextL2OutputParameters<chain, chainOverride>,
415
+ ) => Promise<WaitForNextL2OutputReturnType>
416
+ /**
417
+ * Waits until the withdrawal transaction can be finalized. Used for the [Withdrawal](/op-stack/guides/withdrawals.html) flow.
418
+ *
419
+ * - Docs: https://viem.sh/op-stack/actions/waitToFinalize.html
420
+ *
421
+ * @param client - Client to use
422
+ * @param parameters - {@link WaitToFinalizeParameters}
423
+ *
424
+ * @example
425
+ * import { createPublicClient, http } from 'viem'
426
+ * import { getBlockNumber } from 'viem/actions'
427
+ * import { mainnet, optimism } from 'viem/chains'
428
+ * import { publicActionsL1 } from 'viem/op-stack'
429
+ *
430
+ * const publicClientL1 = createPublicClient({
431
+ * chain: mainnet,
432
+ * transport: http(),
433
+ * }).extend(publicActionsL1)
434
+ * const publicClientL2 = createPublicClient({
435
+ * chain: optimism,
436
+ * transport: http(),
437
+ * })
438
+ *
439
+ * const receipt = await getTransactionReceipt(publicClientL2, {
440
+ * hash: '0x9a2f4283636ddeb9ac32382961b22c177c9e86dd3b283735c154f897b1a7ff4a',
441
+ * })
442
+ *
443
+ * const [withdrawal] = getWithdrawals(receipt)
444
+ *
445
+ * await publicClientL1.waitToFinalize({
446
+ * withdrawalHash: withdrawal.withdrawalHash,
447
+ * targetChain: optimism
448
+ * })
449
+ */
450
+ waitToFinalize: <chainOverride extends Chain | undefined = undefined>(
451
+ parameters: WaitToFinalizeParameters<chain, chainOverride>,
452
+ ) => Promise<WaitToFinalizeReturnType>
453
+ /**
454
+ * Waits until the L2 withdrawal transaction is provable. Used for the [Withdrawal](/op-stack/guides/withdrawals.html) flow.
455
+ *
456
+ * - Docs: https://viem.sh/op-stack/actions/waitToProve.html
457
+ *
458
+ * @param client - Client to use
459
+ * @param parameters - {@link WaitToProveParameters}
460
+ * @returns The L2 output and withdrawal message. {@link WaitToProveReturnType}
461
+ *
462
+ * @example
463
+ * import { createPublicClient, http } from 'viem'
464
+ * import { getBlockNumber } from 'viem/actions'
465
+ * import { mainnet, optimism } from 'viem/chains'
466
+ * import { publicActionsL1 } from 'viem/op-stack'
467
+ *
468
+ * const publicClientL1 = createPublicClient({
469
+ * chain: mainnet,
470
+ * transport: http(),
471
+ * }).extend(publicActionsL1)
472
+ * const publicClientL2 = createPublicClient({
473
+ * chain: optimism,
474
+ * transport: http(),
475
+ * })
476
+ *
477
+ * const receipt = await publicClientL2.getTransactionReceipt({ hash: '0x...' })
478
+ * await publicClientL1.waitToProve({
479
+ * receipt,
480
+ * targetChain: optimism
481
+ * })
482
+ */
483
+ waitToProve: <chainOverride extends Chain | undefined = undefined>(
484
+ parameters: WaitToProveParameters<chain, chainOverride>,
485
+ ) => Promise<WaitToProveReturnType>
486
+ }
487
+
488
+ export function publicActionsL1() {
489
+ return <
490
+ TTransport extends Transport,
491
+ TChain extends Chain | undefined = Chain | undefined,
492
+ TAccount extends Account | undefined = Account | undefined,
493
+ >(
494
+ client: Client<TTransport, TChain, TAccount>,
495
+ ): PublicActionsL1<TChain, TAccount> => {
496
+ return {
497
+ buildInitiateWithdrawal: (args) => buildInitiateWithdrawal(client, args),
498
+ estimateDepositTransactionGas: (args) =>
499
+ estimateDepositTransactionGas(client, args),
500
+ estimateFinalizeWithdrawalGas: (args) =>
501
+ estimateFinalizeWithdrawalGas(client, args),
502
+ estimateProveWithdrawalGas: (args) =>
503
+ estimateProveWithdrawalGas(client, args),
504
+ getL2Output: (args) => getL2Output(client, args),
505
+ getTimeToFinalize: (args) => getTimeToFinalize(client, args),
506
+ getTimeToNextL2Output: (args) => getTimeToNextL2Output(client, args),
507
+ getTimeToProve: (args) => getTimeToProve(client, args),
508
+ getWithdrawalStatus: (args) => getWithdrawalStatus(client, args),
509
+ waitForNextL2Output: (args) => waitForNextL2Output(client, args),
510
+ waitToFinalize: (args) => waitToFinalize(client, args),
511
+ waitToProve: (args) => waitToProve(client, args),
512
+ }
513
+ }
514
+ }