@mantleio/viem 0.0.1-alpha.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 (453) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +54 -0
  3. package/dist/cjs/abis.js +3338 -0
  4. package/dist/cjs/abis.js.map +1 -0
  5. package/dist/cjs/actions/buildProveWithdrawal.js +55 -0
  6. package/dist/cjs/actions/buildProveWithdrawal.js.map +1 -0
  7. package/dist/cjs/actions/depositERC20.js +37 -0
  8. package/dist/cjs/actions/depositERC20.js.map +1 -0
  9. package/dist/cjs/actions/depositETH.js +36 -0
  10. package/dist/cjs/actions/depositETH.js.map +1 -0
  11. package/dist/cjs/actions/depositMNT.js +35 -0
  12. package/dist/cjs/actions/depositMNT.js.map +1 -0
  13. package/dist/cjs/actions/estimateDepositERC20Gas.js +38 -0
  14. package/dist/cjs/actions/estimateDepositERC20Gas.js.map +1 -0
  15. package/dist/cjs/actions/estimateDepositETHGas.js +37 -0
  16. package/dist/cjs/actions/estimateDepositETHGas.js.map +1 -0
  17. package/dist/cjs/actions/estimateDepositMNTGas.js +36 -0
  18. package/dist/cjs/actions/estimateDepositMNTGas.js.map +1 -0
  19. package/dist/cjs/actions/estimateFinalizeWithdrawalGas.js +29 -0
  20. package/dist/cjs/actions/estimateFinalizeWithdrawalGas.js.map +1 -0
  21. package/dist/cjs/actions/estimateInitiateERC20WithdrawalGas.js +30 -0
  22. package/dist/cjs/actions/estimateInitiateERC20WithdrawalGas.js.map +1 -0
  23. package/dist/cjs/actions/estimateInitiateETHWithdrawalGas.js +29 -0
  24. package/dist/cjs/actions/estimateInitiateETHWithdrawalGas.js.map +1 -0
  25. package/dist/cjs/actions/estimateInitiateMNTWithdrawalGas.js +30 -0
  26. package/dist/cjs/actions/estimateInitiateMNTWithdrawalGas.js.map +1 -0
  27. package/dist/cjs/actions/estimateProveWithdrawalGas.js +29 -0
  28. package/dist/cjs/actions/estimateProveWithdrawalGas.js.map +1 -0
  29. package/dist/cjs/actions/finalizeWithdrawal.js +28 -0
  30. package/dist/cjs/actions/finalizeWithdrawal.js.map +1 -0
  31. package/dist/cjs/actions/getL2Output.js +31 -0
  32. package/dist/cjs/actions/getL2Output.js.map +1 -0
  33. package/dist/cjs/actions/getPortalVersion.js +24 -0
  34. package/dist/cjs/actions/getPortalVersion.js.map +1 -0
  35. package/dist/cjs/actions/getTimeToFinalize.js +46 -0
  36. package/dist/cjs/actions/getTimeToFinalize.js.map +1 -0
  37. package/dist/cjs/actions/getTimeToNextL2Output.js +62 -0
  38. package/dist/cjs/actions/getTimeToNextL2Output.js.map +1 -0
  39. package/dist/cjs/actions/getTimeToProve.js +12 -0
  40. package/dist/cjs/actions/getTimeToProve.js.map +1 -0
  41. package/dist/cjs/actions/getWithdrawalStatus.js +133 -0
  42. package/dist/cjs/actions/getWithdrawalStatus.js.map +1 -0
  43. package/dist/cjs/actions/initiateERC20Withdrawal.js +29 -0
  44. package/dist/cjs/actions/initiateERC20Withdrawal.js.map +1 -0
  45. package/dist/cjs/actions/initiateETHWithdrawal.js +28 -0
  46. package/dist/cjs/actions/initiateETHWithdrawal.js.map +1 -0
  47. package/dist/cjs/actions/initiateMNTWithdrawal.js +29 -0
  48. package/dist/cjs/actions/initiateMNTWithdrawal.js.map +1 -0
  49. package/dist/cjs/actions/proveWithdrawal.js +28 -0
  50. package/dist/cjs/actions/proveWithdrawal.js.map +1 -0
  51. package/dist/cjs/actions/waitForNextL2Output.js +31 -0
  52. package/dist/cjs/actions/waitForNextL2Output.js.map +1 -0
  53. package/dist/cjs/actions/waitToFinalize.js +10 -0
  54. package/dist/cjs/actions/waitToFinalize.js.map +1 -0
  55. package/dist/cjs/actions/waitToProve.js +24 -0
  56. package/dist/cjs/actions/waitToProve.js.map +1 -0
  57. package/dist/cjs/chainConfig.js +12 -0
  58. package/dist/cjs/chainConfig.js.map +1 -0
  59. package/dist/cjs/chains/index.js +8 -0
  60. package/dist/cjs/chains/index.js.map +1 -0
  61. package/dist/cjs/chains/mantle.js +53 -0
  62. package/dist/cjs/chains/mantle.js.map +1 -0
  63. package/dist/cjs/chains/mantleSepoliaTestnet.js +54 -0
  64. package/dist/cjs/chains/mantleSepoliaTestnet.js.map +1 -0
  65. package/dist/cjs/contracts.js +16 -0
  66. package/dist/cjs/contracts.js.map +1 -0
  67. package/dist/cjs/decorators/publicL1.js +38 -0
  68. package/dist/cjs/decorators/publicL1.js.map +1 -0
  69. package/dist/cjs/decorators/publicL2.js +18 -0
  70. package/dist/cjs/decorators/publicL2.js.map +1 -0
  71. package/dist/cjs/decorators/walletL1.js +20 -0
  72. package/dist/cjs/decorators/walletL1.js.map +1 -0
  73. package/dist/cjs/decorators/walletL2.js +16 -0
  74. package/dist/cjs/decorators/walletL2.js.map +1 -0
  75. package/dist/cjs/errors/utils.js +3 -0
  76. package/dist/cjs/errors/utils.js.map +1 -0
  77. package/dist/cjs/errors/withdrawal.js +17 -0
  78. package/dist/cjs/errors/withdrawal.js.map +1 -0
  79. package/dist/cjs/formatters.js +51 -0
  80. package/dist/cjs/formatters.js.map +1 -0
  81. package/dist/cjs/index.js +59 -0
  82. package/dist/cjs/index.js.map +1 -0
  83. package/dist/cjs/package.json +1 -0
  84. package/dist/cjs/parsers.js +58 -0
  85. package/dist/cjs/parsers.js.map +1 -0
  86. package/dist/cjs/serializers.js +53 -0
  87. package/dist/cjs/serializers.js.map +1 -0
  88. package/dist/cjs/types/account.js +3 -0
  89. package/dist/cjs/types/account.js.map +1 -0
  90. package/dist/cjs/types/block.js +3 -0
  91. package/dist/cjs/types/block.js.map +1 -0
  92. package/dist/cjs/types/chain.js +3 -0
  93. package/dist/cjs/types/chain.js.map +1 -0
  94. package/dist/cjs/types/contract.js +3 -0
  95. package/dist/cjs/types/contract.js.map +1 -0
  96. package/dist/cjs/types/deposit.js +3 -0
  97. package/dist/cjs/types/deposit.js.map +1 -0
  98. package/dist/cjs/types/l1Actions.js +8 -0
  99. package/dist/cjs/types/l1Actions.js.map +1 -0
  100. package/dist/cjs/types/l2Actions.js +11 -0
  101. package/dist/cjs/types/l2Actions.js.map +1 -0
  102. package/dist/cjs/types/transaction.js +3 -0
  103. package/dist/cjs/types/transaction.js.map +1 -0
  104. package/dist/cjs/types/withdrawal.js +3 -0
  105. package/dist/cjs/types/withdrawal.js.map +1 -0
  106. package/dist/cjs/utils/extractTransactionDepositedLogs.js +13 -0
  107. package/dist/cjs/utils/extractTransactionDepositedLogs.js.map +1 -0
  108. package/dist/cjs/utils/extractWithdrawalMessageLogs.js +13 -0
  109. package/dist/cjs/utils/extractWithdrawalMessageLogs.js.map +1 -0
  110. package/dist/cjs/utils/getL2TransactionHash.js +29 -0
  111. package/dist/cjs/utils/getL2TransactionHash.js.map +1 -0
  112. package/dist/cjs/utils/getL2TransactionHashes.js +10 -0
  113. package/dist/cjs/utils/getL2TransactionHashes.js.map +1 -0
  114. package/dist/cjs/utils/getSourceHash.js +17 -0
  115. package/dist/cjs/utils/getSourceHash.js.map +1 -0
  116. package/dist/cjs/utils/getWithdrawalHashStorageSlot.js +9 -0
  117. package/dist/cjs/utils/getWithdrawalHashStorageSlot.js.map +1 -0
  118. package/dist/cjs/utils/getWithdrawals.js +9 -0
  119. package/dist/cjs/utils/getWithdrawals.js.map +1 -0
  120. package/dist/cjs/utils/opaqueDataToDepositData.js +32 -0
  121. package/dist/cjs/utils/opaqueDataToDepositData.js.map +1 -0
  122. package/dist/cjs/utils/parseDepositRequest.js +43 -0
  123. package/dist/cjs/utils/parseDepositRequest.js.map +1 -0
  124. package/dist/cjs/utils/parseInitWithdrawRequest.js +55 -0
  125. package/dist/cjs/utils/parseInitWithdrawRequest.js.map +1 -0
  126. package/dist/cjs/utils/poll.js +26 -0
  127. package/dist/cjs/utils/poll.js.map +1 -0
  128. package/dist/cjs/utils/promise/withCache.js +47 -0
  129. package/dist/cjs/utils/promise/withCache.js.map +1 -0
  130. package/dist/cjs/utils/wait.js +7 -0
  131. package/dist/cjs/utils/wait.js.map +1 -0
  132. package/dist/esm/abis.js +3335 -0
  133. package/dist/esm/abis.js.map +1 -0
  134. package/dist/esm/actions/buildProveWithdrawal.js +67 -0
  135. package/dist/esm/actions/buildProveWithdrawal.js.map +1 -0
  136. package/dist/esm/actions/depositERC20.js +39 -0
  137. package/dist/esm/actions/depositERC20.js.map +1 -0
  138. package/dist/esm/actions/depositETH.js +38 -0
  139. package/dist/esm/actions/depositETH.js.map +1 -0
  140. package/dist/esm/actions/depositMNT.js +37 -0
  141. package/dist/esm/actions/depositMNT.js.map +1 -0
  142. package/dist/esm/actions/estimateDepositERC20Gas.js +43 -0
  143. package/dist/esm/actions/estimateDepositERC20Gas.js.map +1 -0
  144. package/dist/esm/actions/estimateDepositETHGas.js +43 -0
  145. package/dist/esm/actions/estimateDepositETHGas.js.map +1 -0
  146. package/dist/esm/actions/estimateDepositMNTGas.js +41 -0
  147. package/dist/esm/actions/estimateDepositMNTGas.js.map +1 -0
  148. package/dist/esm/actions/estimateFinalizeWithdrawalGas.js +34 -0
  149. package/dist/esm/actions/estimateFinalizeWithdrawalGas.js.map +1 -0
  150. package/dist/esm/actions/estimateInitiateERC20WithdrawalGas.js +35 -0
  151. package/dist/esm/actions/estimateInitiateERC20WithdrawalGas.js.map +1 -0
  152. package/dist/esm/actions/estimateInitiateETHWithdrawalGas.js +34 -0
  153. package/dist/esm/actions/estimateInitiateETHWithdrawalGas.js.map +1 -0
  154. package/dist/esm/actions/estimateInitiateMNTWithdrawalGas.js +35 -0
  155. package/dist/esm/actions/estimateInitiateMNTWithdrawalGas.js.map +1 -0
  156. package/dist/esm/actions/estimateProveWithdrawalGas.js +34 -0
  157. package/dist/esm/actions/estimateProveWithdrawalGas.js.map +1 -0
  158. package/dist/esm/actions/finalizeWithdrawal.js +30 -0
  159. package/dist/esm/actions/finalizeWithdrawal.js.map +1 -0
  160. package/dist/esm/actions/getL2Output.js +33 -0
  161. package/dist/esm/actions/getL2Output.js.map +1 -0
  162. package/dist/esm/actions/getPortalVersion.js +26 -0
  163. package/dist/esm/actions/getPortalVersion.js.map +1 -0
  164. package/dist/esm/actions/getTimeToFinalize.js +48 -0
  165. package/dist/esm/actions/getTimeToFinalize.js.map +1 -0
  166. package/dist/esm/actions/getTimeToNextL2Output.js +68 -0
  167. package/dist/esm/actions/getTimeToNextL2Output.js.map +1 -0
  168. package/dist/esm/actions/getTimeToProve.js +14 -0
  169. package/dist/esm/actions/getTimeToProve.js.map +1 -0
  170. package/dist/esm/actions/getWithdrawalStatus.js +138 -0
  171. package/dist/esm/actions/getWithdrawalStatus.js.map +1 -0
  172. package/dist/esm/actions/initiateERC20Withdrawal.js +31 -0
  173. package/dist/esm/actions/initiateERC20Withdrawal.js.map +1 -0
  174. package/dist/esm/actions/initiateETHWithdrawal.js +30 -0
  175. package/dist/esm/actions/initiateETHWithdrawal.js.map +1 -0
  176. package/dist/esm/actions/initiateMNTWithdrawal.js +31 -0
  177. package/dist/esm/actions/initiateMNTWithdrawal.js.map +1 -0
  178. package/dist/esm/actions/proveWithdrawal.js +30 -0
  179. package/dist/esm/actions/proveWithdrawal.js.map +1 -0
  180. package/dist/esm/actions/waitForNextL2Output.js +33 -0
  181. package/dist/esm/actions/waitForNextL2Output.js.map +1 -0
  182. package/dist/esm/actions/waitToFinalize.js +11 -0
  183. package/dist/esm/actions/waitToFinalize.js.map +1 -0
  184. package/dist/esm/actions/waitToProve.js +26 -0
  185. package/dist/esm/actions/waitToProve.js.map +1 -0
  186. package/dist/esm/chainConfig.js +9 -0
  187. package/dist/esm/chainConfig.js.map +1 -0
  188. package/dist/esm/chains/index.js +3 -0
  189. package/dist/esm/chains/index.js.map +1 -0
  190. package/dist/esm/chains/mantle.js +50 -0
  191. package/dist/esm/chains/mantle.js.map +1 -0
  192. package/dist/esm/chains/mantleSepoliaTestnet.js +51 -0
  193. package/dist/esm/chains/mantleSepoliaTestnet.js.map +1 -0
  194. package/dist/esm/contracts.js +13 -0
  195. package/dist/esm/contracts.js.map +1 -0
  196. package/dist/esm/decorators/publicL1.js +35 -0
  197. package/dist/esm/decorators/publicL1.js.map +1 -0
  198. package/dist/esm/decorators/publicL2.js +15 -0
  199. package/dist/esm/decorators/publicL2.js.map +1 -0
  200. package/dist/esm/decorators/walletL1.js +17 -0
  201. package/dist/esm/decorators/walletL1.js.map +1 -0
  202. package/dist/esm/decorators/walletL2.js +13 -0
  203. package/dist/esm/decorators/walletL2.js.map +1 -0
  204. package/dist/esm/errors/utils.js +2 -0
  205. package/dist/esm/errors/utils.js.map +1 -0
  206. package/dist/esm/errors/withdrawal.js +12 -0
  207. package/dist/esm/errors/withdrawal.js.map +1 -0
  208. package/dist/esm/formatters.js +48 -0
  209. package/dist/esm/formatters.js.map +1 -0
  210. package/dist/esm/index.js +29 -0
  211. package/dist/esm/index.js.map +1 -0
  212. package/dist/esm/package.json +1 -0
  213. package/dist/esm/parsers.js +54 -0
  214. package/dist/esm/parsers.js.map +1 -0
  215. package/dist/esm/serializers.js +48 -0
  216. package/dist/esm/serializers.js.map +1 -0
  217. package/dist/esm/types/account.js +2 -0
  218. package/dist/esm/types/account.js.map +1 -0
  219. package/dist/esm/types/block.js +2 -0
  220. package/dist/esm/types/block.js.map +1 -0
  221. package/dist/esm/types/chain.js +2 -0
  222. package/dist/esm/types/chain.js.map +1 -0
  223. package/dist/esm/types/contract.js +2 -0
  224. package/dist/esm/types/contract.js.map +1 -0
  225. package/dist/esm/types/deposit.js +2 -0
  226. package/dist/esm/types/deposit.js.map +1 -0
  227. package/dist/esm/types/l1Actions.js +5 -0
  228. package/dist/esm/types/l1Actions.js.map +1 -0
  229. package/dist/esm/types/l2Actions.js +7 -0
  230. package/dist/esm/types/l2Actions.js.map +1 -0
  231. package/dist/esm/types/transaction.js +2 -0
  232. package/dist/esm/types/transaction.js.map +1 -0
  233. package/dist/esm/types/withdrawal.js +2 -0
  234. package/dist/esm/types/withdrawal.js.map +1 -0
  235. package/dist/esm/utils/extractTransactionDepositedLogs.js +10 -0
  236. package/dist/esm/utils/extractTransactionDepositedLogs.js.map +1 -0
  237. package/dist/esm/utils/extractWithdrawalMessageLogs.js +10 -0
  238. package/dist/esm/utils/extractWithdrawalMessageLogs.js.map +1 -0
  239. package/dist/esm/utils/getL2TransactionHash.js +26 -0
  240. package/dist/esm/utils/getL2TransactionHash.js.map +1 -0
  241. package/dist/esm/utils/getL2TransactionHashes.js +7 -0
  242. package/dist/esm/utils/getL2TransactionHashes.js.map +1 -0
  243. package/dist/esm/utils/getSourceHash.js +14 -0
  244. package/dist/esm/utils/getSourceHash.js.map +1 -0
  245. package/dist/esm/utils/getWithdrawalHashStorageSlot.js +6 -0
  246. package/dist/esm/utils/getWithdrawalHashStorageSlot.js.map +1 -0
  247. package/dist/esm/utils/getWithdrawals.js +6 -0
  248. package/dist/esm/utils/getWithdrawals.js.map +1 -0
  249. package/dist/esm/utils/opaqueDataToDepositData.js +29 -0
  250. package/dist/esm/utils/opaqueDataToDepositData.js.map +1 -0
  251. package/dist/esm/utils/parseDepositRequest.js +39 -0
  252. package/dist/esm/utils/parseDepositRequest.js.map +1 -0
  253. package/dist/esm/utils/parseInitWithdrawRequest.js +51 -0
  254. package/dist/esm/utils/parseInitWithdrawRequest.js.map +1 -0
  255. package/dist/esm/utils/poll.js +26 -0
  256. package/dist/esm/utils/poll.js.map +1 -0
  257. package/dist/esm/utils/promise/withCache.js +57 -0
  258. package/dist/esm/utils/promise/withCache.js.map +1 -0
  259. package/dist/esm/utils/wait.js +4 -0
  260. package/dist/esm/utils/wait.js.map +1 -0
  261. package/dist/types/abis.d.ts +3110 -0
  262. package/dist/types/abis.d.ts.map +1 -0
  263. package/dist/types/actions/buildProveWithdrawal.d.ts +34 -0
  264. package/dist/types/actions/buildProveWithdrawal.d.ts.map +1 -0
  265. package/dist/types/actions/depositERC20.d.ts +29 -0
  266. package/dist/types/actions/depositERC20.d.ts.map +1 -0
  267. package/dist/types/actions/depositETH.d.ts +29 -0
  268. package/dist/types/actions/depositETH.d.ts.map +1 -0
  269. package/dist/types/actions/depositMNT.d.ts +29 -0
  270. package/dist/types/actions/depositMNT.d.ts.map +1 -0
  271. package/dist/types/actions/estimateDepositERC20Gas.d.ts +26 -0
  272. package/dist/types/actions/estimateDepositERC20Gas.d.ts.map +1 -0
  273. package/dist/types/actions/estimateDepositETHGas.d.ts +26 -0
  274. package/dist/types/actions/estimateDepositETHGas.d.ts.map +1 -0
  275. package/dist/types/actions/estimateDepositMNTGas.d.ts +26 -0
  276. package/dist/types/actions/estimateDepositMNTGas.d.ts.map +1 -0
  277. package/dist/types/actions/estimateFinalizeWithdrawalGas.d.ts +26 -0
  278. package/dist/types/actions/estimateFinalizeWithdrawalGas.d.ts.map +1 -0
  279. package/dist/types/actions/estimateInitiateERC20WithdrawalGas.d.ts +25 -0
  280. package/dist/types/actions/estimateInitiateERC20WithdrawalGas.d.ts.map +1 -0
  281. package/dist/types/actions/estimateInitiateETHWithdrawalGas.d.ts +25 -0
  282. package/dist/types/actions/estimateInitiateETHWithdrawalGas.d.ts.map +1 -0
  283. package/dist/types/actions/estimateInitiateMNTWithdrawalGas.d.ts +25 -0
  284. package/dist/types/actions/estimateInitiateMNTWithdrawalGas.d.ts.map +1 -0
  285. package/dist/types/actions/estimateProveWithdrawalGas.d.ts +35 -0
  286. package/dist/types/actions/estimateProveWithdrawalGas.d.ts.map +1 -0
  287. package/dist/types/actions/finalizeWithdrawal.d.ts +29 -0
  288. package/dist/types/actions/finalizeWithdrawal.d.ts.map +1 -0
  289. package/dist/types/actions/getL2Output.d.ts +24 -0
  290. package/dist/types/actions/getL2Output.d.ts.map +1 -0
  291. package/dist/types/actions/getPortalVersion.d.ts +23 -0
  292. package/dist/types/actions/getPortalVersion.d.ts.map +1 -0
  293. package/dist/types/actions/getTimeToFinalize.d.ts +26 -0
  294. package/dist/types/actions/getTimeToFinalize.d.ts.map +1 -0
  295. package/dist/types/actions/getTimeToNextL2Output.d.ts +35 -0
  296. package/dist/types/actions/getTimeToNextL2Output.d.ts.map +1 -0
  297. package/dist/types/actions/getTimeToProve.d.ts +24 -0
  298. package/dist/types/actions/getTimeToProve.d.ts.map +1 -0
  299. package/dist/types/actions/getWithdrawalStatus.d.ts +22 -0
  300. package/dist/types/actions/getWithdrawalStatus.d.ts.map +1 -0
  301. package/dist/types/actions/initiateERC20Withdrawal.d.ts +27 -0
  302. package/dist/types/actions/initiateERC20Withdrawal.d.ts.map +1 -0
  303. package/dist/types/actions/initiateETHWithdrawal.d.ts +27 -0
  304. package/dist/types/actions/initiateETHWithdrawal.d.ts.map +1 -0
  305. package/dist/types/actions/initiateMNTWithdrawal.d.ts +27 -0
  306. package/dist/types/actions/initiateMNTWithdrawal.d.ts.map +1 -0
  307. package/dist/types/actions/proveWithdrawal.d.ts +36 -0
  308. package/dist/types/actions/proveWithdrawal.d.ts.map +1 -0
  309. package/dist/types/actions/waitForNextL2Output.d.ts +29 -0
  310. package/dist/types/actions/waitForNextL2Output.d.ts.map +1 -0
  311. package/dist/types/actions/waitToFinalize.d.ts +14 -0
  312. package/dist/types/actions/waitToFinalize.d.ts.map +1 -0
  313. package/dist/types/actions/waitToProve.d.ts +27 -0
  314. package/dist/types/actions/waitToProve.d.ts.map +1 -0
  315. package/dist/types/chainConfig.d.ts +43 -0
  316. package/dist/types/chainConfig.d.ts.map +1 -0
  317. package/dist/types/chains/index.d.ts +3 -0
  318. package/dist/types/chains/index.d.ts.map +1 -0
  319. package/dist/types/chains/mantle.d.ts +299 -0
  320. package/dist/types/chains/mantle.d.ts.map +1 -0
  321. package/dist/types/chains/mantleSepoliaTestnet.d.ts +299 -0
  322. package/dist/types/chains/mantleSepoliaTestnet.d.ts.map +1 -0
  323. package/dist/types/contracts.d.ts +21 -0
  324. package/dist/types/contracts.d.ts.map +1 -0
  325. package/dist/types/decorators/publicL1.d.ts +35 -0
  326. package/dist/types/decorators/publicL1.d.ts.map +1 -0
  327. package/dist/types/decorators/publicL2.d.ts +16 -0
  328. package/dist/types/decorators/publicL2.d.ts.map +1 -0
  329. package/dist/types/decorators/walletL1.d.ts +17 -0
  330. package/dist/types/decorators/walletL1.d.ts.map +1 -0
  331. package/dist/types/decorators/walletL2.d.ts +13 -0
  332. package/dist/types/decorators/walletL2.d.ts.map +1 -0
  333. package/dist/types/errors/utils.d.ts +4 -0
  334. package/dist/types/errors/utils.d.ts.map +1 -0
  335. package/dist/types/errors/withdrawal.d.ts +17 -0
  336. package/dist/types/errors/withdrawal.d.ts.map +1 -0
  337. package/dist/types/formatters.d.ts +20 -0
  338. package/dist/types/formatters.d.ts.map +1 -0
  339. package/dist/types/index.d.ts +30 -0
  340. package/dist/types/index.d.ts.map +1 -0
  341. package/dist/types/parsers.d.ts +8 -0
  342. package/dist/types/parsers.d.ts.map +1 -0
  343. package/dist/types/serializers.d.ts +13 -0
  344. package/dist/types/serializers.d.ts.map +1 -0
  345. package/dist/types/types/account.d.ts +7 -0
  346. package/dist/types/types/account.d.ts.map +1 -0
  347. package/dist/types/types/block.d.ts +13 -0
  348. package/dist/types/types/block.d.ts.map +1 -0
  349. package/dist/types/types/chain.d.ts +9 -0
  350. package/dist/types/types/chain.d.ts.map +1 -0
  351. package/dist/types/types/contract.d.ts +14 -0
  352. package/dist/types/types/contract.d.ts.map +1 -0
  353. package/dist/types/types/deposit.d.ts +35 -0
  354. package/dist/types/types/deposit.d.ts.map +1 -0
  355. package/dist/types/types/l1Actions.d.ts +856 -0
  356. package/dist/types/types/l1Actions.d.ts.map +1 -0
  357. package/dist/types/types/l2Actions.d.ts +3 -0
  358. package/dist/types/types/l2Actions.d.ts.map +1 -0
  359. package/dist/types/types/transaction.d.ts +58 -0
  360. package/dist/types/types/transaction.d.ts.map +1 -0
  361. package/dist/types/types/withdrawal.d.ts +39 -0
  362. package/dist/types/types/withdrawal.d.ts.map +1 -0
  363. package/dist/types/utils/extractTransactionDepositedLogs.d.ts +450 -0
  364. package/dist/types/utils/extractTransactionDepositedLogs.d.ts.map +1 -0
  365. package/dist/types/utils/extractWithdrawalMessageLogs.d.ts +160 -0
  366. package/dist/types/utils/extractWithdrawalMessageLogs.d.ts.map +1 -0
  367. package/dist/types/utils/getL2TransactionHash.d.ts +12 -0
  368. package/dist/types/utils/getL2TransactionHash.d.ts.map +1 -0
  369. package/dist/types/utils/getL2TransactionHashes.d.ts +11 -0
  370. package/dist/types/utils/getL2TransactionHashes.d.ts.map +1 -0
  371. package/dist/types/utils/getSourceHash.d.ts +25 -0
  372. package/dist/types/utils/getSourceHash.d.ts.map +1 -0
  373. package/dist/types/utils/getWithdrawalHashStorageSlot.d.ts +10 -0
  374. package/dist/types/utils/getWithdrawalHashStorageSlot.d.ts.map +1 -0
  375. package/dist/types/utils/getWithdrawals.d.ts +12 -0
  376. package/dist/types/utils/getWithdrawals.d.ts.map +1 -0
  377. package/dist/types/utils/opaqueDataToDepositData.d.ts +16 -0
  378. package/dist/types/utils/opaqueDataToDepositData.d.ts.map +1 -0
  379. package/dist/types/utils/parseDepositRequest.d.ts +11 -0
  380. package/dist/types/utils/parseDepositRequest.d.ts.map +1 -0
  381. package/dist/types/utils/parseInitWithdrawRequest.d.ts +11 -0
  382. package/dist/types/utils/parseInitWithdrawRequest.d.ts.map +1 -0
  383. package/dist/types/utils/poll.d.ts +15 -0
  384. package/dist/types/utils/poll.d.ts.map +1 -0
  385. package/dist/types/utils/promise/withCache.d.ts +41 -0
  386. package/dist/types/utils/promise/withCache.d.ts.map +1 -0
  387. package/dist/types/utils/wait.d.ts +2 -0
  388. package/dist/types/utils/wait.d.ts.map +1 -0
  389. package/package.json +113 -0
  390. package/src/mantle/abis.ts +3339 -0
  391. package/src/mantle/actions/buildProveWithdrawal.ts +150 -0
  392. package/src/mantle/actions/depositERC20.ts +103 -0
  393. package/src/mantle/actions/depositETH.ts +102 -0
  394. package/src/mantle/actions/depositMNT.ts +101 -0
  395. package/src/mantle/actions/estimateDepositERC20Gas.ts +113 -0
  396. package/src/mantle/actions/estimateDepositETHGas.ts +113 -0
  397. package/src/mantle/actions/estimateDepositMNTGas.ts +111 -0
  398. package/src/mantle/actions/estimateFinalizeWithdrawalGas.ts +102 -0
  399. package/src/mantle/actions/estimateInitiateERC20WithdrawalGas.ts +106 -0
  400. package/src/mantle/actions/estimateInitiateETHWithdrawalGas.ts +105 -0
  401. package/src/mantle/actions/estimateInitiateMNTWithdrawalGas.ts +106 -0
  402. package/src/mantle/actions/estimateProveWithdrawalGas.ts +114 -0
  403. package/src/mantle/actions/finalizeWithdrawal.ts +95 -0
  404. package/src/mantle/actions/getL2Output.ts +75 -0
  405. package/src/mantle/actions/getPortalVersion.ts +57 -0
  406. package/src/mantle/actions/getTimeToFinalize.ts +85 -0
  407. package/src/mantle/actions/getTimeToNextL2Output.ts +132 -0
  408. package/src/mantle/actions/getTimeToProve.ts +58 -0
  409. package/src/mantle/actions/getWithdrawalStatus.ts +225 -0
  410. package/src/mantle/actions/initiateERC20Withdrawal.ts +93 -0
  411. package/src/mantle/actions/initiateETHWithdrawal.ts +90 -0
  412. package/src/mantle/actions/initiateMNTWithdrawal.ts +91 -0
  413. package/src/mantle/actions/proveWithdrawal.ts +107 -0
  414. package/src/mantle/actions/waitForNextL2Output.ts +87 -0
  415. package/src/mantle/actions/waitToFinalize.ts +33 -0
  416. package/src/mantle/actions/waitToProve.ts +83 -0
  417. package/src/mantle/chainConfig.ts +9 -0
  418. package/src/mantle/chains/index.ts +2 -0
  419. package/src/mantle/chains/mantle.ts +51 -0
  420. package/src/mantle/chains/mantleSepoliaTestnet.ts +52 -0
  421. package/src/mantle/contracts.ts +14 -0
  422. package/src/mantle/decorators/publicL1.ts +182 -0
  423. package/src/mantle/decorators/publicL2.ts +96 -0
  424. package/src/mantle/decorators/walletL1.ts +67 -0
  425. package/src/mantle/decorators/walletL2.ts +55 -0
  426. package/src/mantle/errors/utils.ts +1 -0
  427. package/src/mantle/errors/withdrawal.ts +24 -0
  428. package/src/mantle/formatters.ts +64 -0
  429. package/src/mantle/index.ts +179 -0
  430. package/src/mantle/parsers.ts +97 -0
  431. package/src/mantle/serializers.ts +106 -0
  432. package/src/mantle/types/account.ts +25 -0
  433. package/src/mantle/types/block.ts +34 -0
  434. package/src/mantle/types/chain.ts +10 -0
  435. package/src/mantle/types/contract.ts +26 -0
  436. package/src/mantle/types/deposit.ts +40 -0
  437. package/src/mantle/types/l1Actions.ts +21 -0
  438. package/src/mantle/types/l2Actions.ts +6 -0
  439. package/src/mantle/types/transaction.ts +108 -0
  440. package/src/mantle/types/withdrawal.ts +45 -0
  441. package/src/mantle/utils/extractTransactionDepositedLogs.ts +33 -0
  442. package/src/mantle/utils/extractWithdrawalMessageLogs.ts +33 -0
  443. package/src/mantle/utils/getL2TransactionHash.ts +51 -0
  444. package/src/mantle/utils/getL2TransactionHashes.ts +21 -0
  445. package/src/mantle/utils/getSourceHash.ts +62 -0
  446. package/src/mantle/utils/getWithdrawalHashStorageSlot.ts +27 -0
  447. package/src/mantle/utils/getWithdrawals.ts +25 -0
  448. package/src/mantle/utils/opaqueDataToDepositData.ts +58 -0
  449. package/src/mantle/utils/parseDepositRequest.ts +67 -0
  450. package/src/mantle/utils/parseInitWithdrawRequest.ts +68 -0
  451. package/src/mantle/utils/poll.ts +45 -0
  452. package/src/mantle/utils/promise/withCache.ts +81 -0
  453. package/src/mantle/utils/wait.ts +3 -0
@@ -0,0 +1,33 @@
1
+ import type { Client, Transport } from "viem";
2
+ import type { Chain } from "viem";
3
+ import type { Account } from "viem";
4
+ import type { ErrorType } from "../errors/utils.js";
5
+ import { wait } from "../utils/wait.js";
6
+ import {
7
+ getTimeToFinalize,
8
+ type GetTimeToFinalizeErrorType,
9
+ type GetTimeToFinalizeParameters,
10
+ } from "./getTimeToFinalize.js";
11
+
12
+ export type WaitToFinalizeParameters<
13
+ chain extends Chain | undefined = Chain | undefined,
14
+ chainOverride extends Chain | undefined = Chain | undefined,
15
+ > = GetTimeToFinalizeParameters<chain, chainOverride>;
16
+ export type WaitToFinalizeReturnType = void;
17
+ export type WaitToFinalizeErrorType = GetTimeToFinalizeErrorType | ErrorType;
18
+
19
+ /**
20
+ * @param client - Client to use
21
+ * @param parameters - {@link WaitToFinalizeParameters}
22
+ */
23
+ export async function waitToFinalize<
24
+ chain extends Chain | undefined,
25
+ account extends Account | undefined,
26
+ chainOverride extends Chain | undefined = undefined,
27
+ >(
28
+ client: Client<Transport, chain, account>,
29
+ parameters: WaitToFinalizeParameters<chain, chainOverride>,
30
+ ): Promise<WaitToFinalizeReturnType> {
31
+ const { seconds } = await getTimeToFinalize(client, parameters);
32
+ await wait(seconds * 1000);
33
+ }
@@ -0,0 +1,83 @@
1
+ import type {
2
+ Account,
3
+ Chain,
4
+ Client,
5
+ DeriveChain,
6
+ GetChainParameter,
7
+ TransactionReceipt,
8
+ Transport,
9
+ } from "viem";
10
+ import type { OneOf } from "viem";
11
+ import type { ErrorType } from "../errors/utils.js";
12
+ import { ReceiptContainsNoWithdrawalsError } from "../errors/withdrawal.js";
13
+ import type { GetContractAddressParameter } from "../types/contract.js";
14
+ import type { Withdrawal } from "../types/withdrawal.js";
15
+ import {
16
+ getWithdrawals,
17
+ type GetWithdrawalsErrorType,
18
+ } from "../utils/getWithdrawals.js";
19
+ import {
20
+ waitForNextL2Output,
21
+ type WaitForNextL2OutputErrorType,
22
+ type WaitForNextL2OutputParameters,
23
+ type WaitForNextL2OutputReturnType,
24
+ } from "./waitForNextL2Output.js";
25
+
26
+ export type WaitToProveParameters<
27
+ chain extends Chain | undefined = Chain | undefined,
28
+ chainOverride extends Chain | undefined = Chain | undefined,
29
+ _derivedChain extends Chain | undefined = DeriveChain<chain, chainOverride>,
30
+ > = GetChainParameter<chain, chainOverride> &
31
+ OneOf<
32
+ | GetContractAddressParameter<_derivedChain, "l2OutputOracle">
33
+ | GetContractAddressParameter<_derivedChain, "portal">
34
+ > & {
35
+ receipt: TransactionReceipt;
36
+ /**
37
+ * Polling frequency (in ms). Defaults to Client's pollingInterval config.
38
+ * @default client.pollingInterval
39
+ */
40
+ pollingInterval?: number | undefined;
41
+ };
42
+ export type WaitToProveReturnType = {
43
+ output: WaitForNextL2OutputReturnType;
44
+ withdrawal: Withdrawal;
45
+ };
46
+
47
+ export type WaitToProveErrorType =
48
+ | GetWithdrawalsErrorType
49
+ | WaitForNextL2OutputErrorType
50
+ | ErrorType;
51
+
52
+ /**
53
+ * @param client - Client to use
54
+ * @param parameters - {@link WaitToProveParameters}
55
+ * @returns The L2 output and withdrawal message. {@link WaitToProveReturnType}
56
+ */
57
+ export async function waitToProve<
58
+ chain extends Chain | undefined,
59
+ account extends Account | undefined,
60
+ chainOverride extends Chain | undefined = undefined,
61
+ >(
62
+ client: Client<Transport, chain, account>,
63
+ parameters: WaitToProveParameters<chain, chainOverride>,
64
+ ): Promise<WaitToProveReturnType> {
65
+ const { receipt } = parameters;
66
+
67
+ const [withdrawal] = getWithdrawals(receipt);
68
+
69
+ if (!withdrawal) {
70
+ throw new ReceiptContainsNoWithdrawalsError({
71
+ hash: receipt.transactionHash,
72
+ });
73
+ }
74
+
75
+ const output = await waitForNextL2Output(client, {
76
+ ...parameters,
77
+ l2BlockNumber: receipt.blockNumber,
78
+ } as WaitForNextL2OutputParameters);
79
+ return {
80
+ output,
81
+ withdrawal,
82
+ };
83
+ }
@@ -0,0 +1,9 @@
1
+ import { contracts } from "./contracts.js";
2
+ import { formatters } from "./formatters.js";
3
+ import { serializers } from "./serializers.js";
4
+
5
+ export const chainConfig = {
6
+ contracts,
7
+ formatters,
8
+ serializers,
9
+ } as const;
@@ -0,0 +1,2 @@
1
+ export { mantle } from "./mantle.js";
2
+ export { mantleSepoliaTestnet } from "./mantleSepoliaTestnet.js";
@@ -0,0 +1,51 @@
1
+ import { defineChain } from "viem";
2
+ import { chainConfig } from "viem/op-stack";
3
+
4
+ const sourceId = 1; // mainnet
5
+
6
+ export const mantle = /*#__PURE__*/ defineChain({
7
+ ...chainConfig,
8
+ id: 5000,
9
+ name: "Mantle",
10
+ nativeCurrency: {
11
+ decimals: 18,
12
+ name: "MNT",
13
+ symbol: "MNT",
14
+ },
15
+ rpcUrls: {
16
+ default: { http: ["https://rpc.mantle.xyz"] },
17
+ },
18
+ blockExplorers: {
19
+ default: {
20
+ name: "Mantle Explorer",
21
+ url: "https://mantlescan.xyz/",
22
+ apiUrl: "https://api.mantlescan.xyz/api",
23
+ },
24
+ },
25
+ contracts: {
26
+ ...chainConfig.contracts,
27
+ l2Erc721Bridge: undefined,
28
+ l2OutputOracle: {
29
+ [sourceId]: {
30
+ address: "0x31d543e7BE1dA6eFDc2206Ef7822879045B9f481",
31
+ },
32
+ },
33
+ portal: {
34
+ [sourceId]: {
35
+ address: "0xc54cb22944F2bE476E02dECfCD7e3E7d3e15A8Fb",
36
+ blockCreated: 19434938,
37
+ },
38
+ },
39
+ l1StandardBridge: {
40
+ [sourceId]: {
41
+ address: "0x95fC37A27a2f68e3A647CDc081F0A89bb47c3012",
42
+ blockCreated: 17577718,
43
+ },
44
+ },
45
+ multicall3: {
46
+ address: "0xcA11bde05977b3631167028862bE2a173976CA11",
47
+ blockCreated: 304717,
48
+ },
49
+ },
50
+ sourceId,
51
+ });
@@ -0,0 +1,52 @@
1
+ import { defineChain } from "viem";
2
+ import { chainConfig } from "viem/op-stack";
3
+
4
+ const sourceId = 11_155_111; // sepolia
5
+
6
+ export const mantleSepoliaTestnet = /*#__PURE__*/ defineChain({
7
+ ...chainConfig,
8
+ id: 5003,
9
+ name: "Mantle Sepolia Testnet",
10
+ nativeCurrency: {
11
+ decimals: 18,
12
+ name: "MNT",
13
+ symbol: "MNT",
14
+ },
15
+ rpcUrls: {
16
+ default: { http: ["https://rpc.sepolia.mantle.xyz"] },
17
+ },
18
+ blockExplorers: {
19
+ default: {
20
+ name: "Mantle Testnet Explorer",
21
+ url: "https://explorer.sepolia.mantle.xyz/",
22
+ apiUrl: "https://explorer.sepolia.mantle.xyz/api",
23
+ },
24
+ },
25
+ contracts: {
26
+ ...chainConfig.contracts,
27
+ l2Erc721Bridge: undefined,
28
+ l2OutputOracle: {
29
+ [sourceId]: {
30
+ address: "0x4121dc8e48Bc6196795eb4867772A5e259fecE07",
31
+ },
32
+ },
33
+ portal: {
34
+ [sourceId]: {
35
+ address: "0xB3db4bd5bc225930eD674494F9A4F6a11B8EFBc8",
36
+ blockCreated: 4858030,
37
+ },
38
+ },
39
+ l1StandardBridge: {
40
+ [sourceId]: {
41
+ address: "0x21F308067241B2028503c07bd7cB3751FFab0Fb2",
42
+ blockCreated: 4852137,
43
+ },
44
+ },
45
+ multicall3: {
46
+ address: "0xcA11bde05977b3631167028862bE2a173976CA11",
47
+ blockCreated: 4584012,
48
+ },
49
+ },
50
+ testnet: true,
51
+ sourceId,
52
+ });
@@ -0,0 +1,14 @@
1
+ import type { Chain } from "viem";
2
+
3
+ export const contracts = {
4
+ gasPriceOracle: { address: "0x420000000000000000000000000000000000000F" },
5
+ l1Block: { address: "0x4200000000000000000000000000000000000015" },
6
+ l2CrossDomainMessenger: {
7
+ address: "0x4200000000000000000000000000000000000007",
8
+ },
9
+ l2Erc721Bridge: { address: "0x4200000000000000000000000000000000000014" },
10
+ l2StandardBridge: { address: "0x4200000000000000000000000000000000000010" },
11
+ l2ToL1MessagePasser: {
12
+ address: "0x4200000000000000000000000000000000000016",
13
+ },
14
+ } as const satisfies Chain["contracts"];
@@ -0,0 +1,182 @@
1
+ import type { Client, Transport } from "viem";
2
+ import type { Chain } from "viem";
3
+ import type { Account } from "viem";
4
+
5
+ import {
6
+ estimateDepositETHGas,
7
+ type EstimateDepositETHGasParameters,
8
+ type EstimateDepositETHGasReturnType,
9
+ } from "../actions/estimateDepositETHGas.js";
10
+ import {
11
+ estimateDepositMNTGas,
12
+ type EstimateDepositMNTGasParameters,
13
+ type EstimateDepositMNTGasReturnType,
14
+ } from "../actions/estimateDepositMNTGas.js";
15
+ import {
16
+ estimateFinalizeWithdrawalGas,
17
+ type EstimateFinalizeWithdrawalGasParameters,
18
+ type EstimateFinalizeWithdrawalGasReturnType,
19
+ } from "../actions/estimateFinalizeWithdrawalGas.js";
20
+ import {
21
+ estimateProveWithdrawalGas,
22
+ type EstimateProveWithdrawalGasParameters,
23
+ type EstimateProveWithdrawalGasReturnType,
24
+ } from "../actions/estimateProveWithdrawalGas.js";
25
+ import {
26
+ getL2Output,
27
+ type GetL2OutputParameters,
28
+ type GetL2OutputReturnType,
29
+ } from "../actions/getL2Output.js";
30
+ import {
31
+ getPortalVersion,
32
+ type GetPortalVersionParameters,
33
+ type GetPortalVersionReturnType,
34
+ } from "../actions/getPortalVersion.js";
35
+ import {
36
+ getTimeToFinalize,
37
+ type GetTimeToFinalizeParameters,
38
+ type GetTimeToFinalizeReturnType,
39
+ } from "../actions/getTimeToFinalize.js";
40
+ import {
41
+ getTimeToNextL2Output,
42
+ type GetTimeToNextL2OutputParameters,
43
+ type GetTimeToNextL2OutputReturnType,
44
+ } from "../actions/getTimeToNextL2Output.js";
45
+ import {
46
+ getTimeToProve,
47
+ type GetTimeToProveParameters,
48
+ type GetTimeToProveReturnType,
49
+ } from "../actions/getTimeToProve.js";
50
+ import {
51
+ getWithdrawalStatus,
52
+ type GetWithdrawalStatusParameters,
53
+ type GetWithdrawalStatusReturnType,
54
+ } from "../actions/getWithdrawalStatus.js";
55
+ import {
56
+ waitForNextL2Output,
57
+ type WaitForNextL2OutputParameters,
58
+ type WaitForNextL2OutputReturnType,
59
+ } from "../actions/waitForNextL2Output.js";
60
+ import {
61
+ waitToFinalize,
62
+ type WaitToFinalizeParameters,
63
+ type WaitToFinalizeReturnType,
64
+ } from "../actions/waitToFinalize.js";
65
+ import {
66
+ waitToProve,
67
+ type WaitToProveParameters,
68
+ type WaitToProveReturnType,
69
+ } from "../actions/waitToProve.js";
70
+
71
+ import {
72
+ estimateDepositERC20Gas,
73
+ type EstimateDepositERC20GasParameters,
74
+ type EstimateDepositERC20GasReturnType,
75
+ } from "../actions/estimateDepositERC20Gas.js";
76
+
77
+ export type PublicActionsL1<
78
+ chain extends Chain | undefined = Chain | undefined,
79
+ account extends Account | undefined = Account | undefined,
80
+ > = {
81
+ estimateProveWithdrawalGas: <
82
+ chainOverride extends Chain | undefined = undefined,
83
+ >(
84
+ parameters: EstimateProveWithdrawalGasParameters<
85
+ chain,
86
+ account,
87
+ chainOverride
88
+ >,
89
+ ) => Promise<EstimateProveWithdrawalGasReturnType>;
90
+
91
+ estimateFinalizeWithdrawalGas: <
92
+ chainOverride extends Chain | undefined = undefined,
93
+ >(
94
+ parameters: EstimateFinalizeWithdrawalGasParameters<
95
+ chain,
96
+ account,
97
+ chainOverride
98
+ >,
99
+ ) => Promise<EstimateFinalizeWithdrawalGasReturnType>;
100
+
101
+ getL2Output: <chainOverride extends Chain | undefined = undefined>(
102
+ parameters: GetL2OutputParameters<chain, chainOverride>,
103
+ ) => Promise<GetL2OutputReturnType>;
104
+
105
+ getPortalVersion: <chainOverride extends Chain | undefined = undefined>(
106
+ parameters: GetPortalVersionParameters<chain, chainOverride>,
107
+ ) => Promise<GetPortalVersionReturnType>;
108
+
109
+ getTimeToFinalize: <chainOverride extends Chain | undefined = undefined>(
110
+ parameters: GetTimeToFinalizeParameters<chain, chainOverride>,
111
+ ) => Promise<GetTimeToFinalizeReturnType>;
112
+
113
+ getTimeToNextL2Output: <chainOverride extends Chain | undefined = undefined>(
114
+ parameters: GetTimeToNextL2OutputParameters<chain, chainOverride>,
115
+ ) => Promise<GetTimeToNextL2OutputReturnType>;
116
+
117
+ getTimeToProve: <chainOverride extends Chain | undefined = undefined>(
118
+ parameters: GetTimeToProveParameters<chain, chainOverride>,
119
+ ) => Promise<GetTimeToProveReturnType>;
120
+
121
+ getWithdrawalStatus: <chainOverride extends Chain | undefined = undefined>(
122
+ parameters: GetWithdrawalStatusParameters<chain, chainOverride>,
123
+ ) => Promise<GetWithdrawalStatusReturnType>;
124
+
125
+ waitForNextL2Output: <chainOverride extends Chain | undefined = undefined>(
126
+ parameters: WaitForNextL2OutputParameters<chain, chainOverride>,
127
+ ) => Promise<WaitForNextL2OutputReturnType>;
128
+
129
+ waitToFinalize: <chainOverride extends Chain | undefined = undefined>(
130
+ parameters: WaitToFinalizeParameters<chain, chainOverride>,
131
+ ) => Promise<WaitToFinalizeReturnType>;
132
+
133
+ waitToProve: <chainOverride extends Chain | undefined = undefined>(
134
+ parameters: WaitToProveParameters<chain, chainOverride>,
135
+ ) => Promise<WaitToProveReturnType>;
136
+ estimateDepositMNTGas: <chainOverride extends Chain | undefined = undefined>(
137
+ parameters: EstimateDepositMNTGasParameters<chain, account, chainOverride>,
138
+ ) => Promise<EstimateDepositMNTGasReturnType>;
139
+
140
+ estimateDepositETHGas: <chainOverride extends Chain | undefined = undefined>(
141
+ parameters: EstimateDepositETHGasParameters<chain, account, chainOverride>,
142
+ ) => Promise<EstimateDepositETHGasReturnType>;
143
+
144
+ estimateDepositERC20Gas: <
145
+ chainOverride extends Chain | undefined = undefined,
146
+ >(
147
+ parameters: EstimateDepositERC20GasParameters<
148
+ chain,
149
+ account,
150
+ chainOverride
151
+ >,
152
+ ) => Promise<EstimateDepositERC20GasReturnType>;
153
+ };
154
+
155
+ export function publicActionsL1() {
156
+ return <
157
+ transport extends Transport,
158
+ chain extends Chain | undefined = Chain | undefined,
159
+ account extends Account | undefined = Account | undefined,
160
+ >(
161
+ client: Client<transport, chain, account>,
162
+ ): PublicActionsL1<chain, account> => {
163
+ return {
164
+ estimateFinalizeWithdrawalGas: (args) =>
165
+ estimateFinalizeWithdrawalGas(client, args),
166
+ estimateProveWithdrawalGas: (args) =>
167
+ estimateProveWithdrawalGas(client, args),
168
+ getL2Output: (args) => getL2Output(client, args),
169
+ getPortalVersion: (args) => getPortalVersion(client, args),
170
+ getTimeToFinalize: (args) => getTimeToFinalize(client, args),
171
+ getTimeToNextL2Output: (args) => getTimeToNextL2Output(client, args),
172
+ getTimeToProve: (args) => getTimeToProve(client, args),
173
+ getWithdrawalStatus: (args) => getWithdrawalStatus(client, args),
174
+ waitForNextL2Output: (args) => waitForNextL2Output(client, args),
175
+ waitToFinalize: (args) => waitToFinalize(client, args),
176
+ waitToProve: (args) => waitToProve(client, args),
177
+ estimateDepositMNTGas: (args) => estimateDepositMNTGas(client, args),
178
+ estimateDepositETHGas: (args) => estimateDepositETHGas(client, args),
179
+ estimateDepositERC20Gas: (args) => estimateDepositERC20Gas(client, args),
180
+ };
181
+ };
182
+ }
@@ -0,0 +1,96 @@
1
+ import type { Address } from "viem";
2
+ import type { Client, Transport } from "viem";
3
+ import type { Chain } from "viem";
4
+ import type { Account } from "viem";
5
+ import {
6
+ buildProveWithdrawal,
7
+ type BuildProveWithdrawalParameters,
8
+ type BuildProveWithdrawalReturnType,
9
+ } from "../actions/buildProveWithdrawal.js";
10
+ import {
11
+ estimateInitiateERC20Withdrawal,
12
+ type EstimateInitiateERC20WithdrawalGasReturnType,
13
+ type EstimateInitiateWithdrawalERC20GasParameters,
14
+ } from "../actions/estimateInitiateERC20WithdrawalGas.js";
15
+ import {
16
+ estimateInitiateETHWithdrawalGas,
17
+ type EstimateInitiateETHWithdrawalGasParameters,
18
+ type EstimateInitiateETHWithdrawalGasReturnType,
19
+ } from "../actions/estimateInitiateETHWithdrawalGas.js";
20
+ import {
21
+ estimateInitiateMNTWithdrawalGas,
22
+ type EstimateInitiateMNTWithdrawalGasParameters,
23
+ type EstimateInitiateMNTWithdrawalGasReturnType,
24
+ } from "../actions/estimateInitiateMNTWithdrawalGas.js";
25
+
26
+ export type PublicActionsL2<
27
+ chain extends Chain | undefined = Chain | undefined,
28
+ account extends Account | undefined = Account | undefined,
29
+ > = {
30
+ buildProveWithdrawal: <
31
+ chainOverride extends Chain | undefined = undefined,
32
+ accountOverride extends Account | Address | undefined = undefined,
33
+ >(
34
+ parameters: BuildProveWithdrawalParameters<
35
+ chain,
36
+ account,
37
+ chainOverride,
38
+ accountOverride
39
+ >,
40
+ ) => Promise<
41
+ BuildProveWithdrawalReturnType<
42
+ chain,
43
+ account,
44
+ chainOverride,
45
+ accountOverride
46
+ >
47
+ >;
48
+
49
+ estimateInitiateMNTWithdrawalGas: <
50
+ chainOverride extends Chain | undefined = undefined,
51
+ >(
52
+ parameters: EstimateInitiateMNTWithdrawalGasParameters<
53
+ chain,
54
+ account,
55
+ chainOverride
56
+ >,
57
+ ) => Promise<EstimateInitiateMNTWithdrawalGasReturnType>;
58
+ estimateInitiateETHWithdrawalGas: <
59
+ chainOverride extends Chain | undefined = undefined,
60
+ >(
61
+ parameters: EstimateInitiateETHWithdrawalGasParameters<
62
+ chain,
63
+ account,
64
+ chainOverride
65
+ >,
66
+ ) => Promise<EstimateInitiateETHWithdrawalGasReturnType>;
67
+ estimateInitiateERC20Withdrawal: <
68
+ chainOverride extends Chain | undefined = undefined,
69
+ >(
70
+ parameters: EstimateInitiateWithdrawalERC20GasParameters<
71
+ chain,
72
+ account,
73
+ chainOverride
74
+ >,
75
+ ) => Promise<EstimateInitiateERC20WithdrawalGasReturnType>;
76
+ };
77
+
78
+ export function publicActionsL2() {
79
+ return <
80
+ transport extends Transport,
81
+ chain extends Chain | undefined = Chain | undefined,
82
+ account extends Account | undefined = Account | undefined,
83
+ >(
84
+ client: Client<transport, chain, account>,
85
+ ): PublicActionsL2<chain, account> => {
86
+ return {
87
+ buildProveWithdrawal: (args) => buildProveWithdrawal(client, args),
88
+ estimateInitiateMNTWithdrawalGas: (args) =>
89
+ estimateInitiateMNTWithdrawalGas(client, args),
90
+ estimateInitiateETHWithdrawalGas: (args) =>
91
+ estimateInitiateETHWithdrawalGas(client, args),
92
+ estimateInitiateERC20Withdrawal: (args) =>
93
+ estimateInitiateERC20Withdrawal(client, args),
94
+ };
95
+ };
96
+ }
@@ -0,0 +1,67 @@
1
+ import type { Client, Transport } from "viem";
2
+ import type { Chain } from "viem";
3
+ import type { Account } from "viem";
4
+ import {
5
+ depositERC20,
6
+ type DepositERC20Parameters,
7
+ type DepositERC20ReturnType,
8
+ } from "../actions/depositERC20.js";
9
+ import {
10
+ depositETH,
11
+ type DepositETHParameters,
12
+ type DepositETHReturnType,
13
+ } from "../actions/depositETH.js";
14
+ import {
15
+ depositMNT,
16
+ type DepositMNTParameters,
17
+ type DepositMNTReturnType,
18
+ } from "../actions/depositMNT.js";
19
+ import {
20
+ finalizeWithdrawal,
21
+ type FinalizeWithdrawalParameters,
22
+ type FinalizeWithdrawalReturnType,
23
+ } from "../actions/finalizeWithdrawal.js";
24
+ import {
25
+ proveWithdrawal,
26
+ type ProveWithdrawalParameters,
27
+ type ProveWithdrawalReturnType,
28
+ } from "../actions/proveWithdrawal.js";
29
+
30
+ export type WalletActionsL1<
31
+ chain extends Chain | undefined = Chain | undefined,
32
+ account extends Account | undefined = Account | undefined,
33
+ > = {
34
+ depositMNT: <chainOverride extends Chain | undefined = Chain | undefined>(
35
+ args: DepositMNTParameters<chain, account, chainOverride>,
36
+ ) => Promise<DepositMNTReturnType>;
37
+ depositERC20: <chainOverride extends Chain | undefined = Chain | undefined>(
38
+ args: DepositERC20Parameters<chain, account, chainOverride>,
39
+ ) => Promise<DepositERC20ReturnType>;
40
+ depositETH: <chainOverride extends Chain | undefined = Chain | undefined>(
41
+ args: DepositETHParameters<chain, account, chainOverride>,
42
+ ) => Promise<DepositETHReturnType>;
43
+ finalizeWithdrawal: <chainOverride extends Chain | undefined = undefined>(
44
+ parameters: FinalizeWithdrawalParameters<chain, account, chainOverride>,
45
+ ) => Promise<FinalizeWithdrawalReturnType>;
46
+ proveWithdrawal: <chainOverride extends Chain | undefined = undefined>(
47
+ parameters: ProveWithdrawalParameters<chain, account, chainOverride>,
48
+ ) => Promise<ProveWithdrawalReturnType>;
49
+ };
50
+
51
+ export function walletActionsL1() {
52
+ return <
53
+ transport extends Transport,
54
+ chain extends Chain | undefined = Chain | undefined,
55
+ account extends Account | undefined = Account | undefined,
56
+ >(
57
+ client: Client<transport, chain, account>,
58
+ ): WalletActionsL1<chain, account> => {
59
+ return {
60
+ depositMNT: (args) => depositMNT(client, args),
61
+ depositERC20: (args) => depositERC20(client, args),
62
+ depositETH: (args) => depositETH(client, args),
63
+ finalizeWithdrawal: (args) => finalizeWithdrawal(client, args),
64
+ proveWithdrawal: (args) => proveWithdrawal(client, args),
65
+ };
66
+ };
67
+ }
@@ -0,0 +1,55 @@
1
+ import type { Client, Transport } from "viem";
2
+ import type { Chain } from "viem";
3
+ import type { Account } from "viem";
4
+ import {
5
+ initiateERC20Withdrawal,
6
+ type InitiateERC20WithdrawalParameters,
7
+ type InitiateERC20WithdrawalReturnType,
8
+ } from "../actions/initiateERC20Withdrawal.js";
9
+ import {
10
+ initiateETHWithdrawal,
11
+ type InitiateETHWithdrawalParameters,
12
+ type InitiateETHWithdrawalReturnType,
13
+ } from "../actions/initiateETHWithdrawal.js";
14
+ import {
15
+ initiateMNTWithdrawal,
16
+ type InitiateMNTWithdrawalParameters,
17
+ type InitiateMNTWithdrawalReturnType,
18
+ } from "../actions/initiateMNTWithdrawal.js";
19
+
20
+ export type WalletActionsL2<
21
+ chain extends Chain | undefined = Chain | undefined,
22
+ account extends Account | undefined = Account | undefined,
23
+ > = {
24
+ initiateMNTWithdrawal: <chainOverride extends Chain | undefined = undefined>(
25
+ parameters: InitiateMNTWithdrawalParameters<chain, account, chainOverride>,
26
+ ) => Promise<InitiateMNTWithdrawalReturnType>;
27
+ initiateETHWithdrawal: <chainOverride extends Chain | undefined = undefined>(
28
+ parameters: InitiateETHWithdrawalParameters<chain, account, chainOverride>,
29
+ ) => Promise<InitiateETHWithdrawalReturnType>;
30
+ initiateERC20Withdrawal: <
31
+ chainOverride extends Chain | undefined = undefined,
32
+ >(
33
+ parameters: InitiateERC20WithdrawalParameters<
34
+ chain,
35
+ account,
36
+ chainOverride
37
+ >,
38
+ ) => Promise<InitiateERC20WithdrawalReturnType>;
39
+ };
40
+
41
+ export function walletActionsL2() {
42
+ return <
43
+ transport extends Transport,
44
+ chain extends Chain | undefined = Chain | undefined,
45
+ account extends Account | undefined = Account | undefined,
46
+ >(
47
+ client: Client<transport, chain, account>,
48
+ ): WalletActionsL2<chain, account> => {
49
+ return {
50
+ initiateMNTWithdrawal: (args) => initiateMNTWithdrawal(client, args),
51
+ initiateETHWithdrawal: (args) => initiateETHWithdrawal(client, args),
52
+ initiateERC20Withdrawal: (args) => initiateERC20Withdrawal(client, args),
53
+ };
54
+ };
55
+ }
@@ -0,0 +1 @@
1
+ export type ErrorType<name extends string = "Error"> = Error & { name: name };
@@ -0,0 +1,24 @@
1
+ import { BaseError } from "viem";
2
+ import type { Hex } from "viem";
3
+
4
+ export type GameNotFoundErrorType = GameNotFoundError & {
5
+ name: "GameNotFoundError";
6
+ };
7
+ export class GameNotFoundError extends BaseError {
8
+ constructor() {
9
+ super("Dispute game not found.", { name: "GameNotFoundError" });
10
+ }
11
+ }
12
+
13
+ export type ReceiptContainsNoWithdrawalsErrorType =
14
+ ReceiptContainsNoWithdrawalsError & {
15
+ name: "ReceiptContainsNoWithdrawalsError";
16
+ };
17
+ export class ReceiptContainsNoWithdrawalsError extends BaseError {
18
+ constructor({ hash }: { hash: Hex }) {
19
+ super(
20
+ `The provided transaction receipt with hash "${hash}" contains no withdrawals.`,
21
+ { name: "ReceiptContainsNoWithdrawalsError" },
22
+ );
23
+ }
24
+ }