viem 2.8.17 → 2.9.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 (231) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/_cjs/chains/definitions/optimismSepolia.js +5 -0
  3. package/_cjs/chains/definitions/optimismSepolia.js.map +1 -1
  4. package/_cjs/chains/opStack/abis.js +1070 -1
  5. package/_cjs/chains/opStack/abis.js.map +1 -1
  6. package/_cjs/chains/opStack/actions/buildProveWithdrawal.js +3 -3
  7. package/_cjs/chains/opStack/actions/buildProveWithdrawal.js.map +1 -1
  8. package/_cjs/chains/opStack/actions/getGame.js +20 -0
  9. package/_cjs/chains/opStack/actions/getGame.js.map +1 -0
  10. package/_cjs/chains/opStack/actions/getGames.js +56 -0
  11. package/_cjs/chains/opStack/actions/getGames.js.map +1 -0
  12. package/_cjs/chains/opStack/actions/getL2Output.js +12 -0
  13. package/_cjs/chains/opStack/actions/getL2Output.js.map +1 -1
  14. package/_cjs/chains/opStack/actions/getPortalVersion.js +25 -0
  15. package/_cjs/chains/opStack/actions/getPortalVersion.js.map +1 -0
  16. package/_cjs/chains/opStack/actions/getTimeToFinalize.js +52 -26
  17. package/_cjs/chains/opStack/actions/getTimeToFinalize.js.map +1 -1
  18. package/_cjs/chains/opStack/actions/getTimeToNextGame.js +45 -0
  19. package/_cjs/chains/opStack/actions/getTimeToNextGame.js.map +1 -0
  20. package/_cjs/chains/opStack/actions/getTimeToProve.js +9 -1
  21. package/_cjs/chains/opStack/actions/getTimeToProve.js.map +1 -1
  22. package/_cjs/chains/opStack/actions/getWithdrawalStatus.js +79 -28
  23. package/_cjs/chains/opStack/actions/getWithdrawalStatus.js.map +1 -1
  24. package/_cjs/chains/opStack/actions/proveWithdrawal.js +1 -1
  25. package/_cjs/chains/opStack/actions/proveWithdrawal.js.map +1 -1
  26. package/_cjs/chains/opStack/actions/waitForNextGame.js +35 -0
  27. package/_cjs/chains/opStack/actions/waitForNextGame.js.map +1 -0
  28. package/_cjs/chains/opStack/actions/waitForNextL2Output.js.map +1 -1
  29. package/_cjs/chains/opStack/actions/waitToProve.js +34 -3
  30. package/_cjs/chains/opStack/actions/waitToProve.js.map +1 -1
  31. package/_cjs/chains/opStack/decorators/publicL1.js +10 -0
  32. package/_cjs/chains/opStack/decorators/publicL1.js.map +1 -1
  33. package/_cjs/chains/opStack/errors/withdrawal.js +13 -1
  34. package/_cjs/chains/opStack/errors/withdrawal.js.map +1 -1
  35. package/_cjs/chains/opStack/index.js +11 -1
  36. package/_cjs/chains/opStack/index.js.map +1 -1
  37. package/_cjs/chains/zksync/actions/deployContract.js +26 -0
  38. package/_cjs/chains/zksync/actions/deployContract.js.map +1 -0
  39. package/_cjs/chains/zksync/constants/abis.js +427 -0
  40. package/_cjs/chains/zksync/constants/abis.js.map +1 -0
  41. package/_cjs/chains/zksync/constants/address.js +5 -0
  42. package/_cjs/chains/zksync/constants/address.js.map +1 -0
  43. package/_cjs/chains/zksync/constants/contract.js +6 -0
  44. package/_cjs/chains/zksync/constants/contract.js.map +1 -0
  45. package/_cjs/chains/zksync/constants/number.js +6 -0
  46. package/_cjs/chains/zksync/constants/number.js.map +1 -0
  47. package/_cjs/chains/zksync/decorators/eip712.js +2 -0
  48. package/_cjs/chains/zksync/decorators/eip712.js.map +1 -1
  49. package/_cjs/chains/zksync/errors/bytecode.js +41 -0
  50. package/_cjs/chains/zksync/errors/bytecode.js.map +1 -0
  51. package/_cjs/chains/zksync/formatters.js +5 -1
  52. package/_cjs/chains/zksync/formatters.js.map +1 -1
  53. package/_cjs/chains/zksync/index.js +3 -1
  54. package/_cjs/chains/zksync/index.js.map +1 -1
  55. package/_cjs/chains/zksync/types/contract.js +3 -0
  56. package/_cjs/chains/zksync/types/contract.js.map +1 -0
  57. package/_cjs/chains/zksync/utils/abi/encodeDeployData.js +68 -0
  58. package/_cjs/chains/zksync/utils/abi/encodeDeployData.js.map +1 -0
  59. package/_cjs/chains/zksync/utils/getEip712Domain.js +4 -2
  60. package/_cjs/chains/zksync/utils/getEip712Domain.js.map +1 -1
  61. package/_cjs/chains/zksync/utils/hashBytecode.js +36 -0
  62. package/_cjs/chains/zksync/utils/hashBytecode.js.map +1 -0
  63. package/_cjs/errors/version.js +1 -1
  64. package/_cjs/errors/version.js.map +1 -1
  65. package/_cjs/index.js.map +1 -1
  66. package/_esm/chains/definitions/optimismSepolia.js +5 -0
  67. package/_esm/chains/definitions/optimismSepolia.js.map +1 -1
  68. package/_esm/chains/opStack/abis.js +1069 -0
  69. package/_esm/chains/opStack/abis.js.map +1 -1
  70. package/_esm/chains/opStack/actions/buildProveWithdrawal.js +4 -3
  71. package/_esm/chains/opStack/actions/buildProveWithdrawal.js.map +1 -1
  72. package/_esm/chains/opStack/actions/getGame.js +40 -0
  73. package/_esm/chains/opStack/actions/getGame.js.map +1 -0
  74. package/_esm/chains/opStack/actions/getGames.js +75 -0
  75. package/_esm/chains/opStack/actions/getGames.js.map +1 -0
  76. package/_esm/chains/opStack/actions/getL2Output.js +12 -0
  77. package/_esm/chains/opStack/actions/getL2Output.js.map +1 -1
  78. package/_esm/chains/opStack/actions/getPortalVersion.js +48 -0
  79. package/_esm/chains/opStack/actions/getPortalVersion.js.map +1 -0
  80. package/_esm/chains/opStack/actions/getTimeToFinalize.js +54 -27
  81. package/_esm/chains/opStack/actions/getTimeToFinalize.js.map +1 -1
  82. package/_esm/chains/opStack/actions/getTimeToNextGame.js +71 -0
  83. package/_esm/chains/opStack/actions/getTimeToNextGame.js.map +1 -0
  84. package/_esm/chains/opStack/actions/getTimeToProve.js +10 -1
  85. package/_esm/chains/opStack/actions/getTimeToProve.js.map +1 -1
  86. package/_esm/chains/opStack/actions/getWithdrawalStatus.js +84 -32
  87. package/_esm/chains/opStack/actions/getWithdrawalStatus.js.map +1 -1
  88. package/_esm/chains/opStack/actions/proveWithdrawal.js +1 -1
  89. package/_esm/chains/opStack/actions/proveWithdrawal.js.map +1 -1
  90. package/_esm/chains/opStack/actions/waitForNextGame.js +61 -0
  91. package/_esm/chains/opStack/actions/waitForNextGame.js.map +1 -0
  92. package/_esm/chains/opStack/actions/waitForNextL2Output.js.map +1 -1
  93. package/_esm/chains/opStack/actions/waitToProve.js +35 -3
  94. package/_esm/chains/opStack/actions/waitToProve.js.map +1 -1
  95. package/_esm/chains/opStack/decorators/publicL1.js +10 -0
  96. package/_esm/chains/opStack/decorators/publicL1.js.map +1 -1
  97. package/_esm/chains/opStack/errors/withdrawal.js +11 -0
  98. package/_esm/chains/opStack/errors/withdrawal.js.map +1 -1
  99. package/_esm/chains/opStack/index.js +5 -0
  100. package/_esm/chains/opStack/index.js.map +1 -1
  101. package/_esm/chains/zksync/actions/deployContract.js +52 -0
  102. package/_esm/chains/zksync/actions/deployContract.js.map +1 -0
  103. package/_esm/chains/zksync/constants/abis.js +425 -0
  104. package/_esm/chains/zksync/constants/abis.js.map +1 -0
  105. package/_esm/chains/zksync/constants/address.js +2 -0
  106. package/_esm/chains/zksync/constants/address.js.map +1 -0
  107. package/_esm/chains/zksync/constants/contract.js +3 -0
  108. package/_esm/chains/zksync/constants/contract.js.map +1 -0
  109. package/_esm/chains/zksync/constants/number.js +3 -0
  110. package/_esm/chains/zksync/constants/number.js.map +1 -0
  111. package/_esm/chains/zksync/decorators/eip712.js +2 -0
  112. package/_esm/chains/zksync/decorators/eip712.js.map +1 -1
  113. package/_esm/chains/zksync/errors/bytecode.js +35 -0
  114. package/_esm/chains/zksync/errors/bytecode.js.map +1 -0
  115. package/_esm/chains/zksync/formatters.js +5 -1
  116. package/_esm/chains/zksync/formatters.js.map +1 -1
  117. package/_esm/chains/zksync/index.js +1 -0
  118. package/_esm/chains/zksync/index.js.map +1 -1
  119. package/_esm/chains/zksync/types/contract.js +2 -0
  120. package/_esm/chains/zksync/types/contract.js.map +1 -0
  121. package/_esm/chains/zksync/utils/abi/encodeDeployData.js +65 -0
  122. package/_esm/chains/zksync/utils/abi/encodeDeployData.js.map +1 -0
  123. package/_esm/chains/zksync/utils/getEip712Domain.js +4 -2
  124. package/_esm/chains/zksync/utils/getEip712Domain.js.map +1 -1
  125. package/_esm/chains/zksync/utils/hashBytecode.js +36 -0
  126. package/_esm/chains/zksync/utils/hashBytecode.js.map +1 -0
  127. package/_esm/errors/version.js +1 -1
  128. package/_esm/errors/version.js.map +1 -1
  129. package/_esm/index.js.map +1 -1
  130. package/_types/chains/definitions/optimismSepolia.d.ts +5 -0
  131. package/_types/chains/definitions/optimismSepolia.d.ts.map +1 -1
  132. package/_types/chains/opStack/abis.d.ts +824 -0
  133. package/_types/chains/opStack/abis.d.ts.map +1 -1
  134. package/_types/chains/opStack/actions/buildProveWithdrawal.d.ts +6 -2
  135. package/_types/chains/opStack/actions/buildProveWithdrawal.d.ts.map +1 -1
  136. package/_types/chains/opStack/actions/getGame.d.ts +57 -0
  137. package/_types/chains/opStack/actions/getGame.d.ts.map +1 -0
  138. package/_types/chains/opStack/actions/getGames.d.ts +48 -0
  139. package/_types/chains/opStack/actions/getGames.d.ts.map +1 -0
  140. package/_types/chains/opStack/actions/getL2Output.d.ts +8 -1
  141. package/_types/chains/opStack/actions/getL2Output.d.ts.map +1 -1
  142. package/_types/chains/opStack/actions/getPortalVersion.d.ts +46 -0
  143. package/_types/chains/opStack/actions/getPortalVersion.d.ts.map +1 -0
  144. package/_types/chains/opStack/actions/getTimeToFinalize.d.ts.map +1 -1
  145. package/_types/chains/opStack/actions/getTimeToNextGame.d.ts +61 -0
  146. package/_types/chains/opStack/actions/getTimeToNextGame.d.ts.map +1 -0
  147. package/_types/chains/opStack/actions/getTimeToProve.d.ts +6 -3
  148. package/_types/chains/opStack/actions/getTimeToProve.d.ts.map +1 -1
  149. package/_types/chains/opStack/actions/getWithdrawalStatus.d.ts +7 -1
  150. package/_types/chains/opStack/actions/getWithdrawalStatus.d.ts.map +1 -1
  151. package/_types/chains/opStack/actions/proveWithdrawal.d.ts +1 -1
  152. package/_types/chains/opStack/actions/proveWithdrawal.d.ts.map +1 -1
  153. package/_types/chains/opStack/actions/waitForNextGame.d.ts +60 -0
  154. package/_types/chains/opStack/actions/waitForNextGame.d.ts.map +1 -0
  155. package/_types/chains/opStack/actions/waitForNextL2Output.d.ts.map +1 -1
  156. package/_types/chains/opStack/actions/waitToProve.d.ts +10 -2
  157. package/_types/chains/opStack/actions/waitToProve.d.ts.map +1 -1
  158. package/_types/chains/opStack/decorators/publicL1.d.ts +129 -0
  159. package/_types/chains/opStack/decorators/publicL1.d.ts.map +1 -1
  160. package/_types/chains/opStack/errors/withdrawal.d.ts +7 -0
  161. package/_types/chains/opStack/errors/withdrawal.d.ts.map +1 -1
  162. package/_types/chains/opStack/index.d.ts +5 -0
  163. package/_types/chains/opStack/index.d.ts.map +1 -1
  164. package/_types/chains/opStack/types/chain.d.ts +1 -1
  165. package/_types/chains/opStack/types/chain.d.ts.map +1 -1
  166. package/_types/chains/opStack/types/withdrawal.d.ts +7 -0
  167. package/_types/chains/opStack/types/withdrawal.d.ts.map +1 -1
  168. package/_types/chains/zksync/actions/deployContract.d.ts +49 -0
  169. package/_types/chains/zksync/actions/deployContract.d.ts.map +1 -0
  170. package/_types/chains/zksync/constants/abis.d.ts +70 -0
  171. package/_types/chains/zksync/constants/abis.d.ts.map +1 -0
  172. package/_types/chains/zksync/constants/address.d.ts +2 -0
  173. package/_types/chains/zksync/constants/address.d.ts.map +1 -0
  174. package/_types/chains/zksync/constants/contract.d.ts +3 -0
  175. package/_types/chains/zksync/constants/contract.d.ts.map +1 -0
  176. package/_types/chains/zksync/constants/number.d.ts +2 -0
  177. package/_types/chains/zksync/constants/number.d.ts.map +1 -0
  178. package/_types/chains/zksync/decorators/eip712.d.ts +32 -0
  179. package/_types/chains/zksync/decorators/eip712.d.ts.map +1 -1
  180. package/_types/chains/zksync/errors/bytecode.d.ts +30 -0
  181. package/_types/chains/zksync/errors/bytecode.d.ts.map +1 -0
  182. package/_types/chains/zksync/formatters.d.ts.map +1 -1
  183. package/_types/chains/zksync/index.d.ts +1 -0
  184. package/_types/chains/zksync/index.d.ts.map +1 -1
  185. package/_types/chains/zksync/types/contract.d.ts +2 -0
  186. package/_types/chains/zksync/types/contract.d.ts.map +1 -0
  187. package/_types/chains/zksync/utils/abi/encodeDeployData.d.ts +13 -0
  188. package/_types/chains/zksync/utils/abi/encodeDeployData.d.ts.map +1 -0
  189. package/_types/chains/zksync/utils/getEip712Domain.d.ts.map +1 -1
  190. package/_types/chains/zksync/utils/hashBytecode.d.ts +3 -0
  191. package/_types/chains/zksync/utils/hashBytecode.d.ts.map +1 -0
  192. package/_types/errors/version.d.ts +1 -1
  193. package/_types/errors/version.d.ts.map +1 -1
  194. package/_types/index.d.ts +7 -3
  195. package/_types/index.d.ts.map +1 -1
  196. package/chains/definitions/optimismSepolia.ts +5 -0
  197. package/chains/opStack/abis.ts +1071 -0
  198. package/chains/opStack/actions/buildProveWithdrawal.ts +7 -6
  199. package/chains/opStack/actions/getGame.ts +99 -0
  200. package/chains/opStack/actions/getGames.ts +133 -0
  201. package/chains/opStack/actions/getL2Output.ts +44 -3
  202. package/chains/opStack/actions/getPortalVersion.ts +87 -0
  203. package/chains/opStack/actions/getTimeToFinalize.ts +64 -27
  204. package/chains/opStack/actions/getTimeToNextGame.ts +143 -0
  205. package/chains/opStack/actions/getTimeToProve.ts +43 -5
  206. package/chains/opStack/actions/getWithdrawalStatus.ts +130 -38
  207. package/chains/opStack/actions/proveWithdrawal.ts +3 -1
  208. package/chains/opStack/actions/waitForNextGame.ts +122 -0
  209. package/chains/opStack/actions/waitForNextL2Output.ts +5 -1
  210. package/chains/opStack/actions/waitToProve.ts +65 -7
  211. package/chains/opStack/decorators/publicL1.ts +164 -0
  212. package/chains/opStack/errors/withdrawal.ts +10 -0
  213. package/chains/opStack/index.ts +30 -0
  214. package/chains/opStack/types/chain.ts +4 -1
  215. package/chains/opStack/types/withdrawal.ts +8 -0
  216. package/chains/zksync/actions/deployContract.ts +100 -0
  217. package/chains/zksync/constants/abis.ts +424 -0
  218. package/chains/zksync/constants/address.ts +2 -0
  219. package/chains/zksync/constants/contract.ts +2 -0
  220. package/chains/zksync/constants/number.ts +3 -0
  221. package/chains/zksync/decorators/eip712.ts +47 -0
  222. package/chains/zksync/errors/bytecode.ts +46 -0
  223. package/chains/zksync/formatters.ts +7 -1
  224. package/chains/zksync/index.ts +6 -0
  225. package/chains/zksync/types/contract.ts +6 -0
  226. package/chains/zksync/utils/abi/encodeDeployData.ts +120 -0
  227. package/chains/zksync/utils/getEip712Domain.ts +4 -2
  228. package/chains/zksync/utils/hashBytecode.ts +48 -0
  229. package/errors/version.ts +1 -1
  230. package/index.ts +36 -1
  231. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTimeToNextGame.js","sourceRoot":"","sources":["../../../../chains/opStack/actions/getTimeToNextGame.ts"],"names":[],"mappings":"AAUA,OAAO,EAA0B,QAAQ,EAAE,MAAM,eAAe,CAAA;AAqChE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAKrC,MAAyC,EACzC,UAA6D;IAE7D,MAAM,EAAE,cAAc,GAAG,GAAG,EAAE,aAAa,EAAE,GAAG,UAAU,CAAA;IAE1D,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE;QACnC,GAAG,UAAU;QACb,aAAa,EAAE,SAAS;QACxB,KAAK,EAAE,EAAE;KACV,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,KAAK;SACjB,GAAG,CAAC,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE;QAC3C,OAAO,KAAK,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC;YAC/B,CAAC,CAAC,IAAI;YACN,CAAC,CAAC;gBACE,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,GAAG,SAAS;gBACtC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,aAAa,GAAG,aAAa;aAC/C,CAAA;IACP,CAAC,CAAC;SACD,MAAM,CAAC,OAAO,CAAC,CAAA;IAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CACvB,MAA6B,CAAC,MAAM,CACnC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EACjC,CAAC,CACF,GAAG,MAAM,CAAC,MAAM,CAClB,CAAA;IACD,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAC5B,MAA6B,CAAC,MAAM,CACnC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EACpC,CAAC,CACF,GAAG,MAAM,CAAC,MAAM,CAClB,CAAA;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IAC3B,MAAM,mBAAmB,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,IAAI,CAAA;IAE/D,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,CAAA;IAE/D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAEtB,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE;QACpB,6EAA6E;QAC7E,mEAAmE;QACnE,IAAI,GAAG,GAAG,mBAAmB;YAAE,OAAO,CAAC,CAAA;QAEvC,yFAAyF;QACzF,mEAAmE;QACnE,IAAI,UAAU,CAAC,aAAa,GAAG,aAAa;YAAE,OAAO,CAAC,CAAA;QAEtD,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC,CAAA;QAEtE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,mBAAmB,CAAC,GAAG,IAAI,CAAC,CAAA;QAC7D,MAAM,mBAAmB,GACvB,kBAAkB,GAAG,CAAC,OAAO,GAAG,kBAAkB,CAAC,CAAA;QACrD,OAAO,aAAa,GAAG,aAAa;YAClC,CAAC,CAAC,mBAAmB;YACrB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,kBAAkB;gBACpE,mBAAmB,CAAA;IAC3B,CAAC,CAAC,EAAE,CAAA;IAEJ,MAAM,SAAS,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;IAEhE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,CAAA;AACzC,CAAC"}
@@ -1,3 +1,5 @@
1
+ import { getPortalVersion, } from './getPortalVersion.js';
2
+ import { getTimeToNextGame, } from './getTimeToNextGame.js';
1
3
  import { getTimeToNextL2Output, } from './getTimeToNextL2Output.js';
2
4
  /**
3
5
  * Returns the time until the withdrawal transaction is ready to prove. Used for the [Withdrawal](/op-stack/guides/withdrawals) flow.
@@ -31,7 +33,14 @@ import { getTimeToNextL2Output, } from './getTimeToNextL2Output.js';
31
33
  */
32
34
  export async function getTimeToProve(client, parameters) {
33
35
  const { receipt } = parameters;
34
- return getTimeToNextL2Output(client, {
36
+ const portalVersion = await getPortalVersion(client, parameters);
37
+ // Legacy
38
+ if (portalVersion.major < 3)
39
+ return getTimeToNextL2Output(client, {
40
+ ...parameters,
41
+ l2BlockNumber: receipt.blockNumber,
42
+ });
43
+ return getTimeToNextGame(client, {
35
44
  ...parameters,
36
45
  l2BlockNumber: receipt.blockNumber,
37
46
  });
@@ -1 +1 @@
1
- {"version":3,"file":"getTimeToProve.js","sourceRoot":"","sources":["../../../../chains/opStack/actions/getTimeToProve.ts"],"names":[],"mappings":"AAWA,OAAO,EAIL,qBAAqB,GACtB,MAAM,4BAA4B,CAAA;AAoBnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAKlC,MAAyC,EACzC,UAA0D;IAE1D,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAA;IAE9B,OAAO,qBAAqB,CAAC,MAAM,EAAE;QACnC,GAAG,UAAU;QACb,aAAa,EAAE,OAAO,CAAC,WAAW;KACnC,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"getTimeToProve.js","sourceRoot":"","sources":["../../../../chains/opStack/actions/getTimeToProve.ts"],"names":[],"mappings":"AAYA,OAAO,EAGL,gBAAgB,GACjB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAIL,iBAAiB,GAClB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAIL,qBAAqB,GACtB,MAAM,4BAA4B,CAAA;AAkCnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAKlC,MAAyC,EACzC,UAA0D;IAE1D,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAA;IAE9B,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAC1C,MAAM,EACN,UAAwC,CACzC,CAAA;IAED,SAAS;IACT,IAAI,aAAa,CAAC,KAAK,GAAG,CAAC;QACzB,OAAO,qBAAqB,CAAC,MAAM,EAAE;YACnC,GAAG,UAAU;YACb,aAAa,EAAE,OAAO,CAAC,WAAW;SACA,CAAC,CAAA;IAEvC,OAAO,iBAAiB,CAAC,MAAM,EAAE;QAC/B,GAAG,UAAU;QACb,aAAa,EAAE,OAAO,CAAC,WAAW;KACJ,CAAC,CAAA;AACnC,CAAC"}
@@ -1,9 +1,11 @@
1
1
  import { readContract, } from '../../../actions/public/readContract.js';
2
2
  import { ContractFunctionRevertedError } from '../../../errors/contract.js';
3
- import { portalAbi } from '../abis.js';
3
+ import { portal2Abi, portalAbi } from '../abis.js';
4
4
  import { ReceiptContainsNoWithdrawalsError } from '../errors/withdrawal.js';
5
5
  import { getWithdrawals, } from '../utils/getWithdrawals.js';
6
- import { getL2Output } from './getL2Output.js';
6
+ import { getGame, } from './getGame.js';
7
+ import { getL2Output, } from './getL2Output.js';
8
+ import { getPortalVersion, } from './getPortalVersion.js';
7
9
  import { getTimeToFinalize, } from './getTimeToFinalize.js';
8
10
  /**
9
11
  * Returns the current status of a withdrawal. Used for the [Withdrawal](/op-stack/guides/withdrawals) flow.
@@ -36,7 +38,8 @@ import { getTimeToFinalize, } from './getTimeToFinalize.js';
36
38
  * })
37
39
  */
38
40
  export async function getWithdrawalStatus(client, parameters) {
39
- const { chain = client.chain, receipt, targetChain } = parameters;
41
+ const { chain = client.chain, gameLimit = 100, receipt, targetChain: targetChain_, } = parameters;
42
+ const targetChain = targetChain_;
40
43
  const portalAddress = (() => {
41
44
  if (parameters.portalAddress)
42
45
  return parameters.portalAddress;
@@ -49,51 +52,100 @@ export async function getWithdrawalStatus(client, parameters) {
49
52
  throw new ReceiptContainsNoWithdrawalsError({
50
53
  hash: receipt.transactionHash,
51
54
  });
52
- const [outputResult, proveResult, finalizedResult, timeToFinalizeResult] = await Promise.allSettled([
53
- getL2Output(client, {
55
+ const portalVersion = await getPortalVersion(client, parameters);
56
+ // Legacy (Portal < v3)
57
+ if (portalVersion.major < 3) {
58
+ const [outputResult, proveResult, finalizedResult, timeToFinalizeResult] = await Promise.allSettled([
59
+ getL2Output(client, {
60
+ ...parameters,
61
+ l2BlockNumber: receipt.blockNumber,
62
+ }),
63
+ readContract(client, {
64
+ abi: portalAbi,
65
+ address: portalAddress,
66
+ functionName: 'provenWithdrawals',
67
+ args: [withdrawal.withdrawalHash],
68
+ }),
69
+ readContract(client, {
70
+ abi: portalAbi,
71
+ address: portalAddress,
72
+ functionName: 'finalizedWithdrawals',
73
+ args: [withdrawal.withdrawalHash],
74
+ }),
75
+ getTimeToFinalize(client, {
76
+ ...parameters,
77
+ withdrawalHash: withdrawal.withdrawalHash,
78
+ }),
79
+ ]);
80
+ // If the L2 Output is not processed yet (ie. the actions throws), this means
81
+ // that the withdrawal is not ready to prove.
82
+ if (outputResult.status === 'rejected') {
83
+ const error = outputResult.reason;
84
+ if (error.cause instanceof ContractFunctionRevertedError &&
85
+ error.cause.data?.args?.[0] ===
86
+ 'L2OutputOracle: cannot get output for a block that has not been proposed')
87
+ return 'waiting-to-prove';
88
+ throw error;
89
+ }
90
+ if (proveResult.status === 'rejected')
91
+ throw proveResult.reason;
92
+ if (finalizedResult.status === 'rejected')
93
+ throw finalizedResult.reason;
94
+ if (timeToFinalizeResult.status === 'rejected')
95
+ throw timeToFinalizeResult.reason;
96
+ const [_, proveTimestamp] = proveResult.value;
97
+ if (!proveTimestamp)
98
+ return 'ready-to-prove';
99
+ const finalized = finalizedResult.value;
100
+ if (finalized)
101
+ return 'finalized';
102
+ const { seconds } = timeToFinalizeResult.value;
103
+ return seconds > 0 ? 'waiting-to-finalize' : 'ready-to-finalize';
104
+ }
105
+ const [disputeGameResult, checkWithdrawalResult, finalizedResult] = await Promise.allSettled([
106
+ getGame(client, {
54
107
  ...parameters,
55
108
  l2BlockNumber: receipt.blockNumber,
109
+ limit: gameLimit,
56
110
  }),
57
111
  readContract(client, {
58
- abi: portalAbi,
112
+ abi: portal2Abi,
59
113
  address: portalAddress,
60
- functionName: 'provenWithdrawals',
114
+ functionName: 'checkWithdrawal',
61
115
  args: [withdrawal.withdrawalHash],
62
116
  }),
63
117
  readContract(client, {
64
- abi: portalAbi,
118
+ abi: portal2Abi,
65
119
  address: portalAddress,
66
120
  functionName: 'finalizedWithdrawals',
67
121
  args: [withdrawal.withdrawalHash],
68
122
  }),
69
- getTimeToFinalize(client, {
70
- ...parameters,
71
- withdrawalHash: withdrawal.withdrawalHash,
72
- }),
73
123
  ]);
74
- // If the L2 Output is not processed yet (ie. the actions throws), this means
75
- // that the withdrawal is not ready to prove.
76
- if (outputResult.status === 'rejected') {
77
- const error = outputResult.reason;
78
- if (error.cause instanceof ContractFunctionRevertedError &&
79
- error.cause.data?.args?.[0] ===
80
- 'L2OutputOracle: cannot get output for a block that has not been proposed')
124
+ if (finalizedResult.status === 'fulfilled' && finalizedResult.value)
125
+ return 'finalized';
126
+ if (disputeGameResult.status === 'rejected') {
127
+ const error = disputeGameResult.reason;
128
+ if (error.name === 'GameNotFoundError')
81
129
  return 'waiting-to-prove';
82
- throw error;
130
+ throw disputeGameResult.reason;
131
+ }
132
+ if (checkWithdrawalResult.status === 'rejected') {
133
+ const error = checkWithdrawalResult.reason;
134
+ if (error.cause instanceof ContractFunctionRevertedError) {
135
+ const errorMessage = error.cause.data?.args?.[0];
136
+ if (errorMessage === 'OptimismPortal: withdrawal has not been proven yet')
137
+ return 'ready-to-prove';
138
+ if (errorMessage ===
139
+ 'OptimismPortal: proven withdrawal has not matured yet' ||
140
+ errorMessage ===
141
+ 'OptimismPortal: output proposal has not been finalized yet' ||
142
+ errorMessage === 'OptimismPortal: output proposal in air-gap')
143
+ return 'waiting-to-finalize';
144
+ }
145
+ throw checkWithdrawalResult.reason;
83
146
  }
84
- if (proveResult.status === 'rejected')
85
- throw proveResult.reason;
86
147
  if (finalizedResult.status === 'rejected')
87
148
  throw finalizedResult.reason;
88
- if (timeToFinalizeResult.status === 'rejected')
89
- throw timeToFinalizeResult.reason;
90
- const [_, proveTimestamp] = proveResult.value;
91
- if (!proveTimestamp)
92
- return 'ready-to-prove';
93
- const finalized = finalizedResult.value;
94
- if (finalized)
95
- return 'finalized';
96
- const { seconds } = timeToFinalizeResult.value;
97
- return seconds > 0 ? 'waiting-to-finalize' : 'ready-to-finalize';
149
+ return 'ready-to-finalize';
98
150
  }
99
151
  //# sourceMappingURL=getWithdrawalStatus.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getWithdrawalStatus.js","sourceRoot":"","sources":["../../../../chains/opStack/actions/getWithdrawalStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,YAAY,GACb,MAAM,yCAAyC,CAAA;AAGhD,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAA;AAS3E,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,iCAAiC,EAAE,MAAM,yBAAyB,CAAA;AAE3E,OAAO,EAEL,cAAc,GACf,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAA6B,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACzE,OAAO,EAEL,iBAAiB,GAClB,MAAM,wBAAwB,CAAA;AAuB/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAKvC,MAAyC,EACzC,UAA+D;IAE/D,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,UAAU,CAAA;IAEjE,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE;QAC1B,IAAI,UAAU,CAAC,aAAa;YAAE,OAAO,UAAU,CAAC,aAAa,CAAA;QAC7D,IAAI,KAAK;YAAE,OAAO,WAAY,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAA;QACjE,OAAO,MAAM,CAAC,MAAM,CAAC,WAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;IAChE,CAAC,CAAC,EAAE,CAAA;IAEJ,MAAM,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IAE5C,IAAI,CAAC,UAAU;QACb,MAAM,IAAI,iCAAiC,CAAC;YAC1C,IAAI,EAAE,OAAO,CAAC,eAAe;SAC9B,CAAC,CAAA;IAEJ,MAAM,CAAC,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,oBAAoB,CAAC,GACtE,MAAM,OAAO,CAAC,UAAU,CAAC;QACvB,WAAW,CAAC,MAAM,EAAE;YAClB,GAAG,UAAU;YACb,aAAa,EAAE,OAAO,CAAC,WAAW;SACnC,CAAC;QACF,YAAY,CAAC,MAAM,EAAE;YACnB,GAAG,EAAE,SAAS;YACd,OAAO,EAAE,aAAa;YACtB,YAAY,EAAE,mBAAmB;YACjC,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;SAClC,CAAC;QACF,YAAY,CAAC,MAAM,EAAE;YACnB,GAAG,EAAE,SAAS;YACd,OAAO,EAAE,aAAa;YACtB,YAAY,EAAE,sBAAsB;YACpC,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;SAClC,CAAC;QACF,iBAAiB,CAAC,MAAM,EAAE;YACxB,GAAG,UAAU;YACb,cAAc,EAAE,UAAU,CAAC,cAAc;SAC1C,CAAC;KACH,CAAC,CAAA;IAEJ,6EAA6E;IAC7E,6CAA6C;IAC7C,IAAI,YAAY,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,YAAY,CAAC,MAA8B,CAAA;QACzD,IACE,KAAK,CAAC,KAAK,YAAY,6BAA6B;YACpD,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBACzB,0EAA0E;YAE5E,OAAO,kBAAkB,CAAA;QAC3B,MAAM,KAAK,CAAA;IACb,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,KAAK,UAAU;QAAE,MAAM,WAAW,CAAC,MAAM,CAAA;IAC/D,IAAI,eAAe,CAAC,MAAM,KAAK,UAAU;QAAE,MAAM,eAAe,CAAC,MAAM,CAAA;IACvE,IAAI,oBAAoB,CAAC,MAAM,KAAK,UAAU;QAC5C,MAAM,oBAAoB,CAAC,MAAM,CAAA;IAEnC,MAAM,CAAC,CAAC,EAAE,cAAc,CAAC,GAAG,WAAW,CAAC,KAAK,CAAA;IAC7C,IAAI,CAAC,cAAc;QAAE,OAAO,gBAAgB,CAAA;IAE5C,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAA;IACvC,IAAI,SAAS;QAAE,OAAO,WAAW,CAAA;IAEjC,MAAM,EAAE,OAAO,EAAE,GAAG,oBAAoB,CAAC,KAAK,CAAA;IAC9C,OAAO,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,mBAAmB,CAAA;AAClE,CAAC"}
1
+ {"version":3,"file":"getWithdrawalStatus.js","sourceRoot":"","sources":["../../../../chains/opStack/actions/getWithdrawalStatus.ts"],"names":[],"mappings":"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"}
@@ -38,7 +38,7 @@ export async function proveWithdrawal(client, parameters) {
38
38
  return targetChain.contracts.portal[chain.id].address;
39
39
  return Object.values(targetChain.contracts.portal)[0].address;
40
40
  })();
41
- const gas_ = typeof gas !== 'number' && gas !== null
41
+ const gas_ = typeof gas !== 'bigint' && gas !== null
42
42
  ? await estimateProveWithdrawalGas(client, parameters)
43
43
  : gas ?? undefined;
44
44
  return writeContract(client, {
@@ -1 +1 @@
1
- {"version":3,"file":"proveWithdrawal.js","sourceRoot":"","sources":["../../../../chains/opStack/actions/proveWithdrawal.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,aAAa,GACd,MAAM,0CAA0C,CAAA;AAajD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEtC,OAAO,EAGL,0BAA0B,GAC3B,MAAM,iCAAiC,CAAA;AAmDxC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAKnC,MAAyC,EACzC,UAAoE;IAEpE,MAAM,EACJ,OAAO,EACP,KAAK,GAAG,MAAM,CAAC,KAAK,EACpB,GAAG,EACH,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,KAAK,EACL,eAAe,EACf,WAAW,EACX,eAAe,EACf,UAAU,GACX,GAAG,UAAU,CAAA;IAEd,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE;QAC1B,IAAI,UAAU,CAAC,aAAa;YAAE,OAAO,UAAU,CAAC,aAAa,CAAA;QAC7D,IAAI,KAAK;YAAE,OAAO,WAAY,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAA;QACjE,OAAO,MAAM,CAAC,MAAM,CAAC,WAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;IAChE,CAAC,CAAC,EAAE,CAAA;IAEJ,MAAM,IAAI,GACR,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QACrC,CAAC,CAAC,MAAM,0BAA0B,CAC9B,MAAM,EACN,UAAkD,CACnD;QACH,CAAC,CAAC,GAAG,IAAI,SAAS,CAAA;IAEtB,OAAO,aAAa,CAAC,MAAM,EAAE;QAC3B,OAAO,EAAE,OAAQ;QACjB,GAAG,EAAE,SAAS;QACd,OAAO,EAAE,aAAa;QACtB,KAAK;QACL,YAAY,EAAE,4BAA4B;QAC1C,IAAI,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,CAAC;QACnE,GAAG,EAAE,IAAI;QACT,YAAY;QACZ,oBAAoB;QACpB,KAAK;KACmC,CAAC,CAAA;AAC7C,CAAC"}
1
+ {"version":3,"file":"proveWithdrawal.js","sourceRoot":"","sources":["../../../../chains/opStack/actions/proveWithdrawal.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,aAAa,GACd,MAAM,0CAA0C,CAAA;AAajD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEtC,OAAO,EAGL,0BAA0B,GAC3B,MAAM,iCAAiC,CAAA;AAqDxC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAKnC,MAAyC,EACzC,UAAoE;IAEpE,MAAM,EACJ,OAAO,EACP,KAAK,GAAG,MAAM,CAAC,KAAK,EACpB,GAAG,EACH,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,KAAK,EACL,eAAe,EACf,WAAW,EACX,eAAe,EACf,UAAU,GACX,GAAG,UAAU,CAAA;IAEd,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE;QAC1B,IAAI,UAAU,CAAC,aAAa;YAAE,OAAO,UAAU,CAAC,aAAa,CAAA;QAC7D,IAAI,KAAK;YAAE,OAAO,WAAY,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAA;QACjE,OAAO,MAAM,CAAC,MAAM,CAAC,WAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;IAChE,CAAC,CAAC,EAAE,CAAA;IAEJ,MAAM,IAAI,GACR,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QACrC,CAAC,CAAC,MAAM,0BAA0B,CAC9B,MAAM,EACN,UAAkD,CACnD;QACH,CAAC,CAAC,GAAG,IAAI,SAAS,CAAA;IAEtB,OAAO,aAAa,CAAC,MAAM,EAAE;QAC3B,OAAO,EAAE,OAAQ;QACjB,GAAG,EAAE,SAAS;QACd,OAAO,EAAE,aAAa;QACtB,KAAK;QACL,YAAY,EAAE,4BAA4B;QAC1C,IAAI,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,CAAC;QACnE,GAAG,EAAE,IAAI;QACT,YAAY;QACZ,oBAAoB;QACpB,KAAK;KACmC,CAAC,CAAA;AAC7C,CAAC"}
@@ -0,0 +1,61 @@
1
+ import { poll } from '../../../utils/poll.js';
2
+ import { GameNotFoundError } from '../errors/withdrawal.js';
3
+ import { getGame, } from './getGame.js';
4
+ import { getTimeToNextGame, } from './getTimeToNextGame.js';
5
+ /**
6
+ * Waits for the next dispute game (after the provided block number) to be submitted.
7
+ *
8
+ * - Docs: https://viem.sh/op-stack/actions/waitForNextGame
9
+ *
10
+ * @param client - Client to use
11
+ * @param parameters - {@link WaitForNextGameParameters}
12
+ * @returns The L2 transaction hash. {@link WaitForNextGameReturnType}
13
+ *
14
+ * @example
15
+ * import { createPublicClient, http } from 'viem'
16
+ * import { getBlockNumber } from 'viem/actions'
17
+ * import { mainnet, optimism } from 'viem/chains'
18
+ * import { waitForNextGame } from 'viem/op-stack'
19
+ *
20
+ * const publicClientL1 = createPublicClient({
21
+ * chain: mainnet,
22
+ * transport: http(),
23
+ * })
24
+ * const publicClientL2 = createPublicClient({
25
+ * chain: optimism,
26
+ * transport: http(),
27
+ * })
28
+ *
29
+ * const l2BlockNumber = await getBlockNumber(publicClientL2)
30
+ * await waitForNextGame(publicClientL1, {
31
+ * l2BlockNumber,
32
+ * targetChain: optimism
33
+ * })
34
+ */
35
+ export async function waitForNextGame(client, parameters) {
36
+ const { pollingInterval = client.pollingInterval } = parameters;
37
+ const { seconds } = await getTimeToNextGame(client, parameters);
38
+ return new Promise((resolve, reject) => {
39
+ poll(async ({ unpoll }) => {
40
+ try {
41
+ const game = await getGame(client, {
42
+ ...parameters,
43
+ strategy: 'random',
44
+ });
45
+ unpoll();
46
+ resolve(game);
47
+ }
48
+ catch (e) {
49
+ const error = e;
50
+ if (!(error instanceof GameNotFoundError)) {
51
+ unpoll();
52
+ reject(e);
53
+ }
54
+ }
55
+ }, {
56
+ interval: pollingInterval,
57
+ initialWaitTime: async () => seconds * 1000,
58
+ });
59
+ });
60
+ }
61
+ //# sourceMappingURL=waitForNextGame.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waitForNextGame.js","sourceRoot":"","sources":["../../../../chains/opStack/actions/waitForNextGame.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAE3D,OAAO,EAGL,OAAO,GACR,MAAM,cAAc,CAAA;AACrB,OAAO,EAGL,iBAAiB,GAClB,MAAM,wBAAwB,CAAA;AAkC/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAKnC,MAAyC,EACzC,UAA2D;IAE3D,MAAM,EAAE,eAAe,GAAG,MAAM,CAAC,eAAe,EAAE,GAAG,UAAU,CAAA;IAE/D,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IAE/D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,CACF,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;YACnB,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE;oBACjC,GAAG,UAAU;oBACb,QAAQ,EAAE,QAAQ;iBACnB,CAAC,CAAA;gBACF,MAAM,EAAE,CAAA;gBACR,OAAO,CAAC,IAAI,CAAC,CAAA;YACf,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,KAAK,GAAG,CAAqB,CAAA;gBACnC,IAAI,CAAC,CAAC,KAAK,YAAY,iBAAiB,CAAC,EAAE,CAAC;oBAC1C,MAAM,EAAE,CAAA;oBACR,MAAM,CAAC,CAAC,CAAC,CAAA;gBACX,CAAC;YACH,CAAC;QACH,CAAC,EACD;YACE,QAAQ,EAAE,eAAe;YACzB,eAAe,EAAE,KAAK,IAAI,EAAE,CAAC,OAAO,GAAG,IAAI;SAC5C,CACF,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"waitForNextL2Output.js","sourceRoot":"","sources":["../../../../chains/opStack/actions/waitForNextL2Output.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAA;AAQ3E,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAE7C,OAAO,EAGL,WAAW,GACZ,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAGL,qBAAqB,GACtB,MAAM,4BAA4B,CAAA;AA4BnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAKvC,MAAyC,EACzC,UAA+D;IAE/D,MAAM,EAAE,eAAe,GAAG,MAAM,CAAC,eAAe,EAAE,GAAG,UAAU,CAAA;IAE/D,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IAEnE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,CACF,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;YACnB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;gBACpD,MAAM,EAAE,CAAA;gBACR,OAAO,CAAC,MAAM,CAAC,CAAA;YACjB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,KAAK,GAAG,CAAyB,CAAA;gBACvC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,YAAY,6BAA6B,CAAC,EAAE,CAAC;oBAC5D,MAAM,EAAE,CAAA;oBACR,MAAM,CAAC,CAAC,CAAC,CAAA;gBACX,CAAC;YACH,CAAC;QACH,CAAC,EACD;YACE,QAAQ,EAAE,eAAe;YACzB,eAAe,EAAE,KAAK,IAAI,EAAE,CAAC,OAAO,GAAG,IAAI;SAC5C,CACF,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"waitForNextL2Output.js","sourceRoot":"","sources":["../../../../chains/opStack/actions/waitForNextL2Output.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAA;AAQ3E,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAE7C,OAAO,EAIL,WAAW,GACZ,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAGL,qBAAqB,GACtB,MAAM,4BAA4B,CAAA;AA4BnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAKvC,MAAyC,EACzC,UAA+D;IAE/D,MAAM,EAAE,eAAe,GAAG,MAAM,CAAC,eAAe,EAAE,GAAG,UAAU,CAAA;IAE/D,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IAEnE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,CACF,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;YACnB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,MAAM,EACN,UAAmC,CACpC,CAAA;gBACD,MAAM,EAAE,CAAA;gBACR,OAAO,CAAC,MAAM,CAAC,CAAA;YACjB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,KAAK,GAAG,CAAyB,CAAA;gBACvC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,YAAY,6BAA6B,CAAC,EAAE,CAAC;oBAC5D,MAAM,EAAE,CAAA;oBACR,MAAM,CAAC,CAAC,CAAC,CAAA;gBACX,CAAC;YACH,CAAC;QACH,CAAC,EACD;YACE,QAAQ,EAAE,eAAe;YACzB,eAAe,EAAE,KAAK,IAAI,EAAE,CAAC,OAAO,GAAG,IAAI;SAC5C,CACF,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -1,5 +1,7 @@
1
1
  import { ReceiptContainsNoWithdrawalsError } from '../errors/withdrawal.js';
2
2
  import { getWithdrawals, } from '../utils/getWithdrawals.js';
3
+ import { getPortalVersion, } from './getPortalVersion.js';
4
+ import { waitForNextGame, } from './waitForNextGame.js';
3
5
  import { waitForNextL2Output, } from './waitForNextL2Output.js';
4
6
  /**
5
7
  * Waits until the L2 withdrawal transaction is ready to be proved. Used for the [Withdrawal](/op-stack/guides/withdrawals) flow.
@@ -32,16 +34,46 @@ import { waitForNextL2Output, } from './waitForNextL2Output.js';
32
34
  * })
33
35
  */
34
36
  export async function waitToProve(client, parameters) {
35
- const { receipt } = parameters;
37
+ const { gameLimit, receipt } = parameters;
36
38
  const [withdrawal] = getWithdrawals(receipt);
37
39
  if (!withdrawal)
38
40
  throw new ReceiptContainsNoWithdrawalsError({
39
41
  hash: receipt.transactionHash,
40
42
  });
41
- const output = await waitForNextL2Output(client, {
43
+ const portalVersion = await getPortalVersion(client, parameters);
44
+ // Legacy (Portal < v3)
45
+ if (portalVersion.major < 3) {
46
+ const output = await waitForNextL2Output(client, {
47
+ ...parameters,
48
+ l2BlockNumber: receipt.blockNumber,
49
+ });
50
+ return {
51
+ game: {
52
+ extraData: '0x',
53
+ index: output.outputIndex,
54
+ l2BlockNumber: output.l2BlockNumber,
55
+ metadata: '0x',
56
+ rootClaim: output.outputRoot,
57
+ timestamp: output.timestamp,
58
+ },
59
+ output,
60
+ withdrawal,
61
+ };
62
+ }
63
+ const game = await waitForNextGame(client, {
42
64
  ...parameters,
65
+ limit: gameLimit,
43
66
  l2BlockNumber: receipt.blockNumber,
44
67
  });
45
- return { output, withdrawal };
68
+ return {
69
+ game,
70
+ output: {
71
+ l2BlockNumber: game.l2BlockNumber,
72
+ outputIndex: game.index,
73
+ outputRoot: game.rootClaim,
74
+ timestamp: game.timestamp,
75
+ },
76
+ withdrawal,
77
+ };
46
78
  }
47
79
  //# sourceMappingURL=waitToProve.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"waitToProve.js","sourceRoot":"","sources":["../../../../chains/opStack/actions/waitToProve.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,iCAAiC,EAAE,MAAM,yBAAyB,CAAA;AAG3E,OAAO,EAEL,cAAc,GACf,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAGL,mBAAmB,GACpB,MAAM,0BAA0B,CAAA;AAwBjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAK/B,MAAyC,EACzC,UAAuD;IAEvD,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAA;IAE9B,MAAM,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IAE5C,IAAI,CAAC,UAAU;QACb,MAAM,IAAI,iCAAiC,CAAC;YAC1C,IAAI,EAAE,OAAO,CAAC,eAAe;SAC9B,CAAC,CAAA;IAEJ,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE;QAC/C,GAAG,UAAU;QACb,aAAa,EAAE,OAAO,CAAC,WAAW;KACnC,CAAC,CAAA;IAEF,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAA;AAC/B,CAAC"}
1
+ {"version":3,"file":"waitToProve.js","sourceRoot":"","sources":["../../../../chains/opStack/actions/waitToProve.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,iCAAiC,EAAE,MAAM,yBAAyB,CAAA;AAG3E,OAAO,EAEL,cAAc,GACf,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAEL,gBAAgB,GACjB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAGL,eAAe,GAChB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAIL,mBAAmB,GACpB,MAAM,0BAA0B,CAAA;AAqCjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAK/B,MAAyC,EACzC,UAAuD;IAEvD,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,UAAU,CAAA;IAEzC,MAAM,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IAE5C,IAAI,CAAC,UAAU;QACb,MAAM,IAAI,iCAAiC,CAAC;YAC1C,IAAI,EAAE,OAAO,CAAC,eAAe;SAC9B,CAAC,CAAA;IAEJ,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAC1C,MAAM,EACN,UAAwC,CACzC,CAAA;IAED,uBAAuB;IACvB,IAAI,aAAa,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE;YAC/C,GAAG,UAAU;YACb,aAAa,EAAE,OAAO,CAAC,WAAW;SACF,CAAC,CAAA;QACnC,OAAO;YACL,IAAI,EAAE;gBACJ,SAAS,EAAE,IAAI;gBACf,KAAK,EAAE,MAAM,CAAC,WAAW;gBACzB,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,QAAQ,EAAE,IAAI;gBACd,SAAS,EAAE,MAAM,CAAC,UAAU;gBAC5B,SAAS,EAAE,MAAM,CAAC,SAAS;aAC5B;YACD,MAAM;YACN,UAAU;SACX,CAAA;IACH,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE;QACzC,GAAG,UAAU;QACb,KAAK,EAAE,SAAS;QAChB,aAAa,EAAE,OAAO,CAAC,WAAW;KACN,CAAC,CAAA;IAC/B,OAAO;QACL,IAAI;QACJ,MAAM,EAAE;YACN,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,WAAW,EAAE,IAAI,CAAC,KAAK;YACvB,UAAU,EAAE,IAAI,CAAC,SAAS;YAC1B,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B;QACD,UAAU;KACX,CAAA;AACH,CAAC"}
@@ -2,11 +2,16 @@ import { buildInitiateWithdrawal, } from '../actions/buildInitiateWithdrawal.js'
2
2
  import { estimateDepositTransactionGas, } from '../actions/estimateDepositTransactionGas.js';
3
3
  import { estimateFinalizeWithdrawalGas, } from '../actions/estimateFinalizeWithdrawalGas.js';
4
4
  import { estimateProveWithdrawalGas, } from '../actions/estimateProveWithdrawalGas.js';
5
+ import { getGame, } from '../actions/getGame.js';
6
+ import { getGames, } from '../actions/getGames.js';
5
7
  import { getL2Output, } from '../actions/getL2Output.js';
8
+ import { getPortalVersion, } from '../actions/getPortalVersion.js';
6
9
  import { getTimeToFinalize, } from '../actions/getTimeToFinalize.js';
10
+ import { getTimeToNextGame, } from '../actions/getTimeToNextGame.js';
7
11
  import { getTimeToNextL2Output, } from '../actions/getTimeToNextL2Output.js';
8
12
  import { getTimeToProve, } from '../actions/getTimeToProve.js';
9
13
  import { getWithdrawalStatus, } from '../actions/getWithdrawalStatus.js';
14
+ import { waitForNextGame, } from '../actions/waitForNextGame.js';
10
15
  import { waitForNextL2Output, } from '../actions/waitForNextL2Output.js';
11
16
  import { waitToFinalize, } from '../actions/waitToFinalize.js';
12
17
  import { waitToProve, } from '../actions/waitToProve.js';
@@ -32,11 +37,16 @@ export function publicActionsL1() {
32
37
  estimateDepositTransactionGas: (args) => estimateDepositTransactionGas(client, args),
33
38
  estimateFinalizeWithdrawalGas: (args) => estimateFinalizeWithdrawalGas(client, args),
34
39
  estimateProveWithdrawalGas: (args) => estimateProveWithdrawalGas(client, args),
40
+ getGame: (args) => getGame(client, args),
41
+ getGames: (args) => getGames(client, args),
35
42
  getL2Output: (args) => getL2Output(client, args),
43
+ getPortalVersion: (args) => getPortalVersion(client, args),
36
44
  getTimeToFinalize: (args) => getTimeToFinalize(client, args),
45
+ getTimeToNextGame: (args) => getTimeToNextGame(client, args),
37
46
  getTimeToNextL2Output: (args) => getTimeToNextL2Output(client, args),
38
47
  getTimeToProve: (args) => getTimeToProve(client, args),
39
48
  getWithdrawalStatus: (args) => getWithdrawalStatus(client, args),
49
+ waitForNextGame: (args) => waitForNextGame(client, args),
40
50
  waitForNextL2Output: (args) => waitForNextL2Output(client, args),
41
51
  waitToFinalize: (args) => waitToFinalize(client, args),
42
52
  waitToProve: (args) => waitToProve(client, args),
@@ -1 +1 @@
1
- {"version":3,"file":"publicL1.js","sourceRoot":"","sources":["../../../../chains/opStack/decorators/publicL1.ts"],"names":[],"mappings":"AAKA,OAAO,EAGL,uBAAuB,GACxB,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EAGL,6BAA6B,GAC9B,MAAM,6CAA6C,CAAA;AACpD,OAAO,EAGL,6BAA6B,GAC9B,MAAM,6CAA6C,CAAA;AACpD,OAAO,EAGL,0BAA0B,GAC3B,MAAM,0CAA0C,CAAA;AACjD,OAAO,EAGL,WAAW,GACZ,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAGL,iBAAiB,GAClB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAGL,qBAAqB,GACtB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAGL,cAAc,GACf,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAGL,mBAAmB,GACpB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAGL,mBAAmB,GACpB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAGL,cAAc,GACf,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAGL,WAAW,GACZ,MAAM,2BAA2B,CAAA;AAualC;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,CAKL,MAA4C,EACT,EAAE;QACrC,OAAO;YACL,uBAAuB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,IAAI,CAAC;YACxE,6BAA6B,EAAE,CAAC,IAAI,EAAE,EAAE,CACtC,6BAA6B,CAAC,MAAM,EAAE,IAAI,CAAC;YAC7C,6BAA6B,EAAE,CAAC,IAAI,EAAE,EAAE,CACtC,6BAA6B,CAAC,MAAM,EAAE,IAAI,CAAC;YAC7C,0BAA0B,EAAE,CAAC,IAAI,EAAE,EAAE,CACnC,0BAA0B,CAAC,MAAM,EAAE,IAAI,CAAC;YAC1C,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC;YAChD,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC;YAC5D,qBAAqB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC;YACpE,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC;YACtD,mBAAmB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC;YAChE,mBAAmB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC;YAChE,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC;YACtD,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC;SACjD,CAAA;IACH,CAAC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"publicL1.js","sourceRoot":"","sources":["../../../../chains/opStack/decorators/publicL1.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,15 @@
1
1
  import { BaseError } from '../../../errors/base.js';
2
+ export class GameNotFoundError extends BaseError {
3
+ constructor() {
4
+ super('Dispute game not found.');
5
+ Object.defineProperty(this, "name", {
6
+ enumerable: true,
7
+ configurable: true,
8
+ writable: true,
9
+ value: 'GameNotFoundError'
10
+ });
11
+ }
12
+ }
2
13
  export class ReceiptContainsNoWithdrawalsError extends BaseError {
3
14
  constructor({ hash }) {
4
15
  super(`The provided transaction receipt with hash "${hash}" contains no withdrawals.`);
@@ -1 +1 @@
1
- {"version":3,"file":"withdrawal.js","sourceRoot":"","sources":["../../../../chains/opStack/errors/withdrawal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAOnD,MAAM,OAAO,iCAAkC,SAAQ,SAAS;IAE9D,YAAY,EAAE,IAAI,EAAiB;QACjC,KAAK,CACH,+CAA+C,IAAI,4BAA4B,CAChF,CAAA;QAJM;;;;mBAAO,mCAAmC;WAAA;IAKnD,CAAC;CACF"}
1
+ {"version":3,"file":"withdrawal.js","sourceRoot":"","sources":["../../../../chains/opStack/errors/withdrawal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAMnD,MAAM,OAAO,iBAAkB,SAAQ,SAAS;IAE9C;QACE,KAAK,CAAC,yBAAyB,CAAC,CAAA;QAFzB;;;;mBAAO,mBAAmB;WAAA;IAGnC,CAAC;CACF;AAMD,MAAM,OAAO,iCAAkC,SAAQ,SAAS;IAE9D,YAAY,EAAE,IAAI,EAAiB;QACjC,KAAK,CACH,+CAA+C,IAAI,4BAA4B,CAChF,CAAA;QAJM;;;;mBAAO,mCAAmC;WAAA;IAKnD,CAAC;CACF"}
@@ -7,18 +7,23 @@ export { estimateContractL1Gas, } from './actions/estimateContractL1Gas.js';
7
7
  export { estimateContractTotalFee, } from './actions/estimateContractTotalFee.js';
8
8
  export { estimateContractTotalGas, } from './actions/estimateContractTotalGas.js';
9
9
  export { estimateL1Fee, } from './actions/estimateL1Fee.js';
10
+ export { getGame, } from './actions/getGame.js';
11
+ export { getGames, } from './actions/getGames.js';
10
12
  export { getL1BaseFee, } from './actions/getL1BaseFee.js';
11
13
  export { estimateL1Gas, } from './actions/estimateL1Gas.js';
12
14
  export { estimateTotalFee, } from './actions/estimateTotalFee.js';
13
15
  export { estimateTotalGas, } from './actions/estimateTotalGas.js';
14
16
  export { finalizeWithdrawal, } from './actions/finalizeWithdrawal.js';
15
17
  export { getL2Output, } from './actions/getL2Output.js';
18
+ export { getPortalVersion, } from './actions/getPortalVersion.js';
19
+ export { getTimeToNextGame, } from './actions/getTimeToNextGame.js';
16
20
  export { getTimeToFinalize, } from './actions/getTimeToFinalize.js';
17
21
  export { getTimeToNextL2Output, } from './actions/getTimeToNextL2Output.js';
18
22
  export { getTimeToProve, } from './actions/getTimeToProve.js';
19
23
  export { getWithdrawalStatus, } from './actions/getWithdrawalStatus.js';
20
24
  export { initiateWithdrawal, } from './actions/initiateWithdrawal.js';
21
25
  export { proveWithdrawal, } from './actions/proveWithdrawal.js';
26
+ export { waitForNextGame, } from './actions/waitForNextGame.js';
22
27
  export { waitForNextL2Output, } from './actions/waitForNextL2Output.js';
23
28
  export { waitToFinalize, } from './actions/waitToFinalize.js';
24
29
  export { waitToProve, } from './actions/waitToProve.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../chains/opStack/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,GAIxB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EACL,uBAAuB,GAIxB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EACL,oBAAoB,GAIrB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EACL,kBAAkB,GAInB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EACL,qBAAqB,GAItB,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EACL,qBAAqB,GAItB,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EACL,wBAAwB,GAIzB,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EACL,wBAAwB,GAIzB,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EACL,aAAa,GAId,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,YAAY,GAIb,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,aAAa,GAId,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,gBAAgB,GAIjB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EACL,gBAAgB,GAIjB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EACL,kBAAkB,GAInB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EACL,WAAW,GAIZ,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACL,iBAAiB,GAIlB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACL,qBAAqB,GAItB,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EACL,cAAc,GAIf,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACL,mBAAmB,GAIpB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EACL,kBAAkB,GAInB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EACL,eAAe,GAIhB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACL,mBAAmB,GAIpB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EACL,cAAc,GAIf,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACL,WAAW,GAIZ,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,cAAc,aAAa,CAAA;AAE3B,OAAO,EAAE,eAAe,EAAwB,MAAM,0BAA0B,CAAA;AAChF,OAAO,EAAE,eAAe,EAAwB,MAAM,0BAA0B,CAAA;AAChF,OAAO,EAAE,eAAe,EAAwB,MAAM,0BAA0B,CAAA;AAChF,OAAO,EAAE,eAAe,EAAwB,MAAM,0BAA0B,CAAA;AAEhF,OAAO,EACL,gBAAgB,GAGjB,MAAM,cAAc,CAAA;AAErB,OAAO,EACL,oBAAoB,EACpB,WAAW,GAGZ,MAAM,kBAAkB,CAAA;AAmBzB,OAAO,EACL,4BAA4B,GAI7B,MAAM,yCAAyC,CAAA;AAEhD,OAAO,EACL,+BAA+B,GAIhC,MAAM,4CAA4C,CAAA;AAEnD,OAAO,EACL,uBAAuB,GAIxB,MAAM,oCAAoC,CAAA;AAE3C,OAAO,EACL,oBAAoB,GAIrB,MAAM,iCAAiC,CAAA;AAExC,OAAO,EACL,sBAAsB,GAIvB,MAAM,mCAAmC,CAAA;AAE1C,OAAO,EACL,aAAa,GAId,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EACL,4BAA4B,GAI7B,MAAM,yCAAyC,CAAA;AAEhD,OAAO,EACL,cAAc,GAIf,MAAM,2BAA2B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../chains/opStack/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import { contractDeployerAddress } from '../constants/address.js';
2
+ import { encodeDeployData } from '../utils/abi/encodeDeployData.js';
3
+ import { sendEip712Transaction, } from './sendEip712Transaction.js';
4
+ /**
5
+ * Deploys a contract to the network, given bytecode and constructor arguments using EIP712 transaction.
6
+ *
7
+ * - Docs: https://viem.sh/docs/contract/deployContract
8
+ *
9
+ * @param client - Client to use
10
+ * @param parameters - {@link DeployContractParameters}
11
+ * @returns The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link DeployContractReturnType}
12
+ *
13
+ * @example
14
+ * import { createWalletClient, custom } from 'viem'
15
+ * import { privateKeyToAccount } from 'viem/accounts'
16
+ * import { zkSync } from 'viem/chains'
17
+ * import { deployContract } from 'viem/zksync'
18
+ *
19
+ * const client = createWalletClient({
20
+ * account: privateKeyToAccount('0x…'),
21
+ * chain: zksync,
22
+ * transport: custom(provider),
23
+ * })
24
+ * const hash = await deployContract(client, {
25
+ * abi: [],
26
+ * account: '0x…,
27
+ * deploymentType: 'create',
28
+ * bytecode: '0x608060405260405161083e38038061083e833981016040819052610...',
29
+ * factoryDeps: ['0x608060405260405161083e38038061083e833981016040819052610...'],
30
+ * gasPerPubdata: 50000n
31
+ * })
32
+ */
33
+ export function deployContract(walletClient, parameters) {
34
+ const { abi, args, bytecode, deploymentType, salt, ...request } = parameters;
35
+ const data = encodeDeployData({
36
+ abi,
37
+ args,
38
+ bytecode,
39
+ deploymentType,
40
+ salt,
41
+ });
42
+ // Add the bytecode to the factoryDeps if it's not already there
43
+ request.factoryDeps = request.factoryDeps || [];
44
+ if (!request.factoryDeps.includes(bytecode))
45
+ request.factoryDeps.push(bytecode);
46
+ return sendEip712Transaction(walletClient, {
47
+ ...request,
48
+ data,
49
+ to: contractDeployerAddress,
50
+ });
51
+ }
52
+ //# sourceMappingURL=deployContract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployContract.js","sourceRoot":"","sources":["../../../../chains/zksync/actions/deployContract.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AAGjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACnE,OAAO,EAIL,qBAAqB,GACtB,MAAM,4BAA4B,CAAA;AAkBnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,cAAc,CAM5B,YAA+C,EAC/C,UAAwE;IAExE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,GAC7D,UAAsC,CAAA;IAExC,MAAM,IAAI,GAAG,gBAAgB,CAAC;QAC5B,GAAG;QACH,IAAI;QACJ,QAAQ;QACR,cAAc;QACd,IAAI;KACL,CAAC,CAAA;IAEF,gEAAgE;IAChE,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAA;IAC/C,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACzC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAEpC,OAAO,qBAAqB,CAAC,YAAY,EAAE;QACzC,GAAG,OAAO;QACV,IAAI;QACJ,EAAE,EAAE,uBAAuB;KAK5B,CAAC,CAAA;AACJ,CAAC"}