viem 2.0.0-beta.8 → 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 (474) 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/public/getBlock.d.ts +1 -1
  249. package/_types/actions/public/getBlock.d.ts.map +1 -1
  250. package/_types/actions/public/getTransaction.d.ts +1 -1
  251. package/_types/actions/public/getTransaction.d.ts.map +1 -1
  252. package/_types/actions/public/getTransactionReceipt.d.ts +1 -1
  253. package/_types/actions/public/getTransactionReceipt.d.ts.map +1 -1
  254. package/_types/actions/wallet/prepareTransactionRequest.d.ts +5 -5
  255. package/_types/actions/wallet/prepareTransactionRequest.d.ts.map +1 -1
  256. package/_types/chains/celo/chainConfig.d.ts +180 -180
  257. package/_types/chains/celo/formatters.d.ts +180 -180
  258. package/_types/chains/definitions/arbitrumSepolia.d.ts +4 -0
  259. package/_types/chains/definitions/arbitrumSepolia.d.ts.map +1 -1
  260. package/_types/chains/definitions/base.d.ts +142 -137
  261. package/_types/chains/definitions/base.d.ts.map +1 -1
  262. package/_types/chains/definitions/baseGoerli.d.ts +142 -137
  263. package/_types/chains/definitions/baseGoerli.d.ts.map +1 -1
  264. package/_types/chains/definitions/baseSepolia.d.ts +142 -137
  265. package/_types/chains/definitions/baseSepolia.d.ts.map +1 -1
  266. package/_types/chains/definitions/celo.d.ts +180 -180
  267. package/_types/chains/definitions/celoAlfajores.d.ts +180 -180
  268. package/_types/chains/definitions/celoCannoli.d.ts +180 -180
  269. package/_types/chains/definitions/fantomSonicTestnet.d.ts +38 -0
  270. package/_types/chains/definitions/fantomSonicTestnet.d.ts.map +1 -0
  271. package/_types/chains/definitions/optimism.d.ts +142 -137
  272. package/_types/chains/definitions/optimism.d.ts.map +1 -1
  273. package/_types/chains/definitions/optimismGoerli.d.ts +142 -137
  274. package/_types/chains/definitions/optimismGoerli.d.ts.map +1 -1
  275. package/_types/chains/definitions/optimismSepolia.d.ts +142 -137
  276. package/_types/chains/definitions/optimismSepolia.d.ts.map +1 -1
  277. package/_types/chains/definitions/pgn.d.ts +147 -137
  278. package/_types/chains/definitions/pgn.d.ts.map +1 -1
  279. package/_types/chains/definitions/pgnTestnet.d.ts +142 -137
  280. package/_types/chains/definitions/pgnTestnet.d.ts.map +1 -1
  281. package/_types/chains/definitions/zilliqa.d.ts +38 -0
  282. package/_types/chains/definitions/zilliqa.d.ts.map +1 -0
  283. package/_types/chains/definitions/zilliqaTestnet.d.ts +38 -0
  284. package/_types/chains/definitions/zilliqaTestnet.d.ts.map +1 -0
  285. package/_types/chains/definitions/zkSync.d.ts +24 -24
  286. package/_types/chains/definitions/zkSyncSepoliaTestnet.d.ts +533 -0
  287. package/_types/chains/definitions/zkSyncSepoliaTestnet.d.ts.map +1 -0
  288. package/_types/chains/definitions/zkSyncTestnet.d.ts +29 -24
  289. package/_types/chains/definitions/zkSyncTestnet.d.ts.map +1 -1
  290. package/_types/chains/definitions/zora.d.ts +142 -137
  291. package/_types/chains/definitions/zora.d.ts.map +1 -1
  292. package/_types/chains/definitions/zoraSepolia.d.ts +142 -137
  293. package/_types/chains/definitions/zoraSepolia.d.ts.map +1 -1
  294. package/_types/chains/definitions/zoraTestnet.d.ts +137 -137
  295. package/_types/chains/index.d.ts +5 -1
  296. package/_types/chains/index.d.ts.map +1 -1
  297. package/_types/chains/opStack/abis.d.ts +457 -0
  298. package/_types/chains/opStack/abis.d.ts.map +1 -1
  299. package/_types/chains/opStack/actions/buildDepositTransaction.d.ts +5 -3
  300. package/_types/chains/opStack/actions/buildDepositTransaction.d.ts.map +1 -1
  301. package/_types/chains/opStack/actions/buildInitiateWithdrawal.d.ts +50 -0
  302. package/_types/chains/opStack/actions/buildInitiateWithdrawal.d.ts.map +1 -0
  303. package/_types/chains/opStack/actions/buildProveWithdrawal.d.ts +48 -0
  304. package/_types/chains/opStack/actions/buildProveWithdrawal.d.ts.map +1 -0
  305. package/_types/chains/opStack/actions/depositTransaction.d.ts +18 -34
  306. package/_types/chains/opStack/actions/depositTransaction.d.ts.map +1 -1
  307. package/_types/chains/opStack/actions/estimateDepositTransactionGas.d.ts +50 -0
  308. package/_types/chains/opStack/actions/estimateDepositTransactionGas.d.ts.map +1 -0
  309. package/_types/chains/opStack/actions/estimateFinalizeWithdrawalGas.d.ts +45 -0
  310. package/_types/chains/opStack/actions/estimateFinalizeWithdrawalGas.d.ts.map +1 -0
  311. package/_types/chains/opStack/actions/estimateInitiateWithdrawalGas.d.ts +51 -0
  312. package/_types/chains/opStack/actions/estimateInitiateWithdrawalGas.d.ts.map +1 -0
  313. package/_types/chains/opStack/actions/estimateProveWithdrawalGas.d.ts +63 -0
  314. package/_types/chains/opStack/actions/estimateProveWithdrawalGas.d.ts.map +1 -0
  315. package/_types/chains/opStack/actions/finalizeWithdrawal.d.ts +49 -0
  316. package/_types/chains/opStack/actions/finalizeWithdrawal.d.ts.map +1 -0
  317. package/_types/chains/opStack/actions/getL2Output.d.ts +44 -0
  318. package/_types/chains/opStack/actions/getL2Output.d.ts.map +1 -0
  319. package/_types/chains/opStack/actions/getTimeToFinalize.d.ts +57 -0
  320. package/_types/chains/opStack/actions/getTimeToFinalize.d.ts.map +1 -0
  321. package/_types/chains/opStack/actions/getTimeToNextL2Output.d.ts +61 -0
  322. package/_types/chains/opStack/actions/getTimeToNextL2Output.d.ts.map +1 -0
  323. package/_types/chains/opStack/actions/getTimeToProve.d.ts +50 -0
  324. package/_types/chains/opStack/actions/getTimeToProve.d.ts.map +1 -0
  325. package/_types/chains/opStack/actions/getWithdrawalStatus.d.ts +48 -0
  326. package/_types/chains/opStack/actions/getWithdrawalStatus.d.ts.map +1 -0
  327. package/_types/chains/opStack/actions/initiateWithdrawal.d.ts +77 -0
  328. package/_types/chains/opStack/actions/initiateWithdrawal.d.ts.map +1 -0
  329. package/_types/chains/opStack/actions/proveWithdrawal.d.ts +67 -0
  330. package/_types/chains/opStack/actions/proveWithdrawal.d.ts.map +1 -0
  331. package/_types/chains/opStack/actions/waitForNextL2Output.d.ts +55 -0
  332. package/_types/chains/opStack/actions/waitForNextL2Output.d.ts.map +1 -0
  333. package/_types/chains/opStack/actions/waitToFinalize.d.ts +45 -0
  334. package/_types/chains/opStack/actions/waitToFinalize.d.ts.map +1 -0
  335. package/_types/chains/opStack/actions/waitToProve.d.ts +55 -0
  336. package/_types/chains/opStack/actions/waitToProve.d.ts.map +1 -0
  337. package/_types/chains/opStack/chainConfig.d.ts +136 -136
  338. package/_types/chains/opStack/chains.d.ts +2 -0
  339. package/_types/chains/opStack/chains.d.ts.map +1 -1
  340. package/_types/chains/opStack/decorators/publicL1.d.ts +386 -0
  341. package/_types/chains/opStack/decorators/publicL1.d.ts.map +1 -0
  342. package/_types/chains/opStack/decorators/publicL2.d.ts +82 -26
  343. package/_types/chains/opStack/decorators/publicL2.d.ts.map +1 -1
  344. package/_types/chains/opStack/decorators/walletL1.d.ts +57 -2
  345. package/_types/chains/opStack/decorators/walletL1.d.ts.map +1 -1
  346. package/_types/chains/opStack/decorators/walletL2.d.ts +62 -0
  347. package/_types/chains/opStack/decorators/walletL2.d.ts.map +1 -0
  348. package/_types/chains/opStack/errors/withdrawal.d.ts +12 -0
  349. package/_types/chains/opStack/errors/withdrawal.d.ts.map +1 -0
  350. package/_types/chains/opStack/formatters.d.ts +136 -136
  351. package/_types/chains/opStack/index.d.ts +21 -3
  352. package/_types/chains/opStack/index.d.ts.map +1 -1
  353. package/_types/chains/opStack/types/deposit.d.ts +25 -0
  354. package/_types/chains/opStack/types/deposit.d.ts.map +1 -0
  355. package/_types/chains/opStack/types/withdrawal.d.ts +22 -0
  356. package/_types/chains/opStack/types/withdrawal.d.ts.map +1 -0
  357. package/_types/chains/opStack/utils/extractWithdrawalMessageLogs.d.ts +137 -0
  358. package/_types/chains/opStack/utils/extractWithdrawalMessageLogs.d.ts.map +1 -0
  359. package/_types/chains/opStack/utils/getWithdrawalHashStorageSlot.d.ts +11 -0
  360. package/_types/chains/opStack/utils/getWithdrawalHashStorageSlot.d.ts.map +1 -0
  361. package/_types/chains/opStack/utils/getWithdrawals.d.ts +12 -0
  362. package/_types/chains/opStack/utils/getWithdrawals.d.ts.map +1 -0
  363. package/_types/chains/opStack/utils/opaqueDataToDepositData.d.ts +15 -0
  364. package/_types/chains/opStack/utils/opaqueDataToDepositData.d.ts.map +1 -0
  365. package/_types/chains/zksync/chainConfig.d.ts +24 -24
  366. package/_types/chains/zksync/formatters.d.ts +24 -24
  367. package/_types/clients/decorators/public.d.ts +2 -2
  368. package/_types/clients/decorators/public.d.ts.map +1 -1
  369. package/_types/clients/decorators/wallet.d.ts +2 -2
  370. package/_types/clients/decorators/wallet.d.ts.map +1 -1
  371. package/_types/errors/abi.d.ts +14 -1
  372. package/_types/errors/abi.d.ts.map +1 -1
  373. package/_types/errors/version.d.ts +1 -1
  374. package/_types/errors/version.d.ts.map +1 -1
  375. package/_types/index.d.ts +15 -1
  376. package/_types/index.d.ts.map +1 -1
  377. package/_types/types/account.d.ts +1 -1
  378. package/_types/types/account.d.ts.map +1 -1
  379. package/_types/types/eip1193.d.ts +12 -0
  380. package/_types/types/eip1193.d.ts.map +1 -1
  381. package/_types/utils/abi/getAbiItem.d.ts +2 -1
  382. package/_types/utils/abi/getAbiItem.d.ts.map +1 -1
  383. package/_types/utils/formatters/block.d.ts +1 -1
  384. package/_types/utils/formatters/block.d.ts.map +1 -1
  385. package/_types/utils/formatters/transaction.d.ts +2 -2
  386. package/_types/utils/formatters/transaction.d.ts.map +1 -1
  387. package/_types/utils/formatters/transactionReceipt.d.ts +1 -1
  388. package/_types/utils/formatters/transactionReceipt.d.ts.map +1 -1
  389. package/_types/utils/formatters/transactionRequest.d.ts +1 -1
  390. package/_types/utils/hash/ripemd160.d.ts +11 -0
  391. package/_types/utils/hash/ripemd160.d.ts.map +1 -0
  392. package/_types/utils/hash/sha256.d.ts +11 -0
  393. package/_types/utils/hash/sha256.d.ts.map +1 -0
  394. package/_types/utils/index.d.ts +2 -0
  395. package/_types/utils/index.d.ts.map +1 -1
  396. package/actions/ens/getEnsName.ts +3 -2
  397. package/actions/index.ts +31 -0
  398. package/actions/public/getBlock.ts +1 -1
  399. package/actions/public/getTransaction.ts +1 -1
  400. package/actions/public/getTransactionReceipt.ts +1 -1
  401. package/actions/wallet/prepareTransactionRequest.ts +16 -9
  402. package/chains/definitions/arbitrumSepolia.ts +4 -0
  403. package/chains/definitions/base.ts +5 -0
  404. package/chains/definitions/baseGoerli.ts +5 -0
  405. package/chains/definitions/baseSepolia.ts +5 -0
  406. package/chains/definitions/fantomSonicTestnet.ts +23 -0
  407. package/chains/definitions/optimism.ts +5 -0
  408. package/chains/definitions/optimismGoerli.ts +5 -0
  409. package/chains/definitions/optimismSepolia.ts +5 -0
  410. package/chains/definitions/pgn.ts +13 -0
  411. package/chains/definitions/pgnTestnet.ts +8 -0
  412. package/chains/definitions/zilliqa.ts +23 -0
  413. package/chains/definitions/zilliqaTestnet.ts +23 -0
  414. package/chains/definitions/zkSyncSepoliaTestnet.ts +32 -0
  415. package/chains/definitions/zkSyncTestnet.ts +5 -0
  416. package/chains/definitions/zora.ts +5 -0
  417. package/chains/definitions/zoraSepolia.ts +5 -0
  418. package/chains/index.ts +9 -0
  419. package/chains/opStack/abis.ts +367 -0
  420. package/chains/opStack/actions/buildDepositTransaction.ts +11 -6
  421. package/chains/opStack/actions/buildInitiateWithdrawal.ts +118 -0
  422. package/chains/opStack/actions/buildProveWithdrawal.ts +149 -0
  423. package/chains/opStack/actions/depositTransaction.ts +50 -44
  424. package/chains/opStack/actions/estimateDepositTransactionGas.ts +138 -0
  425. package/chains/opStack/actions/estimateFinalizeWithdrawalGas.ts +118 -0
  426. package/chains/opStack/actions/estimateInitiateWithdrawalGas.ts +118 -0
  427. package/chains/opStack/actions/estimateProveWithdrawalGas.ts +139 -0
  428. package/chains/opStack/actions/finalizeWithdrawal.ts +130 -0
  429. package/chains/opStack/actions/getL2Output.ts +89 -0
  430. package/chains/opStack/actions/getTimeToFinalize.ts +122 -0
  431. package/chains/opStack/actions/getTimeToNextL2Output.ts +162 -0
  432. package/chains/opStack/actions/getTimeToProve.ts +79 -0
  433. package/chains/opStack/actions/getWithdrawalStatus.ts +152 -0
  434. package/chains/opStack/actions/initiateWithdrawal.ts +153 -0
  435. package/chains/opStack/actions/proveWithdrawal.ts +151 -0
  436. package/chains/opStack/actions/waitForNextL2Output.ts +111 -0
  437. package/chains/opStack/actions/waitToFinalize.ts +64 -0
  438. package/chains/opStack/actions/waitToProve.ts +99 -0
  439. package/chains/opStack/chains.ts +2 -0
  440. package/chains/opStack/decorators/publicL1.ts +514 -0
  441. package/chains/opStack/decorators/publicL2.ts +129 -37
  442. package/chains/opStack/decorators/walletL1.ts +71 -2
  443. package/chains/opStack/decorators/walletL2.ts +84 -0
  444. package/chains/opStack/errors/withdrawal.ts +15 -0
  445. package/chains/opStack/index.ts +112 -21
  446. package/chains/opStack/types/deposit.ts +28 -0
  447. package/chains/opStack/types/withdrawal.ts +23 -0
  448. package/chains/opStack/utils/extractWithdrawalMessageLogs.ts +36 -0
  449. package/chains/opStack/utils/getL2TransactionHash.ts +2 -2
  450. package/chains/opStack/utils/getWithdrawalHashStorageSlot.ts +29 -0
  451. package/chains/opStack/utils/getWithdrawals.ts +25 -0
  452. package/chains/opStack/utils/{fromOpaqueData.ts → opaqueDataToDepositData.ts} +9 -4
  453. package/clients/decorators/public.ts +2 -2
  454. package/clients/decorators/wallet.ts +2 -2
  455. package/errors/abi.ts +22 -1
  456. package/errors/version.ts +1 -1
  457. package/index.ts +40 -0
  458. package/package.json +1 -1
  459. package/types/account.ts +1 -1
  460. package/types/eip1193.ts +12 -0
  461. package/utils/abi/getAbiItem.ts +71 -2
  462. package/utils/formatters/block.ts +1 -1
  463. package/utils/formatters/transaction.ts +1 -1
  464. package/utils/formatters/transactionReceipt.ts +1 -1
  465. package/utils/hash/ripemd160.ts +31 -0
  466. package/utils/hash/sha256.ts +31 -0
  467. package/utils/index.ts +2 -0
  468. package/_cjs/chains/opStack/utils/fromOpaqueData.js.map +0 -1
  469. package/_esm/chains/opStack/utils/fromOpaqueData.js.map +0 -1
  470. package/_types/chains/opStack/utils/fromOpaqueData.d.ts +0 -15
  471. package/_types/chains/opStack/utils/fromOpaqueData.d.ts.map +0 -1
  472. package/chains/celo/package.json +0 -6
  473. package/chains/opStack/package.json +0 -6
  474. package/chains/zksync/package.json +0 -6
@@ -72,6 +72,373 @@ export const gasPriceOracleAbi = [
72
72
  },
73
73
  ] as const
74
74
 
75
+ export const l2OutputOracleAbi = [
76
+ {
77
+ inputs: [
78
+ { internalType: 'uint256', name: '_submissionInterval', type: 'uint256' },
79
+ { internalType: 'uint256', name: '_l2BlockTime', type: 'uint256' },
80
+ {
81
+ internalType: 'uint256',
82
+ name: '_startingBlockNumber',
83
+ type: 'uint256',
84
+ },
85
+ { internalType: 'uint256', name: '_startingTimestamp', type: 'uint256' },
86
+ { internalType: 'address', name: '_proposer', type: 'address' },
87
+ { internalType: 'address', name: '_challenger', type: 'address' },
88
+ {
89
+ internalType: 'uint256',
90
+ name: '_finalizationPeriodSeconds',
91
+ type: 'uint256',
92
+ },
93
+ ],
94
+ stateMutability: 'nonpayable',
95
+ type: 'constructor',
96
+ },
97
+ {
98
+ anonymous: false,
99
+ inputs: [
100
+ { indexed: false, internalType: 'uint8', name: 'version', type: 'uint8' },
101
+ ],
102
+ name: 'Initialized',
103
+ type: 'event',
104
+ },
105
+ {
106
+ anonymous: false,
107
+ inputs: [
108
+ {
109
+ indexed: true,
110
+ internalType: 'bytes32',
111
+ name: 'outputRoot',
112
+ type: 'bytes32',
113
+ },
114
+ {
115
+ indexed: true,
116
+ internalType: 'uint256',
117
+ name: 'l2OutputIndex',
118
+ type: 'uint256',
119
+ },
120
+ {
121
+ indexed: true,
122
+ internalType: 'uint256',
123
+ name: 'l2BlockNumber',
124
+ type: 'uint256',
125
+ },
126
+ {
127
+ indexed: false,
128
+ internalType: 'uint256',
129
+ name: 'l1Timestamp',
130
+ type: 'uint256',
131
+ },
132
+ ],
133
+ name: 'OutputProposed',
134
+ type: 'event',
135
+ },
136
+ {
137
+ anonymous: false,
138
+ inputs: [
139
+ {
140
+ indexed: true,
141
+ internalType: 'uint256',
142
+ name: 'prevNextOutputIndex',
143
+ type: 'uint256',
144
+ },
145
+ {
146
+ indexed: true,
147
+ internalType: 'uint256',
148
+ name: 'newNextOutputIndex',
149
+ type: 'uint256',
150
+ },
151
+ ],
152
+ name: 'OutputsDeleted',
153
+ type: 'event',
154
+ },
155
+ {
156
+ inputs: [],
157
+ name: 'CHALLENGER',
158
+ outputs: [{ internalType: 'address', name: '', type: 'address' }],
159
+ stateMutability: 'view',
160
+ type: 'function',
161
+ },
162
+ {
163
+ inputs: [],
164
+ name: 'FINALIZATION_PERIOD_SECONDS',
165
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
166
+ stateMutability: 'view',
167
+ type: 'function',
168
+ },
169
+ {
170
+ inputs: [],
171
+ name: 'L2_BLOCK_TIME',
172
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
173
+ stateMutability: 'view',
174
+ type: 'function',
175
+ },
176
+ {
177
+ inputs: [],
178
+ name: 'PROPOSER',
179
+ outputs: [{ internalType: 'address', name: '', type: 'address' }],
180
+ stateMutability: 'view',
181
+ type: 'function',
182
+ },
183
+ {
184
+ inputs: [],
185
+ name: 'SUBMISSION_INTERVAL',
186
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
187
+ stateMutability: 'view',
188
+ type: 'function',
189
+ },
190
+ {
191
+ inputs: [
192
+ { internalType: 'uint256', name: '_l2BlockNumber', type: 'uint256' },
193
+ ],
194
+ name: 'computeL2Timestamp',
195
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
196
+ stateMutability: 'view',
197
+ type: 'function',
198
+ },
199
+ {
200
+ inputs: [
201
+ { internalType: 'uint256', name: '_l2OutputIndex', type: 'uint256' },
202
+ ],
203
+ name: 'deleteL2Outputs',
204
+ outputs: [],
205
+ stateMutability: 'nonpayable',
206
+ type: 'function',
207
+ },
208
+ {
209
+ inputs: [
210
+ { internalType: 'uint256', name: '_l2OutputIndex', type: 'uint256' },
211
+ ],
212
+ name: 'getL2Output',
213
+ outputs: [
214
+ {
215
+ components: [
216
+ { internalType: 'bytes32', name: 'outputRoot', type: 'bytes32' },
217
+ { internalType: 'uint128', name: 'timestamp', type: 'uint128' },
218
+ { internalType: 'uint128', name: 'l2BlockNumber', type: 'uint128' },
219
+ ],
220
+ internalType: 'struct Types.OutputProposal',
221
+ name: '',
222
+ type: 'tuple',
223
+ },
224
+ ],
225
+ stateMutability: 'view',
226
+ type: 'function',
227
+ },
228
+ {
229
+ inputs: [
230
+ { internalType: 'uint256', name: '_l2BlockNumber', type: 'uint256' },
231
+ ],
232
+ name: 'getL2OutputAfter',
233
+ outputs: [
234
+ {
235
+ components: [
236
+ { internalType: 'bytes32', name: 'outputRoot', type: 'bytes32' },
237
+ { internalType: 'uint128', name: 'timestamp', type: 'uint128' },
238
+ { internalType: 'uint128', name: 'l2BlockNumber', type: 'uint128' },
239
+ ],
240
+ internalType: 'struct Types.OutputProposal',
241
+ name: '',
242
+ type: 'tuple',
243
+ },
244
+ ],
245
+ stateMutability: 'view',
246
+ type: 'function',
247
+ },
248
+ {
249
+ inputs: [
250
+ { internalType: 'uint256', name: '_l2BlockNumber', type: 'uint256' },
251
+ ],
252
+ name: 'getL2OutputIndexAfter',
253
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
254
+ stateMutability: 'view',
255
+ type: 'function',
256
+ },
257
+ {
258
+ inputs: [
259
+ {
260
+ internalType: 'uint256',
261
+ name: '_startingBlockNumber',
262
+ type: 'uint256',
263
+ },
264
+ { internalType: 'uint256', name: '_startingTimestamp', type: 'uint256' },
265
+ ],
266
+ name: 'initialize',
267
+ outputs: [],
268
+ stateMutability: 'nonpayable',
269
+ type: 'function',
270
+ },
271
+ {
272
+ inputs: [],
273
+ name: 'latestBlockNumber',
274
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
275
+ stateMutability: 'view',
276
+ type: 'function',
277
+ },
278
+ {
279
+ inputs: [],
280
+ name: 'latestOutputIndex',
281
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
282
+ stateMutability: 'view',
283
+ type: 'function',
284
+ },
285
+ {
286
+ inputs: [],
287
+ name: 'nextBlockNumber',
288
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
289
+ stateMutability: 'view',
290
+ type: 'function',
291
+ },
292
+ {
293
+ inputs: [],
294
+ name: 'nextOutputIndex',
295
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
296
+ stateMutability: 'view',
297
+ type: 'function',
298
+ },
299
+ {
300
+ inputs: [
301
+ { internalType: 'bytes32', name: '_outputRoot', type: 'bytes32' },
302
+ { internalType: 'uint256', name: '_l2BlockNumber', type: 'uint256' },
303
+ { internalType: 'bytes32', name: '_l1BlockHash', type: 'bytes32' },
304
+ { internalType: 'uint256', name: '_l1BlockNumber', type: 'uint256' },
305
+ ],
306
+ name: 'proposeL2Output',
307
+ outputs: [],
308
+ stateMutability: 'payable',
309
+ type: 'function',
310
+ },
311
+ {
312
+ inputs: [],
313
+ name: 'startingBlockNumber',
314
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
315
+ stateMutability: 'view',
316
+ type: 'function',
317
+ },
318
+ {
319
+ inputs: [],
320
+ name: 'startingTimestamp',
321
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
322
+ stateMutability: 'view',
323
+ type: 'function',
324
+ },
325
+ {
326
+ inputs: [],
327
+ name: 'version',
328
+ outputs: [{ internalType: 'string', name: '', type: 'string' }],
329
+ stateMutability: 'view',
330
+ type: 'function',
331
+ },
332
+ ] as const
333
+
334
+ export const l2ToL1MessagePasserAbi = [
335
+ { inputs: [], stateMutability: 'nonpayable', type: 'constructor' },
336
+ {
337
+ anonymous: false,
338
+ inputs: [
339
+ {
340
+ indexed: true,
341
+ internalType: 'uint256',
342
+ name: 'nonce',
343
+ type: 'uint256',
344
+ },
345
+ {
346
+ indexed: true,
347
+ internalType: 'address',
348
+ name: 'sender',
349
+ type: 'address',
350
+ },
351
+ {
352
+ indexed: true,
353
+ internalType: 'address',
354
+ name: 'target',
355
+ type: 'address',
356
+ },
357
+ {
358
+ indexed: false,
359
+ internalType: 'uint256',
360
+ name: 'value',
361
+ type: 'uint256',
362
+ },
363
+ {
364
+ indexed: false,
365
+ internalType: 'uint256',
366
+ name: 'gasLimit',
367
+ type: 'uint256',
368
+ },
369
+ { indexed: false, internalType: 'bytes', name: 'data', type: 'bytes' },
370
+ {
371
+ indexed: false,
372
+ internalType: 'bytes32',
373
+ name: 'withdrawalHash',
374
+ type: 'bytes32',
375
+ },
376
+ ],
377
+ name: 'MessagePassed',
378
+ type: 'event',
379
+ },
380
+ {
381
+ anonymous: false,
382
+ inputs: [
383
+ {
384
+ indexed: true,
385
+ internalType: 'uint256',
386
+ name: 'amount',
387
+ type: 'uint256',
388
+ },
389
+ ],
390
+ name: 'WithdrawerBalanceBurnt',
391
+ type: 'event',
392
+ },
393
+ {
394
+ inputs: [],
395
+ name: 'MESSAGE_VERSION',
396
+ outputs: [{ internalType: 'uint16', name: '', type: 'uint16' }],
397
+ stateMutability: 'view',
398
+ type: 'function',
399
+ },
400
+ {
401
+ inputs: [],
402
+ name: 'burn',
403
+ outputs: [],
404
+ stateMutability: 'nonpayable',
405
+ type: 'function',
406
+ },
407
+ {
408
+ inputs: [
409
+ { internalType: 'address', name: '_target', type: 'address' },
410
+ { internalType: 'uint256', name: '_gasLimit', type: 'uint256' },
411
+ { internalType: 'bytes', name: '_data', type: 'bytes' },
412
+ ],
413
+ name: 'initiateWithdrawal',
414
+ outputs: [],
415
+ stateMutability: 'payable',
416
+ type: 'function',
417
+ },
418
+ {
419
+ inputs: [],
420
+ name: 'messageNonce',
421
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
422
+ stateMutability: 'view',
423
+ type: 'function',
424
+ },
425
+ {
426
+ inputs: [{ internalType: 'bytes32', name: '', type: 'bytes32' }],
427
+ name: 'sentMessages',
428
+ outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
429
+ stateMutability: 'view',
430
+ type: 'function',
431
+ },
432
+ {
433
+ inputs: [],
434
+ name: 'version',
435
+ outputs: [{ internalType: 'string', name: '', type: 'string' }],
436
+ stateMutability: 'view',
437
+ type: 'function',
438
+ },
439
+ { stateMutability: 'payable', type: 'receive' },
440
+ ] as const
441
+
75
442
  export const portalAbi = [
76
443
  { stateMutability: 'nonpayable', type: 'constructor', inputs: [] },
77
444
  {
@@ -11,7 +11,11 @@ import {
11
11
  import type { Client } from '../../../clients/createClient.js'
12
12
  import type { Transport } from '../../../clients/transports/createTransport.js'
13
13
  import type { ErrorType } from '../../../errors/utils.js'
14
- import type { Account, GetAccountParameter } from '../../../types/account.js'
14
+ import type {
15
+ Account,
16
+ DeriveAccount,
17
+ GetAccountParameter,
18
+ } from '../../../types/account.js'
15
19
  import type {
16
20
  Chain,
17
21
  DeriveChain,
@@ -64,8 +68,9 @@ export type BuildDepositTransactionReturnType<
64
68
  | Address
65
69
  | undefined,
66
70
  > = Prettify<
67
- UnionOmit<DepositTransactionParameters<Chain, account, Chain>, 'account'> &
68
- GetAccountParameter<account, accountOverride>
71
+ UnionOmit<DepositTransactionParameters<Chain, account, Chain>, 'account'> & {
72
+ account: DeriveAccount<account, accountOverride>
73
+ }
69
74
  >
70
75
 
71
76
  export type BuildDepositTransactionErrorType =
@@ -93,7 +98,7 @@ export type BuildDepositTransactionErrorType =
93
98
  * transport: http(),
94
99
  * }).extend(publicActionsL2())
95
100
  *
96
- * const request = await buildDepositTransaction(client, {
101
+ * const args = await buildDepositTransaction(client, {
97
102
  * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
98
103
  * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
99
104
  * value: parseEther('1'),
@@ -138,7 +143,7 @@ export async function buildDepositTransaction<
138
143
 
139
144
  return {
140
145
  account,
141
- args: {
146
+ request: {
142
147
  data: request.data,
143
148
  gas: request.gas,
144
149
  mint,
@@ -147,5 +152,5 @@ export async function buildDepositTransaction<
147
152
  value: request.value,
148
153
  },
149
154
  targetChain: chain,
150
- } as BuildDepositTransactionReturnType<account, accountOverride>
155
+ } as unknown as BuildDepositTransactionReturnType<account, accountOverride>
151
156
  }
@@ -0,0 +1,118 @@
1
+ import type { Address } from 'abitype'
2
+ import {
3
+ type ParseAccountErrorType,
4
+ parseAccount,
5
+ } from '../../../accounts/utils/parseAccount.js'
6
+ import {
7
+ type PrepareTransactionRequestErrorType,
8
+ type PrepareTransactionRequestParameters,
9
+ prepareTransactionRequest,
10
+ } from '../../../actions/wallet/prepareTransactionRequest.js'
11
+ import type { Client } from '../../../clients/createClient.js'
12
+ import type { Transport } from '../../../clients/transports/createTransport.js'
13
+ import type { ErrorType } from '../../../errors/utils.js'
14
+ import type { Account, GetAccountParameter } from '../../../types/account.js'
15
+ import type { Chain, GetChainParameter } from '../../../types/chain.js'
16
+ import type { Hex } from '../../../types/misc.js'
17
+ import type { Prettify, UnionOmit } from '../../../types/utils.js'
18
+ import type { InitiateWithdrawalParameters } from './initiateWithdrawal.js'
19
+
20
+ export type BuildInitiateWithdrawalParameters<
21
+ chain extends Chain | undefined = Chain | undefined,
22
+ account extends Account | undefined = Account | undefined,
23
+ chainOverride extends Chain | undefined = Chain | undefined,
24
+ accountOverride extends Account | Address | undefined =
25
+ | Account
26
+ | Address
27
+ | undefined,
28
+ > = GetAccountParameter<account, accountOverride, false> &
29
+ GetChainParameter<chain, chainOverride> & {
30
+ /** Encoded contract method & arguments. */
31
+ data?: Hex
32
+ /** Gas limit for transaction execution on the L1. */
33
+ gas?: bigint
34
+ /** L1 Transaction recipient. */
35
+ to: Address
36
+ /** Value in wei to withdrawal to the L1. Debited from the caller's L2 balance. */
37
+ value?: bigint
38
+ }
39
+
40
+ export type BuildInitiateWithdrawalReturnType<
41
+ account extends Account | undefined = Account | undefined,
42
+ accountOverride extends Account | Address | undefined =
43
+ | Account
44
+ | Address
45
+ | undefined,
46
+ > = Prettify<
47
+ UnionOmit<InitiateWithdrawalParameters<Chain, account, Chain>, 'account'> &
48
+ GetAccountParameter<account, accountOverride>
49
+ >
50
+
51
+ export type BuildInitiateWithdrawalErrorType =
52
+ | ParseAccountErrorType
53
+ | PrepareTransactionRequestErrorType
54
+ | ErrorType
55
+
56
+ /**
57
+ * Prepares parameters for a [withdrawal](https://community.optimism.io/docs/protocol/withdrawal-flow/#withdrawal-initiating-transaction) from an L2 to the L1.
58
+ *
59
+ * - Docs: https://viem.sh/op-stack/actions/buildInitiateWithdrawal.html
60
+ *
61
+ * @param client - Client to use
62
+ * @param parameters - {@link BuildInitiateWithdrawalParameters}
63
+ * @returns Parameters for `depositTransaction`. {@link DepositTransactionReturnType}
64
+ *
65
+ * @example
66
+ * import { createPublicClient, http, parseEther } from 'viem'
67
+ * import { mainnet } from 'viem/chains'
68
+ * import { buildInitiateWithdrawal } from 'viem/wallet'
69
+ *
70
+ * const client = createPublicClient({
71
+ * chain: mainnet,
72
+ * transport: http(),
73
+ * })
74
+ *
75
+ * const args = await buildInitiateWithdrawal(client, {
76
+ * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
77
+ * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
78
+ * value: parseEther('1'),
79
+ * })
80
+ */
81
+ export async function buildInitiateWithdrawal<
82
+ chain extends Chain | undefined,
83
+ account extends Account | undefined,
84
+ chainOverride extends Chain | undefined = undefined,
85
+ accountOverride extends Account | Address | undefined = undefined,
86
+ >(
87
+ client: Client<Transport, chain, account>,
88
+ args: BuildInitiateWithdrawalParameters<
89
+ chain,
90
+ account,
91
+ chainOverride,
92
+ accountOverride
93
+ >,
94
+ ): Promise<BuildInitiateWithdrawalReturnType<account, accountOverride>> {
95
+ const { account: account_, chain = client.chain, gas, data, to, value } = args
96
+
97
+ const account = account_ ? parseAccount(account_) : undefined
98
+
99
+ const request = await prepareTransactionRequest(client, {
100
+ account,
101
+ chain,
102
+ gas,
103
+ data,
104
+ parameters: ['gas'],
105
+ to,
106
+ value,
107
+ } as PrepareTransactionRequestParameters)
108
+
109
+ return {
110
+ account,
111
+ request: {
112
+ data: request.data,
113
+ gas: request.gas,
114
+ to: request.to,
115
+ value: request.value,
116
+ },
117
+ } as BuildInitiateWithdrawalReturnType<account, accountOverride>
118
+ }
@@ -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
+ }