@aztec/aztec.js 0.0.0-test.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (299) hide show
  1. package/README.md +44 -0
  2. package/dest/account/contract.d.ts +37 -0
  3. package/dest/account/contract.d.ts.map +1 -0
  4. package/dest/account/contract.js +16 -0
  5. package/dest/account/index.d.ts +15 -0
  6. package/dest/account/index.d.ts.map +1 -0
  7. package/dest/account/index.js +9 -0
  8. package/dest/account/interface.d.ts +31 -0
  9. package/dest/account/interface.d.ts.map +1 -0
  10. package/dest/account/interface.js +4 -0
  11. package/dest/account/wallet.d.ts +11 -0
  12. package/dest/account/wallet.d.ts.map +1 -0
  13. package/dest/account/wallet.js +3 -0
  14. package/dest/account_manager/deploy_account_method.d.ts +15 -0
  15. package/dest/account_manager/deploy_account_method.d.ts.map +1 -0
  16. package/dest/account_manager/deploy_account_method.js +43 -0
  17. package/dest/account_manager/deploy_account_sent_tx.d.ts +30 -0
  18. package/dest/account_manager/deploy_account_sent_tx.d.ts.map +1 -0
  19. package/dest/account_manager/deploy_account_sent_tx.js +29 -0
  20. package/dest/account_manager/index.d.ts +108 -0
  21. package/dest/account_manager/index.d.ts.map +1 -0
  22. package/dest/account_manager/index.js +159 -0
  23. package/dest/api/abi.d.ts +3 -0
  24. package/dest/api/abi.d.ts.map +1 -0
  25. package/dest/api/abi.js +1 -0
  26. package/dest/api/account.d.ts +3 -0
  27. package/dest/api/account.d.ts.map +1 -0
  28. package/dest/api/account.js +2 -0
  29. package/dest/api/addresses.d.ts +3 -0
  30. package/dest/api/addresses.d.ts.map +1 -0
  31. package/dest/api/addresses.js +2 -0
  32. package/dest/api/cheat_codes.d.ts +26 -0
  33. package/dest/api/cheat_codes.d.ts.map +1 -0
  34. package/dest/api/cheat_codes.js +25 -0
  35. package/dest/api/deployment.d.ts +4 -0
  36. package/dest/api/deployment.d.ts.map +1 -0
  37. package/dest/api/deployment.js +3 -0
  38. package/dest/api/entrypoint.d.ts +2 -0
  39. package/dest/api/entrypoint.d.ts.map +1 -0
  40. package/dest/api/entrypoint.js +1 -0
  41. package/dest/api/eth_address.d.ts +2 -0
  42. package/dest/api/eth_address.d.ts.map +1 -0
  43. package/dest/api/eth_address.js +1 -0
  44. package/dest/api/ethereum/anvil_test_watcher.d.ts +32 -0
  45. package/dest/api/ethereum/anvil_test_watcher.d.ts.map +1 -0
  46. package/dest/api/ethereum/anvil_test_watcher.js +133 -0
  47. package/dest/api/ethereum/chain_monitor.d.ts +25 -0
  48. package/dest/api/ethereum/chain_monitor.d.ts.map +1 -0
  49. package/dest/api/ethereum/chain_monitor.js +74 -0
  50. package/dest/api/ethereum/cheat_codes.d.ts +63 -0
  51. package/dest/api/ethereum/cheat_codes.d.ts.map +1 -0
  52. package/dest/api/ethereum/cheat_codes.js +162 -0
  53. package/dest/api/ethereum/index.d.ts +7 -0
  54. package/dest/api/ethereum/index.d.ts.map +1 -0
  55. package/dest/api/ethereum/index.js +6 -0
  56. package/dest/api/ethereum/l1_contracts.d.ts +3 -0
  57. package/dest/api/ethereum/l1_contracts.d.ts.map +1 -0
  58. package/dest/api/ethereum/l1_contracts.js +13 -0
  59. package/dest/api/ethereum/portal_manager.d.ts +136 -0
  60. package/dest/api/ethereum/portal_manager.d.ts.map +1 -0
  61. package/dest/api/ethereum/portal_manager.js +286 -0
  62. package/dest/api/fee.d.ts +6 -0
  63. package/dest/api/fee.d.ts.map +1 -0
  64. package/dest/api/fee.js +4 -0
  65. package/dest/api/fields.d.ts +2 -0
  66. package/dest/api/fields.d.ts.map +1 -0
  67. package/dest/api/fields.js +1 -0
  68. package/dest/api/interfaces/pxe.d.ts +2 -0
  69. package/dest/api/interfaces/pxe.d.ts.map +1 -0
  70. package/dest/api/interfaces/pxe.js +1 -0
  71. package/dest/api/log.d.ts +2 -0
  72. package/dest/api/log.d.ts.map +1 -0
  73. package/dest/api/log.js +1 -0
  74. package/dest/api/log_id.d.ts +2 -0
  75. package/dest/api/log_id.d.ts.map +1 -0
  76. package/dest/api/log_id.js +1 -0
  77. package/dest/api/tx_hash.d.ts +2 -0
  78. package/dest/api/tx_hash.d.ts.map +1 -0
  79. package/dest/api/tx_hash.js +1 -0
  80. package/dest/api/wallet.d.ts +2 -0
  81. package/dest/api/wallet.d.ts.map +1 -0
  82. package/dest/api/wallet.js +1 -0
  83. package/dest/contract/base_contract_interaction.d.ts +98 -0
  84. package/dest/contract/base_contract_interaction.d.ts.map +1 -0
  85. package/dest/contract/base_contract_interaction.js +149 -0
  86. package/dest/contract/batch_call.d.ts +28 -0
  87. package/dest/contract/batch_call.d.ts.map +1 -0
  88. package/dest/contract/batch_call.js +91 -0
  89. package/dest/contract/checker.d.ts +11 -0
  90. package/dest/contract/checker.d.ts.map +1 -0
  91. package/dest/contract/checker.js +107 -0
  92. package/dest/contract/contract.d.ts +41 -0
  93. package/dest/contract/contract.d.ts.map +1 -0
  94. package/dest/contract/contract.js +52 -0
  95. package/dest/contract/contract_base.d.ts +61 -0
  96. package/dest/contract/contract_base.d.ts.map +1 -0
  97. package/dest/contract/contract_base.js +45 -0
  98. package/dest/contract/contract_function_interaction.d.ts +68 -0
  99. package/dest/contract/contract_function_interaction.d.ts.map +1 -0
  100. package/dest/contract/contract_function_interaction.js +122 -0
  101. package/dest/contract/deploy_method.d.ts +113 -0
  102. package/dest/contract/deploy_method.d.ts.map +1 -0
  103. package/dest/contract/deploy_method.js +212 -0
  104. package/dest/contract/deploy_proven_tx.d.ts +21 -0
  105. package/dest/contract/deploy_proven_tx.d.ts.map +1 -0
  106. package/dest/contract/deploy_proven_tx.js +19 -0
  107. package/dest/contract/deploy_sent_tx.d.ts +45 -0
  108. package/dest/contract/deploy_sent_tx.d.ts.map +1 -0
  109. package/dest/contract/deploy_sent_tx.js +43 -0
  110. package/dest/contract/get_gas_limits.d.ts +18 -0
  111. package/dest/contract/get_gas_limits.d.ts.map +1 -0
  112. package/dest/contract/get_gas_limits.js +10 -0
  113. package/dest/contract/index.d.ts +45 -0
  114. package/dest/contract/index.d.ts.map +1 -0
  115. package/dest/contract/index.js +43 -0
  116. package/dest/contract/protocol_contracts.d.ts +9 -0
  117. package/dest/contract/protocol_contracts.d.ts.map +1 -0
  118. package/dest/contract/protocol_contracts.js +26 -0
  119. package/dest/contract/proven_tx.d.ts +17 -0
  120. package/dest/contract/proven_tx.d.ts.map +1 -0
  121. package/dest/contract/proven_tx.js +22 -0
  122. package/dest/contract/sent_tx.d.ts +61 -0
  123. package/dest/contract/sent_tx.d.ts.map +1 -0
  124. package/dest/contract/sent_tx.js +102 -0
  125. package/dest/contract/unsafe_contract.d.ts +15 -0
  126. package/dest/contract/unsafe_contract.d.ts.map +1 -0
  127. package/dest/contract/unsafe_contract.js +6 -0
  128. package/dest/deployment/broadcast_function.d.ts +24 -0
  129. package/dest/deployment/broadcast_function.d.ts.map +1 -0
  130. package/dest/deployment/broadcast_function.js +70 -0
  131. package/dest/deployment/contract_deployer.d.ts +27 -0
  132. package/dest/deployment/contract_deployer.d.ts.map +1 -0
  133. package/dest/deployment/contract_deployer.js +30 -0
  134. package/dest/deployment/deploy_instance.d.ts +10 -0
  135. package/dest/deployment/deploy_instance.d.ts.map +1 -0
  136. package/dest/deployment/deploy_instance.js +14 -0
  137. package/dest/deployment/index.d.ts +2 -0
  138. package/dest/deployment/index.d.ts.map +1 -0
  139. package/dest/deployment/index.js +1 -0
  140. package/dest/deployment/register_class.d.ts +6 -0
  141. package/dest/deployment/register_class.d.ts.map +1 -0
  142. package/dest/deployment/register_class.js +22 -0
  143. package/dest/entrypoint/default_entrypoint.d.ts +12 -0
  144. package/dest/entrypoint/default_entrypoint.d.ts.map +1 -0
  145. package/dest/entrypoint/default_entrypoint.js +28 -0
  146. package/dest/entrypoint/default_multi_call_entrypoint.d.ts +15 -0
  147. package/dest/entrypoint/default_multi_call_entrypoint.d.ts.map +1 -0
  148. package/dest/entrypoint/default_multi_call_entrypoint.js +130 -0
  149. package/dest/entrypoint/entrypoint.d.ts +35 -0
  150. package/dest/entrypoint/entrypoint.d.ts.map +1 -0
  151. package/dest/entrypoint/entrypoint.js +4 -0
  152. package/dest/entrypoint/payload.d.ts +128 -0
  153. package/dest/entrypoint/payload.d.ts.map +1 -0
  154. package/dest/entrypoint/payload.js +143 -0
  155. package/dest/fee/fee_juice_payment_method.d.ts +14 -0
  156. package/dest/fee/fee_juice_payment_method.d.ts.map +1 -0
  157. package/dest/fee/fee_juice_payment_method.js +20 -0
  158. package/dest/fee/fee_juice_payment_method_with_claim.d.ts +18 -0
  159. package/dest/fee/fee_juice_payment_method_with_claim.d.ts.map +1 -0
  160. package/dest/fee/fee_juice_payment_method_with_claim.js +37 -0
  161. package/dest/fee/fee_payment_method.d.ts +22 -0
  162. package/dest/fee/fee_payment_method.d.ts.map +1 -0
  163. package/dest/fee/fee_payment_method.js +3 -0
  164. package/dest/fee/private_fee_payment_method.d.ts +51 -0
  165. package/dest/fee/private_fee_payment_method.d.ts.map +1 -0
  166. package/dest/fee/private_fee_payment_method.js +103 -0
  167. package/dest/fee/public_fee_payment_method.d.ts +41 -0
  168. package/dest/fee/public_fee_payment_method.d.ts.map +1 -0
  169. package/dest/fee/public_fee_payment_method.js +97 -0
  170. package/dest/index.d.ts +66 -0
  171. package/dest/index.d.ts.map +1 -0
  172. package/dest/index.js +69 -0
  173. package/dest/rpc_clients/index.d.ts +3 -0
  174. package/dest/rpc_clients/index.d.ts.map +1 -0
  175. package/dest/rpc_clients/index.js +2 -0
  176. package/dest/rpc_clients/node/index.d.ts +12 -0
  177. package/dest/rpc_clients/node/index.d.ts.map +1 -0
  178. package/dest/rpc_clients/node/index.js +78 -0
  179. package/dest/rpc_clients/pxe_client.d.ts +10 -0
  180. package/dest/rpc_clients/pxe_client.d.ts.map +1 -0
  181. package/dest/rpc_clients/pxe_client.js +23 -0
  182. package/dest/utils/abi_types.d.ts +29 -0
  183. package/dest/utils/abi_types.d.ts.map +1 -0
  184. package/dest/utils/abi_types.js +1 -0
  185. package/dest/utils/authwit.d.ts +60 -0
  186. package/dest/utils/authwit.d.ts.map +1 -0
  187. package/dest/utils/authwit.js +74 -0
  188. package/dest/utils/aztec_cheatcodes.d.ts +59 -0
  189. package/dest/utils/aztec_cheatcodes.d.ts.map +1 -0
  190. package/dest/utils/aztec_cheatcodes.js +62 -0
  191. package/dest/utils/fee_juice.d.ts +7 -0
  192. package/dest/utils/fee_juice.d.ts.map +1 -0
  193. package/dest/utils/fee_juice.js +9 -0
  194. package/dest/utils/field_compressed_string.d.ts +17 -0
  195. package/dest/utils/field_compressed_string.d.ts.map +1 -0
  196. package/dest/utils/field_compressed_string.js +15 -0
  197. package/dest/utils/index.d.ts +8 -0
  198. package/dest/utils/index.d.ts.map +1 -0
  199. package/dest/utils/index.js +6 -0
  200. package/dest/utils/node.d.ts +5 -0
  201. package/dest/utils/node.d.ts.map +1 -0
  202. package/dest/utils/node.js +15 -0
  203. package/dest/utils/pub_key.d.ts +9 -0
  204. package/dest/utils/pub_key.d.ts.map +1 -0
  205. package/dest/utils/pub_key.js +9 -0
  206. package/dest/utils/pxe.d.ts +4 -0
  207. package/dest/utils/pxe.d.ts.map +1 -0
  208. package/dest/utils/pxe.js +14 -0
  209. package/dest/wallet/account_wallet.d.ts +76 -0
  210. package/dest/wallet/account_wallet.d.ts.map +1 -0
  211. package/dest/wallet/account_wallet.js +231 -0
  212. package/dest/wallet/account_wallet_with_private_key.d.ts +26 -0
  213. package/dest/wallet/account_wallet_with_private_key.d.ts.map +1 -0
  214. package/dest/wallet/account_wallet_with_private_key.js +22 -0
  215. package/dest/wallet/base_wallet.d.ts +73 -0
  216. package/dest/wallet/base_wallet.d.ts.map +1 -0
  217. package/dest/wallet/base_wallet.js +123 -0
  218. package/dest/wallet/index.d.ts +17 -0
  219. package/dest/wallet/index.d.ts.map +1 -0
  220. package/dest/wallet/index.js +20 -0
  221. package/dest/wallet/signerless_wallet.d.ts +25 -0
  222. package/dest/wallet/signerless_wallet.d.ts.map +1 -0
  223. package/dest/wallet/signerless_wallet.js +36 -0
  224. package/package.json +116 -0
  225. package/src/account/contract.ts +56 -0
  226. package/src/account/index.ts +16 -0
  227. package/src/account/interface.ts +36 -0
  228. package/src/account/wallet.ts +13 -0
  229. package/src/account_manager/deploy_account_method.ts +86 -0
  230. package/src/account_manager/deploy_account_sent_tx.ts +42 -0
  231. package/src/account_manager/index.ts +229 -0
  232. package/src/api/README.md +7 -0
  233. package/src/api/abi.ts +10 -0
  234. package/src/api/account.ts +10 -0
  235. package/src/api/addresses.ts +2 -0
  236. package/src/api/cheat_codes.ts +35 -0
  237. package/src/api/deployment.ts +3 -0
  238. package/src/api/entrypoint.ts +1 -0
  239. package/src/api/eth_address.ts +1 -0
  240. package/src/api/ethereum/anvil_test_watcher.ts +158 -0
  241. package/src/api/ethereum/chain_monitor.ts +88 -0
  242. package/src/api/ethereum/cheat_codes.ts +184 -0
  243. package/src/api/ethereum/index.ts +19 -0
  244. package/src/api/ethereum/l1_contracts.ts +21 -0
  245. package/src/api/ethereum/portal_manager.ts +410 -0
  246. package/src/api/fee.ts +5 -0
  247. package/src/api/fields.ts +1 -0
  248. package/src/api/interfaces/pxe.ts +1 -0
  249. package/src/api/log.ts +1 -0
  250. package/src/api/log_id.ts +1 -0
  251. package/src/api/tx_hash.ts +1 -0
  252. package/src/api/wallet.ts +7 -0
  253. package/src/contract/base_contract_interaction.ts +192 -0
  254. package/src/contract/batch_call.ts +95 -0
  255. package/src/contract/checker.ts +117 -0
  256. package/src/contract/contract.ts +69 -0
  257. package/src/contract/contract_base.ts +90 -0
  258. package/src/contract/contract_function_interaction.ts +173 -0
  259. package/src/contract/deploy_method.ts +271 -0
  260. package/src/contract/deploy_proven_tx.ts +34 -0
  261. package/src/contract/deploy_sent_tx.ts +74 -0
  262. package/src/contract/get_gas_limits.ts +26 -0
  263. package/src/contract/index.ts +48 -0
  264. package/src/contract/protocol_contracts.ts +35 -0
  265. package/src/contract/proven_tx.ts +42 -0
  266. package/src/contract/sent_tx.ts +141 -0
  267. package/src/contract/unsafe_contract.ts +19 -0
  268. package/src/deployment/broadcast_function.ts +148 -0
  269. package/src/deployment/contract_deployer.ts +41 -0
  270. package/src/deployment/deploy_instance.ts +31 -0
  271. package/src/deployment/index.ts +1 -0
  272. package/src/deployment/register_class.ts +44 -0
  273. package/src/entrypoint/default_entrypoint.ts +39 -0
  274. package/src/entrypoint/default_multi_call_entrypoint.ts +93 -0
  275. package/src/entrypoint/entrypoint.ts +39 -0
  276. package/src/entrypoint/payload.ts +238 -0
  277. package/src/fee/fee_juice_payment_method.ts +26 -0
  278. package/src/fee/fee_juice_payment_method_with_claim.ts +49 -0
  279. package/src/fee/fee_payment_method.ts +22 -0
  280. package/src/fee/private_fee_payment_method.ts +118 -0
  281. package/src/fee/public_fee_payment_method.ts +114 -0
  282. package/src/index.ts +106 -0
  283. package/src/rpc_clients/index.ts +2 -0
  284. package/src/rpc_clients/node/index.ts +77 -0
  285. package/src/rpc_clients/pxe_client.ts +25 -0
  286. package/src/utils/abi_types.ts +25 -0
  287. package/src/utils/authwit.ts +110 -0
  288. package/src/utils/aztec_cheatcodes.ts +77 -0
  289. package/src/utils/fee_juice.ts +14 -0
  290. package/src/utils/field_compressed_string.ts +27 -0
  291. package/src/utils/index.ts +21 -0
  292. package/src/utils/node.ts +19 -0
  293. package/src/utils/pub_key.ts +13 -0
  294. package/src/utils/pxe.ts +17 -0
  295. package/src/wallet/account_wallet.ts +242 -0
  296. package/src/wallet/account_wallet_with_private_key.ts +40 -0
  297. package/src/wallet/base_wallet.ts +198 -0
  298. package/src/wallet/index.ts +33 -0
  299. package/src/wallet/signerless_wallet.ts +52 -0
@@ -0,0 +1,40 @@
1
+ import type { Fr } from '@aztec/foundation/fields';
2
+ import type { PXE } from '@aztec/stdlib/interfaces/client';
3
+ import { computeAddressSecret, deriveMasterIncomingViewingSecretKey } from '@aztec/stdlib/keys';
4
+
5
+ import type { Salt } from '../account/index.js';
6
+ import type { AccountInterface } from '../account/interface.js';
7
+ import { AccountWallet } from './account_wallet.js';
8
+
9
+ /**
10
+ * Extends {@link AccountWallet} with the encryption private key. Not required for
11
+ * implementing the wallet interface but useful for testing purposes or exporting
12
+ * an account to another pxe.
13
+ */
14
+ export class AccountWalletWithSecretKey extends AccountWallet {
15
+ constructor(
16
+ pxe: PXE,
17
+ account: AccountInterface,
18
+ private secretKey: Fr,
19
+ /** Deployment salt for this account contract. */
20
+ public readonly salt: Salt,
21
+ ) {
22
+ super(pxe, account);
23
+ }
24
+
25
+ /** Returns the encryption private key associated with this account. */
26
+ public getSecretKey() {
27
+ return this.secretKey;
28
+ }
29
+
30
+ /** Returns the encryption secret, the secret of the encryption point—the point that others use to encrypt messages to this account
31
+ * note - this ensures that the address secret always corresponds to an address point with y being positive
32
+ * dev - this is also referred to as the address secret, which decrypts payloads encrypted to an address point
33
+ */
34
+ public async getEncryptionSecret() {
35
+ return computeAddressSecret(
36
+ await this.getCompleteAddress().getPreaddress(),
37
+ deriveMasterIncomingViewingSecretKey(this.getSecretKey()),
38
+ );
39
+ }
40
+ }
@@ -0,0 +1,198 @@
1
+ import type { L1_TO_L2_MSG_TREE_HEIGHT } from '@aztec/constants';
2
+ import type { Fr, Point } from '@aztec/foundation/fields';
3
+ import type { SiblingPath } from '@aztec/foundation/trees';
4
+ import type { AbiDecoded, ContractArtifact } from '@aztec/stdlib/abi';
5
+ import type { AuthWitness } from '@aztec/stdlib/auth-witness';
6
+ import type { AztecAddress } from '@aztec/stdlib/aztec-address';
7
+ import type { L2Block } from '@aztec/stdlib/block';
8
+ import type { CompleteAddress, ContractInstanceWithAddress, NodeInfo, PartialAddress } from '@aztec/stdlib/contract';
9
+ import type { GasFees } from '@aztec/stdlib/gas';
10
+ import type {
11
+ ContractClassMetadata,
12
+ ContractMetadata,
13
+ EventMetadataDefinition,
14
+ GetContractClassLogsResponse,
15
+ GetPublicLogsResponse,
16
+ PXE,
17
+ PXEInfo,
18
+ } from '@aztec/stdlib/interfaces/client';
19
+ import type { LogFilter } from '@aztec/stdlib/logs';
20
+ import type { NotesFilter, UniqueNote } from '@aztec/stdlib/note';
21
+ import type {
22
+ PrivateExecutionResult,
23
+ Tx,
24
+ TxExecutionRequest,
25
+ TxHash,
26
+ TxProvingResult,
27
+ TxReceipt,
28
+ TxSimulationResult,
29
+ } from '@aztec/stdlib/tx';
30
+
31
+ import type { Wallet } from '../account/wallet.js';
32
+ import type { ExecutionRequestInit } from '../entrypoint/entrypoint.js';
33
+ import type { IntentAction, IntentInnerHash } from '../utils/authwit.js';
34
+
35
+ /**
36
+ * A base class for Wallet implementations
37
+ */
38
+ export abstract class BaseWallet implements Wallet {
39
+ constructor(protected readonly pxe: PXE, private scopes?: AztecAddress[]) {}
40
+
41
+ abstract isL1ToL2MessageSynced(l1ToL2Message: Fr): Promise<boolean>;
42
+
43
+ abstract getCompleteAddress(): CompleteAddress;
44
+
45
+ abstract getChainId(): Fr;
46
+
47
+ abstract getVersion(): Fr;
48
+
49
+ abstract createTxExecutionRequest(exec: ExecutionRequestInit): Promise<TxExecutionRequest>;
50
+
51
+ abstract createAuthWit(intent: Fr | Buffer | IntentInnerHash | IntentAction): Promise<AuthWitness>;
52
+
53
+ setScopes(scopes: AztecAddress[]) {
54
+ this.scopes = scopes;
55
+ }
56
+
57
+ getScopes() {
58
+ return this.scopes;
59
+ }
60
+
61
+ getAddress() {
62
+ return this.getCompleteAddress().address;
63
+ }
64
+ storeCapsule(contract: AztecAddress, storageSlot: Fr, capsule: Fr[]): Promise<void> {
65
+ return this.pxe.storeCapsule(contract, storageSlot, capsule);
66
+ }
67
+ registerAccount(secretKey: Fr, partialAddress: PartialAddress): Promise<CompleteAddress> {
68
+ return this.pxe.registerAccount(secretKey, partialAddress);
69
+ }
70
+ getRegisteredAccounts(): Promise<CompleteAddress[]> {
71
+ return this.pxe.getRegisteredAccounts();
72
+ }
73
+ registerSender(address: AztecAddress): Promise<AztecAddress> {
74
+ return this.pxe.registerSender(address);
75
+ }
76
+ getSenders(): Promise<AztecAddress[]> {
77
+ return this.pxe.getSenders();
78
+ }
79
+ async removeSender(address: AztecAddress): Promise<void> {
80
+ await this.pxe.removeSender(address);
81
+ }
82
+ registerContract(contract: {
83
+ /** Instance */ instance: ContractInstanceWithAddress;
84
+ /** Associated artifact */ artifact?: ContractArtifact;
85
+ }): Promise<void> {
86
+ return this.pxe.registerContract(contract);
87
+ }
88
+ registerContractClass(artifact: ContractArtifact): Promise<void> {
89
+ return this.pxe.registerContractClass(artifact);
90
+ }
91
+ updateContract(contractAddress: AztecAddress, artifact: ContractArtifact): Promise<void> {
92
+ return this.pxe.updateContract(contractAddress, artifact);
93
+ }
94
+ getContracts(): Promise<AztecAddress[]> {
95
+ return this.pxe.getContracts();
96
+ }
97
+ proveTx(txRequest: TxExecutionRequest, privateExecutionResult: PrivateExecutionResult): Promise<TxProvingResult> {
98
+ return this.pxe.proveTx(txRequest, privateExecutionResult);
99
+ }
100
+ simulateTx(
101
+ txRequest: TxExecutionRequest,
102
+ simulatePublic: boolean,
103
+ msgSender?: AztecAddress,
104
+ skipTxValidation?: boolean,
105
+ skipFeeEnforcement?: boolean,
106
+ profile?: boolean,
107
+ ): Promise<TxSimulationResult> {
108
+ return this.pxe.simulateTx(
109
+ txRequest,
110
+ simulatePublic,
111
+ msgSender,
112
+ skipTxValidation,
113
+ skipFeeEnforcement,
114
+ profile,
115
+ this.scopes,
116
+ );
117
+ }
118
+ sendTx(tx: Tx): Promise<TxHash> {
119
+ return this.pxe.sendTx(tx);
120
+ }
121
+ getTxEffect(txHash: TxHash) {
122
+ return this.pxe.getTxEffect(txHash);
123
+ }
124
+ getTxReceipt(txHash: TxHash): Promise<TxReceipt> {
125
+ return this.pxe.getTxReceipt(txHash);
126
+ }
127
+ getNotes(filter: NotesFilter): Promise<UniqueNote[]> {
128
+ return this.pxe.getNotes(filter);
129
+ }
130
+ getPublicStorageAt(contract: AztecAddress, storageSlot: Fr): Promise<any> {
131
+ return this.pxe.getPublicStorageAt(contract, storageSlot);
132
+ }
133
+ getBlock(number: number): Promise<L2Block | undefined> {
134
+ return this.pxe.getBlock(number);
135
+ }
136
+ getCurrentBaseFees(): Promise<GasFees> {
137
+ return this.pxe.getCurrentBaseFees();
138
+ }
139
+ simulateUnconstrained(
140
+ functionName: string,
141
+ args: any[],
142
+ to: AztecAddress,
143
+ from?: AztecAddress | undefined,
144
+ ): Promise<AbiDecoded> {
145
+ return this.pxe.simulateUnconstrained(functionName, args, to, from);
146
+ }
147
+ getPublicLogs(filter: LogFilter): Promise<GetPublicLogsResponse> {
148
+ return this.pxe.getPublicLogs(filter);
149
+ }
150
+ getContractClassLogs(filter: LogFilter): Promise<GetContractClassLogsResponse> {
151
+ return this.pxe.getContractClassLogs(filter);
152
+ }
153
+ getBlockNumber(): Promise<number> {
154
+ return this.pxe.getBlockNumber();
155
+ }
156
+ getProvenBlockNumber(): Promise<number> {
157
+ return this.pxe.getProvenBlockNumber();
158
+ }
159
+ getNodeInfo(): Promise<NodeInfo> {
160
+ return this.pxe.getNodeInfo();
161
+ }
162
+ addAuthWitness(authWitness: AuthWitness) {
163
+ return this.pxe.addAuthWitness(authWitness);
164
+ }
165
+ getAuthWitness(messageHash: Fr) {
166
+ return this.pxe.getAuthWitness(messageHash);
167
+ }
168
+ getPXEInfo(): Promise<PXEInfo> {
169
+ return this.pxe.getPXEInfo();
170
+ }
171
+ getContractClassMetadata(id: Fr, includeArtifact: boolean = false): Promise<ContractClassMetadata> {
172
+ return this.pxe.getContractClassMetadata(id, includeArtifact);
173
+ }
174
+ getContractMetadata(address: AztecAddress): Promise<ContractMetadata> {
175
+ return this.pxe.getContractMetadata(address);
176
+ }
177
+ getPrivateEvents<T>(
178
+ event: EventMetadataDefinition,
179
+ from: number,
180
+ limit: number,
181
+ vpks: Point[] = [this.getCompleteAddress().publicKeys.masterIncomingViewingPublicKey],
182
+ ): Promise<T[]> {
183
+ return this.pxe.getPrivateEvents(event, from, limit, vpks);
184
+ }
185
+ getPublicEvents<T>(event: EventMetadataDefinition, from: number, limit: number): Promise<T[]> {
186
+ return this.pxe.getPublicEvents(event, from, limit);
187
+ }
188
+ public getL1ToL2MembershipWitness(
189
+ contractAddress: AztecAddress,
190
+ messageHash: Fr,
191
+ secret: Fr,
192
+ ): Promise<[bigint, SiblingPath<typeof L1_TO_L2_MSG_TREE_HEIGHT>]> {
193
+ return this.pxe.getL1ToL2MembershipWitness(contractAddress, messageHash, secret);
194
+ }
195
+ getL2ToL1MembershipWitness(blockNumber: number, l2Tol1Message: Fr): Promise<[bigint, SiblingPath<number>]> {
196
+ return this.pxe.getL2ToL1MembershipWitness(blockNumber, l2Tol1Message);
197
+ }
198
+ }
@@ -0,0 +1,33 @@
1
+ import type { AztecAddress } from '@aztec/stdlib/aztec-address';
2
+ import type { PXE } from '@aztec/stdlib/interfaces/client';
3
+
4
+ import type { AccountContract } from '../account/contract.js';
5
+ import { AccountWallet } from './account_wallet.js';
6
+
7
+ export * from '../account/wallet.js';
8
+ export * from './account_wallet.js';
9
+ export * from './account_wallet_with_private_key.js';
10
+ export * from './signerless_wallet.js';
11
+
12
+ /**
13
+ * Gets a wallet for an already registered account.
14
+ * @param pxe - PXE Service instance.
15
+ * @param address - Address for the account.
16
+ * @param accountContract - Account contract implementation.
17
+ * @returns A wallet for this account that can be used to interact with a contract instance.
18
+ */
19
+ export async function getWallet(
20
+ pxe: PXE,
21
+ address: AztecAddress,
22
+ accountContract: AccountContract,
23
+ ): Promise<AccountWallet> {
24
+ const completeAddress = (await pxe.getRegisteredAccounts()).find(completeAddress =>
25
+ completeAddress.address.equals(address),
26
+ );
27
+ if (!completeAddress) {
28
+ throw new Error(`Account ${address} not found`);
29
+ }
30
+ const nodeInfo = await pxe.getNodeInfo();
31
+ const entrypoint = accountContract.getInterface(completeAddress, nodeInfo);
32
+ return new AccountWallet(pxe, entrypoint);
33
+ }
@@ -0,0 +1,52 @@
1
+ import type { Fr } from '@aztec/foundation/fields';
2
+ import { AuthWitness } from '@aztec/stdlib/auth-witness';
3
+ import type { CompleteAddress } from '@aztec/stdlib/contract';
4
+ import type { PXE } from '@aztec/stdlib/interfaces/client';
5
+ import type { TxExecutionRequest } from '@aztec/stdlib/tx';
6
+
7
+ import { DefaultEntrypoint } from '../entrypoint/default_entrypoint.js';
8
+ import type { EntrypointInterface, ExecutionRequestInit } from '../entrypoint/entrypoint.js';
9
+ import type { IntentAction, IntentInnerHash } from '../utils/authwit.js';
10
+ import { BaseWallet } from './base_wallet.js';
11
+
12
+ /**
13
+ * Wallet implementation which creates a transaction request directly to the requested contract without any signing.
14
+ */
15
+ export class SignerlessWallet extends BaseWallet {
16
+ constructor(pxe: PXE, private entrypoint?: EntrypointInterface) {
17
+ super(pxe);
18
+ }
19
+ async createTxExecutionRequest(execution: ExecutionRequestInit): Promise<TxExecutionRequest> {
20
+ let entrypoint = this.entrypoint;
21
+ if (!entrypoint) {
22
+ const { l1ChainId: chainId, protocolVersion } = await this.pxe.getNodeInfo();
23
+ entrypoint = new DefaultEntrypoint(chainId, protocolVersion);
24
+ }
25
+
26
+ return entrypoint.createTxExecutionRequest(execution);
27
+ }
28
+
29
+ getChainId(): Fr {
30
+ throw new Error('SignerlessWallet: Method getChainId not implemented.');
31
+ }
32
+
33
+ getVersion(): Fr {
34
+ throw new Error('SignerlessWallet: Method getVersion not implemented.');
35
+ }
36
+
37
+ getPublicKeysHash(): Fr {
38
+ throw new Error('SignerlessWallet: Method getPublicKeysHash not implemented.');
39
+ }
40
+
41
+ getCompleteAddress(): CompleteAddress {
42
+ throw new Error('SignerlessWallet: Method getCompleteAddress not implemented.');
43
+ }
44
+
45
+ createAuthWit(_intent: Fr | Buffer | IntentInnerHash | IntentAction): Promise<AuthWitness> {
46
+ throw new Error('SignerlessWallet: Method createAuthWit not implemented.');
47
+ }
48
+
49
+ override isL1ToL2MessageSynced(l1ToL2Message: Fr): Promise<boolean> {
50
+ return this.pxe.isL1ToL2MessageSynced(l1ToL2Message);
51
+ }
52
+ }