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

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