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

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 (446) 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 +4 -2
  85. package/dest/api/wallet.d.ts.map +1 -1
  86. package/dest/api/wallet.js +3 -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 +36 -0
  118. package/dest/contract/protocol_contracts/auth-registry.d.ts.map +1 -0
  119. package/dest/contract/protocol_contracts/auth-registry.js +963 -0
  120. package/dest/contract/protocol_contracts/contract-class-registry.d.ts +35 -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 +784 -0
  123. package/dest/contract/protocol_contracts/contract-instance-registry.d.ts +31 -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 +858 -0
  126. package/dest/contract/protocol_contracts/fee-juice.d.ts +30 -0
  127. package/dest/contract/protocol_contracts/fee-juice.d.ts.map +1 -0
  128. package/dest/contract/protocol_contracts/fee-juice.js +827 -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 +563 -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 +579 -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/deploy_account_method.d.ts +80 -0
  200. package/dest/wallet/deploy_account_method.d.ts.map +1 -0
  201. package/dest/wallet/deploy_account_method.js +79 -0
  202. package/dest/wallet/index.d.ts +3 -17
  203. package/dest/wallet/index.d.ts.map +1 -1
  204. package/dest/wallet/index.js +2 -20
  205. package/dest/wallet/wallet.d.ts +1297 -0
  206. package/dest/wallet/wallet.d.ts.map +1 -0
  207. package/dest/wallet/wallet.js +172 -0
  208. package/package.json +47 -36
  209. package/src/account/account.ts +72 -0
  210. package/src/account/account_contract.ts +66 -0
  211. package/src/account/account_with_secret_key.ts +63 -0
  212. package/src/account/index.ts +5 -8
  213. package/src/account/signerless_account.ts +46 -0
  214. package/src/api/abi.ts +26 -0
  215. package/src/api/account.ts +8 -5
  216. package/src/api/addresses.ts +1 -0
  217. package/src/api/authorization.ts +15 -0
  218. package/src/api/block.ts +2 -0
  219. package/src/api/contract.ts +88 -0
  220. package/src/api/crypto.ts +1 -0
  221. package/src/api/deployment.ts +4 -3
  222. package/src/api/ethereum.ts +10 -0
  223. package/src/api/events.ts +44 -0
  224. package/src/api/fee.ts +1 -1
  225. package/src/api/fee_testing.ts +1 -0
  226. package/src/api/fields.ts +2 -1
  227. package/src/api/keys.ts +8 -0
  228. package/src/api/log.ts +1 -0
  229. package/src/api/messaging.ts +2 -0
  230. package/src/api/node.ts +24 -0
  231. package/src/api/note.ts +1 -0
  232. package/src/api/protocol.ts +9 -0
  233. package/src/api/trees.ts +2 -0
  234. package/src/api/tx.ts +15 -0
  235. package/src/api/utils.ts +14 -0
  236. package/src/api/wallet.ts +34 -5
  237. package/src/authorization/call_authorization_request.ts +63 -0
  238. package/src/contract/base_contract_interaction.ts +40 -171
  239. package/src/contract/batch_call.ts +108 -57
  240. package/src/contract/checker.ts +8 -3
  241. package/src/contract/contract.ts +14 -21
  242. package/src/contract/contract_base.ts +9 -26
  243. package/src/contract/contract_function_interaction.ts +135 -106
  244. package/src/contract/deploy_method.ts +307 -143
  245. package/src/contract/get_gas_limits.ts +15 -8
  246. package/src/contract/interaction_options.ts +208 -0
  247. package/src/contract/protocol_contracts/auth-registry.ts +545 -0
  248. package/src/contract/protocol_contracts/contract-class-registry.ts +433 -0
  249. package/src/contract/protocol_contracts/contract-instance-registry.ts +493 -0
  250. package/src/contract/protocol_contracts/fee-juice.ts +457 -0
  251. package/src/contract/protocol_contracts/multi-call-entrypoint.ts +329 -0
  252. package/src/contract/protocol_contracts/public-checks.ts +315 -0
  253. package/src/contract/wait_for_proven.ts +38 -0
  254. package/src/contract/wait_opts.ts +21 -0
  255. package/src/deployment/broadcast_function.ts +58 -58
  256. package/src/deployment/contract_deployer.ts +4 -3
  257. package/src/deployment/publish_class.ts +34 -0
  258. package/src/deployment/publish_instance.ts +23 -0
  259. package/src/{api/ethereum → ethereum}/portal_manager.ts +166 -89
  260. package/src/fee/fee_juice_payment_method_with_claim.ts +49 -34
  261. package/src/fee/fee_payment_method.ts +11 -7
  262. package/src/fee/private_fee_payment_method.ts +80 -58
  263. package/src/fee/public_fee_payment_method.ts +94 -68
  264. package/src/fee/sponsored_fee_payment.ts +46 -0
  265. package/src/scripts/generate_protocol_contract_types.ts +150 -0
  266. package/src/utils/abi_types.ts +1 -1
  267. package/src/utils/authwit.ts +274 -54
  268. package/src/utils/cross_chain.ts +53 -0
  269. package/src/utils/fee_juice.ts +5 -5
  270. package/src/utils/field_compressed_string.ts +1 -1
  271. package/src/utils/node.ts +63 -1
  272. package/src/utils/pub_key.ts +3 -4
  273. package/src/wallet/account_entrypoint_meta_payment_method.ts +74 -0
  274. package/src/wallet/account_manager.ts +146 -0
  275. package/src/wallet/deploy_account_method.ts +150 -0
  276. package/src/wallet/index.ts +2 -33
  277. package/src/wallet/wallet.ts +417 -0
  278. package/dest/account/contract.d.ts +0 -37
  279. package/dest/account/contract.d.ts.map +0 -1
  280. package/dest/account/interface.d.ts +0 -31
  281. package/dest/account/interface.d.ts.map +0 -1
  282. package/dest/account/interface.js +0 -4
  283. package/dest/account/wallet.d.ts +0 -11
  284. package/dest/account/wallet.d.ts.map +0 -1
  285. package/dest/account/wallet.js +0 -3
  286. package/dest/account_manager/deploy_account_method.d.ts +0 -15
  287. package/dest/account_manager/deploy_account_method.d.ts.map +0 -1
  288. package/dest/account_manager/deploy_account_method.js +0 -43
  289. package/dest/account_manager/deploy_account_sent_tx.d.ts +0 -30
  290. package/dest/account_manager/deploy_account_sent_tx.d.ts.map +0 -1
  291. package/dest/account_manager/deploy_account_sent_tx.js +0 -29
  292. package/dest/account_manager/index.d.ts +0 -108
  293. package/dest/account_manager/index.d.ts.map +0 -1
  294. package/dest/account_manager/index.js +0 -159
  295. package/dest/api/cheat_codes.d.ts +0 -26
  296. package/dest/api/cheat_codes.d.ts.map +0 -1
  297. package/dest/api/cheat_codes.js +0 -25
  298. package/dest/api/entrypoint.d.ts +0 -2
  299. package/dest/api/entrypoint.d.ts.map +0 -1
  300. package/dest/api/entrypoint.js +0 -1
  301. package/dest/api/ethereum/anvil_test_watcher.d.ts +0 -32
  302. package/dest/api/ethereum/anvil_test_watcher.d.ts.map +0 -1
  303. package/dest/api/ethereum/anvil_test_watcher.js +0 -133
  304. package/dest/api/ethereum/chain_monitor.d.ts +0 -25
  305. package/dest/api/ethereum/chain_monitor.d.ts.map +0 -1
  306. package/dest/api/ethereum/chain_monitor.js +0 -74
  307. package/dest/api/ethereum/cheat_codes.d.ts +0 -63
  308. package/dest/api/ethereum/cheat_codes.d.ts.map +0 -1
  309. package/dest/api/ethereum/cheat_codes.js +0 -162
  310. package/dest/api/ethereum/index.d.ts +0 -7
  311. package/dest/api/ethereum/index.d.ts.map +0 -1
  312. package/dest/api/ethereum/index.js +0 -6
  313. package/dest/api/ethereum/l1_contracts.d.ts +0 -3
  314. package/dest/api/ethereum/l1_contracts.d.ts.map +0 -1
  315. package/dest/api/ethereum/l1_contracts.js +0 -13
  316. package/dest/api/ethereum/portal_manager.d.ts +0 -136
  317. package/dest/api/ethereum/portal_manager.d.ts.map +0 -1
  318. package/dest/api/ethereum/portal_manager.js +0 -286
  319. package/dest/api/interfaces/pxe.d.ts +0 -2
  320. package/dest/api/interfaces/pxe.d.ts.map +0 -1
  321. package/dest/api/interfaces/pxe.js +0 -1
  322. package/dest/api/log_id.d.ts +0 -2
  323. package/dest/api/log_id.d.ts.map +0 -1
  324. package/dest/api/log_id.js +0 -1
  325. package/dest/api/tx_hash.d.ts +0 -2
  326. package/dest/api/tx_hash.d.ts.map +0 -1
  327. package/dest/api/tx_hash.js +0 -1
  328. package/dest/contract/deploy_proven_tx.d.ts +0 -21
  329. package/dest/contract/deploy_proven_tx.d.ts.map +0 -1
  330. package/dest/contract/deploy_proven_tx.js +0 -19
  331. package/dest/contract/deploy_sent_tx.d.ts +0 -45
  332. package/dest/contract/deploy_sent_tx.d.ts.map +0 -1
  333. package/dest/contract/deploy_sent_tx.js +0 -43
  334. package/dest/contract/index.d.ts +0 -45
  335. package/dest/contract/index.d.ts.map +0 -1
  336. package/dest/contract/index.js +0 -43
  337. package/dest/contract/protocol_contracts.d.ts +0 -9
  338. package/dest/contract/protocol_contracts.d.ts.map +0 -1
  339. package/dest/contract/protocol_contracts.js +0 -26
  340. package/dest/contract/proven_tx.d.ts +0 -17
  341. package/dest/contract/proven_tx.d.ts.map +0 -1
  342. package/dest/contract/proven_tx.js +0 -22
  343. package/dest/contract/sent_tx.d.ts +0 -61
  344. package/dest/contract/sent_tx.d.ts.map +0 -1
  345. package/dest/contract/sent_tx.js +0 -102
  346. package/dest/contract/unsafe_contract.d.ts +0 -15
  347. package/dest/contract/unsafe_contract.d.ts.map +0 -1
  348. package/dest/contract/unsafe_contract.js +0 -6
  349. package/dest/deployment/deploy_instance.d.ts +0 -10
  350. package/dest/deployment/deploy_instance.d.ts.map +0 -1
  351. package/dest/deployment/deploy_instance.js +0 -14
  352. package/dest/deployment/index.d.ts +0 -2
  353. package/dest/deployment/index.d.ts.map +0 -1
  354. package/dest/deployment/index.js +0 -1
  355. package/dest/deployment/register_class.d.ts +0 -6
  356. package/dest/deployment/register_class.d.ts.map +0 -1
  357. package/dest/deployment/register_class.js +0 -22
  358. package/dest/entrypoint/default_entrypoint.d.ts +0 -12
  359. package/dest/entrypoint/default_entrypoint.d.ts.map +0 -1
  360. package/dest/entrypoint/default_entrypoint.js +0 -28
  361. package/dest/entrypoint/default_multi_call_entrypoint.d.ts +0 -15
  362. package/dest/entrypoint/default_multi_call_entrypoint.d.ts.map +0 -1
  363. package/dest/entrypoint/default_multi_call_entrypoint.js +0 -130
  364. package/dest/entrypoint/entrypoint.d.ts +0 -35
  365. package/dest/entrypoint/entrypoint.d.ts.map +0 -1
  366. package/dest/entrypoint/entrypoint.js +0 -4
  367. package/dest/entrypoint/payload.d.ts +0 -128
  368. package/dest/entrypoint/payload.d.ts.map +0 -1
  369. package/dest/entrypoint/payload.js +0 -143
  370. package/dest/fee/fee_juice_payment_method.d.ts +0 -14
  371. package/dest/fee/fee_juice_payment_method.d.ts.map +0 -1
  372. package/dest/fee/fee_juice_payment_method.js +0 -20
  373. package/dest/index.d.ts +0 -66
  374. package/dest/index.d.ts.map +0 -1
  375. package/dest/index.js +0 -69
  376. package/dest/rpc_clients/index.d.ts +0 -3
  377. package/dest/rpc_clients/index.d.ts.map +0 -1
  378. package/dest/rpc_clients/index.js +0 -2
  379. package/dest/rpc_clients/node/index.d.ts +0 -12
  380. package/dest/rpc_clients/node/index.d.ts.map +0 -1
  381. package/dest/rpc_clients/node/index.js +0 -78
  382. package/dest/rpc_clients/pxe_client.d.ts +0 -10
  383. package/dest/rpc_clients/pxe_client.d.ts.map +0 -1
  384. package/dest/rpc_clients/pxe_client.js +0 -23
  385. package/dest/utils/aztec_cheatcodes.d.ts +0 -59
  386. package/dest/utils/aztec_cheatcodes.d.ts.map +0 -1
  387. package/dest/utils/aztec_cheatcodes.js +0 -62
  388. package/dest/utils/index.d.ts +0 -8
  389. package/dest/utils/index.d.ts.map +0 -1
  390. package/dest/utils/index.js +0 -6
  391. package/dest/utils/pxe.d.ts +0 -4
  392. package/dest/utils/pxe.d.ts.map +0 -1
  393. package/dest/utils/pxe.js +0 -14
  394. package/dest/wallet/account_wallet.d.ts +0 -76
  395. package/dest/wallet/account_wallet.d.ts.map +0 -1
  396. package/dest/wallet/account_wallet.js +0 -231
  397. package/dest/wallet/account_wallet_with_private_key.d.ts +0 -26
  398. package/dest/wallet/account_wallet_with_private_key.d.ts.map +0 -1
  399. package/dest/wallet/base_wallet.d.ts +0 -73
  400. package/dest/wallet/base_wallet.d.ts.map +0 -1
  401. package/dest/wallet/base_wallet.js +0 -123
  402. package/dest/wallet/signerless_wallet.d.ts +0 -25
  403. package/dest/wallet/signerless_wallet.d.ts.map +0 -1
  404. package/dest/wallet/signerless_wallet.js +0 -36
  405. package/src/account/contract.ts +0 -56
  406. package/src/account/interface.ts +0 -36
  407. package/src/account/wallet.ts +0 -13
  408. package/src/account_manager/deploy_account_method.ts +0 -86
  409. package/src/account_manager/deploy_account_sent_tx.ts +0 -42
  410. package/src/account_manager/index.ts +0 -229
  411. package/src/api/cheat_codes.ts +0 -35
  412. package/src/api/entrypoint.ts +0 -1
  413. package/src/api/ethereum/anvil_test_watcher.ts +0 -158
  414. package/src/api/ethereum/chain_monitor.ts +0 -88
  415. package/src/api/ethereum/cheat_codes.ts +0 -184
  416. package/src/api/ethereum/index.ts +0 -19
  417. package/src/api/ethereum/l1_contracts.ts +0 -21
  418. package/src/api/interfaces/pxe.ts +0 -1
  419. package/src/api/log_id.ts +0 -1
  420. package/src/api/tx_hash.ts +0 -1
  421. package/src/contract/deploy_proven_tx.ts +0 -34
  422. package/src/contract/deploy_sent_tx.ts +0 -74
  423. package/src/contract/index.ts +0 -48
  424. package/src/contract/protocol_contracts.ts +0 -35
  425. package/src/contract/proven_tx.ts +0 -42
  426. package/src/contract/sent_tx.ts +0 -141
  427. package/src/contract/unsafe_contract.ts +0 -19
  428. package/src/deployment/deploy_instance.ts +0 -31
  429. package/src/deployment/index.ts +0 -1
  430. package/src/deployment/register_class.ts +0 -44
  431. package/src/entrypoint/default_entrypoint.ts +0 -39
  432. package/src/entrypoint/default_multi_call_entrypoint.ts +0 -93
  433. package/src/entrypoint/entrypoint.ts +0 -39
  434. package/src/entrypoint/payload.ts +0 -238
  435. package/src/fee/fee_juice_payment_method.ts +0 -26
  436. package/src/index.ts +0 -106
  437. package/src/rpc_clients/index.ts +0 -2
  438. package/src/rpc_clients/node/index.ts +0 -77
  439. package/src/rpc_clients/pxe_client.ts +0 -25
  440. package/src/utils/aztec_cheatcodes.ts +0 -77
  441. package/src/utils/index.ts +0 -21
  442. package/src/utils/pxe.ts +0 -17
  443. package/src/wallet/account_wallet.ts +0 -242
  444. package/src/wallet/account_wallet_with_private_key.ts +0 -40
  445. package/src/wallet/base_wallet.ts +0 -198
  446. package/src/wallet/signerless_wallet.ts +0 -52
@@ -1,141 +0,0 @@
1
- import { retryUntil } from '@aztec/foundation/retry';
2
- import type { FieldsOf } from '@aztec/foundation/types';
3
- import type { AztecNode, GetPublicLogsResponse, PXE } from '@aztec/stdlib/interfaces/client';
4
- import { type TxHash, type TxReceipt, TxStatus } from '@aztec/stdlib/tx';
5
-
6
- /** Options related to waiting for a tx. */
7
- export type WaitOpts = {
8
- /** The amount of time to ignore TxStatus.DROPPED receipts (in seconds) due to the presumption that it is being propagated by the p2p network. Defaults to 5. */
9
- ignoreDroppedReceiptsFor?: number;
10
- /** The maximum time (in seconds) to wait for the transaction to be mined. Defaults to 60. */
11
- timeout?: number;
12
- /** The maximum time (in seconds) to wait for the transaction to be proven. Defaults to 600. */
13
- provenTimeout?: number;
14
- /** The time interval (in seconds) between retries to fetch the transaction receipt. Defaults to 1. */
15
- interval?: number;
16
- /** Whether to wait for the tx to be proven. */
17
- proven?: boolean;
18
- /** Whether to include information useful for debugging/testing in the receipt. */
19
- debug?: boolean;
20
- /** Whether to accept a revert as a status code for the tx when waiting for it. If false, will throw if the tx reverts. */
21
- dontThrowOnRevert?: boolean;
22
- };
23
-
24
- export const DefaultWaitOpts: WaitOpts = {
25
- ignoreDroppedReceiptsFor: 5,
26
- timeout: 60,
27
- provenTimeout: 600,
28
- interval: 1,
29
- debug: false,
30
- };
31
-
32
- /**
33
- * The SentTx class represents a sent transaction through the PXE (or directly to a node) providing methods to fetch
34
- * its hash, receipt, and mining status.
35
- */
36
- export class SentTx {
37
- constructor(protected pxeOrNode: PXE | AztecNode, protected txHashPromise: Promise<TxHash>) {}
38
-
39
- /**
40
- * Retrieves the transaction hash of the SentTx instance.
41
- * The function internally awaits for the 'txHashPromise' to resolve, and then returns the resolved transaction hash.
42
- *
43
- * @returns A promise that resolves to the transaction hash of the SentTx instance.
44
- * TODO(#7717): Don't throw here.
45
- */
46
- public getTxHash(): Promise<TxHash> {
47
- return this.txHashPromise;
48
- }
49
-
50
- /**
51
- * Retrieve the transaction receipt associated with the current SentTx instance.
52
- * The function fetches the transaction hash using 'getTxHash' and then queries
53
- * the PXE to get the corresponding transaction receipt.
54
- *
55
- * @returns A promise that resolves to a TxReceipt object representing the fetched transaction receipt.
56
- */
57
- public async getReceipt(): Promise<TxReceipt> {
58
- const txHash = await this.getTxHash();
59
- return await this.pxeOrNode.getTxReceipt(txHash);
60
- }
61
-
62
- /**
63
- * Awaits for a tx to be mined and returns the receipt. Throws if tx is not mined.
64
- * @param opts - Options for configuring the waiting for the tx to be mined.
65
- * @returns The transaction receipt.
66
- */
67
- public async wait(opts?: WaitOpts): Promise<FieldsOf<TxReceipt>> {
68
- const receipt = await this.waitForReceipt(opts);
69
- if (receipt.status !== TxStatus.SUCCESS && !opts?.dontThrowOnRevert) {
70
- throw new Error(
71
- `Transaction ${await this.getTxHash()} was ${receipt.status}. Reason: ${receipt.error ?? 'unknown'}`,
72
- );
73
- }
74
- if (opts?.proven && receipt.blockNumber !== undefined) {
75
- await this.waitForProven(receipt.blockNumber, opts);
76
- }
77
- if (opts?.debug) {
78
- const txHash = await this.getTxHash();
79
- const { data: tx } = (await this.pxeOrNode.getTxEffect(txHash))!;
80
- receipt.debugInfo = {
81
- noteHashes: tx.noteHashes,
82
- nullifiers: tx.nullifiers,
83
- publicDataWrites: tx.publicDataWrites,
84
- l2ToL1Msgs: tx.l2ToL1Msgs,
85
- };
86
- }
87
- return receipt;
88
- }
89
-
90
- /**
91
- * Gets public logs emitted by this tx.
92
- * @remarks This function will wait for the tx to be mined if it hasn't been already.
93
- * @returns The requested logs.
94
- */
95
- public async getPublicLogs(): Promise<GetPublicLogsResponse> {
96
- await this.wait();
97
- return this.pxeOrNode.getPublicLogs({ txHash: await this.getTxHash() });
98
- }
99
-
100
- protected async waitForReceipt(opts?: WaitOpts): Promise<TxReceipt> {
101
- const txHash = await this.getTxHash();
102
- const startTime = Date.now();
103
- const ignoreDroppedReceiptsFor = opts?.ignoreDroppedReceiptsFor ?? DefaultWaitOpts.ignoreDroppedReceiptsFor;
104
-
105
- return await retryUntil(
106
- async () => {
107
- const txReceipt = await this.pxeOrNode.getTxReceipt(txHash);
108
- // If receipt is not yet available, try again
109
- if (txReceipt.status === TxStatus.PENDING) {
110
- return undefined;
111
- }
112
- // If the tx was "dropped", either return it or ignore based on timing.
113
- // We can ignore it at first because the transaction may have been sent to node 1, and now we're asking node 2 for the receipt.
114
- // If we don't allow a short grace period, we could incorrectly return a TxReceipt with status DROPPED.
115
- if (txReceipt.status === TxStatus.DROPPED) {
116
- const elapsedSeconds = (Date.now() - startTime) / 1000;
117
- if (!ignoreDroppedReceiptsFor || elapsedSeconds > ignoreDroppedReceiptsFor) {
118
- return txReceipt;
119
- }
120
- return undefined;
121
- }
122
- return txReceipt;
123
- },
124
- 'isMined',
125
- opts?.timeout ?? DefaultWaitOpts.timeout,
126
- opts?.interval ?? DefaultWaitOpts.interval,
127
- );
128
- }
129
-
130
- protected async waitForProven(minedBlock: number, opts?: WaitOpts) {
131
- return await retryUntil(
132
- async () => {
133
- const provenBlock = await this.pxeOrNode.getProvenBlockNumber();
134
- return provenBlock >= minedBlock ? provenBlock : undefined;
135
- },
136
- 'isProven',
137
- opts?.provenTimeout ?? DefaultWaitOpts.provenTimeout,
138
- opts?.interval ?? DefaultWaitOpts.interval,
139
- );
140
- }
141
- }
@@ -1,19 +0,0 @@
1
- import type { ContractArtifact } from '@aztec/stdlib/abi';
2
- import type { ContractInstanceWithAddress } from '@aztec/stdlib/contract';
3
-
4
- import type { Wallet } from '../wallet/index.js';
5
- import { ContractBase } from './contract_base.js';
6
-
7
- /** Unsafe constructor for ContractBase that bypasses the check that the instance is registered in the wallet. */
8
- export class UnsafeContract extends ContractBase {
9
- constructor(
10
- /** The deployed contract instance definition. */
11
- instance: ContractInstanceWithAddress,
12
- /** The Application Binary Interface for the contract. */
13
- artifact: ContractArtifact,
14
- /** The wallet used for interacting with this contract. */
15
- wallet: Wallet,
16
- ) {
17
- super(instance, artifact, wallet);
18
- }
19
- }
@@ -1,31 +0,0 @@
1
- import type { ContractInstanceWithAddress } from '@aztec/stdlib/contract';
2
-
3
- import type { ContractFunctionInteraction } from '../contract/contract_function_interaction.js';
4
- import { getDeployerContract } from '../contract/protocol_contracts.js';
5
- import type { Wallet } from '../wallet/index.js';
6
-
7
- /**
8
- * Sets up a call to the canonical deployer contract to publicly deploy a contract instance.
9
- * @param wallet - The wallet to use for the deployment.
10
- * @param instance - The instance to deploy.
11
- */
12
- export async function deployInstance(
13
- wallet: Wallet,
14
- instance: ContractInstanceWithAddress,
15
- ): Promise<ContractFunctionInteraction> {
16
- const deployerContract = await getDeployerContract(wallet);
17
- const { salt, currentContractClassId: contractClassId, publicKeys, deployer } = instance;
18
- const isUniversalDeploy = deployer.isZero();
19
- if (!isUniversalDeploy && !wallet.getAddress().equals(deployer)) {
20
- throw new Error(
21
- `Expected deployer ${deployer.toString()} does not match sender wallet ${wallet.getAddress().toString()}`,
22
- );
23
- }
24
- return deployerContract.methods.deploy(
25
- salt,
26
- contractClassId,
27
- instance.initializationHash,
28
- publicKeys,
29
- isUniversalDeploy,
30
- );
31
- }
@@ -1 +0,0 @@
1
- export * from './contract_deployer.js';
@@ -1,44 +0,0 @@
1
- import { MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS, REGISTERER_CONTRACT_BYTECODE_CAPSULE_SLOT } from '@aztec/constants';
2
- import { Fr } from '@aztec/foundation/fields';
3
- import { ProtocolContractAddress } from '@aztec/protocol-contracts';
4
- import { type ContractArtifact, bufferAsFields } from '@aztec/stdlib/abi';
5
- import { getContractClassFromArtifact } from '@aztec/stdlib/contract';
6
- import { Capsule } from '@aztec/stdlib/tx';
7
-
8
- import type { ContractFunctionInteraction } from '../contract/contract_function_interaction.js';
9
- import { getRegistererContract } from '../contract/protocol_contracts.js';
10
- import type { Wallet } from '../wallet/index.js';
11
-
12
- const defaultEmitPublicBytecode =
13
- // guard against `process` not being defined (e.g. in the browser)
14
- typeof process === 'object' && typeof process.env === 'object'
15
- ? ['1', 'true', 'yes', ''].includes(process.env.AZTEC_EMIT_PUBLIC_BYTECODE ?? '')
16
- : true;
17
-
18
- /** Sets up a call to register a contract class given its artifact. */
19
- export async function registerContractClass(
20
- wallet: Wallet,
21
- artifact: ContractArtifact,
22
- emitPublicBytecode = defaultEmitPublicBytecode,
23
- ): Promise<ContractFunctionInteraction> {
24
- const { artifactHash, privateFunctionsRoot, publicBytecodeCommitment, packedBytecode } =
25
- await getContractClassFromArtifact(artifact);
26
- const registerer = await getRegistererContract(wallet);
27
- const fn = registerer.methods.register(
28
- artifactHash,
29
- privateFunctionsRoot,
30
- publicBytecodeCommitment,
31
- emitPublicBytecode,
32
- );
33
-
34
- const encodedBytecode = bufferAsFields(packedBytecode, MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS);
35
- fn.addCapsule(
36
- new Capsule(
37
- ProtocolContractAddress.ContractClassRegisterer,
38
- new Fr(REGISTERER_CONTRACT_BYTECODE_CAPSULE_SLOT),
39
- encodedBytecode,
40
- ),
41
- );
42
-
43
- return fn;
44
- }
@@ -1,39 +0,0 @@
1
- import { FunctionType } from '@aztec/stdlib/abi';
2
- import { HashedValues, TxContext, TxExecutionRequest } from '@aztec/stdlib/tx';
3
-
4
- import type { EntrypointInterface, ExecutionRequestInit } from './entrypoint.js';
5
-
6
- /**
7
- * Default implementation of the entrypoint interface. It calls a function on a contract directly
8
- */
9
- export class DefaultEntrypoint implements EntrypointInterface {
10
- constructor(private chainId: number, private protocolVersion: number) {}
11
-
12
- async createTxExecutionRequest(exec: ExecutionRequestInit): Promise<TxExecutionRequest> {
13
- const { fee, calls, authWitnesses = [], hashedArguments = [], capsules = [] } = exec;
14
-
15
- if (calls.length > 1) {
16
- throw new Error(`Expected a single call, got ${calls.length}`);
17
- }
18
-
19
- const call = calls[0];
20
-
21
- if (call.type !== FunctionType.PRIVATE) {
22
- throw new Error('Public entrypoints are not allowed');
23
- }
24
-
25
- const entrypointHashedValues = await HashedValues.fromValues(call.args);
26
- const txContext = new TxContext(this.chainId, this.protocolVersion, fee.gasSettings);
27
- return Promise.resolve(
28
- new TxExecutionRequest(
29
- call.to,
30
- call.selector,
31
- entrypointHashedValues.hash,
32
- txContext,
33
- [...hashedArguments, entrypointHashedValues],
34
- authWitnesses,
35
- capsules,
36
- ),
37
- );
38
- }
39
- }
@@ -1,93 +0,0 @@
1
- import { ProtocolContractAddress } from '@aztec/protocol-contracts';
2
- import { type FunctionAbi, FunctionSelector, encodeArguments } from '@aztec/stdlib/abi';
3
- import type { AztecAddress } from '@aztec/stdlib/aztec-address';
4
- import { HashedValues, TxContext, TxExecutionRequest } from '@aztec/stdlib/tx';
5
-
6
- import { type EntrypointInterface, EntrypointPayload, type ExecutionRequestInit } from './entrypoint.js';
7
-
8
- /**
9
- * Implementation for an entrypoint interface that can execute multiple function calls in a single transaction
10
- */
11
- export class DefaultMultiCallEntrypoint implements EntrypointInterface {
12
- constructor(
13
- private chainId: number,
14
- private version: number,
15
- private address: AztecAddress = ProtocolContractAddress.MultiCallEntrypoint,
16
- ) {}
17
-
18
- async createTxExecutionRequest(executions: ExecutionRequestInit): Promise<TxExecutionRequest> {
19
- const { fee, calls, authWitnesses = [], hashedArguments = [], capsules = [] } = executions;
20
- const payload = await EntrypointPayload.fromAppExecution(calls);
21
- const abi = this.getEntrypointAbi();
22
- const entrypointHashedArgs = await HashedValues.fromValues(encodeArguments(abi, [payload]));
23
-
24
- const txRequest = TxExecutionRequest.from({
25
- firstCallArgsHash: entrypointHashedArgs.hash,
26
- origin: this.address,
27
- functionSelector: await FunctionSelector.fromNameAndParameters(abi.name, abi.parameters),
28
- txContext: new TxContext(this.chainId, this.version, fee.gasSettings),
29
- argsOfCalls: [...payload.hashedArguments, ...hashedArguments, entrypointHashedArgs],
30
- authWitnesses,
31
- capsules,
32
- });
33
-
34
- return Promise.resolve(txRequest);
35
- }
36
-
37
- private getEntrypointAbi() {
38
- return {
39
- name: 'entrypoint',
40
- isInitializer: false,
41
- functionType: 'private',
42
- isInternal: false,
43
- isStatic: false,
44
- parameters: [
45
- {
46
- name: 'app_payload',
47
- type: {
48
- kind: 'struct',
49
- path: 'authwit::entrypoint::app::AppPayload',
50
- fields: [
51
- {
52
- name: 'function_calls',
53
- type: {
54
- kind: 'array',
55
- length: 4,
56
- type: {
57
- kind: 'struct',
58
- path: 'authwit::entrypoint::function_call::FunctionCall',
59
- fields: [
60
- { name: 'args_hash', type: { kind: 'field' } },
61
- {
62
- name: 'function_selector',
63
- type: {
64
- kind: 'struct',
65
- path: 'authwit::aztec::protocol_types::abis::function_selector::FunctionSelector',
66
- fields: [{ name: 'inner', type: { kind: 'integer', sign: 'unsigned', width: 32 } }],
67
- },
68
- },
69
- {
70
- name: 'target_address',
71
- type: {
72
- kind: 'struct',
73
- path: 'authwit::aztec::protocol_types::address::AztecAddress',
74
- fields: [{ name: 'inner', type: { kind: 'field' } }],
75
- },
76
- },
77
- { name: 'is_public', type: { kind: 'boolean' } },
78
- { name: 'is_static', type: { kind: 'boolean' } },
79
- ],
80
- },
81
- },
82
- },
83
- { name: 'nonce', type: { kind: 'field' } },
84
- ],
85
- },
86
- visibility: 'public',
87
- },
88
- ],
89
- returnTypes: [],
90
- errorTypes: {},
91
- } as FunctionAbi;
92
- }
93
- }
@@ -1,39 +0,0 @@
1
- import type { Fr } from '@aztec/foundation/fields';
2
- import type { FunctionCall } from '@aztec/stdlib/abi';
3
- import type { AuthWitness } from '@aztec/stdlib/auth-witness';
4
- import type { Capsule, HashedValues, TxExecutionRequest } from '@aztec/stdlib/tx';
5
-
6
- import { EntrypointPayload, type FeeOptions, computeCombinedPayloadHash } from './payload.js';
7
-
8
- export { EntrypointPayload, type FeeOptions, computeCombinedPayloadHash };
9
-
10
- export { DefaultEntrypoint } from './default_entrypoint.js';
11
- export { DefaultMultiCallEntrypoint } from './default_multi_call_entrypoint.js';
12
-
13
- /** Encodes the calls to be done in a transaction. */
14
- export type ExecutionRequestInit = {
15
- /** The function calls to be executed. */
16
- calls: FunctionCall[];
17
- /** Any transient auth witnesses needed for this execution */
18
- authWitnesses?: AuthWitness[];
19
- /** Any transient hashed arguments for this execution */
20
- hashedArguments?: HashedValues[];
21
- /** Data passed through an oracle for this execution. */
22
- capsules?: Capsule[];
23
- /** How the fee is going to be payed */
24
- fee: FeeOptions;
25
- /** An optional nonce. Used to repeat a previous tx with a higher fee so that the first one is cancelled */
26
- nonce?: Fr;
27
- /** Whether the transaction can be cancelled. If true, an extra nullifier will be emitted: H(nonce, GENERATOR_INDEX__TX_NULLIFIER) */
28
- cancellable?: boolean;
29
- };
30
-
31
- /** Creates transaction execution requests out of a set of function calls. */
32
- export interface EntrypointInterface {
33
- /**
34
- * Generates an execution request out of set of function calls.
35
- * @param execution - The execution intents to be run.
36
- * @returns The authenticated transaction execution request.
37
- */
38
- createTxExecutionRequest(execution: ExecutionRequestInit): Promise<TxExecutionRequest>;
39
- }
@@ -1,238 +0,0 @@
1
- import { GeneratorIndex } from '@aztec/constants';
2
- import { padArrayEnd } from '@aztec/foundation/collection';
3
- import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto';
4
- import { Fr } from '@aztec/foundation/fields';
5
- import type { Tuple } from '@aztec/foundation/serialize';
6
- import type { FieldsOf } from '@aztec/foundation/types';
7
- import { FunctionCall, FunctionType } from '@aztec/stdlib/abi';
8
- import type { AztecAddress } from '@aztec/stdlib/aztec-address';
9
- import type { GasSettings } from '@aztec/stdlib/gas';
10
- import { HashedValues } from '@aztec/stdlib/tx';
11
-
12
- import type { FeePaymentMethod } from '../fee/fee_payment_method.js';
13
-
14
- /**
15
- * Fee payment options for a transaction.
16
- */
17
- export type FeeOptions = {
18
- /** The fee payment method to use */
19
- paymentMethod: FeePaymentMethod;
20
- /** The gas settings */
21
- gasSettings: GasSettings;
22
- };
23
-
24
- // docs:start:user_fee_options
25
- /** Fee options as set by a user. */
26
- export type UserFeeOptions = {
27
- /** The fee payment method to use */
28
- paymentMethod?: FeePaymentMethod;
29
- /** The gas settings */
30
- gasSettings?: Partial<FieldsOf<GasSettings>>;
31
- /** Percentage to pad the base fee by, if empty, defaults to 0.5 */
32
- baseFeePadding?: number;
33
- /** Whether to run an initial simulation of the tx with high gas limit to figure out actual gas settings. */
34
- estimateGas?: boolean;
35
- /** Percentage to pad the estimated gas limits by, if empty, defaults to 0.1. Only relevant if estimateGas is set. */
36
- estimatedGasPadding?: number;
37
- };
38
- // docs:end:user_fee_options
39
-
40
- // These must match the values defined in:
41
- // - noir-projects/aztec-nr/aztec/src/entrypoint/app.nr
42
- const APP_MAX_CALLS = 4;
43
- // - and noir-projects/aztec-nr/aztec/src/entrypoint/fee.nr
44
- const FEE_MAX_CALLS = 2;
45
-
46
- /* eslint-disable camelcase */
47
- /** Encoded function call for account contract entrypoint */
48
- type EncodedFunctionCall = {
49
- /** Arguments hash for the call */
50
- args_hash: Fr;
51
- /** Selector of the function to call */
52
- function_selector: Fr;
53
- /** Address of the contract to call */
54
- target_address: Fr;
55
- /** Whether the function is public or private */
56
- is_public: boolean;
57
- /** Whether the function can alter state */
58
- is_static: boolean;
59
- };
60
- /* eslint-enable camelcase */
61
-
62
- /** Assembles an entrypoint payload */
63
- export abstract class EntrypointPayload {
64
- protected constructor(
65
- private functionCalls: EncodedFunctionCall[],
66
- private _hashedArguments: HashedValues[],
67
- private generatorIndex: number,
68
- private _nonce: Fr,
69
- ) {}
70
-
71
- protected static async create(functionCalls: FunctionCall[]) {
72
- const hashedArguments: HashedValues[] = [];
73
- for (const call of functionCalls) {
74
- hashedArguments.push(await HashedValues.fromValues(call.args));
75
- }
76
-
77
- /* eslint-disable camelcase */
78
- const encodedFunctionCalls = functionCalls.map((call, index) => ({
79
- args_hash: hashedArguments[index].hash,
80
- function_selector: call.selector.toField(),
81
- target_address: call.to.toField(),
82
- is_public: call.type == FunctionType.PUBLIC,
83
- is_static: call.isStatic,
84
- }));
85
- /* eslint-enable camelcase */
86
-
87
- return {
88
- encodedFunctionCalls,
89
- hashedArguments,
90
- };
91
- }
92
-
93
- /* eslint-disable camelcase */
94
- /**
95
- * The function calls to execute. This uses snake_case naming so that it is compatible with Noir encoding
96
- * @internal
97
- */
98
- get function_calls() {
99
- return this.functionCalls;
100
- }
101
- /* eslint-enable camelcase */
102
-
103
- /**
104
- * The nonce
105
- * @internal
106
- */
107
- get nonce() {
108
- return this._nonce;
109
- }
110
-
111
- /**
112
- * The hashed arguments for the function calls
113
- */
114
- get hashedArguments() {
115
- return this._hashedArguments;
116
- }
117
-
118
- /**
119
- * Serializes the payload to an array of fields
120
- * @returns The fields of the payload
121
- */
122
- abstract toFields(): Fr[];
123
-
124
- /**
125
- * Hashes the payload
126
- * @returns The hash of the payload
127
- */
128
- hash() {
129
- return poseidon2HashWithSeparator(this.toFields(), this.generatorIndex);
130
- }
131
-
132
- /** Serializes the function calls to an array of fields. */
133
- protected functionCallsToFields() {
134
- return this.functionCalls.flatMap(call => [
135
- call.args_hash,
136
- call.function_selector,
137
- call.target_address,
138
- new Fr(call.is_public),
139
- new Fr(call.is_static),
140
- ]);
141
- }
142
-
143
- /**
144
- * Creates an execution payload for a dapp from a set of function calls
145
- * @param functionCalls - The function calls to execute
146
- * @returns The execution payload
147
- */
148
- static async fromFunctionCalls(functionCalls: FunctionCall[]) {
149
- const { encodedFunctionCalls, hashedArguments } = await this.create(functionCalls);
150
- return new AppEntrypointPayload(encodedFunctionCalls, hashedArguments, 0, Fr.random());
151
- }
152
-
153
- /**
154
- * Creates an execution payload for the app-portion of a transaction from a set of function calls
155
- * @param functionCalls - The function calls to execute
156
- * @param nonce - The nonce for the payload, used to emit a nullifier identifying the call
157
- * @returns The execution payload
158
- */
159
- static async fromAppExecution(functionCalls: FunctionCall[] | Tuple<FunctionCall, 4>, nonce = Fr.random()) {
160
- if (functionCalls.length > APP_MAX_CALLS) {
161
- throw new Error(`Expected at most ${APP_MAX_CALLS} function calls, got ${functionCalls.length}`);
162
- }
163
- const paddedCalls = padArrayEnd(functionCalls, FunctionCall.empty(), APP_MAX_CALLS);
164
- const { encodedFunctionCalls, hashedArguments } = await this.create(paddedCalls);
165
- return new AppEntrypointPayload(encodedFunctionCalls, hashedArguments, GeneratorIndex.SIGNATURE_PAYLOAD, nonce);
166
- }
167
-
168
- /**
169
- * Creates an execution payload to pay the fee for a transaction
170
- * @param sender - The address sending this payload
171
- * @param feeOpts - The fee payment options
172
- * @returns The execution payload
173
- */
174
- static async fromFeeOptions(sender: AztecAddress, feeOpts?: FeeOptions) {
175
- const calls = (await feeOpts?.paymentMethod.getFunctionCalls(feeOpts?.gasSettings)) ?? [];
176
- const feePayer = await feeOpts?.paymentMethod.getFeePayer(feeOpts?.gasSettings);
177
- const isFeePayer = !!feePayer && feePayer.equals(sender);
178
- const paddedCalls = padArrayEnd(calls, FunctionCall.empty(), FEE_MAX_CALLS);
179
- const { encodedFunctionCalls, hashedArguments } = await this.create(paddedCalls);
180
- return new FeeEntrypointPayload(
181
- encodedFunctionCalls,
182
- hashedArguments,
183
- GeneratorIndex.FEE_PAYLOAD,
184
- Fr.random(),
185
- isFeePayer,
186
- );
187
- }
188
- }
189
-
190
- /** Entrypoint payload for app phase execution. */
191
- class AppEntrypointPayload extends EntrypointPayload {
192
- override toFields(): Fr[] {
193
- return [...this.functionCallsToFields(), this.nonce];
194
- }
195
- }
196
-
197
- /** Entrypoint payload for fee payment to be run during setup phase. */
198
- class FeeEntrypointPayload extends EntrypointPayload {
199
- #isFeePayer: boolean;
200
-
201
- constructor(
202
- functionCalls: EncodedFunctionCall[],
203
- hashedArguments: HashedValues[],
204
- generatorIndex: number,
205
- nonce: Fr,
206
- isFeePayer: boolean,
207
- ) {
208
- super(functionCalls, hashedArguments, generatorIndex, nonce);
209
- this.#isFeePayer = isFeePayer;
210
- }
211
-
212
- override toFields(): Fr[] {
213
- return [...this.functionCallsToFields(), this.nonce, new Fr(this.#isFeePayer)];
214
- }
215
-
216
- /* eslint-disable camelcase */
217
- /** Whether the sender should be appointed as fee payer. */
218
- get is_fee_payer() {
219
- return this.#isFeePayer;
220
- }
221
- /* eslint-enable camelcase */
222
- }
223
-
224
- /**
225
- * Computes a hash of a combined payload.
226
- * @param appPayload - An app payload.
227
- * @param feePayload - A fee payload.
228
- * @returns A hash of a combined payload.
229
- */
230
- export async function computeCombinedPayloadHash(
231
- appPayload: AppEntrypointPayload,
232
- feePayload: FeeEntrypointPayload,
233
- ): Promise<Fr> {
234
- return poseidon2HashWithSeparator(
235
- [await appPayload.hash(), await feePayload.hash()],
236
- GeneratorIndex.COMBINED_PAYLOAD,
237
- );
238
- }
@@ -1,26 +0,0 @@
1
- import { ProtocolContractAddress } from '@aztec/protocol-contracts';
2
- import type { FunctionCall } from '@aztec/stdlib/abi';
3
- import type { AztecAddress } from '@aztec/stdlib/aztec-address';
4
-
5
- import type { FeePaymentMethod } from './fee_payment_method.js';
6
-
7
- // docs:start:fee_juice_method
8
- /**
9
- * Pay fee directly in the Fee Juice.
10
- */
11
- export class FeeJuicePaymentMethod implements FeePaymentMethod {
12
- // docs:end:fee_juice_method
13
- constructor(protected sender: AztecAddress) {}
14
-
15
- getAsset() {
16
- return Promise.resolve(ProtocolContractAddress.FeeJuice);
17
- }
18
-
19
- getFunctionCalls(): Promise<FunctionCall[]> {
20
- return Promise.resolve([]);
21
- }
22
-
23
- getFeePayer(): Promise<AztecAddress> {
24
- return Promise.resolve(this.sender);
25
- }
26
- }