@aztec/aztec.js 0.0.0-test.1 → 0.0.1-commit.b655e406

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 (392) hide show
  1. package/README.md +1 -1
  2. package/dest/account/account.d.ts +60 -0
  3. package/dest/account/account.d.ts.map +1 -0
  4. package/dest/account/account.js +59 -0
  5. package/dest/account/{contract.d.ts → account_contract.d.ts} +16 -10
  6. package/dest/account/account_contract.d.ts.map +1 -0
  7. package/dest/account/{contract.js → account_contract.js} +7 -4
  8. package/dest/{wallet/account_wallet_with_private_key.d.ts → account/account_with_secret_key.d.ts} +7 -8
  9. package/dest/account/account_with_secret_key.d.ts.map +1 -0
  10. package/dest/{wallet/account_wallet_with_private_key.js → account/account_with_secret_key.js} +5 -5
  11. package/dest/account/index.d.ts +3 -7
  12. package/dest/account/index.d.ts.map +1 -1
  13. package/dest/account/index.js +2 -6
  14. package/dest/account/interface.d.ts +1 -13
  15. package/dest/account/interface.d.ts.map +1 -1
  16. package/dest/account/interface.js +1 -0
  17. package/dest/account/signerless_account.d.ts +24 -0
  18. package/dest/account/signerless_account.d.ts.map +1 -0
  19. package/dest/account/signerless_account.js +27 -0
  20. package/dest/api/abi.d.ts +2 -1
  21. package/dest/api/abi.d.ts.map +1 -1
  22. package/dest/api/abi.js +1 -1
  23. package/dest/api/account.d.ts +5 -2
  24. package/dest/api/account.d.ts.map +1 -1
  25. package/dest/api/account.js +3 -1
  26. package/dest/api/addresses.d.ts +1 -0
  27. package/dest/api/addresses.d.ts.map +1 -1
  28. package/dest/api/addresses.js +1 -0
  29. package/dest/api/authorization.d.ts +5 -0
  30. package/dest/api/authorization.d.ts.map +1 -0
  31. package/dest/api/authorization.js +4 -0
  32. package/dest/api/block.d.ts +3 -0
  33. package/dest/api/block.d.ts.map +1 -0
  34. package/dest/api/block.js +2 -0
  35. package/dest/{contract/index.d.ts → api/contract.d.ts} +15 -11
  36. package/dest/api/contract.d.ts.map +1 -0
  37. package/dest/{contract/index.js → api/contract.js} +14 -10
  38. package/dest/api/crypto.d.ts +2 -0
  39. package/dest/api/crypto.d.ts.map +1 -0
  40. package/dest/api/crypto.js +1 -0
  41. package/dest/api/deployment.d.ts +4 -3
  42. package/dest/api/deployment.d.ts.map +1 -1
  43. package/dest/api/deployment.js +4 -3
  44. package/dest/api/ethereum.d.ts +2 -0
  45. package/dest/api/ethereum.d.ts.map +1 -0
  46. package/dest/api/ethereum.js +1 -0
  47. package/dest/api/events.d.ts +12 -0
  48. package/dest/api/events.d.ts.map +1 -0
  49. package/dest/api/events.js +30 -0
  50. package/dest/api/fee.d.ts +1 -1
  51. package/dest/api/fee.d.ts.map +1 -1
  52. package/dest/api/fee.js +1 -1
  53. package/dest/api/fee_testing.d.ts +2 -0
  54. package/dest/api/fee_testing.d.ts.map +1 -0
  55. package/dest/api/fee_testing.js +1 -0
  56. package/dest/api/keys.d.ts +4 -0
  57. package/dest/api/keys.d.ts.map +1 -0
  58. package/dest/api/keys.js +3 -0
  59. package/dest/api/log.d.ts +1 -0
  60. package/dest/api/log.d.ts.map +1 -1
  61. package/dest/api/log.js +1 -0
  62. package/dest/api/messaging.d.ts +3 -0
  63. package/dest/api/messaging.d.ts.map +1 -0
  64. package/dest/api/messaging.js +2 -0
  65. package/dest/api/node.d.ts +21 -0
  66. package/dest/api/node.d.ts.map +1 -0
  67. package/dest/api/node.js +18 -0
  68. package/dest/api/note.d.ts +2 -0
  69. package/dest/api/note.d.ts.map +1 -0
  70. package/dest/api/note.js +1 -0
  71. package/dest/api/protocol.d.ts +3 -0
  72. package/dest/api/protocol.d.ts.map +1 -0
  73. package/dest/api/protocol.js +2 -0
  74. package/dest/api/trees.d.ts +3 -0
  75. package/dest/api/trees.d.ts.map +1 -0
  76. package/dest/api/trees.js +2 -0
  77. package/dest/api/tx.d.ts +2 -0
  78. package/dest/api/tx.d.ts.map +1 -0
  79. package/dest/api/tx.js +1 -0
  80. package/dest/api/utils.d.ts +13 -0
  81. package/dest/api/utils.d.ts.map +1 -0
  82. package/dest/api/utils.js +12 -0
  83. package/dest/api/wallet.d.ts +4 -1
  84. package/dest/api/wallet.d.ts.map +1 -1
  85. package/dest/api/wallet.js +4 -1
  86. package/dest/authorization/call_authorization_request.d.ts +67 -0
  87. package/dest/authorization/call_authorization_request.d.ts.map +1 -0
  88. package/dest/authorization/call_authorization_request.js +49 -0
  89. package/dest/contract/base_contract_interaction.d.ts +16 -79
  90. package/dest/contract/base_contract_interaction.d.ts.map +1 -1
  91. package/dest/contract/base_contract_interaction.js +15 -128
  92. package/dest/contract/batch_call.d.ts +13 -14
  93. package/dest/contract/batch_call.d.ts.map +1 -1
  94. package/dest/contract/batch_call.js +60 -60
  95. package/dest/contract/checker.d.ts +1 -1
  96. package/dest/contract/checker.d.ts.map +1 -1
  97. package/dest/contract/checker.js +2 -2
  98. package/dest/contract/contract.d.ts +7 -6
  99. package/dest/contract/contract.d.ts.map +1 -1
  100. package/dest/contract/contract.js +7 -16
  101. package/dest/contract/contract_base.d.ts +3 -9
  102. package/dest/contract/contract_base.d.ts.map +1 -1
  103. package/dest/contract/contract_base.js +2 -2
  104. package/dest/contract/contract_function_interaction.d.ts +52 -44
  105. package/dest/contract/contract_function_interaction.d.ts.map +1 -1
  106. package/dest/contract/contract_function_interaction.js +75 -74
  107. package/dest/contract/deploy_method.d.ts +102 -57
  108. package/dest/contract/deploy_method.d.ts.map +1 -1
  109. package/dest/contract/deploy_method.js +122 -132
  110. package/dest/contract/deploy_sent_tx.d.ts +3 -5
  111. package/dest/contract/deploy_sent_tx.d.ts.map +1 -1
  112. package/dest/contract/deploy_sent_tx.js +10 -13
  113. package/dest/contract/get_gas_limits.d.ts +5 -6
  114. package/dest/contract/get_gas_limits.d.ts.map +1 -1
  115. package/dest/contract/get_gas_limits.js +9 -3
  116. package/dest/contract/interaction_options.d.ts +114 -0
  117. package/dest/contract/interaction_options.d.ts.map +1 -0
  118. package/dest/contract/interaction_options.js +52 -0
  119. package/dest/contract/protocol_contracts.d.ts +6 -6
  120. package/dest/contract/protocol_contracts.d.ts.map +1 -1
  121. package/dest/contract/protocol_contracts.js +7 -7
  122. package/dest/contract/sent_tx.d.ts +8 -18
  123. package/dest/contract/sent_tx.d.ts.map +1 -1
  124. package/dest/contract/sent_tx.js +30 -42
  125. package/dest/contract/unsafe_contract.d.ts +1 -1
  126. package/dest/contract/unsafe_contract.d.ts.map +1 -1
  127. package/dest/contract/wait_for_proven.d.ts +17 -0
  128. package/dest/contract/wait_for_proven.d.ts.map +1 -0
  129. package/dest/contract/wait_for_proven.js +17 -0
  130. package/dest/deployment/broadcast_function.d.ts +3 -3
  131. package/dest/deployment/broadcast_function.d.ts.map +1 -1
  132. package/dest/deployment/broadcast_function.js +27 -23
  133. package/dest/deployment/contract_deployer.d.ts +1 -1
  134. package/dest/deployment/contract_deployer.d.ts.map +1 -1
  135. package/dest/deployment/publish_class.d.ts +6 -0
  136. package/dest/deployment/publish_class.d.ts.map +1 -0
  137. package/dest/deployment/publish_class.js +17 -0
  138. package/dest/deployment/publish_instance.d.ts +10 -0
  139. package/dest/deployment/publish_instance.d.ts.map +1 -0
  140. package/dest/deployment/publish_instance.js +11 -0
  141. package/dest/{api/ethereum → ethereum}/portal_manager.d.ts +29 -25
  142. package/dest/ethereum/portal_manager.d.ts.map +1 -0
  143. package/dest/{api/ethereum → ethereum}/portal_manager.js +106 -73
  144. package/dest/fee/fee_juice_payment_method_with_claim.d.ts +16 -11
  145. package/dest/fee/fee_juice_payment_method_with_claim.d.ts.map +1 -1
  146. package/dest/fee/fee_juice_payment_method_with_claim.js +26 -16
  147. package/dest/fee/fee_payment_method.d.ts +11 -7
  148. package/dest/fee/fee_payment_method.d.ts.map +1 -1
  149. package/dest/fee/private_fee_payment_method.d.ts +25 -8
  150. package/dest/fee/private_fee_payment_method.d.ts.map +1 -1
  151. package/dest/fee/private_fee_payment_method.js +43 -21
  152. package/dest/fee/public_fee_payment_method.d.ts +26 -9
  153. package/dest/fee/public_fee_payment_method.d.ts.map +1 -1
  154. package/dest/fee/public_fee_payment_method.js +45 -23
  155. package/dest/fee/sponsored_fee_payment.d.ts +17 -0
  156. package/dest/fee/sponsored_fee_payment.d.ts.map +1 -0
  157. package/dest/fee/sponsored_fee_payment.js +34 -0
  158. package/dest/utils/abi_types.d.ts +0 -2
  159. package/dest/utils/abi_types.d.ts.map +1 -1
  160. package/dest/utils/authwit.d.ts +81 -24
  161. package/dest/utils/authwit.d.ts.map +1 -1
  162. package/dest/utils/authwit.js +226 -40
  163. package/dest/utils/cross_chain.d.ts +24 -0
  164. package/dest/utils/cross_chain.d.ts.map +1 -0
  165. package/dest/utils/cross_chain.js +30 -0
  166. package/dest/utils/fee_juice.d.ts +3 -2
  167. package/dest/utils/fee_juice.d.ts.map +1 -1
  168. package/dest/utils/fee_juice.js +3 -2
  169. package/dest/utils/field_compressed_string.d.ts.map +1 -1
  170. package/dest/utils/node.d.ts.map +1 -1
  171. package/dest/utils/node.js +1 -1
  172. package/dest/utils/pub_key.d.ts.map +1 -1
  173. package/dest/utils/pub_key.js +1 -2
  174. package/dest/wallet/account_entrypoint_meta_payment_method.d.ts +34 -0
  175. package/dest/wallet/account_entrypoint_meta_payment_method.d.ts.map +1 -0
  176. package/dest/wallet/account_entrypoint_meta_payment_method.js +76 -0
  177. package/dest/wallet/account_manager.d.ts +69 -0
  178. package/dest/wallet/account_manager.d.ts.map +1 -0
  179. package/dest/wallet/account_manager.js +113 -0
  180. package/dest/wallet/base_wallet.d.ts +81 -63
  181. package/dest/wallet/base_wallet.d.ts.map +1 -1
  182. package/dest/wallet/base_wallet.js +221 -106
  183. package/dest/wallet/deploy_account_method.d.ts +52 -0
  184. package/dest/wallet/deploy_account_method.d.ts.map +1 -0
  185. package/dest/wallet/deploy_account_method.js +77 -0
  186. package/dest/wallet/index.d.ts +3 -16
  187. package/dest/wallet/index.d.ts.map +1 -1
  188. package/dest/wallet/index.js +3 -20
  189. package/dest/wallet/wallet.d.ts +2478 -0
  190. package/dest/wallet/wallet.d.ts.map +1 -0
  191. package/dest/wallet/wallet.js +202 -0
  192. package/package.json +40 -32
  193. package/src/account/account.ts +97 -0
  194. package/src/account/{contract.ts → account_contract.ts} +24 -13
  195. package/src/{wallet/account_wallet_with_private_key.ts → account/account_with_secret_key.ts} +6 -8
  196. package/src/account/index.ts +3 -7
  197. package/src/account/interface.ts +1 -12
  198. package/src/account/signerless_account.ts +46 -0
  199. package/src/api/abi.ts +26 -0
  200. package/src/api/account.ts +5 -9
  201. package/src/api/addresses.ts +1 -0
  202. package/src/api/authorization.ts +14 -0
  203. package/src/api/block.ts +2 -0
  204. package/src/{contract/index.ts → api/contract.ts} +37 -13
  205. package/src/api/crypto.ts +1 -0
  206. package/src/api/deployment.ts +4 -3
  207. package/src/api/ethereum.ts +10 -0
  208. package/src/api/events.ts +44 -0
  209. package/src/api/fee.ts +1 -1
  210. package/src/api/fee_testing.ts +1 -0
  211. package/src/api/keys.ts +8 -0
  212. package/src/api/log.ts +1 -0
  213. package/src/api/messaging.ts +2 -0
  214. package/src/api/node.ts +20 -0
  215. package/src/api/note.ts +1 -0
  216. package/src/api/protocol.ts +2 -0
  217. package/src/api/trees.ts +2 -0
  218. package/src/api/tx.ts +11 -0
  219. package/src/api/utils.ts +14 -0
  220. package/src/api/wallet.ts +33 -5
  221. package/src/authorization/call_authorization_request.ts +63 -0
  222. package/src/contract/base_contract_interaction.ts +24 -166
  223. package/src/contract/batch_call.ts +81 -49
  224. package/src/contract/checker.ts +8 -3
  225. package/src/contract/contract.ts +8 -17
  226. package/src/contract/contract_base.ts +4 -11
  227. package/src/contract/contract_function_interaction.ts +136 -106
  228. package/src/contract/deploy_method.ts +199 -129
  229. package/src/contract/deploy_sent_tx.ts +9 -15
  230. package/src/contract/get_gas_limits.ts +15 -8
  231. package/src/contract/interaction_options.ts +169 -0
  232. package/src/contract/protocol_contracts.ts +10 -10
  233. package/src/contract/sent_tx.ts +40 -51
  234. package/src/contract/unsafe_contract.ts +1 -1
  235. package/src/contract/wait_for_proven.ts +38 -0
  236. package/src/deployment/broadcast_function.ts +57 -57
  237. package/src/deployment/contract_deployer.ts +1 -1
  238. package/src/deployment/publish_class.ts +34 -0
  239. package/src/deployment/publish_instance.ts +26 -0
  240. package/src/{api/ethereum → ethereum}/portal_manager.ts +120 -74
  241. package/src/fee/fee_juice_payment_method_with_claim.ts +46 -33
  242. package/src/fee/fee_payment_method.ts +11 -7
  243. package/src/fee/private_fee_payment_method.ts +77 -57
  244. package/src/fee/public_fee_payment_method.ts +91 -67
  245. package/src/fee/sponsored_fee_payment.ts +44 -0
  246. package/src/utils/authwit.ts +255 -53
  247. package/src/utils/cross_chain.ts +53 -0
  248. package/src/utils/fee_juice.ts +4 -4
  249. package/src/utils/node.ts +1 -1
  250. package/src/utils/pub_key.ts +1 -2
  251. package/src/wallet/account_entrypoint_meta_payment_method.ts +105 -0
  252. package/src/wallet/account_manager.ts +154 -0
  253. package/src/wallet/base_wallet.ts +295 -143
  254. package/src/wallet/deploy_account_method.ts +125 -0
  255. package/src/wallet/index.ts +3 -33
  256. package/src/wallet/wallet.ts +362 -0
  257. package/dest/account/contract.d.ts.map +0 -1
  258. package/dest/account/wallet.d.ts +0 -11
  259. package/dest/account/wallet.d.ts.map +0 -1
  260. package/dest/account/wallet.js +0 -3
  261. package/dest/account_manager/deploy_account_method.d.ts +0 -15
  262. package/dest/account_manager/deploy_account_method.d.ts.map +0 -1
  263. package/dest/account_manager/deploy_account_method.js +0 -43
  264. package/dest/account_manager/deploy_account_sent_tx.d.ts +0 -30
  265. package/dest/account_manager/deploy_account_sent_tx.d.ts.map +0 -1
  266. package/dest/account_manager/deploy_account_sent_tx.js +0 -29
  267. package/dest/account_manager/index.d.ts +0 -108
  268. package/dest/account_manager/index.d.ts.map +0 -1
  269. package/dest/account_manager/index.js +0 -159
  270. package/dest/api/cheat_codes.d.ts +0 -26
  271. package/dest/api/cheat_codes.d.ts.map +0 -1
  272. package/dest/api/cheat_codes.js +0 -25
  273. package/dest/api/entrypoint.d.ts +0 -2
  274. package/dest/api/entrypoint.d.ts.map +0 -1
  275. package/dest/api/entrypoint.js +0 -1
  276. package/dest/api/ethereum/anvil_test_watcher.d.ts +0 -32
  277. package/dest/api/ethereum/anvil_test_watcher.d.ts.map +0 -1
  278. package/dest/api/ethereum/anvil_test_watcher.js +0 -133
  279. package/dest/api/ethereum/chain_monitor.d.ts +0 -25
  280. package/dest/api/ethereum/chain_monitor.d.ts.map +0 -1
  281. package/dest/api/ethereum/chain_monitor.js +0 -74
  282. package/dest/api/ethereum/cheat_codes.d.ts +0 -63
  283. package/dest/api/ethereum/cheat_codes.d.ts.map +0 -1
  284. package/dest/api/ethereum/cheat_codes.js +0 -162
  285. package/dest/api/ethereum/index.d.ts +0 -7
  286. package/dest/api/ethereum/index.d.ts.map +0 -1
  287. package/dest/api/ethereum/index.js +0 -6
  288. package/dest/api/ethereum/l1_contracts.d.ts +0 -3
  289. package/dest/api/ethereum/l1_contracts.d.ts.map +0 -1
  290. package/dest/api/ethereum/l1_contracts.js +0 -13
  291. package/dest/api/ethereum/portal_manager.d.ts.map +0 -1
  292. package/dest/api/interfaces/pxe.d.ts +0 -2
  293. package/dest/api/interfaces/pxe.d.ts.map +0 -1
  294. package/dest/api/interfaces/pxe.js +0 -1
  295. package/dest/api/log_id.d.ts +0 -2
  296. package/dest/api/log_id.d.ts.map +0 -1
  297. package/dest/api/log_id.js +0 -1
  298. package/dest/api/tx_hash.d.ts +0 -2
  299. package/dest/api/tx_hash.d.ts.map +0 -1
  300. package/dest/api/tx_hash.js +0 -1
  301. package/dest/contract/deploy_proven_tx.d.ts +0 -21
  302. package/dest/contract/deploy_proven_tx.d.ts.map +0 -1
  303. package/dest/contract/deploy_proven_tx.js +0 -19
  304. package/dest/contract/index.d.ts.map +0 -1
  305. package/dest/contract/proven_tx.d.ts +0 -17
  306. package/dest/contract/proven_tx.d.ts.map +0 -1
  307. package/dest/contract/proven_tx.js +0 -22
  308. package/dest/deployment/deploy_instance.d.ts +0 -10
  309. package/dest/deployment/deploy_instance.d.ts.map +0 -1
  310. package/dest/deployment/deploy_instance.js +0 -14
  311. package/dest/deployment/index.d.ts +0 -2
  312. package/dest/deployment/index.d.ts.map +0 -1
  313. package/dest/deployment/index.js +0 -1
  314. package/dest/deployment/register_class.d.ts +0 -6
  315. package/dest/deployment/register_class.d.ts.map +0 -1
  316. package/dest/deployment/register_class.js +0 -22
  317. package/dest/entrypoint/default_entrypoint.d.ts +0 -12
  318. package/dest/entrypoint/default_entrypoint.d.ts.map +0 -1
  319. package/dest/entrypoint/default_entrypoint.js +0 -28
  320. package/dest/entrypoint/default_multi_call_entrypoint.d.ts +0 -15
  321. package/dest/entrypoint/default_multi_call_entrypoint.d.ts.map +0 -1
  322. package/dest/entrypoint/default_multi_call_entrypoint.js +0 -130
  323. package/dest/entrypoint/entrypoint.d.ts +0 -35
  324. package/dest/entrypoint/entrypoint.d.ts.map +0 -1
  325. package/dest/entrypoint/entrypoint.js +0 -4
  326. package/dest/entrypoint/payload.d.ts +0 -128
  327. package/dest/entrypoint/payload.d.ts.map +0 -1
  328. package/dest/entrypoint/payload.js +0 -143
  329. package/dest/fee/fee_juice_payment_method.d.ts +0 -14
  330. package/dest/fee/fee_juice_payment_method.d.ts.map +0 -1
  331. package/dest/fee/fee_juice_payment_method.js +0 -20
  332. package/dest/index.d.ts +0 -66
  333. package/dest/index.d.ts.map +0 -1
  334. package/dest/index.js +0 -69
  335. package/dest/rpc_clients/index.d.ts +0 -3
  336. package/dest/rpc_clients/index.d.ts.map +0 -1
  337. package/dest/rpc_clients/index.js +0 -2
  338. package/dest/rpc_clients/node/index.d.ts +0 -12
  339. package/dest/rpc_clients/node/index.d.ts.map +0 -1
  340. package/dest/rpc_clients/node/index.js +0 -78
  341. package/dest/rpc_clients/pxe_client.d.ts +0 -10
  342. package/dest/rpc_clients/pxe_client.d.ts.map +0 -1
  343. package/dest/rpc_clients/pxe_client.js +0 -23
  344. package/dest/utils/aztec_cheatcodes.d.ts +0 -59
  345. package/dest/utils/aztec_cheatcodes.d.ts.map +0 -1
  346. package/dest/utils/aztec_cheatcodes.js +0 -62
  347. package/dest/utils/index.d.ts +0 -8
  348. package/dest/utils/index.d.ts.map +0 -1
  349. package/dest/utils/index.js +0 -6
  350. package/dest/utils/pxe.d.ts +0 -4
  351. package/dest/utils/pxe.d.ts.map +0 -1
  352. package/dest/utils/pxe.js +0 -14
  353. package/dest/wallet/account_wallet.d.ts +0 -76
  354. package/dest/wallet/account_wallet.d.ts.map +0 -1
  355. package/dest/wallet/account_wallet.js +0 -231
  356. package/dest/wallet/account_wallet_with_private_key.d.ts.map +0 -1
  357. package/dest/wallet/signerless_wallet.d.ts +0 -25
  358. package/dest/wallet/signerless_wallet.d.ts.map +0 -1
  359. package/dest/wallet/signerless_wallet.js +0 -36
  360. package/src/account/wallet.ts +0 -13
  361. package/src/account_manager/deploy_account_method.ts +0 -86
  362. package/src/account_manager/deploy_account_sent_tx.ts +0 -42
  363. package/src/account_manager/index.ts +0 -229
  364. package/src/api/cheat_codes.ts +0 -35
  365. package/src/api/entrypoint.ts +0 -1
  366. package/src/api/ethereum/anvil_test_watcher.ts +0 -158
  367. package/src/api/ethereum/chain_monitor.ts +0 -88
  368. package/src/api/ethereum/cheat_codes.ts +0 -184
  369. package/src/api/ethereum/index.ts +0 -19
  370. package/src/api/ethereum/l1_contracts.ts +0 -21
  371. package/src/api/interfaces/pxe.ts +0 -1
  372. package/src/api/log_id.ts +0 -1
  373. package/src/api/tx_hash.ts +0 -1
  374. package/src/contract/deploy_proven_tx.ts +0 -34
  375. package/src/contract/proven_tx.ts +0 -42
  376. package/src/deployment/deploy_instance.ts +0 -31
  377. package/src/deployment/index.ts +0 -1
  378. package/src/deployment/register_class.ts +0 -44
  379. package/src/entrypoint/default_entrypoint.ts +0 -39
  380. package/src/entrypoint/default_multi_call_entrypoint.ts +0 -93
  381. package/src/entrypoint/entrypoint.ts +0 -39
  382. package/src/entrypoint/payload.ts +0 -238
  383. package/src/fee/fee_juice_payment_method.ts +0 -26
  384. package/src/index.ts +0 -106
  385. package/src/rpc_clients/index.ts +0 -2
  386. package/src/rpc_clients/node/index.ts +0 -77
  387. package/src/rpc_clients/pxe_client.ts +0 -25
  388. package/src/utils/aztec_cheatcodes.ts +0 -77
  389. package/src/utils/index.ts +0 -21
  390. package/src/utils/pxe.ts +0 -17
  391. package/src/wallet/account_wallet.ts +0 -242
  392. package/src/wallet/signerless_wallet.ts +0 -52
@@ -1,36 +0,0 @@
1
- import { DefaultEntrypoint } from '../entrypoint/default_entrypoint.js';
2
- import { BaseWallet } from './base_wallet.js';
3
- /**
4
- * Wallet implementation which creates a transaction request directly to the requested contract without any signing.
5
- */ export class SignerlessWallet extends BaseWallet {
6
- entrypoint;
7
- constructor(pxe, entrypoint){
8
- super(pxe), this.entrypoint = entrypoint;
9
- }
10
- async createTxExecutionRequest(execution) {
11
- let entrypoint = this.entrypoint;
12
- if (!entrypoint) {
13
- const { l1ChainId: chainId, protocolVersion } = await this.pxe.getNodeInfo();
14
- entrypoint = new DefaultEntrypoint(chainId, protocolVersion);
15
- }
16
- return entrypoint.createTxExecutionRequest(execution);
17
- }
18
- getChainId() {
19
- throw new Error('SignerlessWallet: Method getChainId not implemented.');
20
- }
21
- getVersion() {
22
- throw new Error('SignerlessWallet: Method getVersion not implemented.');
23
- }
24
- getPublicKeysHash() {
25
- throw new Error('SignerlessWallet: Method getPublicKeysHash not implemented.');
26
- }
27
- getCompleteAddress() {
28
- throw new Error('SignerlessWallet: Method getCompleteAddress not implemented.');
29
- }
30
- createAuthWit(_intent) {
31
- throw new Error('SignerlessWallet: Method createAuthWit not implemented.');
32
- }
33
- isL1ToL2MessageSynced(l1ToL2Message) {
34
- return this.pxe.isL1ToL2MessageSynced(l1ToL2Message);
35
- }
36
- }
@@ -1,13 +0,0 @@
1
- import type { AuthWitness } from '@aztec/stdlib/auth-witness';
2
- import type { PXE } from '@aztec/stdlib/interfaces/client';
3
-
4
- import type { IntentAction, IntentInnerHash } from '../utils/authwit.js';
5
- import type { AccountInterface } from './interface.js';
6
-
7
- /**
8
- * The wallet interface.
9
- */
10
- export type Wallet = AccountInterface &
11
- PXE & {
12
- createAuthWit(intent: IntentInnerHash | IntentAction): Promise<AuthWitness>;
13
- };
@@ -1,86 +0,0 @@
1
- import {
2
- type ContractArtifact,
3
- type FunctionArtifact,
4
- FunctionSelector,
5
- encodeArguments,
6
- getFunctionArtifactByName,
7
- } from '@aztec/stdlib/abi';
8
- import type { PublicKeys } from '@aztec/stdlib/keys';
9
-
10
- import type { AuthWitnessProvider } from '../account/interface.js';
11
- import type { Wallet } from '../account/wallet.js';
12
- import type { ExecutionRequestInit } from '../api/entrypoint.js';
13
- import { Contract } from '../contract/contract.js';
14
- import { DeployMethod, type DeployOptions } from '../contract/deploy_method.js';
15
- import { EntrypointPayload, computeCombinedPayloadHash } from '../entrypoint/payload.js';
16
-
17
- /**
18
- * Contract interaction for deploying an account contract. Handles fee preparation and contract initialization.
19
- */
20
- export class DeployAccountMethod extends DeployMethod {
21
- #authWitnessProvider: AuthWitnessProvider;
22
- #feePaymentArtifact: FunctionArtifact | undefined;
23
-
24
- constructor(
25
- authWitnessProvider: AuthWitnessProvider,
26
- publicKeys: PublicKeys,
27
- wallet: Wallet,
28
- artifact: ContractArtifact,
29
- args: any[] = [],
30
- constructorNameOrArtifact?: string | FunctionArtifact,
31
- feePaymentNameOrArtifact?: string | FunctionArtifact,
32
- ) {
33
- super(
34
- publicKeys,
35
- wallet,
36
- artifact,
37
- (address, wallet) => Contract.at(address, artifact, wallet),
38
- args,
39
- constructorNameOrArtifact,
40
- );
41
-
42
- this.#authWitnessProvider = authWitnessProvider;
43
- this.#feePaymentArtifact =
44
- typeof feePaymentNameOrArtifact === 'string'
45
- ? getFunctionArtifactByName(artifact, feePaymentNameOrArtifact)
46
- : feePaymentNameOrArtifact;
47
- }
48
-
49
- protected override async getInitializeFunctionCalls(
50
- options: DeployOptions,
51
- ): Promise<Pick<ExecutionRequestInit, 'calls' | 'authWitnesses' | 'hashedArguments'>> {
52
- const exec = await super.getInitializeFunctionCalls(options);
53
-
54
- if (options.fee && this.#feePaymentArtifact) {
55
- const { address } = await this.getInstance();
56
- const emptyAppPayload = await EntrypointPayload.fromAppExecution([]);
57
- const fee = await this.getDefaultFeeOptions(options.fee);
58
- const feePayload = await EntrypointPayload.fromFeeOptions(address, fee);
59
-
60
- exec.calls.push({
61
- name: this.#feePaymentArtifact.name,
62
- to: address,
63
- args: encodeArguments(this.#feePaymentArtifact, [emptyAppPayload, feePayload, false]),
64
- selector: await FunctionSelector.fromNameAndParameters(
65
- this.#feePaymentArtifact.name,
66
- this.#feePaymentArtifact.parameters,
67
- ),
68
- type: this.#feePaymentArtifact.functionType,
69
- isStatic: this.#feePaymentArtifact.isStatic,
70
- returnTypes: this.#feePaymentArtifact.returnTypes,
71
- });
72
-
73
- exec.authWitnesses ??= [];
74
- exec.hashedArguments ??= [];
75
-
76
- exec.authWitnesses.push(
77
- await this.#authWitnessProvider.createAuthWit(await computeCombinedPayloadHash(emptyAppPayload, feePayload)),
78
- );
79
-
80
- exec.hashedArguments.push(...emptyAppPayload.hashedArguments);
81
- exec.hashedArguments.push(...feePayload.hashedArguments);
82
- }
83
-
84
- return exec;
85
- }
86
- }
@@ -1,42 +0,0 @@
1
- import type { FieldsOf } from '@aztec/foundation/types';
2
- import type { PXE } from '@aztec/stdlib/interfaces/client';
3
- import type { TxHash, TxReceipt } from '@aztec/stdlib/tx';
4
-
5
- import type { Wallet } from '../account/index.js';
6
- import { DefaultWaitOpts, SentTx, type WaitOpts } from '../contract/sent_tx.js';
7
-
8
- /** Extends a transaction receipt with a wallet instance for the newly deployed contract. */
9
- export type DeployAccountTxReceipt = FieldsOf<TxReceipt> & {
10
- /** Wallet that corresponds to the newly deployed account contract. */
11
- wallet: Wallet;
12
- };
13
-
14
- /**
15
- * A deployment transaction for an account contract sent to the network, extending SentTx with methods to get the resulting wallet.
16
- */
17
- export class DeployAccountSentTx extends SentTx {
18
- constructor(pxe: PXE, txHashPromise: Promise<TxHash>, private getWalletPromise: Promise<Wallet>) {
19
- super(pxe, txHashPromise);
20
- }
21
-
22
- /**
23
- * Awaits for the tx to be mined and returns the contract instance. Throws if tx is not mined.
24
- * @param opts - Options for configuring the waiting for the tx to be mined.
25
- * @returns The deployed contract instance.
26
- */
27
- public async getWallet(opts?: WaitOpts): Promise<Wallet> {
28
- const receipt = await this.wait(opts);
29
- return receipt.wallet;
30
- }
31
-
32
- /**
33
- * Awaits for the tx to be mined and returns the receipt along with a wallet instance. Throws if tx is not mined.
34
- * @param opts - Options for configuring the waiting for the tx to be mined.
35
- * @returns The transaction receipt with the wallet for the deployed account contract.
36
- */
37
- public override async wait(opts: WaitOpts = DefaultWaitOpts): Promise<DeployAccountTxReceipt> {
38
- const receipt = await super.wait(opts);
39
- const wallet = await this.getWalletPromise;
40
- return { ...receipt, wallet };
41
- }
42
- }
@@ -1,229 +0,0 @@
1
- import { Fr } from '@aztec/foundation/fields';
2
- import { CompleteAddress, type ContractInstanceWithAddress } from '@aztec/stdlib/contract';
3
- import { getContractInstanceFromDeployParams } from '@aztec/stdlib/contract';
4
- import type { PXE } from '@aztec/stdlib/interfaces/client';
5
- import { deriveKeys } from '@aztec/stdlib/keys';
6
-
7
- import type { AccountContract } from '../account/contract.js';
8
- import type { Salt, Wallet } from '../account/index.js';
9
- import type { AccountInterface } from '../account/interface.js';
10
- import { DeployMethod, type DeployOptions } from '../contract/deploy_method.js';
11
- import { Contract } from '../contract/index.js';
12
- import { DefaultWaitOpts, type WaitOpts } from '../contract/sent_tx.js';
13
- import { DefaultMultiCallEntrypoint } from '../entrypoint/default_multi_call_entrypoint.js';
14
- import { AccountWalletWithSecretKey, SignerlessWallet } from '../wallet/index.js';
15
- import { DeployAccountMethod } from './deploy_account_method.js';
16
- import { DeployAccountSentTx } from './deploy_account_sent_tx.js';
17
-
18
- /**
19
- * Options to deploy an account contract.
20
- */
21
- export type DeployAccountOptions = Pick<
22
- DeployOptions,
23
- 'fee' | 'skipClassRegistration' | 'skipPublicDeployment' | 'skipInitialization'
24
- > & {
25
- /**
26
- * Wallet used for deploying the account contract. Must be funded in order to pay for the fee.
27
- */
28
- deployWallet?: Wallet;
29
- };
30
-
31
- /**
32
- * Manages a user account. Provides methods for calculating the account's address, deploying the account contract,
33
- * and creating and registering the user wallet in the PXE Service.
34
- */
35
- export class AccountManager {
36
- private constructor(
37
- private pxe: PXE,
38
- private secretKey: Fr,
39
- private accountContract: AccountContract,
40
- private instance: ContractInstanceWithAddress,
41
- /**
42
- * Deployment salt for the account contract
43
- */
44
- public readonly salt: Salt,
45
- ) {}
46
-
47
- static async create(pxe: PXE, secretKey: Fr, accountContract: AccountContract, salt?: Salt) {
48
- const { publicKeys } = await deriveKeys(secretKey);
49
- salt = salt !== undefined ? new Fr(salt) : Fr.random();
50
-
51
- const artifact = await accountContract.getContractArtifact();
52
- const instance = await getContractInstanceFromDeployParams(artifact, {
53
- constructorArgs: await accountContract.getDeploymentArgs(),
54
- salt: salt,
55
- publicKeys,
56
- });
57
-
58
- return new AccountManager(pxe, secretKey, accountContract, instance, salt);
59
- }
60
-
61
- protected getPublicKeys() {
62
- return this.instance.publicKeys;
63
- }
64
-
65
- protected getPublicKeysHash() {
66
- return this.getPublicKeys().hash();
67
- }
68
-
69
- /**
70
- * Returns the entrypoint for this account as defined by its account contract.
71
- * @returns An entrypoint.
72
- */
73
- public async getAccount(): Promise<AccountInterface> {
74
- const nodeInfo = await this.pxe.getNodeInfo();
75
- const completeAddress = await this.getCompleteAddress();
76
- return this.accountContract.getInterface(completeAddress, nodeInfo);
77
- }
78
-
79
- /**
80
- * Gets the calculated complete address associated with this account.
81
- * Does not require the account to be deployed or registered.
82
- * @returns The address, partial address, and encryption public key.
83
- */
84
- public getCompleteAddress(): Promise<CompleteAddress> {
85
- return CompleteAddress.fromSecretKeyAndInstance(this.secretKey, this.instance);
86
- }
87
-
88
- /**
89
- * Gets the address for this given account.
90
- * Does not require the account to be deployed or registered.
91
- * @returns The address.
92
- */
93
- public getAddress() {
94
- return this.instance.address;
95
- }
96
-
97
- /**
98
- * Returns the contract instance definition associated with this account.
99
- * Does not require the account to be deployed or registered.
100
- * @returns ContractInstance instance.
101
- */
102
- public getInstance(): ContractInstanceWithAddress {
103
- return this.instance;
104
- }
105
-
106
- /**
107
- * Returns a Wallet instance associated with this account. Use it to create Contract
108
- * instances to be interacted with from this account.
109
- * @returns A Wallet instance.
110
- */
111
- public async getWallet(): Promise<AccountWalletWithSecretKey> {
112
- const entrypoint = await this.getAccount();
113
- return new AccountWalletWithSecretKey(this.pxe, entrypoint, this.secretKey, this.salt);
114
- }
115
-
116
- /**
117
- * Registers this account in the PXE Service and returns the associated wallet. Registering
118
- * the account on the PXE Service is required for managing private state associated with it.
119
- * Use the returned wallet to create Contract instances to be interacted with from this account.
120
- * @param opts - Options to wait for the account to be synched.
121
- * @returns A Wallet instance.
122
- */
123
- public async register(): Promise<AccountWalletWithSecretKey> {
124
- await this.pxe.registerContract({
125
- artifact: await this.accountContract.getContractArtifact(),
126
- instance: this.getInstance(),
127
- });
128
-
129
- await this.pxe.registerAccount(this.secretKey, (await this.getCompleteAddress()).partialAddress);
130
-
131
- return this.getWallet();
132
- }
133
-
134
- /**
135
- * Returns the pre-populated deployment method to deploy the account contract that backs this account.
136
- * Typically you will not need this method and can call `deploy` directly. Use this for having finer
137
- * grained control on when to create, simulate, and send the deployment tx.
138
- * @param deployWallet - Wallet used for deploying the account contract.
139
- * @returns A DeployMethod instance that deploys this account contract.
140
- */
141
- public async getDeployMethod(deployWallet?: Wallet) {
142
- const artifact = await this.accountContract.getContractArtifact();
143
-
144
- if (!(await this.isDeployable())) {
145
- throw new Error(`Account contract ${artifact.name} does not require deployment.`);
146
- }
147
-
148
- const completeAddress = await this.getCompleteAddress();
149
-
150
- await this.pxe.registerAccount(this.secretKey, completeAddress.partialAddress);
151
-
152
- const args = (await this.accountContract.getDeploymentArgs()) ?? [];
153
-
154
- if (deployWallet) {
155
- // If deploying using an existing wallet/account, treat it like regular contract deployment.
156
- const thisWallet = await this.getWallet();
157
- return new DeployMethod(
158
- this.getPublicKeys(),
159
- deployWallet,
160
- artifact,
161
- address => Contract.at(address, artifact, thisWallet),
162
- args,
163
- 'constructor',
164
- );
165
- }
166
-
167
- const { l1ChainId: chainId, protocolVersion } = await this.pxe.getNodeInfo();
168
- // We use a signerless wallet with the multi call entrypoint in order to make multiple calls in one go.
169
- // If we used getWallet, the deployment would get routed via the account contract entrypoint
170
- // and it can't be used unless the contract is initialized.
171
- const wallet = new SignerlessWallet(this.pxe, new DefaultMultiCallEntrypoint(chainId, protocolVersion));
172
-
173
- return new DeployAccountMethod(
174
- this.accountContract.getAuthWitnessProvider(completeAddress),
175
- this.getPublicKeys(),
176
- wallet,
177
- artifact,
178
- args,
179
- 'constructor',
180
- 'entrypoint',
181
- );
182
- }
183
-
184
- /**
185
- * Deploys the account contract that backs this account.
186
- * Does not register the associated class nor publicly deploy the instance by default.
187
- * Uses the salt provided in the constructor or a randomly generated one.
188
- * Registers the account in the PXE Service before deploying the contract.
189
- * @param opts - Fee options to be used for the deployment.
190
- * @returns A SentTx object that can be waited to get the associated Wallet.
191
- */
192
- public deploy(opts?: DeployAccountOptions): DeployAccountSentTx {
193
- const sentTx = this.getDeployMethod(opts?.deployWallet)
194
- .then(deployMethod =>
195
- deployMethod.send({
196
- contractAddressSalt: new Fr(this.salt),
197
- skipClassRegistration: opts?.skipClassRegistration ?? true,
198
- skipPublicDeployment: opts?.skipPublicDeployment ?? true,
199
- skipInitialization: opts?.skipInitialization ?? false,
200
- universalDeploy: true,
201
- fee: opts?.fee,
202
- }),
203
- )
204
- .then(tx => tx.getTxHash());
205
- return new DeployAccountSentTx(this.pxe, sentTx, this.getWallet());
206
- }
207
-
208
- /**
209
- * Deploys the account contract that backs this account if needed and awaits the tx to be mined.
210
- * Uses the salt provided in the constructor or a randomly generated one. If no initialization
211
- * is required it skips the transaction, and only registers the account in the PXE Service.
212
- * @param opts - Options to wait for the tx to be mined.
213
- * @returns A Wallet instance.
214
- */
215
- public async waitSetup(opts: DeployAccountOptions & WaitOpts = DefaultWaitOpts): Promise<AccountWalletWithSecretKey> {
216
- await ((await this.isDeployable()) ? this.deploy(opts).wait(opts) : this.register());
217
- return this.getWallet();
218
- }
219
-
220
- /**
221
- * Returns whether this account contract has a constructor and needs deployment.
222
- */
223
- public async isDeployable() {
224
- return (await this.accountContract.getDeploymentArgs()) !== undefined;
225
- }
226
- }
227
-
228
- export { DeployAccountMethod } from './deploy_account_method.js';
229
- export { type DeployAccountTxReceipt, DeployAccountSentTx } from './deploy_account_sent_tx.js';
@@ -1,35 +0,0 @@
1
- import { EthCheatCodes } from '@aztec/ethereum/eth-cheatcodes';
2
- import type { L1ContractAddresses } from '@aztec/ethereum/l1-contract-addresses';
3
- import type { PXE } from '@aztec/stdlib/interfaces/client';
4
-
5
- import { AztecCheatCodes } from '../utils/aztec_cheatcodes.js';
6
- import { RollupCheatCodes } from './ethereum/cheat_codes.js';
7
-
8
- /**
9
- * A class that provides utility functions for interacting with the chain.
10
- */
11
- export class CheatCodes {
12
- constructor(
13
- /** Cheat codes for L1.*/
14
- public eth: EthCheatCodes,
15
- /** Cheat codes for Aztec L2. */
16
- public aztec: AztecCheatCodes,
17
- /** Cheat codes for the Aztec Rollup contract on L1. */
18
- public rollup: RollupCheatCodes,
19
- ) {}
20
-
21
- static async create(rpcUrls: string[], pxe: PXE): Promise<CheatCodes> {
22
- const ethCheatCodes = new EthCheatCodes(rpcUrls);
23
- const aztecCheatCodes = new AztecCheatCodes(pxe);
24
- const rollupCheatCodes = new RollupCheatCodes(
25
- ethCheatCodes,
26
- await pxe.getNodeInfo().then(n => n.l1ContractAddresses),
27
- );
28
- return new CheatCodes(ethCheatCodes, aztecCheatCodes, rollupCheatCodes);
29
- }
30
-
31
- static createRollup(rpcUrls: string[], addresses: Pick<L1ContractAddresses, 'rollupAddress'>): RollupCheatCodes {
32
- const ethCheatCodes = new EthCheatCodes(rpcUrls);
33
- return new RollupCheatCodes(ethCheatCodes, addresses);
34
- }
35
- }
@@ -1 +0,0 @@
1
- export * from '../entrypoint/entrypoint.js';
@@ -1,158 +0,0 @@
1
- import type { ViemPublicClient } from '@aztec/ethereum';
2
- import type { EthCheatCodes } from '@aztec/ethereum/eth-cheatcodes';
3
- import type { EthAddress } from '@aztec/foundation/eth-address';
4
- import { type Logger, createLogger } from '@aztec/foundation/log';
5
- import { RunningPromise } from '@aztec/foundation/running-promise';
6
- import type { TestDateProvider } from '@aztec/foundation/timer';
7
- import { RollupAbi } from '@aztec/l1-artifacts';
8
-
9
- import { type GetContractReturnType, getAddress, getContract } from 'viem';
10
-
11
- import { RollupCheatCodes } from './cheat_codes.js';
12
-
13
- /**
14
- * Represents a watcher for a rollup contract.
15
- *
16
- * It started on a network like anvil where time traveling is allowed, and auto-mine is turned on
17
- * it will periodically check if the current slot have already been filled, e.g., there was an L2
18
- * block within the slot. And if so, it will time travel into the next slot.
19
- */
20
- export class AnvilTestWatcher {
21
- private isSandbox: boolean = false;
22
-
23
- private rollup: GetContractReturnType<typeof RollupAbi, ViemPublicClient>;
24
- private rollupCheatCodes: RollupCheatCodes;
25
-
26
- private filledRunningPromise?: RunningPromise;
27
- private mineIfOutdatedPromise?: RunningPromise;
28
- private markingAsProvenRunningPromise?: RunningPromise;
29
-
30
- private logger: Logger = createLogger(`aztecjs:utils:watcher`);
31
-
32
- private isMarkingAsProven = true;
33
-
34
- constructor(
35
- private cheatcodes: EthCheatCodes,
36
- rollupAddress: EthAddress,
37
- publicClient: ViemPublicClient,
38
- private dateProvider?: TestDateProvider,
39
- ) {
40
- this.rollup = getContract({
41
- address: getAddress(rollupAddress.toString()),
42
- abi: RollupAbi,
43
- client: publicClient,
44
- });
45
-
46
- this.rollupCheatCodes = new RollupCheatCodes(this.cheatcodes, {
47
- rollupAddress,
48
- });
49
-
50
- this.logger.debug(`Watcher created for rollup at ${rollupAddress}`);
51
- }
52
-
53
- setIsMarkingAsProven(isMarkingAsProven: boolean) {
54
- this.isMarkingAsProven = isMarkingAsProven;
55
- }
56
-
57
- setIsSandbox(isSandbox: boolean) {
58
- this.isSandbox = isSandbox;
59
- }
60
-
61
- async start() {
62
- if (this.filledRunningPromise) {
63
- throw new Error('Watcher already watching for filled slot');
64
- }
65
-
66
- // If auto mining is not supported (e.g., we are on a real network), then we
67
- // will simple do nothing. But if on an anvil or the like, this make sure that
68
- // the sandbox and tests don't break because time is frozen and we never get to
69
- // the next slot.
70
- const isAutoMining = await this.cheatcodes.isAutoMining();
71
-
72
- if (isAutoMining) {
73
- this.filledRunningPromise = new RunningPromise(() => this.warpTimeIfNeeded(), this.logger, 1000);
74
- this.filledRunningPromise.start();
75
- this.mineIfOutdatedPromise = new RunningPromise(() => this.mineIfOutdated(), this.logger, 1000);
76
- this.mineIfOutdatedPromise.start();
77
- this.markingAsProvenRunningPromise = new RunningPromise(() => this.markAsProven(), this.logger, 1000);
78
- this.markingAsProvenRunningPromise.start();
79
- this.logger.info(`Watcher started for rollup at ${this.rollup.address}`);
80
- } else {
81
- this.logger.info(`Watcher not started because not auto mining`);
82
- }
83
- }
84
-
85
- async stop() {
86
- await this.filledRunningPromise?.stop();
87
- await this.mineIfOutdatedPromise?.stop();
88
- await this.markingAsProvenRunningPromise?.stop();
89
- }
90
-
91
- async markAsProven() {
92
- if (!this.isMarkingAsProven) {
93
- return;
94
- }
95
- await this.rollupCheatCodes.markAsProven();
96
- }
97
-
98
- async mineIfOutdated() {
99
- // this doesn't apply to the sandbox, because we don't have a date provider in the sandbox
100
- if (!this.dateProvider) {
101
- return;
102
- }
103
-
104
- const l1Time = (await this.cheatcodes.timestamp()) * 1000;
105
- const wallTime = this.dateProvider.now();
106
-
107
- // If the wall time is more than 24 seconds away from L1 time,
108
- // mine a block and sync the clocks
109
- if (Math.abs(wallTime - l1Time) > 24 * 1000) {
110
- this.logger.warn(`Wall time is more than 24 seconds away from L1 time, mining a block and syncing clocks`);
111
- await this.cheatcodes.evmMine();
112
- const newL1Time = await this.cheatcodes.timestamp();
113
- this.logger.info(`New L1 time: ${newL1Time}`);
114
- this.dateProvider.setTime(newL1Time * 1000);
115
- }
116
- }
117
-
118
- async warpTimeIfNeeded() {
119
- try {
120
- const currentSlot = await this.rollup.read.getCurrentSlot();
121
- const pendingBlockNumber = BigInt(await this.rollup.read.getPendingBlockNumber());
122
- const blockLog = await this.rollup.read.getBlock([pendingBlockNumber]);
123
- const nextSlotTimestamp = Number(await this.rollup.read.getTimestampForSlot([currentSlot + 1n]));
124
-
125
- if (currentSlot === blockLog.slotNumber) {
126
- // We should jump to the next slot
127
- try {
128
- await this.cheatcodes.warp(nextSlotTimestamp);
129
- this.dateProvider?.setTime(nextSlotTimestamp * 1000);
130
- } catch (e) {
131
- this.logger.error(`Failed to warp to timestamp ${nextSlotTimestamp}: ${e}`);
132
- }
133
-
134
- this.logger.info(`Slot ${currentSlot} was filled, jumped to next slot`);
135
- return;
136
- }
137
-
138
- // If we are not in sandbox, we don't need to warp time
139
- if (!this.isSandbox) {
140
- return;
141
- }
142
-
143
- const currentTimestamp = this.dateProvider?.now() ?? Date.now();
144
- if (currentTimestamp > nextSlotTimestamp * 1000) {
145
- try {
146
- await this.cheatcodes.warp(nextSlotTimestamp);
147
- this.dateProvider?.setTime(nextSlotTimestamp * 1000);
148
- } catch (e) {
149
- this.logger.error(`Failed to warp to timestamp ${nextSlotTimestamp}: ${e}`);
150
- }
151
-
152
- this.logger.info(`Slot ${currentSlot} was missed, jumped to next slot`);
153
- }
154
- } catch (err) {
155
- this.logger.error('mineIfSlotFilled failed');
156
- }
157
- }
158
- }