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

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 (403) hide show
  1. package/README.md +1 -1
  2. package/dest/account/account.d.ts +59 -0
  3. package/dest/account/account.d.ts.map +1 -0
  4. package/dest/account/account.js +59 -0
  5. package/dest/account/account_contract.d.ts +43 -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 +24 -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} +5 -5
  11. package/dest/account/index.d.ts +4 -8
  12. package/dest/account/index.d.ts.map +1 -1
  13. package/dest/account/index.js +2 -6
  14. package/dest/account/interface.d.ts +2 -14
  15. package/dest/account/interface.d.ts.map +1 -1
  16. package/dest/account/interface.js +1 -0
  17. package/dest/account/signerless_account.d.ts +23 -0
  18. package/dest/account/signerless_account.d.ts.map +1 -0
  19. package/dest/account/signerless_account.js +27 -0
  20. package/dest/api/abi.d.ts +3 -2
  21. package/dest/api/abi.d.ts.map +1 -1
  22. package/dest/api/abi.js +1 -1
  23. package/dest/api/account.d.ts +7 -3
  24. package/dest/api/account.d.ts.map +1 -1
  25. package/dest/api/account.js +4 -1
  26. package/dest/api/addresses.d.ts +2 -1
  27. package/dest/api/addresses.d.ts.map +1 -1
  28. package/dest/api/addresses.js +1 -0
  29. package/dest/api/authorization.d.ts +5 -0
  30. package/dest/api/authorization.d.ts.map +1 -0
  31. package/dest/api/authorization.js +4 -0
  32. package/dest/api/block.d.ts +3 -0
  33. package/dest/api/block.d.ts.map +1 -0
  34. package/dest/api/block.js +2 -0
  35. package/dest/api/contract.d.ts +49 -0
  36. package/dest/api/contract.d.ts.map +1 -0
  37. package/dest/{contract/index.js → api/contract.js} +15 -11
  38. package/dest/api/crypto.d.ts +2 -0
  39. package/dest/api/crypto.d.ts.map +1 -0
  40. package/dest/api/crypto.js +1 -0
  41. package/dest/api/deployment.d.ts +5 -4
  42. package/dest/api/deployment.d.ts.map +1 -1
  43. package/dest/api/deployment.js +4 -3
  44. package/dest/api/eth_address.d.ts +1 -1
  45. package/dest/api/ethereum.d.ts +2 -0
  46. package/dest/api/ethereum.d.ts.map +1 -0
  47. package/dest/api/ethereum.js +1 -0
  48. package/dest/api/events.d.ts +12 -0
  49. package/dest/api/events.d.ts.map +1 -0
  50. package/dest/api/events.js +30 -0
  51. package/dest/api/fee.d.ts +2 -2
  52. package/dest/api/fee.d.ts.map +1 -1
  53. package/dest/api/fee.js +1 -1
  54. package/dest/api/fee_testing.d.ts +2 -0
  55. package/dest/api/fee_testing.d.ts.map +1 -0
  56. package/dest/api/fee_testing.js +1 -0
  57. package/dest/api/fields.d.ts +1 -1
  58. package/dest/api/keys.d.ts +4 -0
  59. package/dest/api/keys.d.ts.map +1 -0
  60. package/dest/api/keys.js +3 -0
  61. package/dest/api/log.d.ts +2 -1
  62. package/dest/api/log.d.ts.map +1 -1
  63. package/dest/api/log.js +1 -0
  64. package/dest/api/messaging.d.ts +3 -0
  65. package/dest/api/messaging.d.ts.map +1 -0
  66. package/dest/api/messaging.js +2 -0
  67. package/dest/api/node.d.ts +21 -0
  68. package/dest/api/node.d.ts.map +1 -0
  69. package/dest/api/node.js +18 -0
  70. package/dest/api/note.d.ts +2 -0
  71. package/dest/api/note.d.ts.map +1 -0
  72. package/dest/api/note.js +1 -0
  73. package/dest/api/protocol.d.ts +3 -0
  74. package/dest/api/protocol.d.ts.map +1 -0
  75. package/dest/api/protocol.js +2 -0
  76. package/dest/api/trees.d.ts +3 -0
  77. package/dest/api/trees.d.ts.map +1 -0
  78. package/dest/api/trees.js +2 -0
  79. package/dest/api/tx.d.ts +2 -0
  80. package/dest/api/tx.d.ts.map +1 -0
  81. package/dest/api/tx.js +1 -0
  82. package/dest/api/utils.d.ts +13 -0
  83. package/dest/api/utils.d.ts.map +1 -0
  84. package/dest/api/utils.js +12 -0
  85. package/dest/api/wallet.d.ts +4 -2
  86. package/dest/api/wallet.d.ts.map +1 -1
  87. package/dest/api/wallet.js +3 -1
  88. package/dest/authorization/call_authorization_request.d.ts +46 -0
  89. package/dest/authorization/call_authorization_request.d.ts.map +1 -0
  90. package/dest/authorization/call_authorization_request.js +49 -0
  91. package/dest/contract/base_contract_interaction.d.ts +16 -80
  92. package/dest/contract/base_contract_interaction.d.ts.map +1 -1
  93. package/dest/contract/base_contract_interaction.js +15 -128
  94. package/dest/contract/batch_call.d.ts +19 -21
  95. package/dest/contract/batch_call.d.ts.map +1 -1
  96. package/dest/contract/batch_call.js +86 -68
  97. package/dest/contract/checker.d.ts +2 -2
  98. package/dest/contract/checker.d.ts.map +1 -1
  99. package/dest/contract/checker.js +2 -2
  100. package/dest/contract/contract.d.ts +9 -8
  101. package/dest/contract/contract.d.ts.map +1 -1
  102. package/dest/contract/contract.js +10 -20
  103. package/dest/contract/contract_base.d.ts +7 -20
  104. package/dest/contract/contract_base.d.ts.map +1 -1
  105. package/dest/contract/contract_base.js +7 -14
  106. package/dest/contract/contract_function_interaction.d.ts +53 -45
  107. package/dest/contract/contract_function_interaction.d.ts.map +1 -1
  108. package/dest/contract/contract_function_interaction.js +78 -74
  109. package/dest/contract/deploy_method.d.ts +106 -60
  110. package/dest/contract/deploy_method.d.ts.map +1 -1
  111. package/dest/contract/deploy_method.js +125 -133
  112. package/dest/contract/deploy_sent_tx.d.ts +14 -11
  113. package/dest/contract/deploy_sent_tx.d.ts.map +1 -1
  114. package/dest/contract/deploy_sent_tx.js +18 -15
  115. package/dest/contract/get_gas_limits.d.ts +6 -7
  116. package/dest/contract/get_gas_limits.d.ts.map +1 -1
  117. package/dest/contract/get_gas_limits.js +9 -3
  118. package/dest/contract/interaction_options.d.ts +114 -0
  119. package/dest/contract/interaction_options.d.ts.map +1 -0
  120. package/dest/contract/interaction_options.js +46 -0
  121. package/dest/contract/protocol_contracts.d.ts +7 -7
  122. package/dest/contract/protocol_contracts.d.ts.map +1 -1
  123. package/dest/contract/protocol_contracts.js +7 -7
  124. package/dest/contract/sent_tx.d.ts +9 -19
  125. package/dest/contract/sent_tx.d.ts.map +1 -1
  126. package/dest/contract/sent_tx.js +31 -43
  127. package/dest/contract/unsafe_contract.d.ts +2 -2
  128. package/dest/contract/unsafe_contract.d.ts.map +1 -1
  129. package/dest/contract/unsafe_contract.js +1 -1
  130. package/dest/contract/wait_for_proven.d.ts +17 -0
  131. package/dest/contract/wait_for_proven.d.ts.map +1 -0
  132. package/dest/contract/wait_for_proven.js +17 -0
  133. package/dest/deployment/broadcast_function.d.ts +4 -4
  134. package/dest/deployment/broadcast_function.d.ts.map +1 -1
  135. package/dest/deployment/broadcast_function.js +27 -23
  136. package/dest/deployment/contract_deployer.d.ts +2 -2
  137. package/dest/deployment/contract_deployer.d.ts.map +1 -1
  138. package/dest/deployment/contract_deployer.js +1 -1
  139. package/dest/deployment/publish_class.d.ts +6 -0
  140. package/dest/deployment/publish_class.d.ts.map +1 -0
  141. package/dest/deployment/publish_class.js +17 -0
  142. package/dest/deployment/publish_instance.d.ts +10 -0
  143. package/dest/deployment/publish_instance.d.ts.map +1 -0
  144. package/dest/deployment/publish_instance.js +11 -0
  145. package/dest/ethereum/portal_manager.d.ts +138 -0
  146. package/dest/ethereum/portal_manager.d.ts.map +1 -0
  147. package/dest/{api/ethereum → ethereum}/portal_manager.js +136 -76
  148. package/dest/fee/fee_juice_payment_method_with_claim.d.ts +17 -12
  149. package/dest/fee/fee_juice_payment_method_with_claim.d.ts.map +1 -1
  150. package/dest/fee/fee_juice_payment_method_with_claim.js +26 -16
  151. package/dest/fee/fee_payment_method.d.ts +12 -8
  152. package/dest/fee/fee_payment_method.d.ts.map +1 -1
  153. package/dest/fee/private_fee_payment_method.d.ts +26 -9
  154. package/dest/fee/private_fee_payment_method.d.ts.map +1 -1
  155. package/dest/fee/private_fee_payment_method.js +44 -22
  156. package/dest/fee/public_fee_payment_method.d.ts +27 -10
  157. package/dest/fee/public_fee_payment_method.d.ts.map +1 -1
  158. package/dest/fee/public_fee_payment_method.js +46 -24
  159. package/dest/fee/sponsored_fee_payment.d.ts +17 -0
  160. package/dest/fee/sponsored_fee_payment.d.ts.map +1 -0
  161. package/dest/fee/sponsored_fee_payment.js +34 -0
  162. package/dest/utils/abi_types.d.ts +1 -3
  163. package/dest/utils/abi_types.d.ts.map +1 -1
  164. package/dest/utils/authwit.d.ts +82 -25
  165. package/dest/utils/authwit.d.ts.map +1 -1
  166. package/dest/utils/authwit.js +237 -40
  167. package/dest/utils/cross_chain.d.ts +24 -0
  168. package/dest/utils/cross_chain.d.ts.map +1 -0
  169. package/dest/utils/cross_chain.js +30 -0
  170. package/dest/utils/fee_juice.d.ts +4 -3
  171. package/dest/utils/fee_juice.d.ts.map +1 -1
  172. package/dest/utils/fee_juice.js +3 -2
  173. package/dest/utils/field_compressed_string.d.ts +1 -1
  174. package/dest/utils/field_compressed_string.d.ts.map +1 -1
  175. package/dest/utils/node.d.ts +2 -2
  176. package/dest/utils/node.d.ts.map +1 -1
  177. package/dest/utils/node.js +1 -1
  178. package/dest/utils/pub_key.d.ts +1 -1
  179. package/dest/utils/pub_key.d.ts.map +1 -1
  180. package/dest/utils/pub_key.js +1 -2
  181. package/dest/wallet/account_entrypoint_meta_payment_method.d.ts +34 -0
  182. package/dest/wallet/account_entrypoint_meta_payment_method.d.ts.map +1 -0
  183. package/dest/wallet/account_entrypoint_meta_payment_method.js +76 -0
  184. package/dest/wallet/account_manager.d.ts +66 -0
  185. package/dest/wallet/account_manager.d.ts.map +1 -0
  186. package/dest/wallet/account_manager.js +113 -0
  187. package/dest/wallet/deploy_account_method.d.ts +52 -0
  188. package/dest/wallet/deploy_account_method.d.ts.map +1 -0
  189. package/dest/wallet/deploy_account_method.js +77 -0
  190. package/dest/wallet/index.d.ts +3 -17
  191. package/dest/wallet/index.d.ts.map +1 -1
  192. package/dest/wallet/index.js +2 -20
  193. package/dest/wallet/wallet.d.ts +1965 -0
  194. package/dest/wallet/wallet.d.ts.map +1 -0
  195. package/dest/wallet/wallet.js +186 -0
  196. package/package.json +44 -35
  197. package/src/account/account.ts +96 -0
  198. package/src/account/{contract.ts → account_contract.ts} +24 -13
  199. package/src/{wallet/account_wallet_with_private_key.ts → account/account_with_secret_key.ts} +6 -8
  200. package/src/account/index.ts +3 -7
  201. package/src/account/interface.ts +1 -12
  202. package/src/account/signerless_account.ts +45 -0
  203. package/src/api/abi.ts +26 -0
  204. package/src/api/account.ts +6 -9
  205. package/src/api/addresses.ts +1 -0
  206. package/src/api/authorization.ts +14 -0
  207. package/src/api/block.ts +2 -0
  208. package/src/{contract/index.ts → api/contract.ts} +39 -14
  209. package/src/api/crypto.ts +1 -0
  210. package/src/api/deployment.ts +4 -3
  211. package/src/api/ethereum.ts +10 -0
  212. package/src/api/events.ts +44 -0
  213. package/src/api/fee.ts +1 -1
  214. package/src/api/fee_testing.ts +1 -0
  215. package/src/api/keys.ts +8 -0
  216. package/src/api/log.ts +1 -0
  217. package/src/api/messaging.ts +2 -0
  218. package/src/api/node.ts +20 -0
  219. package/src/api/note.ts +1 -0
  220. package/src/api/protocol.ts +2 -0
  221. package/src/api/trees.ts +2 -0
  222. package/src/api/tx.ts +13 -0
  223. package/src/api/utils.ts +14 -0
  224. package/src/api/wallet.ts +27 -5
  225. package/src/authorization/call_authorization_request.ts +63 -0
  226. package/src/contract/base_contract_interaction.ts +23 -166
  227. package/src/contract/batch_call.ts +106 -57
  228. package/src/contract/checker.ts +8 -3
  229. package/src/contract/contract.ts +14 -21
  230. package/src/contract/contract_base.ts +9 -26
  231. package/src/contract/contract_function_interaction.ts +135 -106
  232. package/src/contract/deploy_method.ts +205 -134
  233. package/src/contract/deploy_sent_tx.ts +24 -23
  234. package/src/contract/get_gas_limits.ts +15 -8
  235. package/src/contract/interaction_options.ts +163 -0
  236. package/src/contract/protocol_contracts.ts +10 -10
  237. package/src/contract/sent_tx.ts +41 -52
  238. package/src/contract/unsafe_contract.ts +2 -2
  239. package/src/contract/wait_for_proven.ts +38 -0
  240. package/src/deployment/broadcast_function.ts +57 -57
  241. package/src/deployment/contract_deployer.ts +4 -3
  242. package/src/deployment/publish_class.ts +34 -0
  243. package/src/deployment/publish_instance.ts +26 -0
  244. package/src/{api/ethereum → ethereum}/portal_manager.ts +164 -83
  245. package/src/fee/fee_juice_payment_method_with_claim.ts +48 -33
  246. package/src/fee/fee_payment_method.ts +11 -7
  247. package/src/fee/private_fee_payment_method.ts +79 -57
  248. package/src/fee/public_fee_payment_method.ts +93 -67
  249. package/src/fee/sponsored_fee_payment.ts +46 -0
  250. package/src/utils/authwit.ts +261 -53
  251. package/src/utils/cross_chain.ts +53 -0
  252. package/src/utils/fee_juice.ts +4 -4
  253. package/src/utils/node.ts +1 -1
  254. package/src/utils/pub_key.ts +1 -2
  255. package/src/wallet/account_entrypoint_meta_payment_method.ts +106 -0
  256. package/src/wallet/account_manager.ts +154 -0
  257. package/src/wallet/deploy_account_method.ts +126 -0
  258. package/src/wallet/index.ts +2 -33
  259. package/src/wallet/wallet.ts +318 -0
  260. package/dest/account/contract.d.ts +0 -37
  261. package/dest/account/contract.d.ts.map +0 -1
  262. package/dest/account/wallet.d.ts +0 -11
  263. package/dest/account/wallet.d.ts.map +0 -1
  264. package/dest/account/wallet.js +0 -3
  265. package/dest/account_manager/deploy_account_method.d.ts +0 -15
  266. package/dest/account_manager/deploy_account_method.d.ts.map +0 -1
  267. package/dest/account_manager/deploy_account_method.js +0 -43
  268. package/dest/account_manager/deploy_account_sent_tx.d.ts +0 -30
  269. package/dest/account_manager/deploy_account_sent_tx.d.ts.map +0 -1
  270. package/dest/account_manager/deploy_account_sent_tx.js +0 -29
  271. package/dest/account_manager/index.d.ts +0 -108
  272. package/dest/account_manager/index.d.ts.map +0 -1
  273. package/dest/account_manager/index.js +0 -159
  274. package/dest/api/cheat_codes.d.ts +0 -26
  275. package/dest/api/cheat_codes.d.ts.map +0 -1
  276. package/dest/api/cheat_codes.js +0 -25
  277. package/dest/api/entrypoint.d.ts +0 -2
  278. package/dest/api/entrypoint.d.ts.map +0 -1
  279. package/dest/api/entrypoint.js +0 -1
  280. package/dest/api/ethereum/anvil_test_watcher.d.ts +0 -32
  281. package/dest/api/ethereum/anvil_test_watcher.d.ts.map +0 -1
  282. package/dest/api/ethereum/anvil_test_watcher.js +0 -133
  283. package/dest/api/ethereum/chain_monitor.d.ts +0 -25
  284. package/dest/api/ethereum/chain_monitor.d.ts.map +0 -1
  285. package/dest/api/ethereum/chain_monitor.js +0 -74
  286. package/dest/api/ethereum/cheat_codes.d.ts +0 -63
  287. package/dest/api/ethereum/cheat_codes.d.ts.map +0 -1
  288. package/dest/api/ethereum/cheat_codes.js +0 -162
  289. package/dest/api/ethereum/index.d.ts +0 -7
  290. package/dest/api/ethereum/index.d.ts.map +0 -1
  291. package/dest/api/ethereum/index.js +0 -6
  292. package/dest/api/ethereum/l1_contracts.d.ts +0 -3
  293. package/dest/api/ethereum/l1_contracts.d.ts.map +0 -1
  294. package/dest/api/ethereum/l1_contracts.js +0 -13
  295. package/dest/api/ethereum/portal_manager.d.ts +0 -136
  296. package/dest/api/ethereum/portal_manager.d.ts.map +0 -1
  297. package/dest/api/interfaces/pxe.d.ts +0 -2
  298. package/dest/api/interfaces/pxe.d.ts.map +0 -1
  299. package/dest/api/interfaces/pxe.js +0 -1
  300. package/dest/api/log_id.d.ts +0 -2
  301. package/dest/api/log_id.d.ts.map +0 -1
  302. package/dest/api/log_id.js +0 -1
  303. package/dest/api/tx_hash.d.ts +0 -2
  304. package/dest/api/tx_hash.d.ts.map +0 -1
  305. package/dest/api/tx_hash.js +0 -1
  306. package/dest/contract/deploy_proven_tx.d.ts +0 -21
  307. package/dest/contract/deploy_proven_tx.d.ts.map +0 -1
  308. package/dest/contract/deploy_proven_tx.js +0 -19
  309. package/dest/contract/index.d.ts +0 -45
  310. package/dest/contract/index.d.ts.map +0 -1
  311. package/dest/contract/proven_tx.d.ts +0 -17
  312. package/dest/contract/proven_tx.d.ts.map +0 -1
  313. package/dest/contract/proven_tx.js +0 -22
  314. package/dest/deployment/deploy_instance.d.ts +0 -10
  315. package/dest/deployment/deploy_instance.d.ts.map +0 -1
  316. package/dest/deployment/deploy_instance.js +0 -14
  317. package/dest/deployment/index.d.ts +0 -2
  318. package/dest/deployment/index.d.ts.map +0 -1
  319. package/dest/deployment/index.js +0 -1
  320. package/dest/deployment/register_class.d.ts +0 -6
  321. package/dest/deployment/register_class.d.ts.map +0 -1
  322. package/dest/deployment/register_class.js +0 -22
  323. package/dest/entrypoint/default_entrypoint.d.ts +0 -12
  324. package/dest/entrypoint/default_entrypoint.d.ts.map +0 -1
  325. package/dest/entrypoint/default_entrypoint.js +0 -28
  326. package/dest/entrypoint/default_multi_call_entrypoint.d.ts +0 -15
  327. package/dest/entrypoint/default_multi_call_entrypoint.d.ts.map +0 -1
  328. package/dest/entrypoint/default_multi_call_entrypoint.js +0 -130
  329. package/dest/entrypoint/entrypoint.d.ts +0 -35
  330. package/dest/entrypoint/entrypoint.d.ts.map +0 -1
  331. package/dest/entrypoint/entrypoint.js +0 -4
  332. package/dest/entrypoint/payload.d.ts +0 -128
  333. package/dest/entrypoint/payload.d.ts.map +0 -1
  334. package/dest/entrypoint/payload.js +0 -143
  335. package/dest/fee/fee_juice_payment_method.d.ts +0 -14
  336. package/dest/fee/fee_juice_payment_method.d.ts.map +0 -1
  337. package/dest/fee/fee_juice_payment_method.js +0 -20
  338. package/dest/index.d.ts +0 -66
  339. package/dest/index.d.ts.map +0 -1
  340. package/dest/index.js +0 -69
  341. package/dest/rpc_clients/index.d.ts +0 -3
  342. package/dest/rpc_clients/index.d.ts.map +0 -1
  343. package/dest/rpc_clients/index.js +0 -2
  344. package/dest/rpc_clients/node/index.d.ts +0 -12
  345. package/dest/rpc_clients/node/index.d.ts.map +0 -1
  346. package/dest/rpc_clients/node/index.js +0 -78
  347. package/dest/rpc_clients/pxe_client.d.ts +0 -10
  348. package/dest/rpc_clients/pxe_client.d.ts.map +0 -1
  349. package/dest/rpc_clients/pxe_client.js +0 -23
  350. package/dest/utils/aztec_cheatcodes.d.ts +0 -59
  351. package/dest/utils/aztec_cheatcodes.d.ts.map +0 -1
  352. package/dest/utils/aztec_cheatcodes.js +0 -62
  353. package/dest/utils/index.d.ts +0 -8
  354. package/dest/utils/index.d.ts.map +0 -1
  355. package/dest/utils/index.js +0 -6
  356. package/dest/utils/pxe.d.ts +0 -4
  357. package/dest/utils/pxe.d.ts.map +0 -1
  358. package/dest/utils/pxe.js +0 -14
  359. package/dest/wallet/account_wallet.d.ts +0 -76
  360. package/dest/wallet/account_wallet.d.ts.map +0 -1
  361. package/dest/wallet/account_wallet.js +0 -231
  362. package/dest/wallet/account_wallet_with_private_key.d.ts +0 -26
  363. package/dest/wallet/account_wallet_with_private_key.d.ts.map +0 -1
  364. package/dest/wallet/base_wallet.d.ts +0 -73
  365. package/dest/wallet/base_wallet.d.ts.map +0 -1
  366. package/dest/wallet/base_wallet.js +0 -123
  367. package/dest/wallet/signerless_wallet.d.ts +0 -25
  368. package/dest/wallet/signerless_wallet.d.ts.map +0 -1
  369. package/dest/wallet/signerless_wallet.js +0 -36
  370. package/src/account/wallet.ts +0 -13
  371. package/src/account_manager/deploy_account_method.ts +0 -86
  372. package/src/account_manager/deploy_account_sent_tx.ts +0 -42
  373. package/src/account_manager/index.ts +0 -229
  374. package/src/api/cheat_codes.ts +0 -35
  375. package/src/api/entrypoint.ts +0 -1
  376. package/src/api/ethereum/anvil_test_watcher.ts +0 -158
  377. package/src/api/ethereum/chain_monitor.ts +0 -88
  378. package/src/api/ethereum/cheat_codes.ts +0 -184
  379. package/src/api/ethereum/index.ts +0 -19
  380. package/src/api/ethereum/l1_contracts.ts +0 -21
  381. package/src/api/interfaces/pxe.ts +0 -1
  382. package/src/api/log_id.ts +0 -1
  383. package/src/api/tx_hash.ts +0 -1
  384. package/src/contract/deploy_proven_tx.ts +0 -34
  385. package/src/contract/proven_tx.ts +0 -42
  386. package/src/deployment/deploy_instance.ts +0 -31
  387. package/src/deployment/index.ts +0 -1
  388. package/src/deployment/register_class.ts +0 -44
  389. package/src/entrypoint/default_entrypoint.ts +0 -39
  390. package/src/entrypoint/default_multi_call_entrypoint.ts +0 -93
  391. package/src/entrypoint/entrypoint.ts +0 -39
  392. package/src/entrypoint/payload.ts +0 -238
  393. package/src/fee/fee_juice_payment_method.ts +0 -26
  394. package/src/index.ts +0 -106
  395. package/src/rpc_clients/index.ts +0 -2
  396. package/src/rpc_clients/node/index.ts +0 -77
  397. package/src/rpc_clients/pxe_client.ts +0 -25
  398. package/src/utils/aztec_cheatcodes.ts +0 -77
  399. package/src/utils/index.ts +0 -21
  400. package/src/utils/pxe.ts +0 -17
  401. package/src/wallet/account_wallet.ts +0 -242
  402. package/src/wallet/base_wallet.ts +0 -198
  403. package/src/wallet/signerless_wallet.ts +0 -52
@@ -1,4 +1,3 @@
1
- import { getContractClassFromArtifact } from '@aztec/stdlib/contract';
2
1
  import { PublicKeys } from '@aztec/stdlib/keys';
3
2
  import { ContractBase } from './contract_base.js';
4
3
  import { DeployMethod } from './deploy_method.js';
@@ -6,47 +5,38 @@ import { DeployMethod } from './deploy_method.js';
6
5
  * The Contract class represents a contract and provides utility methods for interacting with it.
7
6
  * It enables the creation of ContractFunctionInteraction instances for each function in the contract's ABI,
8
7
  * allowing users to call or send transactions to these functions. Additionally, the Contract class can be used
9
- * to attach the contract instance to a deployed contract on-chain through the PXE, which facilitates
8
+ * to attach the contract instance to a deployed contract onchain through the PXE, which facilitates
10
9
  * interaction with Aztec's privacy protocol.
11
10
  */ export class Contract extends ContractBase {
12
11
  /**
13
- * Creates a contract instance.
14
- * @param address - The deployed contract's address.
12
+ * Gets a contract instance.
13
+ * @param address - The address of the contract instance.
15
14
  * @param artifact - Build artifact of the contract.
16
15
  * @param wallet - The wallet to use when interacting with the contract.
17
16
  * @returns A promise that resolves to a new Contract instance.
18
- */ static async at(address, artifact, wallet) {
19
- const instance = (await wallet.getContractMetadata(address)).contractInstance;
20
- if (instance === undefined) {
21
- throw new Error(`Contract instance at ${address.toString()} has not been registered in the wallet's PXE`);
22
- }
23
- const thisContractClass = await getContractClassFromArtifact(artifact);
24
- if (!thisContractClass.id.equals(instance.currentContractClassId)) {
25
- // wallet holds an outdated version of this contract
26
- await wallet.updateContract(address, artifact);
27
- instance.currentContractClassId = thisContractClass.id;
28
- }
29
- return new Contract(instance, artifact, wallet);
17
+ */ static at(address, artifact, wallet) {
18
+ return new Contract(address, artifact, wallet);
30
19
  }
31
20
  /**
32
- * Creates a tx to deploy a new instance of a contract.
21
+ * Creates a tx to deploy (initialize and/or publish) a new instance of a contract.
33
22
  * @param wallet - The wallet for executing the deployment.
34
23
  * @param artifact - Build artifact of the contract to deploy
35
24
  * @param args - Arguments for the constructor.
36
25
  * @param constructorName - The name of the constructor function to call.
37
26
  */ static deploy(wallet, artifact, args, constructorName) {
38
- const postDeployCtor = (address, wallet)=>Contract.at(address, artifact, wallet);
27
+ const postDeployCtor = (instance, wallet)=>Contract.at(instance.address, artifact, wallet);
39
28
  return new DeployMethod(PublicKeys.default(), wallet, artifact, postDeployCtor, args, constructorName);
40
29
  }
41
30
  /**
42
- * Creates a tx to deploy a new instance of a contract using the specified public keys hash to derive the address.
31
+ * Creates a tx to deploy (initialize and/or publish) a new instance of a contract
32
+ * using the specified public keys hash to derive the address.
43
33
  * @param publicKeys - Hash of public keys to use for deriving the address.
44
34
  * @param wallet - The wallet for executing the deployment.
45
35
  * @param artifact - Build artifact of the contract.
46
36
  * @param args - Arguments for the constructor.
47
37
  * @param constructorName - The name of the constructor function to call.
48
38
  */ static deployWithPublicKeys(publicKeys, wallet, artifact, args, constructorName) {
49
- const postDeployCtor = (address, wallet)=>Contract.at(address, artifact, wallet);
39
+ const postDeployCtor = (instance, wallet)=>Contract.at(instance.address, artifact, wallet);
50
40
  return new DeployMethod(publicKeys, wallet, artifact, postDeployCtor, args, constructorName);
51
41
  }
52
42
  }
@@ -1,6 +1,6 @@
1
- import { type ContractArtifact, type ContractNote, type FieldLayout, FunctionSelector } from '@aztec/stdlib/abi';
2
- import { type ContractInstanceWithAddress } from '@aztec/stdlib/contract';
3
- import type { Wallet } from '../account/index.js';
1
+ import { type ContractArtifact, type FieldLayout, FunctionSelector } from '@aztec/stdlib/abi';
2
+ import type { AztecAddress } from '@aztec/stdlib/aztec-address';
3
+ import type { Wallet } from '../wallet/wallet.js';
4
4
  import { ContractFunctionInteraction } from './contract_function_interaction.js';
5
5
  /**
6
6
  * Type representing a contract method that returns a ContractFunctionInteraction instance
@@ -18,21 +18,12 @@ export type ContractMethod = ((...args: any[]) => ContractFunctionInteraction) &
18
18
  export type ContractStorageLayout<T extends string> = {
19
19
  [K in T]: FieldLayout;
20
20
  };
21
- /**
22
- * Type representing the notes used in a contract.
23
- */
24
- export type ContractNotes<T extends string> = {
25
- [K in T]: ContractNote;
26
- };
27
21
  /**
28
22
  * Abstract implementation of a contract extended by the Contract class and generated contract types.
29
23
  */
30
24
  export declare class ContractBase {
31
- /** The deployed contract instance definition. */
32
- readonly instance: ContractInstanceWithAddress;
33
- /** The Application Binary Interface for the contract. */
25
+ readonly address: AztecAddress;
34
26
  readonly artifact: ContractArtifact;
35
- /** The wallet used for interacting with this contract. */
36
27
  wallet: Wallet;
37
28
  /**
38
29
  * An object containing contract methods mapped to their respective names.
@@ -41,16 +32,12 @@ export declare class ContractBase {
41
32
  [name: string]: ContractMethod;
42
33
  };
43
34
  protected constructor(
44
- /** The deployed contract instance definition. */
45
- instance: ContractInstanceWithAddress,
35
+ /** The contract's address. */
36
+ address: AztecAddress,
46
37
  /** The Application Binary Interface for the contract. */
47
38
  artifact: ContractArtifact,
48
39
  /** The wallet used for interacting with this contract. */
49
40
  wallet: Wallet);
50
- /** Address of the contract. */
51
- get address(): import("@aztec/stdlib/aztec-address").AztecAddress;
52
- /** Partial address of the contract. */
53
- get partialAddress(): Promise<import("@aztec/foundation/schemas").Fr>;
54
41
  /**
55
42
  * Creates a new instance of the contract wrapper attached to a different wallet.
56
43
  * @param wallet - Wallet to use for sending txs.
@@ -58,4 +45,4 @@ export declare class ContractBase {
58
45
  */
59
46
  withWallet(wallet: Wallet): this;
60
47
  }
61
- //# sourceMappingURL=contract_base.d.ts.map
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RfYmFzZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyYWN0L2NvbnRyYWN0X2Jhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLEtBQUssZ0JBQWdCLEVBQ3JCLEtBQUssV0FBVyxFQUVoQixnQkFBZ0IsRUFFakIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVoRSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUVqRjs7O0dBR0c7QUFDSCxNQUFNLE1BQU0sY0FBYyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSywyQkFBMkIsQ0FBQyxHQUFHO0lBQy9FOztPQUVHO0lBQ0gsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7Q0FDM0MsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxNQUFNLHFCQUFxQixDQUFDLENBQUMsU0FBUyxNQUFNLElBQUk7S0FDbkQsQ0FBQyxJQUFJLENBQUMsR0FBRyxXQUFXO0NBQ3RCLENBQUM7QUFFRjs7R0FFRztBQUNILHFCQUFhLFlBQVk7YUFRTCxPQUFPLEVBQUUsWUFBWTthQUVyQixRQUFRLEVBQUUsZ0JBQWdCO0lBRW5DLE1BQU0sRUFBRSxNQUFNO0lBWHZCOztPQUVHO0lBQ0ksT0FBTyxFQUFFO1FBQUUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxHQUFHLGNBQWMsQ0FBQTtLQUFFLENBQU07SUFFeEQsU0FBUztJQUNQLDhCQUE4QjtJQUNkLE9BQU8sRUFBRSxZQUFZO0lBQ3JDLHlEQUF5RDtJQUN6QyxRQUFRLEVBQUUsZ0JBQWdCO0lBQzFDLDBEQUEwRDtJQUNuRCxNQUFNLEVBQUUsTUFBTSxFQWlCdEI7SUFFRDs7OztPQUlHO0lBQ0ksVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsSUFBSSxDQUV0QztDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"contract_base.d.ts","sourceRoot":"","sources":["../../src/contract/contract_base.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,WAAW,EAEhB,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,2BAA2B,EAAyB,MAAM,wBAAwB,CAAC;AAEjG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAEjF;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,2BAA2B,CAAC,GAAG;IAC/E;;OAEG;IACH,QAAQ,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC3C,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,MAAM,IAAI;KACnD,CAAC,IAAI,CAAC,GAAG,WAAW;CACtB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI;KAC3C,CAAC,IAAI,CAAC,GAAG,YAAY;CACvB,CAAC;AAEF;;GAEG;AACH,qBAAa,YAAY;IAOrB,iDAAiD;aACjC,QAAQ,EAAE,2BAA2B;IACrD,yDAAyD;aACzC,QAAQ,EAAE,gBAAgB;IAC1C,0DAA0D;IACnD,MAAM,EAAE,MAAM;IAXvB;;OAEG;IACI,OAAO,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE,CAAM;IAExD,SAAS;IACP,iDAAiD;IACjC,QAAQ,EAAE,2BAA2B;IACrD,yDAAyD;IACzC,QAAQ,EAAE,gBAAgB;IAC1C,0DAA0D;IACnD,MAAM,EAAE,MAAM;IAmBvB,+BAA+B;IAC/B,IAAW,OAAO,uDAEjB;IAED,uCAAuC;IACvC,IAAW,cAAc,oDAExB;IAED;;;;OAIG;IACI,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAGxC"}
1
+ {"version":3,"file":"contract_base.d.ts","sourceRoot":"","sources":["../../src/contract/contract_base.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAEhB,gBAAgB,EAEjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAEjF;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,2BAA2B,CAAC,GAAG;IAC/E;;OAEG;IACH,QAAQ,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC3C,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,MAAM,IAAI;KACnD,CAAC,IAAI,CAAC,GAAG,WAAW;CACtB,CAAC;AAEF;;GAEG;AACH,qBAAa,YAAY;aAQL,OAAO,EAAE,YAAY;aAErB,QAAQ,EAAE,gBAAgB;IAEnC,MAAM,EAAE,MAAM;IAXvB;;OAEG;IACI,OAAO,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE,CAAM;IAExD,SAAS;IACP,8BAA8B;IACd,OAAO,EAAE,YAAY;IACrC,yDAAyD;IACzC,QAAQ,EAAE,gBAAgB;IAC1C,0DAA0D;IACnD,MAAM,EAAE,MAAM,EAiBtB;IAED;;;;OAIG;IACI,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAEtC;CACF"}
@@ -1,23 +1,22 @@
1
- import { FunctionSelector } from '@aztec/stdlib/abi';
2
- import { computePartialAddress } from '@aztec/stdlib/contract';
1
+ import { FunctionSelector, getAllFunctionAbis } from '@aztec/stdlib/abi';
3
2
  import { ContractFunctionInteraction } from './contract_function_interaction.js';
4
3
  /**
5
4
  * Abstract implementation of a contract extended by the Contract class and generated contract types.
6
5
  */ export class ContractBase {
7
- instance;
6
+ address;
8
7
  artifact;
9
8
  wallet;
10
9
  /**
11
10
  * An object containing contract methods mapped to their respective names.
12
11
  */ methods;
13
- constructor(/** The deployed contract instance definition. */ instance, /** The Application Binary Interface for the contract. */ artifact, /** The wallet used for interacting with this contract. */ wallet){
14
- this.instance = instance;
12
+ constructor(/** The contract's address. */ address, /** The Application Binary Interface for the contract. */ artifact, /** The wallet used for interacting with this contract. */ wallet){
13
+ this.address = address;
15
14
  this.artifact = artifact;
16
15
  this.wallet = wallet;
17
16
  this.methods = {};
18
- artifact.functions.forEach((f)=>{
17
+ getAllFunctionAbis(artifact).forEach((f)=>{
19
18
  const interactionFunction = (...args)=>{
20
- return new ContractFunctionInteraction(this.wallet, this.instance.address, f, args);
19
+ return new ContractFunctionInteraction(this.wallet, this.address, f, args);
21
20
  };
22
21
  this.methods[f.name] = Object.assign(interactionFunction, {
23
22
  /**
@@ -29,17 +28,11 @@ import { ContractFunctionInteraction } from './contract_function_interaction.js'
29
28
  });
30
29
  });
31
30
  }
32
- /** Address of the contract. */ get address() {
33
- return this.instance.address;
34
- }
35
- /** Partial address of the contract. */ get partialAddress() {
36
- return computePartialAddress(this.instance);
37
- }
38
31
  /**
39
32
  * Creates a new instance of the contract wrapper attached to a different wallet.
40
33
  * @param wallet - Wallet to use for sending txs.
41
34
  * @returns A new contract instance.
42
35
  */ withWallet(wallet) {
43
- return new ContractBase(this.instance, this.artifact, wallet);
36
+ return new ContractBase(this.address, this.artifact, wallet);
44
37
  }
45
38
  }
@@ -1,30 +1,11 @@
1
- import { type FunctionAbi, FunctionCall } from '@aztec/stdlib/abi';
1
+ import { type FunctionAbi, FunctionSelector, FunctionType } from '@aztec/stdlib/abi';
2
+ import type { AuthWitness } from '@aztec/stdlib/auth-witness';
2
3
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
3
- import type { PrivateKernelProverProfileResult } from '@aztec/stdlib/kernel';
4
- import type { TxExecutionRequest } from '@aztec/stdlib/tx';
5
- import type { Wallet } from '../account/wallet.js';
6
- import { BaseContractInteraction, type SendMethodOptions } from './base_contract_interaction.js';
7
- export type { SendMethodOptions };
8
- /**
9
- * Represents the options for simulating a contract function interaction.
10
- * Allows specifying the address from which the view method should be called.
11
- * Disregarded for simulation of public functions
12
- */
13
- export type SimulateMethodOptions = Pick<SendMethodOptions, 'fee'> & {
14
- /** The sender's Aztec address. */
15
- from?: AztecAddress;
16
- /** Simulate without checking for the validity of the resulting transaction, e.g. whether it emits any existing nullifiers. */
17
- skipTxValidation?: boolean;
18
- /** Whether to ensure the fee payer is not empty and has enough balance to pay for the fee. */
19
- skipFeeEnforcement?: boolean;
20
- };
21
- /**
22
- * The result of a profile() call.
23
- */
24
- export type ProfileResult = PrivateKernelProverProfileResult & {
25
- /** The result of the transaction as returned by the contract function. */
26
- returnValues: any;
27
- };
4
+ import { type Capsule, type HashedValues, type TxProfileResult } from '@aztec/stdlib/tx';
5
+ import { ExecutionPayload } from '@aztec/stdlib/tx';
6
+ import type { Wallet } from '../wallet/wallet.js';
7
+ import { BaseContractInteraction } from './base_contract_interaction.js';
8
+ import { type ProfileInteractionOptions, type RequestInteractionOptions, type SimulateInteractionOptions, type SimulationReturn } from './interaction_options.js';
28
9
  /**
29
10
  * This is the class that is returned when calling e.g. `contract.methods.myMethod(arg0, arg1)`.
30
11
  * It contains available interactions one can call on a method, including view.
@@ -33,36 +14,63 @@ export declare class ContractFunctionInteraction extends BaseContractInteraction
33
14
  protected contractAddress: AztecAddress;
34
15
  protected functionDao: FunctionAbi;
35
16
  protected args: any[];
36
- constructor(wallet: Wallet, contractAddress: AztecAddress, functionDao: FunctionAbi, args: any[]);
17
+ private extraHashedArgs;
18
+ constructor(wallet: Wallet, contractAddress: AztecAddress, functionDao: FunctionAbi, args: any[], authWitnesses?: AuthWitness[], capsules?: Capsule[], extraHashedArgs?: HashedValues[]);
37
19
  /**
38
- * Create a transaction execution request that represents this call, encoded and authenticated by the
39
- * user's wallet, ready to be simulated.
40
- * @param opts - An optional object containing additional configuration for the transaction.
41
- * @returns A Promise that resolves to a transaction instance.
20
+ * Returns the encoded function call wrapped by this interaction
21
+ * Useful when generating authwits
22
+ * @returns An encoded function call
42
23
  */
43
- create(opts?: SendMethodOptions): Promise<TxExecutionRequest>;
24
+ getFunctionCall(): Promise<{
25
+ name: string;
26
+ args: import("../api/fields.js").Fr[];
27
+ selector: FunctionSelector;
28
+ type: FunctionType;
29
+ to: AztecAddress;
30
+ isStatic: boolean;
31
+ hideMsgSender: boolean; /** Only set to `true` for enqueued public function calls */
32
+ returnTypes: import("@aztec/stdlib/abi").AbiType[];
33
+ }>;
44
34
  /**
45
- * Returns an execution request that represents this operation. Useful as a building
46
- * block for constructing batch requests.
47
- * @returns An execution request wrapped in promise.
35
+ * Returns the execution payload that allows this operation to happen on chain.
36
+ * @param options - Configuration options.
37
+ * @returns The execution payload for this operation
48
38
  */
49
- request(): Promise<FunctionCall>;
39
+ request(options?: RequestInteractionOptions): Promise<ExecutionPayload>;
50
40
  /**
51
- * Simulate a transaction and get its return values
41
+ * Simulate a transaction and get information from its execution.
52
42
  * Differs from prove in a few important ways:
53
- * 1. It returns the values of the function execution
54
- * 2. It supports `unconstrained`, `private` and `public` functions
43
+ * 1. It returns the values of the function execution, plus additional metadata if requested
44
+ * 2. It supports `utility`, `private` and `public` functions
55
45
  *
56
- * @param options - An optional object containing additional configuration for the transaction.
57
- * @returns The result of the transaction as returned by the contract function.
46
+ * @param options - An optional object containing additional configuration for the simulation.
47
+ * @returns Depending on the simulation options, this method directly returns the result value of the executed
48
+ * function or a rich object containing extra metadata, such as estimated gas costs (if requested via options),
49
+ * execution statistics and emitted offchain effects
58
50
  */
59
- simulate(options?: SimulateMethodOptions): Promise<any>;
51
+ simulate<T extends SimulateInteractionOptions>(options: T): Promise<SimulationReturn<Exclude<T['fee'], undefined>['estimateGas']>>;
52
+ simulate<T extends SimulateInteractionOptions>(options: T): Promise<SimulationReturn<T['includeMetadata']>>;
60
53
  /**
61
54
  * Simulate a transaction and profile the gate count for each function in the transaction.
62
- * @param options - Same options as `simulate`.
55
+ * @param options - Same options as `simulate`, plus profiling method
63
56
  *
64
57
  * @returns An object containing the function return value and profile result.
65
58
  */
66
- simulateWithProfile(options?: SimulateMethodOptions): Promise<ProfileResult>;
59
+ profile(options: ProfileInteractionOptions): Promise<TxProfileResult>;
60
+ /**
61
+ * Augments this ContractFunctionInteraction with additional metadata, such as authWitnesses, capsules, and extraHashedArgs.
62
+ * This is useful when creating a "batteries included" interaction, such as registering a contract class with its associated
63
+ * capsule instead of having the user provide them externally.
64
+ * @param options - An object containing the metadata to add to the interaction
65
+ * @returns A new ContractFunctionInteraction with the added metadata, but calling the same original function in the same manner
66
+ */
67
+ with({ authWitnesses, capsules, extraHashedArgs }: {
68
+ /** The authWitnesses to add to the interaction */
69
+ authWitnesses?: AuthWitness[];
70
+ /** The capsules to add to the interaction */
71
+ capsules?: Capsule[];
72
+ /** The extra hashed args to add to the interaction */
73
+ extraHashedArgs?: HashedValues[];
74
+ }): ContractFunctionInteraction;
67
75
  }
68
- //# sourceMappingURL=contract_function_interaction.d.ts.map
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RfZnVuY3Rpb25faW50ZXJhY3Rpb24uZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC9jb250cmFjdF9mdW5jdGlvbl9pbnRlcmFjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFrQyxNQUFNLG1CQUFtQixDQUFDO0FBQ3JILE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsS0FBSyxPQUFPLEVBQUUsS0FBSyxZQUFZLEVBQUUsS0FBSyxlQUFlLEVBQTBCLE1BQU0sa0JBQWtCLENBQUM7QUFDakgsT0FBTyxFQUFFLGdCQUFnQixFQUEwQixNQUFNLGtCQUFrQixDQUFDO0FBRTVFLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXpFLE9BQU8sRUFDTCxLQUFLLHlCQUF5QixFQUM5QixLQUFLLHlCQUF5QixFQUM5QixLQUFLLDBCQUEwQixFQUMvQixLQUFLLGdCQUFnQixFQUd0QixNQUFNLDBCQUEwQixDQUFDO0FBRWxDOzs7R0FHRztBQUNILHFCQUFhLDJCQUE0QixTQUFRLHVCQUF1QjtJQUdwRSxTQUFTLENBQUMsZUFBZSxFQUFFLFlBQVk7SUFDdkMsU0FBUyxDQUFDLFdBQVcsRUFBRSxXQUFXO0lBQ2xDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFO0lBR3JCLE9BQU8sQ0FBQyxlQUFlO0lBUHpCLFlBQ0UsTUFBTSxFQUFFLE1BQU0sRUFDSixlQUFlLEVBQUUsWUFBWSxFQUM3QixXQUFXLEVBQUUsV0FBVyxFQUN4QixJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQ3JCLGFBQWEsR0FBRSxXQUFXLEVBQU8sRUFDakMsUUFBUSxHQUFFLE9BQU8sRUFBTyxFQUNoQixlQUFlLEdBQUUsWUFBWSxFQUFPLEVBTTdDO0lBRUQ7Ozs7T0FJRztJQUNVLGVBQWU7Ozs7Ozs7Z0NBU0gsNERBQTREOztPQUdwRjtJQUVEOzs7O09BSUc7SUFDbUIsT0FBTyxDQUFDLE9BQU8sR0FBRSx5QkFBOEIsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FnQmhHO0lBR0Q7Ozs7Ozs7Ozs7T0FVRztJQUNVLFFBQVEsQ0FBQyxDQUFDLFNBQVMsMEJBQTBCLEVBQ3hELE9BQU8sRUFBRSxDQUFDLEdBQ1QsT0FBTyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRTdELFFBQVEsQ0FBQyxDQUFDLFNBQVMsMEJBQTBCLEVBQ3hELE9BQU8sRUFBRSxDQUFDLEdBQ1QsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQTJEbkQ7Ozs7O09BS0c7SUFDVSxPQUFPLENBQUMsT0FBTyxFQUFFLHlCQUF5QixHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FPakY7SUFFRDs7Ozs7O09BTUc7SUFDSSxJQUFJLENBQUMsRUFDVixhQUFrQixFQUNsQixRQUFhLEVBQ2IsZUFBb0IsRUFDckIsRUFBRTtRQUNELGtEQUFrRDtRQUNsRCxhQUFhLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUM5Qiw2Q0FBNkM7UUFDN0MsUUFBUSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDckIsc0RBQXNEO1FBQ3RELGVBQWUsQ0FBQyxFQUFFLFlBQVksRUFBRSxDQUFDO0tBQ2xDLEdBQUcsMkJBQTJCLENBVTlCO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"contract_function_interaction.d.ts","sourceRoot":"","sources":["../../src/contract/contract_function_interaction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAChB,YAAY,EAKb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,uBAAuB,EAAE,KAAK,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEjG,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAElC;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,GAAG;IACnE,kCAAkC;IAClC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,8HAA8H;IAC9H,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,8FAA8F;IAC9F,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,gCAAgC,GAAG;IAC7D,0EAA0E;IAC1E,YAAY,EAAE,GAAG,CAAC;CACnB,CAAC;AAEF;;;GAGG;AACH,qBAAa,2BAA4B,SAAQ,uBAAuB;IAGpE,SAAS,CAAC,eAAe,EAAE,YAAY;IACvC,SAAS,CAAC,WAAW,EAAE,WAAW;IAClC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE;gBAHrB,MAAM,EAAE,MAAM,EACJ,eAAe,EAAE,YAAY,EAC7B,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,GAAG,EAAE;IASvB;;;;;OAKG;IACU,MAAM,CAAC,IAAI,GAAE,iBAAsB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAa9E;;;;OAIG;IACU,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC;IAe7C;;;;;;;;OAQG;IACU,QAAQ,CAAC,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,GAAG,CAAC;IAkCxE;;;;;OAKG;IACU,mBAAmB,CAAC,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,aAAa,CAAC;CA0B9F"}
1
+ {"version":3,"file":"contract_function_interaction.d.ts","sourceRoot":"","sources":["../../src/contract/contract_function_interaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAAkC,MAAM,mBAAmB,CAAC;AACrH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,eAAe,EAA0B,MAAM,kBAAkB,CAAC;AACjH,OAAO,EAAE,gBAAgB,EAA0B,MAAM,kBAAkB,CAAC;AAE5E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAEzE,OAAO,EACL,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,gBAAgB,EAGtB,MAAM,0BAA0B,CAAC;AAElC;;;GAGG;AACH,qBAAa,2BAA4B,SAAQ,uBAAuB;IAGpE,SAAS,CAAC,eAAe,EAAE,YAAY;IACvC,SAAS,CAAC,WAAW,EAAE,WAAW;IAClC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE;IAGrB,OAAO,CAAC,eAAe;IAPzB,YACE,MAAM,EAAE,MAAM,EACJ,eAAe,EAAE,YAAY,EAC7B,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,GAAG,EAAE,EACrB,aAAa,GAAE,WAAW,EAAO,EACjC,QAAQ,GAAE,OAAO,EAAO,EAChB,eAAe,GAAE,YAAY,EAAO,EAM7C;IAED;;;;OAIG;IACU,eAAe;;;;;;;gCASH,4DAA4D;;OAGpF;IAED;;;;OAIG;IACmB,OAAO,CAAC,OAAO,GAAE,yBAA8B,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAgBhG;IAGD;;;;;;;;;;OAUG;IACU,QAAQ,CAAC,CAAC,SAAS,0BAA0B,EACxD,OAAO,EAAE,CAAC,GACT,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAE7D,QAAQ,CAAC,CAAC,SAAS,0BAA0B,EACxD,OAAO,EAAE,CAAC,GACT,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IA2DnD;;;;;OAKG;IACU,OAAO,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,eAAe,CAAC,CAOjF;IAED;;;;;;OAMG;IACI,IAAI,CAAC,EACV,aAAkB,EAClB,QAAa,EACb,eAAoB,EACrB,EAAE;QACD,kDAAkD;QAClD,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;QAC9B,6CAA6C;QAC7C,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;QACrB,sDAAsD;QACtD,eAAe,CAAC,EAAE,YAAY,EAAE,CAAC;KAClC,GAAG,2BAA2B,CAU9B;CACF"}
@@ -1,7 +1,9 @@
1
1
  import { FunctionSelector, FunctionType, decodeFromAbi, encodeArguments } from '@aztec/stdlib/abi';
2
- import { AztecAddress } from '@aztec/stdlib/aztec-address';
3
- import { FeeJuicePaymentMethod } from '../fee/fee_juice_payment_method.js';
2
+ import { collectOffchainEffects } from '@aztec/stdlib/tx';
3
+ import { ExecutionPayload, mergeExecutionPayloads } from '@aztec/stdlib/tx';
4
4
  import { BaseContractInteraction } from './base_contract_interaction.js';
5
+ import { getGasLimits } from './get_gas_limits.js';
6
+ import { toProfileOptions, toSimulateOptions } from './interaction_options.js';
5
7
  /**
6
8
  * This is the class that is returned when calling e.g. `contract.methods.myMethod(arg0, arg1)`.
7
9
  * It contains available interactions one can call on a method, including view.
@@ -9,48 +11,18 @@ import { BaseContractInteraction } from './base_contract_interaction.js';
9
11
  contractAddress;
10
12
  functionDao;
11
13
  args;
12
- constructor(wallet, contractAddress, functionDao, args){
13
- super(wallet), this.contractAddress = contractAddress, this.functionDao = functionDao, this.args = args;
14
+ extraHashedArgs;
15
+ constructor(wallet, contractAddress, functionDao, args, authWitnesses = [], capsules = [], extraHashedArgs = []){
16
+ super(wallet, authWitnesses, capsules), this.contractAddress = contractAddress, this.functionDao = functionDao, this.args = args, this.extraHashedArgs = extraHashedArgs;
14
17
  if (args.some((arg)=>arg === undefined || arg === null)) {
15
- throw new Error('All function interaction arguments must be defined and not null. Received: ' + args);
18
+ throw new Error(`All function interaction arguments must be defined and not null. Received: ${args}`);
16
19
  }
17
20
  }
18
- // docs:start:create
19
21
  /**
20
- * Create a transaction execution request that represents this call, encoded and authenticated by the
21
- * user's wallet, ready to be simulated.
22
- * @param opts - An optional object containing additional configuration for the transaction.
23
- * @returns A Promise that resolves to a transaction instance.
24
- */ async create(opts = {}) {
25
- // docs:end:create
26
- if (this.functionDao.functionType === FunctionType.UNCONSTRAINED) {
27
- throw new Error("Can't call `create` on an unconstrained function.");
28
- }
29
- const calls = [
30
- await this.request()
31
- ];
32
- const capsules = this.getCapsules();
33
- const fee = await this.getFeeOptions({
34
- calls,
35
- capsules,
36
- ...opts
37
- });
38
- const { nonce, cancellable } = opts;
39
- return await this.wallet.createTxExecutionRequest({
40
- calls,
41
- fee,
42
- nonce,
43
- cancellable,
44
- capsules
45
- });
46
- }
47
- // docs:start:request
48
- /**
49
- * Returns an execution request that represents this operation. Useful as a building
50
- * block for constructing batch requests.
51
- * @returns An execution request wrapped in promise.
52
- */ async request() {
53
- // docs:end:request
22
+ * Returns the encoded function call wrapped by this interaction
23
+ * Useful when generating authwits
24
+ * @returns An encoded function call
25
+ */ async getFunctionCall() {
54
26
  const args = encodeArguments(this.functionDao, this.args);
55
27
  return {
56
28
  name: this.functionDao.name,
@@ -59,30 +31,46 @@ import { BaseContractInteraction } from './base_contract_interaction.js';
59
31
  type: this.functionDao.functionType,
60
32
  to: this.contractAddress,
61
33
  isStatic: this.functionDao.isStatic,
34
+ hideMsgSender: false,
62
35
  returnTypes: this.functionDao.returnTypes
63
36
  };
64
37
  }
65
- // docs:start:simulate
66
38
  /**
67
- * Simulate a transaction and get its return values
68
- * Differs from prove in a few important ways:
69
- * 1. It returns the values of the function execution
70
- * 2. It supports `unconstrained`, `private` and `public` functions
71
- *
72
- * @param options - An optional object containing additional configuration for the transaction.
73
- * @returns The result of the transaction as returned by the contract function.
74
- */ async simulate(options = {}) {
39
+ * Returns the execution payload that allows this operation to happen on chain.
40
+ * @param options - Configuration options.
41
+ * @returns The execution payload for this operation
42
+ */ async request(options = {}) {
43
+ const calls = [
44
+ await this.getFunctionCall()
45
+ ];
46
+ const { authWitnesses, capsules } = options;
47
+ const feeExecutionPayload = options.fee?.paymentMethod ? await options.fee.paymentMethod.getExecutionPayload() : undefined;
48
+ const functionExecutionPayload = new ExecutionPayload(calls, this.authWitnesses.concat(authWitnesses ?? []), this.capsules.concat(capsules ?? []), this.extraHashedArgs);
49
+ const finalExecutionPayload = feeExecutionPayload ? mergeExecutionPayloads([
50
+ feeExecutionPayload,
51
+ functionExecutionPayload
52
+ ]) : functionExecutionPayload;
53
+ return finalExecutionPayload;
54
+ }
55
+ // eslint-disable-next-line jsdoc/require-jsdoc
56
+ async simulate(options) {
75
57
  // docs:end:simulate
76
- if (this.functionDao.functionType == FunctionType.UNCONSTRAINED) {
77
- return this.wallet.simulateUnconstrained(this.functionDao.name, this.args, this.contractAddress, options?.from);
58
+ if (this.functionDao.functionType == FunctionType.UTILITY) {
59
+ const call = await this.getFunctionCall();
60
+ const utilityResult = await this.wallet.simulateUtility(call, options.authWitnesses ?? []);
61
+ // Decode the raw field elements to the actual return type
62
+ const returnValue = utilityResult.result ? decodeFromAbi(this.functionDao.returnTypes, utilityResult.result) : [];
63
+ if (options.includeMetadata) {
64
+ return {
65
+ stats: utilityResult.stats,
66
+ result: returnValue
67
+ };
68
+ } else {
69
+ return returnValue;
70
+ }
78
71
  }
79
- const fee = options.fee ?? {
80
- paymentMethod: new FeeJuicePaymentMethod(AztecAddress.ZERO)
81
- };
82
- const txRequest = await this.create({
83
- fee
84
- });
85
- const simulatedTx = await this.wallet.simulateTx(txRequest, true, options.from, options.skipTxValidation, options.skipFeeEnforcement ?? true);
72
+ const executionPayload = await this.request(options);
73
+ const simulatedTx = await this.wallet.simulateTx(executionPayload, toSimulateOptions(options));
86
74
  let rawReturnValues;
87
75
  if (this.functionDao.functionType == FunctionType.PRIVATE) {
88
76
  if (simulatedTx.getPrivateReturnValues().nested.length > 0) {
@@ -95,28 +83,44 @@ import { BaseContractInteraction } from './base_contract_interaction.js';
95
83
  }
96
84
  } else {
97
85
  // For public functions we retrieve the first values directly from the public output.
98
- rawReturnValues = simulatedTx.getPublicReturnValues()?.[0].values;
86
+ rawReturnValues = simulatedTx.getPublicReturnValues()?.[0]?.values;
87
+ }
88
+ const returnValue = rawReturnValues ? decodeFromAbi(this.functionDao.returnTypes, rawReturnValues) : [];
89
+ if (options.includeMetadata || options.fee?.estimateGas) {
90
+ const { gasLimits, teardownGasLimits } = getGasLimits(simulatedTx, options.fee?.estimatedGasPadding);
91
+ this.log.verbose(`Estimated gas limits for tx: DA=${gasLimits.daGas} L2=${gasLimits.l2Gas} teardownDA=${teardownGasLimits.daGas} teardownL2=${teardownGasLimits.l2Gas}`);
92
+ return {
93
+ stats: simulatedTx.stats,
94
+ offchainEffects: collectOffchainEffects(simulatedTx.privateExecutionResult),
95
+ result: returnValue,
96
+ estimatedGas: {
97
+ gasLimits,
98
+ teardownGasLimits
99
+ }
100
+ };
101
+ } else {
102
+ return returnValue;
99
103
  }
100
- return rawReturnValues ? decodeFromAbi(this.functionDao.returnTypes, rawReturnValues) : [];
101
104
  }
102
105
  /**
103
106
  * Simulate a transaction and profile the gate count for each function in the transaction.
104
- * @param options - Same options as `simulate`.
107
+ * @param options - Same options as `simulate`, plus profiling method
105
108
  *
106
109
  * @returns An object containing the function return value and profile result.
107
- */ async simulateWithProfile(options = {}) {
108
- if (this.functionDao.functionType == FunctionType.UNCONSTRAINED) {
109
- throw new Error("Can't profile an unconstrained function.");
110
+ */ async profile(options) {
111
+ if (this.functionDao.functionType == FunctionType.UTILITY) {
112
+ throw new Error("Can't profile a utility function.");
110
113
  }
111
- const txRequest = await this.create({
112
- fee: options.fee
113
- });
114
- const simulatedTx = await this.wallet.simulateTx(txRequest, true, options?.from, options?.skipTxValidation, undefined, true);
115
- const rawReturnValues = this.functionDao.functionType == FunctionType.PRIVATE ? simulatedTx.getPrivateReturnValues().nested?.[0].values : simulatedTx.getPublicReturnValues()?.[0].values;
116
- const rawReturnValuesDecoded = rawReturnValues ? decodeFromAbi(this.functionDao.returnTypes, rawReturnValues) : [];
117
- return {
118
- returnValues: rawReturnValuesDecoded,
119
- gateCounts: simulatedTx.profileResult.gateCounts
120
- };
114
+ const executionPayload = await this.request(options);
115
+ return await this.wallet.profileTx(executionPayload, toProfileOptions(options));
116
+ }
117
+ /**
118
+ * Augments this ContractFunctionInteraction with additional metadata, such as authWitnesses, capsules, and extraHashedArgs.
119
+ * This is useful when creating a "batteries included" interaction, such as registering a contract class with its associated
120
+ * capsule instead of having the user provide them externally.
121
+ * @param options - An object containing the metadata to add to the interaction
122
+ * @returns A new ContractFunctionInteraction with the added metadata, but calling the same original function in the same manner
123
+ */ with({ authWitnesses = [], capsules = [], extraHashedArgs = [] }) {
124
+ return new ContractFunctionInteraction(this.wallet, this.contractAddress, this.functionDao, this.args, this.authWitnesses.concat(authWitnesses), this.capsules.concat(capsules), this.extraHashedArgs.concat(extraHashedArgs));
121
125
  }
122
126
  }