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

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 (450) hide show
  1. package/README.md +1 -1
  2. package/dest/account/account.d.ts +44 -0
  3. package/dest/account/account.d.ts.map +1 -0
  4. package/dest/account/account.js +31 -0
  5. package/dest/account/account_contract.d.ts +42 -0
  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/account/account_with_secret_key.d.ts +36 -0
  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} +22 -5
  11. package/dest/account/index.d.ts +6 -9
  12. package/dest/account/index.d.ts.map +1 -1
  13. package/dest/account/index.js +4 -6
  14. package/dest/account/signerless_account.d.ts +22 -0
  15. package/dest/account/signerless_account.d.ts.map +1 -0
  16. package/dest/account/signerless_account.js +24 -0
  17. package/dest/api/abi.d.ts +3 -2
  18. package/dest/api/abi.d.ts.map +1 -1
  19. package/dest/api/abi.js +1 -1
  20. package/dest/api/account.d.ts +5 -3
  21. package/dest/api/account.d.ts.map +1 -1
  22. package/dest/api/account.js +3 -2
  23. package/dest/api/addresses.d.ts +2 -1
  24. package/dest/api/addresses.d.ts.map +1 -1
  25. package/dest/api/addresses.js +1 -0
  26. package/dest/api/authorization.d.ts +5 -0
  27. package/dest/api/authorization.d.ts.map +1 -0
  28. package/dest/api/authorization.js +4 -0
  29. package/dest/api/block.d.ts +3 -0
  30. package/dest/api/block.d.ts.map +1 -0
  31. package/dest/api/block.js +2 -0
  32. package/dest/api/contract.d.ts +55 -0
  33. package/dest/api/contract.d.ts.map +1 -0
  34. package/dest/api/contract.js +53 -0
  35. package/dest/api/crypto.d.ts +2 -0
  36. package/dest/api/crypto.d.ts.map +1 -0
  37. package/dest/api/crypto.js +1 -0
  38. package/dest/api/deployment.d.ts +5 -4
  39. package/dest/api/deployment.d.ts.map +1 -1
  40. package/dest/api/deployment.js +4 -3
  41. package/dest/api/eth_address.d.ts +1 -1
  42. package/dest/api/ethereum.d.ts +2 -0
  43. package/dest/api/ethereum.d.ts.map +1 -0
  44. package/dest/api/ethereum.js +1 -0
  45. package/dest/api/events.d.ts +12 -0
  46. package/dest/api/events.d.ts.map +1 -0
  47. package/dest/api/events.js +30 -0
  48. package/dest/api/fee.d.ts +2 -2
  49. package/dest/api/fee.d.ts.map +1 -1
  50. package/dest/api/fee.js +1 -1
  51. package/dest/api/fee_testing.d.ts +2 -0
  52. package/dest/api/fee_testing.d.ts.map +1 -0
  53. package/dest/api/fee_testing.js +1 -0
  54. package/dest/api/fields.d.ts +3 -2
  55. package/dest/api/fields.d.ts.map +1 -1
  56. package/dest/api/fields.js +2 -1
  57. package/dest/api/keys.d.ts +4 -0
  58. package/dest/api/keys.d.ts.map +1 -0
  59. package/dest/api/keys.js +3 -0
  60. package/dest/api/log.d.ts +2 -1
  61. package/dest/api/log.d.ts.map +1 -1
  62. package/dest/api/log.js +1 -0
  63. package/dest/api/messaging.d.ts +3 -0
  64. package/dest/api/messaging.d.ts.map +1 -0
  65. package/dest/api/messaging.js +2 -0
  66. package/dest/api/node.d.ts +25 -0
  67. package/dest/api/node.d.ts.map +1 -0
  68. package/dest/api/node.js +22 -0
  69. package/dest/api/note.d.ts +2 -0
  70. package/dest/api/note.d.ts.map +1 -0
  71. package/dest/api/note.js +1 -0
  72. package/dest/api/protocol.d.ts +9 -0
  73. package/dest/api/protocol.d.ts.map +1 -0
  74. package/dest/api/protocol.js +8 -0
  75. package/dest/api/trees.d.ts +3 -0
  76. package/dest/api/trees.d.ts.map +1 -0
  77. package/dest/api/trees.js +2 -0
  78. package/dest/api/tx.d.ts +2 -0
  79. package/dest/api/tx.d.ts.map +1 -0
  80. package/dest/api/tx.js +1 -0
  81. package/dest/api/utils.d.ts +13 -0
  82. package/dest/api/utils.d.ts.map +1 -0
  83. package/dest/api/utils.js +12 -0
  84. package/dest/api/wallet.d.ts +5 -2
  85. package/dest/api/wallet.d.ts.map +1 -1
  86. package/dest/api/wallet.js +4 -1
  87. package/dest/authorization/call_authorization_request.d.ts +67 -0
  88. package/dest/authorization/call_authorization_request.d.ts.map +1 -0
  89. package/dest/authorization/call_authorization_request.js +49 -0
  90. package/dest/contract/base_contract_interaction.d.ts +18 -84
  91. package/dest/contract/base_contract_interaction.d.ts.map +1 -1
  92. package/dest/contract/base_contract_interaction.js +11 -136
  93. package/dest/contract/batch_call.d.ts +19 -21
  94. package/dest/contract/batch_call.d.ts.map +1 -1
  95. package/dest/contract/batch_call.js +89 -69
  96. package/dest/contract/checker.d.ts +2 -2
  97. package/dest/contract/checker.d.ts.map +1 -1
  98. package/dest/contract/checker.js +2 -2
  99. package/dest/contract/contract.d.ts +9 -8
  100. package/dest/contract/contract.d.ts.map +1 -1
  101. package/dest/contract/contract.js +10 -20
  102. package/dest/contract/contract_base.d.ts +8 -18
  103. package/dest/contract/contract_base.d.ts.map +1 -1
  104. package/dest/contract/contract_base.js +7 -14
  105. package/dest/contract/contract_function_interaction.d.ts +53 -45
  106. package/dest/contract/contract_function_interaction.d.ts.map +1 -1
  107. package/dest/contract/contract_function_interaction.js +78 -74
  108. package/dest/contract/deploy_method.d.ts +155 -62
  109. package/dest/contract/deploy_method.d.ts.map +1 -1
  110. package/dest/contract/deploy_method.js +152 -142
  111. package/dest/contract/get_gas_limits.d.ts +6 -7
  112. package/dest/contract/get_gas_limits.d.ts.map +1 -1
  113. package/dest/contract/get_gas_limits.js +9 -3
  114. package/dest/contract/interaction_options.d.ts +151 -0
  115. package/dest/contract/interaction_options.d.ts.map +1 -0
  116. package/dest/contract/interaction_options.js +53 -0
  117. package/dest/contract/protocol_contracts/auth-registry.d.ts +27 -0
  118. package/dest/contract/protocol_contracts/auth-registry.d.ts.map +1 -0
  119. package/dest/contract/protocol_contracts/auth-registry.js +558 -0
  120. package/dest/contract/protocol_contracts/contract-class-registry.d.ts +26 -0
  121. package/dest/contract/protocol_contracts/contract-class-registry.d.ts.map +1 -0
  122. package/dest/contract/protocol_contracts/contract-class-registry.js +385 -0
  123. package/dest/contract/protocol_contracts/contract-instance-registry.d.ts +22 -0
  124. package/dest/contract/protocol_contracts/contract-instance-registry.d.ts.map +1 -0
  125. package/dest/contract/protocol_contracts/contract-instance-registry.js +465 -0
  126. package/dest/contract/protocol_contracts/fee-juice.d.ts +21 -0
  127. package/dest/contract/protocol_contracts/fee-juice.d.ts.map +1 -0
  128. package/dest/contract/protocol_contracts/fee-juice.js +426 -0
  129. package/dest/contract/protocol_contracts/multi-call-entrypoint.d.ts +34 -0
  130. package/dest/contract/protocol_contracts/multi-call-entrypoint.d.ts.map +1 -0
  131. package/dest/contract/protocol_contracts/multi-call-entrypoint.js +585 -0
  132. package/dest/contract/protocol_contracts/public-checks.d.ts +26 -0
  133. package/dest/contract/protocol_contracts/public-checks.d.ts.map +1 -0
  134. package/dest/contract/protocol_contracts/public-checks.js +593 -0
  135. package/dest/contract/wait_for_proven.d.ts +17 -0
  136. package/dest/contract/wait_for_proven.d.ts.map +1 -0
  137. package/dest/contract/wait_for_proven.js +17 -0
  138. package/dest/contract/wait_opts.d.ts +16 -0
  139. package/dest/contract/wait_opts.d.ts.map +1 -0
  140. package/dest/contract/wait_opts.js +5 -0
  141. package/dest/deployment/broadcast_function.d.ts +4 -4
  142. package/dest/deployment/broadcast_function.d.ts.map +1 -1
  143. package/dest/deployment/broadcast_function.js +28 -24
  144. package/dest/deployment/contract_deployer.d.ts +2 -2
  145. package/dest/deployment/contract_deployer.d.ts.map +1 -1
  146. package/dest/deployment/contract_deployer.js +1 -1
  147. package/dest/deployment/publish_class.d.ts +6 -0
  148. package/dest/deployment/publish_class.d.ts.map +1 -0
  149. package/dest/deployment/publish_class.js +17 -0
  150. package/dest/deployment/publish_instance.d.ts +10 -0
  151. package/dest/deployment/publish_instance.d.ts.map +1 -0
  152. package/dest/deployment/publish_instance.js +11 -0
  153. package/dest/ethereum/portal_manager.d.ts +141 -0
  154. package/dest/ethereum/portal_manager.d.ts.map +1 -0
  155. package/dest/ethereum/portal_manager.js +345 -0
  156. package/dest/fee/fee_juice_payment_method_with_claim.d.ts +17 -12
  157. package/dest/fee/fee_juice_payment_method_with_claim.d.ts.map +1 -1
  158. package/dest/fee/fee_juice_payment_method_with_claim.js +27 -17
  159. package/dest/fee/fee_payment_method.d.ts +12 -8
  160. package/dest/fee/fee_payment_method.d.ts.map +1 -1
  161. package/dest/fee/private_fee_payment_method.d.ts +26 -9
  162. package/dest/fee/private_fee_payment_method.d.ts.map +1 -1
  163. package/dest/fee/private_fee_payment_method.js +45 -23
  164. package/dest/fee/public_fee_payment_method.d.ts +27 -10
  165. package/dest/fee/public_fee_payment_method.d.ts.map +1 -1
  166. package/dest/fee/public_fee_payment_method.js +47 -25
  167. package/dest/fee/sponsored_fee_payment.d.ts +17 -0
  168. package/dest/fee/sponsored_fee_payment.d.ts.map +1 -0
  169. package/dest/fee/sponsored_fee_payment.js +34 -0
  170. package/dest/scripts/generate_protocol_contract_types.d.ts +2 -0
  171. package/dest/scripts/generate_protocol_contract_types.d.ts.map +1 -0
  172. package/dest/scripts/generate_protocol_contract_types.js +120 -0
  173. package/dest/utils/abi_types.d.ts +2 -4
  174. package/dest/utils/abi_types.d.ts.map +1 -1
  175. package/dest/utils/authwit.d.ts +85 -26
  176. package/dest/utils/authwit.d.ts.map +1 -1
  177. package/dest/utils/authwit.js +234 -41
  178. package/dest/utils/cross_chain.d.ts +24 -0
  179. package/dest/utils/cross_chain.d.ts.map +1 -0
  180. package/dest/utils/cross_chain.js +30 -0
  181. package/dest/utils/fee_juice.d.ts +4 -3
  182. package/dest/utils/fee_juice.d.ts.map +1 -1
  183. package/dest/utils/fee_juice.js +4 -3
  184. package/dest/utils/field_compressed_string.d.ts +1 -1
  185. package/dest/utils/field_compressed_string.d.ts.map +1 -1
  186. package/dest/utils/field_compressed_string.js +1 -1
  187. package/dest/utils/node.d.ts +13 -2
  188. package/dest/utils/node.d.ts.map +1 -1
  189. package/dest/utils/node.js +47 -1
  190. package/dest/utils/pub_key.d.ts +2 -2
  191. package/dest/utils/pub_key.d.ts.map +1 -1
  192. package/dest/utils/pub_key.js +2 -3
  193. package/dest/wallet/account_entrypoint_meta_payment_method.d.ts +31 -0
  194. package/dest/wallet/account_entrypoint_meta_payment_method.d.ts.map +1 -0
  195. package/dest/wallet/account_entrypoint_meta_payment_method.js +61 -0
  196. package/dest/wallet/account_manager.d.ts +63 -0
  197. package/dest/wallet/account_manager.d.ts.map +1 -0
  198. package/dest/wallet/account_manager.js +107 -0
  199. package/dest/wallet/capabilities.d.ts +444 -0
  200. package/dest/wallet/capabilities.d.ts.map +1 -0
  201. package/dest/wallet/capabilities.js +3 -0
  202. package/dest/wallet/deploy_account_method.d.ts +80 -0
  203. package/dest/wallet/deploy_account_method.d.ts.map +1 -0
  204. package/dest/wallet/deploy_account_method.js +79 -0
  205. package/dest/wallet/index.d.ts +4 -17
  206. package/dest/wallet/index.d.ts.map +1 -1
  207. package/dest/wallet/index.js +3 -20
  208. package/dest/wallet/wallet.d.ts +2590 -0
  209. package/dest/wallet/wallet.d.ts.map +1 -0
  210. package/dest/wallet/wallet.js +291 -0
  211. package/package.json +47 -36
  212. package/src/account/account.ts +72 -0
  213. package/src/account/account_contract.ts +66 -0
  214. package/src/account/account_with_secret_key.ts +63 -0
  215. package/src/account/index.ts +5 -8
  216. package/src/account/signerless_account.ts +46 -0
  217. package/src/api/abi.ts +26 -0
  218. package/src/api/account.ts +8 -5
  219. package/src/api/addresses.ts +1 -0
  220. package/src/api/authorization.ts +15 -0
  221. package/src/api/block.ts +2 -0
  222. package/src/api/contract.ts +88 -0
  223. package/src/api/crypto.ts +1 -0
  224. package/src/api/deployment.ts +4 -3
  225. package/src/api/ethereum.ts +10 -0
  226. package/src/api/events.ts +44 -0
  227. package/src/api/fee.ts +1 -1
  228. package/src/api/fee_testing.ts +1 -0
  229. package/src/api/fields.ts +2 -1
  230. package/src/api/keys.ts +8 -0
  231. package/src/api/log.ts +1 -0
  232. package/src/api/messaging.ts +2 -0
  233. package/src/api/node.ts +24 -0
  234. package/src/api/note.ts +1 -0
  235. package/src/api/protocol.ts +9 -0
  236. package/src/api/trees.ts +2 -0
  237. package/src/api/tx.ts +15 -0
  238. package/src/api/utils.ts +14 -0
  239. package/src/api/wallet.ts +72 -5
  240. package/src/authorization/call_authorization_request.ts +63 -0
  241. package/src/contract/base_contract_interaction.ts +40 -171
  242. package/src/contract/batch_call.ts +108 -57
  243. package/src/contract/checker.ts +8 -3
  244. package/src/contract/contract.ts +14 -21
  245. package/src/contract/contract_base.ts +9 -26
  246. package/src/contract/contract_function_interaction.ts +135 -106
  247. package/src/contract/deploy_method.ts +307 -143
  248. package/src/contract/get_gas_limits.ts +15 -8
  249. package/src/contract/interaction_options.ts +208 -0
  250. package/src/contract/protocol_contracts/auth-registry.ts +351 -0
  251. package/src/contract/protocol_contracts/contract-class-registry.ts +241 -0
  252. package/src/contract/protocol_contracts/contract-instance-registry.ts +302 -0
  253. package/src/contract/protocol_contracts/fee-juice.ts +264 -0
  254. package/src/contract/protocol_contracts/multi-call-entrypoint.ts +332 -0
  255. package/src/contract/protocol_contracts/public-checks.ts +316 -0
  256. package/src/contract/wait_for_proven.ts +38 -0
  257. package/src/contract/wait_opts.ts +21 -0
  258. package/src/deployment/broadcast_function.ts +58 -58
  259. package/src/deployment/contract_deployer.ts +4 -3
  260. package/src/deployment/publish_class.ts +34 -0
  261. package/src/deployment/publish_instance.ts +23 -0
  262. package/src/{api/ethereum → ethereum}/portal_manager.ts +166 -89
  263. package/src/fee/fee_juice_payment_method_with_claim.ts +49 -34
  264. package/src/fee/fee_payment_method.ts +11 -7
  265. package/src/fee/private_fee_payment_method.ts +80 -58
  266. package/src/fee/public_fee_payment_method.ts +94 -68
  267. package/src/fee/sponsored_fee_payment.ts +46 -0
  268. package/src/scripts/generate_protocol_contract_types.ts +150 -0
  269. package/src/utils/abi_types.ts +1 -1
  270. package/src/utils/authwit.ts +274 -54
  271. package/src/utils/cross_chain.ts +53 -0
  272. package/src/utils/fee_juice.ts +5 -5
  273. package/src/utils/field_compressed_string.ts +1 -1
  274. package/src/utils/node.ts +63 -1
  275. package/src/utils/pub_key.ts +3 -4
  276. package/src/wallet/account_entrypoint_meta_payment_method.ts +74 -0
  277. package/src/wallet/account_manager.ts +146 -0
  278. package/src/wallet/capabilities.ts +491 -0
  279. package/src/wallet/deploy_account_method.ts +150 -0
  280. package/src/wallet/index.ts +3 -33
  281. package/src/wallet/wallet.ts +533 -0
  282. package/dest/account/contract.d.ts +0 -37
  283. package/dest/account/contract.d.ts.map +0 -1
  284. package/dest/account/interface.d.ts +0 -31
  285. package/dest/account/interface.d.ts.map +0 -1
  286. package/dest/account/interface.js +0 -4
  287. package/dest/account/wallet.d.ts +0 -11
  288. package/dest/account/wallet.d.ts.map +0 -1
  289. package/dest/account/wallet.js +0 -3
  290. package/dest/account_manager/deploy_account_method.d.ts +0 -15
  291. package/dest/account_manager/deploy_account_method.d.ts.map +0 -1
  292. package/dest/account_manager/deploy_account_method.js +0 -43
  293. package/dest/account_manager/deploy_account_sent_tx.d.ts +0 -30
  294. package/dest/account_manager/deploy_account_sent_tx.d.ts.map +0 -1
  295. package/dest/account_manager/deploy_account_sent_tx.js +0 -29
  296. package/dest/account_manager/index.d.ts +0 -108
  297. package/dest/account_manager/index.d.ts.map +0 -1
  298. package/dest/account_manager/index.js +0 -159
  299. package/dest/api/cheat_codes.d.ts +0 -26
  300. package/dest/api/cheat_codes.d.ts.map +0 -1
  301. package/dest/api/cheat_codes.js +0 -25
  302. package/dest/api/entrypoint.d.ts +0 -2
  303. package/dest/api/entrypoint.d.ts.map +0 -1
  304. package/dest/api/entrypoint.js +0 -1
  305. package/dest/api/ethereum/anvil_test_watcher.d.ts +0 -32
  306. package/dest/api/ethereum/anvil_test_watcher.d.ts.map +0 -1
  307. package/dest/api/ethereum/anvil_test_watcher.js +0 -133
  308. package/dest/api/ethereum/chain_monitor.d.ts +0 -25
  309. package/dest/api/ethereum/chain_monitor.d.ts.map +0 -1
  310. package/dest/api/ethereum/chain_monitor.js +0 -74
  311. package/dest/api/ethereum/cheat_codes.d.ts +0 -63
  312. package/dest/api/ethereum/cheat_codes.d.ts.map +0 -1
  313. package/dest/api/ethereum/cheat_codes.js +0 -162
  314. package/dest/api/ethereum/index.d.ts +0 -7
  315. package/dest/api/ethereum/index.d.ts.map +0 -1
  316. package/dest/api/ethereum/index.js +0 -6
  317. package/dest/api/ethereum/l1_contracts.d.ts +0 -3
  318. package/dest/api/ethereum/l1_contracts.d.ts.map +0 -1
  319. package/dest/api/ethereum/l1_contracts.js +0 -13
  320. package/dest/api/ethereum/portal_manager.d.ts +0 -136
  321. package/dest/api/ethereum/portal_manager.d.ts.map +0 -1
  322. package/dest/api/ethereum/portal_manager.js +0 -286
  323. package/dest/api/interfaces/pxe.d.ts +0 -2
  324. package/dest/api/interfaces/pxe.d.ts.map +0 -1
  325. package/dest/api/interfaces/pxe.js +0 -1
  326. package/dest/api/log_id.d.ts +0 -2
  327. package/dest/api/log_id.d.ts.map +0 -1
  328. package/dest/api/log_id.js +0 -1
  329. package/dest/api/tx_hash.d.ts +0 -2
  330. package/dest/api/tx_hash.d.ts.map +0 -1
  331. package/dest/api/tx_hash.js +0 -1
  332. package/dest/contract/deploy_proven_tx.d.ts +0 -21
  333. package/dest/contract/deploy_proven_tx.d.ts.map +0 -1
  334. package/dest/contract/deploy_proven_tx.js +0 -19
  335. package/dest/contract/deploy_sent_tx.d.ts +0 -45
  336. package/dest/contract/deploy_sent_tx.d.ts.map +0 -1
  337. package/dest/contract/deploy_sent_tx.js +0 -43
  338. package/dest/contract/index.d.ts +0 -45
  339. package/dest/contract/index.d.ts.map +0 -1
  340. package/dest/contract/index.js +0 -43
  341. package/dest/contract/protocol_contracts.d.ts +0 -9
  342. package/dest/contract/protocol_contracts.d.ts.map +0 -1
  343. package/dest/contract/protocol_contracts.js +0 -26
  344. package/dest/contract/proven_tx.d.ts +0 -17
  345. package/dest/contract/proven_tx.d.ts.map +0 -1
  346. package/dest/contract/proven_tx.js +0 -22
  347. package/dest/contract/sent_tx.d.ts +0 -61
  348. package/dest/contract/sent_tx.d.ts.map +0 -1
  349. package/dest/contract/sent_tx.js +0 -102
  350. package/dest/contract/unsafe_contract.d.ts +0 -15
  351. package/dest/contract/unsafe_contract.d.ts.map +0 -1
  352. package/dest/contract/unsafe_contract.js +0 -6
  353. package/dest/deployment/deploy_instance.d.ts +0 -10
  354. package/dest/deployment/deploy_instance.d.ts.map +0 -1
  355. package/dest/deployment/deploy_instance.js +0 -14
  356. package/dest/deployment/index.d.ts +0 -2
  357. package/dest/deployment/index.d.ts.map +0 -1
  358. package/dest/deployment/index.js +0 -1
  359. package/dest/deployment/register_class.d.ts +0 -6
  360. package/dest/deployment/register_class.d.ts.map +0 -1
  361. package/dest/deployment/register_class.js +0 -22
  362. package/dest/entrypoint/default_entrypoint.d.ts +0 -12
  363. package/dest/entrypoint/default_entrypoint.d.ts.map +0 -1
  364. package/dest/entrypoint/default_entrypoint.js +0 -28
  365. package/dest/entrypoint/default_multi_call_entrypoint.d.ts +0 -15
  366. package/dest/entrypoint/default_multi_call_entrypoint.d.ts.map +0 -1
  367. package/dest/entrypoint/default_multi_call_entrypoint.js +0 -130
  368. package/dest/entrypoint/entrypoint.d.ts +0 -35
  369. package/dest/entrypoint/entrypoint.d.ts.map +0 -1
  370. package/dest/entrypoint/entrypoint.js +0 -4
  371. package/dest/entrypoint/payload.d.ts +0 -128
  372. package/dest/entrypoint/payload.d.ts.map +0 -1
  373. package/dest/entrypoint/payload.js +0 -143
  374. package/dest/fee/fee_juice_payment_method.d.ts +0 -14
  375. package/dest/fee/fee_juice_payment_method.d.ts.map +0 -1
  376. package/dest/fee/fee_juice_payment_method.js +0 -20
  377. package/dest/index.d.ts +0 -66
  378. package/dest/index.d.ts.map +0 -1
  379. package/dest/index.js +0 -69
  380. package/dest/rpc_clients/index.d.ts +0 -3
  381. package/dest/rpc_clients/index.d.ts.map +0 -1
  382. package/dest/rpc_clients/index.js +0 -2
  383. package/dest/rpc_clients/node/index.d.ts +0 -12
  384. package/dest/rpc_clients/node/index.d.ts.map +0 -1
  385. package/dest/rpc_clients/node/index.js +0 -78
  386. package/dest/rpc_clients/pxe_client.d.ts +0 -10
  387. package/dest/rpc_clients/pxe_client.d.ts.map +0 -1
  388. package/dest/rpc_clients/pxe_client.js +0 -23
  389. package/dest/utils/aztec_cheatcodes.d.ts +0 -59
  390. package/dest/utils/aztec_cheatcodes.d.ts.map +0 -1
  391. package/dest/utils/aztec_cheatcodes.js +0 -62
  392. package/dest/utils/index.d.ts +0 -8
  393. package/dest/utils/index.d.ts.map +0 -1
  394. package/dest/utils/index.js +0 -6
  395. package/dest/utils/pxe.d.ts +0 -4
  396. package/dest/utils/pxe.d.ts.map +0 -1
  397. package/dest/utils/pxe.js +0 -14
  398. package/dest/wallet/account_wallet.d.ts +0 -76
  399. package/dest/wallet/account_wallet.d.ts.map +0 -1
  400. package/dest/wallet/account_wallet.js +0 -231
  401. package/dest/wallet/account_wallet_with_private_key.d.ts +0 -26
  402. package/dest/wallet/account_wallet_with_private_key.d.ts.map +0 -1
  403. package/dest/wallet/base_wallet.d.ts +0 -73
  404. package/dest/wallet/base_wallet.d.ts.map +0 -1
  405. package/dest/wallet/base_wallet.js +0 -123
  406. package/dest/wallet/signerless_wallet.d.ts +0 -25
  407. package/dest/wallet/signerless_wallet.d.ts.map +0 -1
  408. package/dest/wallet/signerless_wallet.js +0 -36
  409. package/src/account/contract.ts +0 -56
  410. package/src/account/interface.ts +0 -36
  411. package/src/account/wallet.ts +0 -13
  412. package/src/account_manager/deploy_account_method.ts +0 -86
  413. package/src/account_manager/deploy_account_sent_tx.ts +0 -42
  414. package/src/account_manager/index.ts +0 -229
  415. package/src/api/cheat_codes.ts +0 -35
  416. package/src/api/entrypoint.ts +0 -1
  417. package/src/api/ethereum/anvil_test_watcher.ts +0 -158
  418. package/src/api/ethereum/chain_monitor.ts +0 -88
  419. package/src/api/ethereum/cheat_codes.ts +0 -184
  420. package/src/api/ethereum/index.ts +0 -19
  421. package/src/api/ethereum/l1_contracts.ts +0 -21
  422. package/src/api/interfaces/pxe.ts +0 -1
  423. package/src/api/log_id.ts +0 -1
  424. package/src/api/tx_hash.ts +0 -1
  425. package/src/contract/deploy_proven_tx.ts +0 -34
  426. package/src/contract/deploy_sent_tx.ts +0 -74
  427. package/src/contract/index.ts +0 -48
  428. package/src/contract/protocol_contracts.ts +0 -35
  429. package/src/contract/proven_tx.ts +0 -42
  430. package/src/contract/sent_tx.ts +0 -141
  431. package/src/contract/unsafe_contract.ts +0 -19
  432. package/src/deployment/deploy_instance.ts +0 -31
  433. package/src/deployment/index.ts +0 -1
  434. package/src/deployment/register_class.ts +0 -44
  435. package/src/entrypoint/default_entrypoint.ts +0 -39
  436. package/src/entrypoint/default_multi_call_entrypoint.ts +0 -93
  437. package/src/entrypoint/entrypoint.ts +0 -39
  438. package/src/entrypoint/payload.ts +0 -238
  439. package/src/fee/fee_juice_payment_method.ts +0 -26
  440. package/src/index.ts +0 -106
  441. package/src/rpc_clients/index.ts +0 -2
  442. package/src/rpc_clients/node/index.ts +0 -77
  443. package/src/rpc_clients/pxe_client.ts +0 -25
  444. package/src/utils/aztec_cheatcodes.ts +0 -77
  445. package/src/utils/index.ts +0 -21
  446. package/src/utils/pxe.ts +0 -17
  447. package/src/wallet/account_wallet.ts +0 -242
  448. package/src/wallet/account_wallet_with_private_key.ts +0 -40
  449. package/src/wallet/base_wallet.ts +0 -198
  450. package/src/wallet/signerless_wallet.ts +0 -52
@@ -1,19 +1,23 @@
1
- import type { ViemPublicClient, ViemWalletClient } from '@aztec/ethereum';
1
+ import type { ExtendedViemWalletClient, ViemContract } from '@aztec/ethereum/types';
2
2
  import { extractEvent } from '@aztec/ethereum/utils';
3
- import { sha256ToField } from '@aztec/foundation/crypto';
3
+ import type { EpochNumber } from '@aztec/foundation/branded-types';
4
+ import { sha256ToField } from '@aztec/foundation/crypto/sha256';
5
+ import { Fr } from '@aztec/foundation/curves/bn254';
4
6
  import { EthAddress } from '@aztec/foundation/eth-address';
5
- import { Fr } from '@aztec/foundation/fields';
6
7
  import type { Logger } from '@aztec/foundation/log';
7
8
  import type { SiblingPath } from '@aztec/foundation/trees';
8
- import { FeeJuicePortalAbi, OutboxAbi, TestERC20Abi, TokenPortalAbi } from '@aztec/l1-artifacts';
9
+ import { FeeAssetHandlerAbi } from '@aztec/l1-artifacts/FeeAssetHandlerAbi';
10
+ import { FeeJuicePortalAbi } from '@aztec/l1-artifacts/FeeJuicePortalAbi';
11
+ import { OutboxAbi } from '@aztec/l1-artifacts/OutboxAbi';
12
+ import { TestERC20Abi } from '@aztec/l1-artifacts/TestERC20Abi';
13
+ import { TokenPortalAbi } from '@aztec/l1-artifacts/TokenPortalAbi';
9
14
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
10
- import { computeSecretHash } from '@aztec/stdlib/hash';
11
- import type { PXE } from '@aztec/stdlib/interfaces/client';
15
+ import { computeL2ToL1MessageHash, computeSecretHash } from '@aztec/stdlib/hash';
16
+ import type { AztecNode } from '@aztec/stdlib/interfaces/client';
17
+ import { getL2ToL1MessageLeafId } from '@aztec/stdlib/messaging';
12
18
 
13
- import { type GetContractReturnType, type Hex, getContract, toFunctionSelector } from 'viem';
19
+ import { type Hex, getContract, toFunctionSelector } from 'viem';
14
20
 
15
- // docs:start:claim_type
16
- // docs:start:claim_type_amount
17
21
  /** L1 to L2 message info to claim it on L2. */
18
22
  export type L2Claim = {
19
23
  /** Secret for claiming. */
@@ -25,11 +29,9 @@ export type L2Claim = {
25
29
  /** Leaf index in the L1 to L2 message tree. */
26
30
  messageLeafIndex: bigint;
27
31
  };
28
- // docs:end:claim_type
29
32
 
30
33
  /** L1 to L2 message info that corresponds to an amount to claim. */
31
34
  export type L2AmountClaim = L2Claim & { /** Amount to claim */ claimAmount: bigint };
32
- // docs:end:claim_type_amount
33
35
 
34
36
  /** L1 to L2 message info that corresponds to an amount to claim with associated recipient. */
35
37
  export type L2AmountClaimWithRecipient = L2AmountClaim & {
@@ -51,20 +53,39 @@ export async function generateClaimSecret(logger?: Logger): Promise<[Fr, Fr]> {
51
53
 
52
54
  /** Helper for managing an ERC20 on L1. */
53
55
  export class L1TokenManager {
54
- private contract: GetContractReturnType<typeof TestERC20Abi, ViemWalletClient>;
56
+ private contract: ViemContract<typeof TestERC20Abi>;
57
+ private handler: ViemContract<typeof FeeAssetHandlerAbi> | undefined;
55
58
 
56
59
  public constructor(
57
60
  /** Address of the ERC20 contract. */
58
- public readonly address: EthAddress,
59
- private publicClient: ViemPublicClient,
60
- private walletClient: ViemWalletClient,
61
+ public readonly tokenAddress: EthAddress,
62
+ /** Address of the handler/faucet contract. */
63
+ public readonly handlerAddress: EthAddress | undefined,
64
+ private readonly extendedClient: ExtendedViemWalletClient,
61
65
  private logger: Logger,
62
66
  ) {
63
67
  this.contract = getContract({
64
- address: this.address.toString(),
68
+ address: this.tokenAddress.toString(),
65
69
  abi: TestERC20Abi,
66
- client: this.walletClient,
70
+ client: this.extendedClient,
67
71
  });
72
+ if (this.handlerAddress) {
73
+ this.handler = getContract({
74
+ address: this.handlerAddress.toString(),
75
+ abi: FeeAssetHandlerAbi,
76
+ client: this.extendedClient,
77
+ });
78
+ }
79
+ }
80
+
81
+ /** Returns the amount of tokens available to mint via the handler.
82
+ * @throws if the handler is not provided.
83
+ */
84
+ public async getMintAmount() {
85
+ if (!this.handler) {
86
+ throw new Error('Minting handler was not provided');
87
+ }
88
+ return await this.handler.read.mintAmount();
68
89
  }
69
90
 
70
91
  /**
@@ -76,16 +97,18 @@ export class L1TokenManager {
76
97
  }
77
98
 
78
99
  /**
79
- * Mints tokens for the given address. Returns once the tx has been mined.
80
- * @param amount - Amount to mint.
100
+ * Mints a fixed amount of tokens for the given address. Returns once the tx has been mined.
81
101
  * @param address - Address to mint the tokens for.
82
102
  * @param addressName - Optional name of the address for logging.
83
103
  */
84
- public async mint(amount: bigint, address: Hex, addressName?: string) {
85
- this.logger.info(`Minting ${amount} tokens for ${stringifyEthAddress(address, addressName)}`);
86
- await this.publicClient.waitForTransactionReceipt({
87
- hash: await this.contract.write.mint([address, amount]),
88
- });
104
+ public async mint(address: Hex, addressName?: string) {
105
+ if (!this.handler) {
106
+ throw new Error('Minting handler was not provided');
107
+ }
108
+ const mintAmount = await this.getMintAmount();
109
+ this.logger.info(`Minting ${mintAmount} tokens for ${stringifyEthAddress(address, addressName)}`);
110
+ // NOTE: the handler mints a fixed amount.
111
+ await this.handler.write.mint([address]);
89
112
  }
90
113
 
91
114
  /**
@@ -96,7 +119,7 @@ export class L1TokenManager {
96
119
  */
97
120
  public async approve(amount: bigint, address: Hex, addressName = '') {
98
121
  this.logger.info(`Approving ${amount} tokens for ${stringifyEthAddress(address, addressName)}`);
99
- await this.publicClient.waitForTransactionReceipt({
122
+ await this.extendedClient.waitForTransactionReceipt({
100
123
  hash: await this.contract.write.approve([address, amount]),
101
124
  });
102
125
  }
@@ -105,20 +128,20 @@ export class L1TokenManager {
105
128
  /** Helper for interacting with the FeeJuicePortal on L1. */
106
129
  export class L1FeeJuicePortalManager {
107
130
  private readonly tokenManager: L1TokenManager;
108
- private readonly contract: GetContractReturnType<typeof FeeJuicePortalAbi, ViemWalletClient>;
131
+ private readonly contract: ViemContract<typeof FeeJuicePortalAbi>;
109
132
 
110
133
  constructor(
111
134
  portalAddress: EthAddress,
112
135
  tokenAddress: EthAddress,
113
- private readonly publicClient: ViemPublicClient,
114
- private readonly walletClient: ViemWalletClient,
136
+ handlerAddress: EthAddress | undefined,
137
+ private readonly extendedClient: ExtendedViemWalletClient,
115
138
  private readonly logger: Logger,
116
139
  ) {
117
- this.tokenManager = new L1TokenManager(tokenAddress, publicClient, walletClient, logger);
140
+ this.tokenManager = new L1TokenManager(tokenAddress, handlerAddress, extendedClient, logger);
118
141
  this.contract = getContract({
119
142
  address: portalAddress.toString(),
120
143
  abi: FeeJuicePortalAbi,
121
- client: this.walletClient,
144
+ client: extendedClient,
122
145
  });
123
146
  }
124
147
 
@@ -133,39 +156,59 @@ export class L1FeeJuicePortalManager {
133
156
  * @param amount - Amount of tokens to send.
134
157
  * @param mint - Whether to mint the tokens before sending (only during testing).
135
158
  */
136
- public async bridgeTokensPublic(to: AztecAddress, amount: bigint, mint = false): Promise<L2AmountClaim> {
159
+ public async bridgeTokensPublic(to: AztecAddress, amount: bigint | undefined, mint = false): Promise<L2AmountClaim> {
137
160
  const [claimSecret, claimSecretHash] = await generateClaimSecret();
161
+ const amountToBridge = amount ?? (await this.tokenManager.getMintAmount());
138
162
  if (mint) {
139
- await this.tokenManager.mint(amount, this.walletClient.account.address);
163
+ const mintableAmount = await this.tokenManager.getMintAmount();
164
+ if (amountToBridge !== mintableAmount) {
165
+ throw new Error(`Minting amount must be ${mintableAmount}`);
166
+ }
167
+ await this.tokenManager.mint(this.extendedClient.account.address);
140
168
  }
141
169
 
142
- await this.tokenManager.approve(amount, this.contract.address, 'FeeJuice Portal');
170
+ await this.tokenManager.approve(amountToBridge, this.contract.address, 'FeeJuice Portal');
143
171
 
144
172
  this.logger.info('Sending L1 Fee Juice to L2 to be claimed publicly');
145
- const args = [to.toString(), amount, claimSecretHash.toString()] as const;
173
+ const args = [to.toString(), amountToBridge, claimSecretHash.toString()] as const;
146
174
 
147
175
  await this.contract.simulate.depositToAztecPublic(args);
148
176
 
149
- const txReceipt = await this.publicClient.waitForTransactionReceipt({
177
+ const txReceipt = await this.extendedClient.waitForTransactionReceipt({
150
178
  hash: await this.contract.write.depositToAztecPublic(args),
151
179
  });
152
180
 
153
- this.logger.info('Deposited to Aztec public successfully');
181
+ this.logger.info('Deposited to Aztec public successfully', { txReceipt });
154
182
 
155
183
  const log = extractEvent(
156
184
  txReceipt.logs,
157
185
  this.contract.address,
158
186
  this.contract.abi,
159
187
  'DepositToAztecPublic',
160
- log =>
161
- log.args.secretHash === claimSecretHash.toString() &&
162
- log.args.amount === amount &&
163
- log.args.to === to.toString(),
188
+ log => {
189
+ // Normalize hex strings for comparison (case-insensitive, handle different formats)
190
+ const normalizeHex = (val: string | bigint | number) => {
191
+ const hexStr = typeof val === 'string' ? val : `0x${val.toString(16).padStart(64, '0')}`;
192
+ return hexStr.toLowerCase();
193
+ };
194
+
195
+ const secretHashMatch = normalizeHex(log.args.secretHash) === normalizeHex(claimSecretHash.toString());
196
+ const amountMatch = log.args.amount === amountToBridge;
197
+ const toMatch = normalizeHex(log.args.to) === normalizeHex(to.toString());
198
+
199
+ this.logger.debug(
200
+ `Event filter matching: secretHash=${secretHashMatch} (${log.args.secretHash} vs ${claimSecretHash.toString()}), ` +
201
+ `amount=${amountMatch} (${log.args.amount} vs ${amountToBridge}), ` +
202
+ `to=${toMatch} (${log.args.to} vs ${to.toString()})`,
203
+ );
204
+
205
+ return secretHashMatch && amountMatch && toMatch;
206
+ },
164
207
  this.logger,
165
208
  );
166
209
 
167
210
  return {
168
- claimAmount: amount,
211
+ claimAmount: amountToBridge,
169
212
  claimSecret,
170
213
  claimSecretHash,
171
214
  messageHash: log.args.key,
@@ -175,46 +218,48 @@ export class L1FeeJuicePortalManager {
175
218
 
176
219
  /**
177
220
  * Creates a new instance
178
- * @param pxe - PXE client used for retrieving the L1 contract addresses.
179
- * @param publicClient - L1 public client.
180
- * @param walletClient - L1 wallet client.
221
+ * @param node - Aztec node client used for retrieving the L1 contract addresses.
222
+ * @param extendedClient - Wallet client, extended with public actions.
181
223
  * @param logger - Logger.
182
224
  */
183
225
  public static async new(
184
- pxe: PXE,
185
- publicClient: ViemPublicClient,
186
- walletClient: ViemWalletClient,
226
+ node: AztecNode,
227
+ extendedClient: ExtendedViemWalletClient,
187
228
  logger: Logger,
188
229
  ): Promise<L1FeeJuicePortalManager> {
189
230
  const {
190
- l1ContractAddresses: { feeJuiceAddress, feeJuicePortalAddress },
191
- } = await pxe.getNodeInfo();
231
+ l1ContractAddresses: { feeJuiceAddress, feeJuicePortalAddress, feeAssetHandlerAddress },
232
+ } = await node.getNodeInfo();
192
233
 
193
234
  if (feeJuiceAddress.isZero() || feeJuicePortalAddress.isZero()) {
194
235
  throw new Error('Portal or token not deployed on L1');
195
236
  }
196
237
 
197
- return new L1FeeJuicePortalManager(feeJuicePortalAddress, feeJuiceAddress, publicClient, walletClient, logger);
238
+ // Handler is optional - it's only needed for minting tokens during testing
239
+ const handlerAddress =
240
+ feeAssetHandlerAddress && !feeAssetHandlerAddress.isZero() ? feeAssetHandlerAddress : undefined;
241
+
242
+ return new L1FeeJuicePortalManager(feeJuicePortalAddress, feeJuiceAddress, handlerAddress, extendedClient, logger);
198
243
  }
199
244
  }
200
245
 
201
246
  /** Helper for interacting with a test TokenPortal on L1 for sending tokens to L2. */
202
247
  export class L1ToL2TokenPortalManager {
203
- protected readonly portal: GetContractReturnType<typeof TokenPortalAbi, ViemWalletClient>;
248
+ protected readonly portal: ViemContract<typeof TokenPortalAbi>;
204
249
  protected readonly tokenManager: L1TokenManager;
205
250
 
206
251
  constructor(
207
252
  portalAddress: EthAddress,
208
253
  tokenAddress: EthAddress,
209
- protected publicClient: ViemPublicClient,
210
- protected walletClient: ViemWalletClient,
254
+ handlerAddress: EthAddress | undefined,
255
+ protected extendedClient: ExtendedViemWalletClient,
211
256
  protected logger: Logger,
212
257
  ) {
213
- this.tokenManager = new L1TokenManager(tokenAddress, publicClient, walletClient, logger);
258
+ this.tokenManager = new L1TokenManager(tokenAddress, handlerAddress, extendedClient, logger);
214
259
  this.portal = getContract({
215
260
  address: portalAddress.toString(),
216
261
  abi: TokenPortalAbi,
217
- client: this.walletClient,
262
+ client: extendedClient,
218
263
  });
219
264
  }
220
265
 
@@ -239,8 +284,8 @@ export class L1ToL2TokenPortalManager {
239
284
  claimSecretHash.toString(),
240
285
  ]);
241
286
 
242
- const txReceipt = await this.publicClient.waitForTransactionReceipt({
243
- hash: await this.walletClient.writeContract(request),
287
+ const txReceipt = await this.extendedClient.waitForTransactionReceipt({
288
+ hash: await this.extendedClient.writeContract(request),
244
289
  });
245
290
 
246
291
  const log = extractEvent(
@@ -248,10 +293,19 @@ export class L1ToL2TokenPortalManager {
248
293
  this.portal.address,
249
294
  this.portal.abi,
250
295
  'DepositToAztecPublic',
251
- log =>
252
- log.args.secretHash === claimSecretHash.toString() &&
253
- log.args.amount === amount &&
254
- log.args.to === to.toString(),
296
+ log => {
297
+ // Normalize hex strings for comparison (case-insensitive, handle different formats)
298
+ const normalizeHex = (val: string | bigint | number) => {
299
+ const hexStr = typeof val === 'string' ? val : `0x${val.toString(16).padStart(64, '0')}`;
300
+ return hexStr.toLowerCase();
301
+ };
302
+
303
+ return (
304
+ normalizeHex(log.args.secretHash) === normalizeHex(claimSecretHash.toString()) &&
305
+ log.args.amount === amount &&
306
+ normalizeHex(log.args.to) === normalizeHex(to.toString())
307
+ );
308
+ },
255
309
  this.logger,
256
310
  );
257
311
 
@@ -280,8 +334,8 @@ export class L1ToL2TokenPortalManager {
280
334
  this.logger.info('Sending L1 tokens to L2 to be claimed privately');
281
335
  const { request } = await this.portal.simulate.depositToAztecPrivate([amount, claimSecretHash.toString()]);
282
336
 
283
- const txReceipt = await this.publicClient.waitForTransactionReceipt({
284
- hash: await this.walletClient.writeContract(request),
337
+ const txReceipt = await this.extendedClient.waitForTransactionReceipt({
338
+ hash: await this.extendedClient.writeContract(request),
285
339
  });
286
340
 
287
341
  const log = extractEvent(
@@ -289,7 +343,18 @@ export class L1ToL2TokenPortalManager {
289
343
  this.portal.address,
290
344
  this.portal.abi,
291
345
  'DepositToAztecPrivate',
292
- log => log.args.amount === amount && log.args.secretHashForL2MessageConsumption === claimSecretHash.toString(),
346
+ log => {
347
+ // Normalize hex strings for comparison (case-insensitive, handle different formats)
348
+ const normalizeHex = (val: string | bigint | number) => {
349
+ const hexStr = typeof val === 'string' ? val : `0x${val.toString(16).padStart(64, '0')}`;
350
+ return hexStr.toLowerCase();
351
+ };
352
+
353
+ return (
354
+ log.args.amount === amount &&
355
+ normalizeHex(log.args.secretHashForL2MessageConsumption) === normalizeHex(claimSecretHash.toString())
356
+ );
357
+ },
293
358
  this.logger,
294
359
  );
295
360
 
@@ -309,7 +374,11 @@ export class L1ToL2TokenPortalManager {
309
374
 
310
375
  private async bridgeSetup(amount: bigint, mint: boolean) {
311
376
  if (mint) {
312
- await this.tokenManager.mint(amount, this.walletClient.account.address);
377
+ const mintableAmount = await this.tokenManager.getMintAmount();
378
+ if (amount !== mintableAmount) {
379
+ throw new Error(`Minting amount must be ${mintableAmount} for testing`);
380
+ }
381
+ await this.tokenManager.mint(this.extendedClient.account.address);
313
382
  }
314
383
  await this.tokenManager.approve(amount, this.portal.address, 'TokenPortal');
315
384
  return generateClaimSecret();
@@ -318,21 +387,21 @@ export class L1ToL2TokenPortalManager {
318
387
 
319
388
  /** Helper for interacting with a test TokenPortal on L1 for both withdrawing from and bridging to L2. */
320
389
  export class L1TokenPortalManager extends L1ToL2TokenPortalManager {
321
- private readonly outbox: GetContractReturnType<typeof OutboxAbi, ViemWalletClient>;
390
+ private readonly outbox: ViemContract<typeof OutboxAbi>;
322
391
 
323
392
  constructor(
324
393
  portalAddress: EthAddress,
325
394
  tokenAddress: EthAddress,
395
+ handlerAddress: EthAddress | undefined,
326
396
  outboxAddress: EthAddress,
327
- publicClient: ViemPublicClient,
328
- walletClient: ViemWalletClient,
397
+ extendedClient: ExtendedViemWalletClient,
329
398
  logger: Logger,
330
399
  ) {
331
- super(portalAddress, tokenAddress, publicClient, walletClient, logger);
400
+ super(portalAddress, tokenAddress, handlerAddress, extendedClient, logger);
332
401
  this.outbox = getContract({
333
402
  address: outboxAddress.toString(),
334
403
  abi: OutboxAbi,
335
- client: walletClient,
404
+ client: extendedClient,
336
405
  });
337
406
  }
338
407
 
@@ -340,24 +409,27 @@ export class L1TokenPortalManager extends L1ToL2TokenPortalManager {
340
409
  * Withdraws funds from the portal by consuming an L2 to L1 message. Returns once the tx is mined on L1.
341
410
  * @param amount - Amount to withdraw.
342
411
  * @param recipient - Who will receive the funds.
343
- * @param blockNumber - L2 block number of the message.
412
+ * @param epochNumber - Epoch number of the message.
344
413
  * @param messageIndex - Index of the message.
345
414
  * @param siblingPath - Sibling path of the message.
346
415
  */
347
416
  public async withdrawFunds(
348
417
  amount: bigint,
349
418
  recipient: EthAddress,
350
- blockNumber: bigint,
419
+ epochNumber: EpochNumber,
351
420
  messageIndex: bigint,
352
421
  siblingPath: SiblingPath<number>,
353
422
  ) {
354
423
  this.logger.info(
355
- `Sending L1 tx to consume message at block ${blockNumber} index ${messageIndex} to withdraw ${amount}`,
424
+ `Sending L1 tx to consume message at epoch ${epochNumber} index ${messageIndex} to withdraw ${amount}`,
356
425
  );
357
426
 
358
- const isConsumedBefore = await this.outbox.read.hasMessageBeenConsumedAtBlockAndIndex([blockNumber, messageIndex]);
427
+ const messageLeafId = getL2ToL1MessageLeafId({ leafIndex: messageIndex, siblingPath });
428
+ const isConsumedBefore = await this.outbox.read.hasMessageBeenConsumedAtEpoch([BigInt(epochNumber), messageLeafId]);
359
429
  if (isConsumedBefore) {
360
- throw new Error(`L1 to L2 message at block ${blockNumber} index ${messageIndex} has already been consumed`);
430
+ throw new Error(
431
+ `L2 to L1 message at epoch ${epochNumber} index ${messageIndex} height ${siblingPath.pathSize} has already been consumed`,
432
+ );
361
433
  }
362
434
 
363
435
  // Call function on L1 contract to consume the message
@@ -365,16 +437,20 @@ export class L1TokenPortalManager extends L1ToL2TokenPortalManager {
365
437
  recipient.toString(),
366
438
  amount,
367
439
  false,
368
- BigInt(blockNumber),
440
+ BigInt(epochNumber),
369
441
  messageIndex,
370
442
  siblingPath.toBufferArray().map((buf: Buffer): Hex => `0x${buf.toString('hex')}`),
371
443
  ]);
372
444
 
373
- await this.publicClient.waitForTransactionReceipt({ hash: await this.walletClient.writeContract(withdrawRequest) });
445
+ await this.extendedClient.waitForTransactionReceipt({
446
+ hash: await this.extendedClient.writeContract(withdrawRequest),
447
+ });
374
448
 
375
- const isConsumedAfter = await this.outbox.read.hasMessageBeenConsumedAtBlockAndIndex([blockNumber, messageIndex]);
449
+ const isConsumedAfter = await this.outbox.read.hasMessageBeenConsumedAtEpoch([BigInt(epochNumber), messageLeafId]);
376
450
  if (!isConsumedAfter) {
377
- throw new Error(`L1 to L2 message at block ${blockNumber} index ${messageIndex} not consumed after withdrawal`);
451
+ throw new Error(
452
+ `L2 to L1 message at epoch ${epochNumber} index ${messageIndex} height ${siblingPath.pathSize} not consumed after withdrawal`,
453
+ );
378
454
  }
379
455
  }
380
456
 
@@ -385,26 +461,27 @@ export class L1TokenPortalManager extends L1ToL2TokenPortalManager {
385
461
  * @param l2Bridge - Address of the L2 bridge.
386
462
  * @param callerOnL1 - Caller address on L1.
387
463
  */
388
- public getL2ToL1MessageLeaf(
464
+ public async getL2ToL1MessageLeaf(
389
465
  amount: bigint,
390
466
  recipient: EthAddress,
391
467
  l2Bridge: AztecAddress,
392
468
  callerOnL1: EthAddress = EthAddress.ZERO,
393
- ): Fr {
469
+ ): Promise<Fr> {
470
+ const version = await this.outbox.read.VERSION();
471
+
394
472
  const content = sha256ToField([
395
473
  Buffer.from(toFunctionSelector('withdraw(address,uint256,address)').substring(2), 'hex'),
396
474
  recipient.toBuffer32(),
397
475
  new Fr(amount).toBuffer(),
398
476
  callerOnL1.toBuffer32(),
399
477
  ]);
400
- const leaf = sha256ToField([
401
- l2Bridge.toBuffer(),
402
- new Fr(1).toBuffer(), // aztec version
403
- EthAddress.fromString(this.portal.address).toBuffer32() ?? Buffer.alloc(32, 0),
404
- new Fr(this.publicClient.chain.id).toBuffer(), // chain id
405
- content.toBuffer(),
406
- ]);
407
478
 
408
- return leaf;
479
+ return computeL2ToL1MessageHash({
480
+ l2Sender: l2Bridge,
481
+ l1Recipient: EthAddress.fromString(this.portal.address),
482
+ content,
483
+ rollupVersion: new Fr(version),
484
+ chainId: new Fr(this.extendedClient.chain.id),
485
+ });
409
486
  }
410
487
  }
@@ -1,49 +1,64 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import { ProtocolContractAddress } from '@aztec/protocol-contracts';
3
- import type { FunctionCall } from '@aztec/stdlib/abi';
4
3
  import { FunctionSelector, FunctionType } from '@aztec/stdlib/abi';
4
+ import type { AztecAddress } from '@aztec/stdlib/aztec-address';
5
+ import type { GasSettings } from '@aztec/stdlib/gas';
6
+ import { ExecutionPayload } from '@aztec/stdlib/tx';
5
7
 
6
- import type { L2AmountClaim } from '../api/ethereum/portal_manager.js';
7
- import { getFeeJuice } from '../contract/protocol_contracts.js';
8
- import type { Wallet } from '../wallet/index.js';
9
- import { FeeJuicePaymentMethod } from './fee_juice_payment_method.js';
8
+ import type { L2AmountClaim } from '../ethereum/portal_manager.js';
9
+ import type { FeePaymentMethod } from './fee_payment_method.js';
10
10
 
11
11
  /**
12
- * Pay fee directly with Fee Juice claimed on the same tx.
12
+ * Pay fee directly with Fee Juice claimed in the same tx. Claiming consumes an L1 to L2 message that "contains"
13
+ * the fee juice bridged from L1.
13
14
  */
14
- export class FeeJuicePaymentMethodWithClaim extends FeeJuicePaymentMethod {
15
+ export class FeeJuicePaymentMethodWithClaim implements FeePaymentMethod {
15
16
  constructor(
16
- private senderWallet: Wallet,
17
+ private sender: AztecAddress,
17
18
  private claim: Pick<L2AmountClaim, 'claimAmount' | 'claimSecret' | 'messageLeafIndex'>,
18
- ) {
19
- super(senderWallet.getAddress());
20
- }
19
+ ) {}
21
20
 
22
21
  /**
23
- * Creates a function call to pay the fee in Fee Juice.
24
- * @returns A function call
22
+ * Creates an execution payload to pay the fee in Fee Juice.
23
+ * @returns An execution payload that just contains the `claim_and_end_setup` function call.
25
24
  */
26
- override async getFunctionCalls(): Promise<FunctionCall[]> {
27
- const canonicalFeeJuice = await getFeeJuice(this.senderWallet);
28
- const selector = await FunctionSelector.fromNameAndParameters(
29
- canonicalFeeJuice.artifact.functions.find(f => f.name === 'claim')!,
25
+ async getExecutionPayload(): Promise<ExecutionPayload> {
26
+ const selector = await FunctionSelector.fromSignature('claim_and_end_setup((Field),u128,Field,Field)');
27
+
28
+ return new ExecutionPayload(
29
+ [
30
+ {
31
+ to: ProtocolContractAddress.FeeJuice,
32
+ name: 'claim_and_end_setup',
33
+ selector,
34
+ hideMsgSender: false,
35
+ isStatic: false,
36
+ args: [
37
+ this.sender.toField(),
38
+ new Fr(this.claim.claimAmount),
39
+ this.claim.claimSecret,
40
+ new Fr(this.claim.messageLeafIndex),
41
+ ],
42
+ returnTypes: [],
43
+ type: FunctionType.PRIVATE,
44
+ },
45
+ ],
46
+ [],
47
+ [],
48
+ [],
49
+ this.sender, // feePayer
30
50
  );
51
+ }
52
+
53
+ getAsset() {
54
+ return Promise.resolve(ProtocolContractAddress.FeeJuice);
55
+ }
56
+
57
+ getFeePayer(): Promise<AztecAddress> {
58
+ return Promise.resolve(this.sender);
59
+ }
31
60
 
32
- return Promise.resolve([
33
- {
34
- to: ProtocolContractAddress.FeeJuice,
35
- name: 'claim',
36
- selector,
37
- isStatic: false,
38
- args: [
39
- this.senderWallet.getAddress().toField(),
40
- new Fr(this.claim.claimAmount),
41
- this.claim.claimSecret,
42
- new Fr(this.claim.messageLeafIndex),
43
- ],
44
- returnTypes: [],
45
- type: FunctionType.PRIVATE,
46
- },
47
- ]);
61
+ getGasSettings(): GasSettings | undefined {
62
+ return;
48
63
  }
49
64
  }
@@ -1,6 +1,6 @@
1
- import type { FunctionCall } from '@aztec/stdlib/abi';
2
1
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
3
2
  import type { GasSettings } from '@aztec/stdlib/gas';
3
+ import type { ExecutionPayload } from '@aztec/stdlib/tx';
4
4
 
5
5
  /**
6
6
  * Holds information about how the fee for a transaction is to be paid.
@@ -9,14 +9,18 @@ export interface FeePaymentMethod {
9
9
  /** The asset used to pay the fee. */
10
10
  getAsset(): Promise<AztecAddress>;
11
11
  /**
12
- * Creates a function call to pay the fee in the given asset.
13
- * @param gasSettings - The gas limits and max fees.
14
- * @returns The function call to pay the fee.
12
+ * Returns the data to be added to the final execution request
13
+ * to pay the fee in the given asset
14
+ * @returns The function calls to pay the fee.
15
15
  */
16
- getFunctionCalls(gasSettings: GasSettings): Promise<FunctionCall[]>;
16
+ getExecutionPayload(): Promise<ExecutionPayload>;
17
17
  /**
18
18
  * The expected fee payer for this tx.
19
- * @param gasSettings - The gas limits and max fees.
20
19
  */
21
- getFeePayer(gasSettings: GasSettings): Promise<AztecAddress>;
20
+ getFeePayer(): Promise<AztecAddress>;
21
+ /**
22
+ * The gas settings (if any) used to compute the
23
+ * execution payload of the payment method
24
+ */
25
+ getGasSettings(): GasSettings | undefined;
22
26
  }