@aztec-labs/aztec.js 6.0.0-nightly.20260829

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 (275) hide show
  1. package/README.md +44 -0
  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 +49 -0
  6. package/dest/account/account_contract.d.ts.map +1 -0
  7. package/dest/account/account_contract.js +20 -0
  8. package/dest/account/index.d.ts +11 -0
  9. package/dest/account/index.d.ts.map +1 -0
  10. package/dest/account/index.js +6 -0
  11. package/dest/api/abi.d.ts +4 -0
  12. package/dest/api/abi.d.ts.map +1 -0
  13. package/dest/api/abi.js +1 -0
  14. package/dest/api/account.d.ts +5 -0
  15. package/dest/api/account.d.ts.map +1 -0
  16. package/dest/api/account.js +3 -0
  17. package/dest/api/addresses.d.ts +4 -0
  18. package/dest/api/addresses.d.ts.map +1 -0
  19. package/dest/api/addresses.js +3 -0
  20. package/dest/api/authorization.d.ts +5 -0
  21. package/dest/api/authorization.d.ts.map +1 -0
  22. package/dest/api/authorization.js +4 -0
  23. package/dest/api/block.d.ts +3 -0
  24. package/dest/api/block.d.ts.map +1 -0
  25. package/dest/api/block.js +2 -0
  26. package/dest/api/contract.d.ts +48 -0
  27. package/dest/api/contract.d.ts.map +1 -0
  28. package/dest/api/contract.js +46 -0
  29. package/dest/api/crypto.d.ts +2 -0
  30. package/dest/api/crypto.d.ts.map +1 -0
  31. package/dest/api/crypto.js +1 -0
  32. package/dest/api/deployment.d.ts +4 -0
  33. package/dest/api/deployment.d.ts.map +1 -0
  34. package/dest/api/deployment.js +3 -0
  35. package/dest/api/eth_address.d.ts +2 -0
  36. package/dest/api/eth_address.d.ts.map +1 -0
  37. package/dest/api/eth_address.js +1 -0
  38. package/dest/api/ethereum.d.ts +2 -0
  39. package/dest/api/ethereum.d.ts.map +1 -0
  40. package/dest/api/ethereum.js +1 -0
  41. package/dest/api/event_cursor.d.ts +44 -0
  42. package/dest/api/event_cursor.d.ts.map +1 -0
  43. package/dest/api/event_cursor.js +42 -0
  44. package/dest/api/events.d.ts +36 -0
  45. package/dest/api/events.d.ts.map +1 -0
  46. package/dest/api/events.js +59 -0
  47. package/dest/api/fee.d.ts +6 -0
  48. package/dest/api/fee.d.ts.map +1 -0
  49. package/dest/api/fee.js +4 -0
  50. package/dest/api/fee_testing.d.ts +2 -0
  51. package/dest/api/fee_testing.d.ts.map +1 -0
  52. package/dest/api/fee_testing.js +1 -0
  53. package/dest/api/fields.d.ts +4 -0
  54. package/dest/api/fields.d.ts.map +1 -0
  55. package/dest/api/fields.js +3 -0
  56. package/dest/api/keys.d.ts +4 -0
  57. package/dest/api/keys.d.ts.map +1 -0
  58. package/dest/api/keys.js +3 -0
  59. package/dest/api/log.d.ts +3 -0
  60. package/dest/api/log.d.ts.map +1 -0
  61. package/dest/api/log.js +2 -0
  62. package/dest/api/messaging.d.ts +3 -0
  63. package/dest/api/messaging.d.ts.map +1 -0
  64. package/dest/api/messaging.js +2 -0
  65. package/dest/api/node.d.ts +25 -0
  66. package/dest/api/node.d.ts.map +1 -0
  67. package/dest/api/node.js +22 -0
  68. package/dest/api/note.d.ts +2 -0
  69. package/dest/api/note.d.ts.map +1 -0
  70. package/dest/api/note.js +1 -0
  71. package/dest/api/protocol.d.ts +6 -0
  72. package/dest/api/protocol.d.ts.map +1 -0
  73. package/dest/api/protocol.js +5 -0
  74. package/dest/api/trees.d.ts +3 -0
  75. package/dest/api/trees.d.ts.map +1 -0
  76. package/dest/api/trees.js +2 -0
  77. package/dest/api/tx.d.ts +3 -0
  78. package/dest/api/tx.d.ts.map +1 -0
  79. package/dest/api/tx.js +1 -0
  80. package/dest/api/utils.d.ts +13 -0
  81. package/dest/api/utils.d.ts.map +1 -0
  82. package/dest/api/utils.js +12 -0
  83. package/dest/api/wallet.d.ts +8 -0
  84. package/dest/api/wallet.d.ts.map +1 -0
  85. package/dest/api/wallet.js +7 -0
  86. package/dest/authorization/call_authorization_request.d.ts +46 -0
  87. package/dest/authorization/call_authorization_request.d.ts.map +1 -0
  88. package/dest/authorization/call_authorization_request.js +72 -0
  89. package/dest/contract/base_contract_interaction.d.ts +32 -0
  90. package/dest/contract/base_contract_interaction.d.ts.map +1 -0
  91. package/dest/contract/base_contract_interaction.js +24 -0
  92. package/dest/contract/batch_call.d.ts +27 -0
  93. package/dest/contract/batch_call.d.ts.map +1 -0
  94. package/dest/contract/batch_call.js +152 -0
  95. package/dest/contract/checker.d.ts +11 -0
  96. package/dest/contract/checker.d.ts.map +1 -0
  97. package/dest/contract/checker.js +107 -0
  98. package/dest/contract/contract.d.ts +33 -0
  99. package/dest/contract/contract.d.ts.map +1 -0
  100. package/dest/contract/contract.js +36 -0
  101. package/dest/contract/contract_base.d.ts +51 -0
  102. package/dest/contract/contract_base.d.ts.map +1 -0
  103. package/dest/contract/contract_base.js +38 -0
  104. package/dest/contract/contract_function_interaction.d.ts +67 -0
  105. package/dest/contract/contract_function_interaction.d.ts.map +1 -0
  106. package/dest/contract/contract_function_interaction.js +218 -0
  107. package/dest/contract/deploy_method.d.ts +433 -0
  108. package/dest/contract/deploy_method.d.ts.map +1 -0
  109. package/dest/contract/deploy_method.js +471 -0
  110. package/dest/contract/fastforward_contract_update.d.ts +25 -0
  111. package/dest/contract/fastforward_contract_update.d.ts.map +1 -0
  112. package/dest/contract/fastforward_contract_update.js +57 -0
  113. package/dest/contract/interaction_options.d.ts +213 -0
  114. package/dest/contract/interaction_options.d.ts.map +1 -0
  115. package/dest/contract/interaction_options.js +87 -0
  116. package/dest/contract/protocol_contracts/contract-class-registry.d.ts +18 -0
  117. package/dest/contract/protocol_contracts/contract-class-registry.d.ts.map +1 -0
  118. package/dest/contract/protocol_contracts/contract-class-registry.js +137 -0
  119. package/dest/contract/protocol_contracts/contract-instance-registry.d.ts +25 -0
  120. package/dest/contract/protocol_contracts/contract-instance-registry.d.ts.map +1 -0
  121. package/dest/contract/protocol_contracts/contract-instance-registry.js +366 -0
  122. package/dest/contract/protocol_contracts/fee-juice.d.ts +24 -0
  123. package/dest/contract/protocol_contracts/fee-juice.d.ts.map +1 -0
  124. package/dest/contract/protocol_contracts/fee-juice.js +383 -0
  125. package/dest/contract/wait_for_proven.d.ts +18 -0
  126. package/dest/contract/wait_for_proven.d.ts.map +1 -0
  127. package/dest/contract/wait_for_proven.js +17 -0
  128. package/dest/contract/wait_opts.d.ts +21 -0
  129. package/dest/contract/wait_opts.d.ts.map +1 -0
  130. package/dest/contract/wait_opts.js +5 -0
  131. package/dest/deployment/contract_deployer.d.ts +28 -0
  132. package/dest/deployment/contract_deployer.d.ts.map +1 -0
  133. package/dest/deployment/contract_deployer.js +35 -0
  134. package/dest/deployment/publish_class.d.ts +6 -0
  135. package/dest/deployment/publish_class.d.ts.map +1 -0
  136. package/dest/deployment/publish_class.js +17 -0
  137. package/dest/deployment/publish_instance.d.ts +10 -0
  138. package/dest/deployment/publish_instance.d.ts.map +1 -0
  139. package/dest/deployment/publish_instance.js +11 -0
  140. package/dest/ethereum/portal_manager.d.ts +146 -0
  141. package/dest/ethereum/portal_manager.d.ts.map +1 -0
  142. package/dest/ethereum/portal_manager.js +415 -0
  143. package/dest/fee/fee_juice_payment_method_with_claim.d.ts +23 -0
  144. package/dest/fee/fee_juice_payment_method_with_claim.d.ts.map +1 -0
  145. package/dest/fee/fee_juice_payment_method_with_claim.js +46 -0
  146. package/dest/fee/fee_payment_method.d.ts +26 -0
  147. package/dest/fee/fee_payment_method.d.ts.map +1 -0
  148. package/dest/fee/fee_payment_method.js +3 -0
  149. package/dest/fee/private_fee_payment_method.d.ts +69 -0
  150. package/dest/fee/private_fee_payment_method.d.ts.map +1 -0
  151. package/dest/fee/private_fee_payment_method.js +122 -0
  152. package/dest/fee/public_fee_payment_method.d.ts +59 -0
  153. package/dest/fee/public_fee_payment_method.d.ts.map +1 -0
  154. package/dest/fee/public_fee_payment_method.js +116 -0
  155. package/dest/fee/sponsored_fee_payment.d.ts +17 -0
  156. package/dest/fee/sponsored_fee_payment.d.ts.map +1 -0
  157. package/dest/fee/sponsored_fee_payment.js +33 -0
  158. package/dest/scripts/generate_protocol_contract_types.d.ts +2 -0
  159. package/dest/scripts/generate_protocol_contract_types.d.ts.map +1 -0
  160. package/dest/scripts/generate_protocol_contract_types.js +128 -0
  161. package/dest/test/fixtures.d.ts +13 -0
  162. package/dest/test/fixtures.d.ts.map +1 -0
  163. package/dest/test/fixtures.js +185 -0
  164. package/dest/utils/abi_types.d.ts +32 -0
  165. package/dest/utils/abi_types.d.ts.map +1 -0
  166. package/dest/utils/abi_types.js +1 -0
  167. package/dest/utils/authwit.d.ts +119 -0
  168. package/dest/utils/authwit.d.ts.map +1 -0
  169. package/dest/utils/authwit.js +266 -0
  170. package/dest/utils/cross_chain.d.ts +28 -0
  171. package/dest/utils/cross_chain.d.ts.map +1 -0
  172. package/dest/utils/cross_chain.js +26 -0
  173. package/dest/utils/fee_juice.d.ts +8 -0
  174. package/dest/utils/fee_juice.d.ts.map +1 -0
  175. package/dest/utils/fee_juice.js +10 -0
  176. package/dest/utils/field_compressed_string.d.ts +17 -0
  177. package/dest/utils/field_compressed_string.d.ts.map +1 -0
  178. package/dest/utils/field_compressed_string.js +15 -0
  179. package/dest/utils/node.d.ts +24 -0
  180. package/dest/utils/node.d.ts.map +1 -0
  181. package/dest/utils/node.js +80 -0
  182. package/dest/utils/pub_key.d.ts +9 -0
  183. package/dest/utils/pub_key.d.ts.map +1 -0
  184. package/dest/utils/pub_key.js +8 -0
  185. package/dest/wallet/account_entrypoint_meta_payment_method.d.ts +33 -0
  186. package/dest/wallet/account_entrypoint_meta_payment_method.d.ts.map +1 -0
  187. package/dest/wallet/account_entrypoint_meta_payment_method.js +63 -0
  188. package/dest/wallet/account_manager.d.ts +73 -0
  189. package/dest/wallet/account_manager.d.ts.map +1 -0
  190. package/dest/wallet/account_manager.js +102 -0
  191. package/dest/wallet/capabilities.d.ts +456 -0
  192. package/dest/wallet/capabilities.d.ts.map +1 -0
  193. package/dest/wallet/capabilities.js +3 -0
  194. package/dest/wallet/deploy_account_method.d.ts +97 -0
  195. package/dest/wallet/deploy_account_method.d.ts.map +1 -0
  196. package/dest/wallet/deploy_account_method.js +127 -0
  197. package/dest/wallet/index.d.ts +5 -0
  198. package/dest/wallet/index.d.ts.map +1 -0
  199. package/dest/wallet/index.js +4 -0
  200. package/dest/wallet/tx_simulation_result_with_app_offset.d.ts +40 -0
  201. package/dest/wallet/tx_simulation_result_with_app_offset.d.ts.map +1 -0
  202. package/dest/wallet/tx_simulation_result_with_app_offset.js +65 -0
  203. package/dest/wallet/wallet.d.ts +1451 -0
  204. package/dest/wallet/wallet.d.ts.map +1 -0
  205. package/dest/wallet/wallet.js +430 -0
  206. package/package.json +138 -0
  207. package/src/account/account.ts +72 -0
  208. package/src/account/account_contract.ts +80 -0
  209. package/src/account/index.ts +12 -0
  210. package/src/api/README.md +7 -0
  211. package/src/api/abi.ts +42 -0
  212. package/src/api/account.ts +12 -0
  213. package/src/api/addresses.ts +3 -0
  214. package/src/api/authorization.ts +15 -0
  215. package/src/api/block.ts +2 -0
  216. package/src/api/contract.ts +86 -0
  217. package/src/api/crypto.ts +1 -0
  218. package/src/api/deployment.ts +3 -0
  219. package/src/api/eth_address.ts +1 -0
  220. package/src/api/ethereum.ts +10 -0
  221. package/src/api/event_cursor.ts +60 -0
  222. package/src/api/events.ts +79 -0
  223. package/src/api/fee.ts +5 -0
  224. package/src/api/fee_testing.ts +1 -0
  225. package/src/api/fields.ts +3 -0
  226. package/src/api/keys.ts +8 -0
  227. package/src/api/log.ts +2 -0
  228. package/src/api/messaging.ts +2 -0
  229. package/src/api/node.ts +30 -0
  230. package/src/api/note.ts +1 -0
  231. package/src/api/protocol.ts +6 -0
  232. package/src/api/trees.ts +2 -0
  233. package/src/api/tx.ts +20 -0
  234. package/src/api/utils.ts +14 -0
  235. package/src/api/wallet.ts +83 -0
  236. package/src/authorization/call_authorization_request.ts +93 -0
  237. package/src/contract/base_contract_interaction.ts +62 -0
  238. package/src/contract/batch_call.ts +188 -0
  239. package/src/contract/checker.ts +122 -0
  240. package/src/contract/contract.ts +52 -0
  241. package/src/contract/contract_base.ts +73 -0
  242. package/src/contract/contract_function_interaction.ts +297 -0
  243. package/src/contract/deploy_method.ts +877 -0
  244. package/src/contract/fastforward_contract_update.ts +71 -0
  245. package/src/contract/interaction_options.ts +301 -0
  246. package/src/contract/protocol_contracts/contract-class-registry.ts +104 -0
  247. package/src/contract/protocol_contracts/contract-instance-registry.ts +241 -0
  248. package/src/contract/protocol_contracts/fee-juice.ts +257 -0
  249. package/src/contract/wait_for_proven.ts +43 -0
  250. package/src/contract/wait_opts.ts +26 -0
  251. package/src/deployment/contract_deployer.ts +40 -0
  252. package/src/deployment/publish_class.ts +34 -0
  253. package/src/deployment/publish_instance.ts +24 -0
  254. package/src/ethereum/portal_manager.ts +539 -0
  255. package/src/fee/fee_juice_payment_method_with_claim.ts +63 -0
  256. package/src/fee/fee_payment_method.ts +26 -0
  257. package/src/fee/private_fee_payment_method.ts +145 -0
  258. package/src/fee/public_fee_payment_method.ts +145 -0
  259. package/src/fee/sponsored_fee_payment.ts +45 -0
  260. package/src/scripts/generate_protocol_contract_types.ts +160 -0
  261. package/src/test/fixtures.ts +126 -0
  262. package/src/utils/abi_types.ts +32 -0
  263. package/src/utils/authwit.ts +327 -0
  264. package/src/utils/cross_chain.ts +55 -0
  265. package/src/utils/fee_juice.ts +14 -0
  266. package/src/utils/field_compressed_string.ts +27 -0
  267. package/src/utils/node.ts +110 -0
  268. package/src/utils/pub_key.ts +12 -0
  269. package/src/wallet/account_entrypoint_meta_payment_method.ts +76 -0
  270. package/src/wallet/account_manager.ts +164 -0
  271. package/src/wallet/capabilities.ts +505 -0
  272. package/src/wallet/deploy_account_method.ts +234 -0
  273. package/src/wallet/index.ts +4 -0
  274. package/src/wallet/tx_simulation_result_with_app_offset.ts +100 -0
  275. package/src/wallet/wallet.ts +668 -0
@@ -0,0 +1,456 @@
1
+ import type { Fr } from '@aztec-labs/foundation/curves/bn254';
2
+ import type { AztecAddress } from '@aztec-labs/stdlib/aztec-address';
3
+ import type { Aliased } from './wallet.js';
4
+ /**
5
+ * Current capability manifest version.
6
+ */
7
+ export declare const CAPABILITY_VERSION: "1.0";
8
+ /**
9
+ * Pattern for matching contract functions with wildcards.
10
+ *
11
+ * Used in simulation and transaction capabilities to specify which
12
+ * contract functions are allowed.
13
+ *
14
+ * @example
15
+ * // Allow any function on a specific contract
16
+ * \{ contract: ammAddress, function: '*' \}
17
+ *
18
+ * @example
19
+ * // Allow only 'swap' function on a specific contract
20
+ * \{ contract: ammAddress, function: 'swap' \}
21
+ *
22
+ * @example
23
+ * // Allow 'transfer' on any contract
24
+ * \{ contract: '*', function: 'transfer' \}
25
+ */
26
+ export interface ContractFunctionPattern {
27
+ /** Contract address or '*' for any contract */
28
+ contract: AztecAddress | '*';
29
+ /** Function name or '*' for any function */
30
+ function: string;
31
+ /**
32
+ * Additional addresses whose private state and keys are accessible
33
+ * when calling this function, beyond the sender's.
34
+ * - undefined: No additional scopes allowed
35
+ * - AztecAddress[]: Only these specific addresses allowed as additional scopes
36
+ * - '*': All known address allowed as an additional scope
37
+ */
38
+ additionalScopes?: AztecAddress[] | '*';
39
+ }
40
+ /**
41
+ * Account access capability - grants access to user accounts.
42
+ *
43
+ * Maps to wallet methods:
44
+ * - getAccounts (when canGet: true)
45
+ * - createAuthWit (when canCreateAuthWit: true)
46
+ *
47
+ * The wallet decides which accounts to reveal to the app.
48
+ * Apps don't specify which accounts they want - they just request
49
+ * the capability and the wallet shows them the available accounts.
50
+ */
51
+ export interface AccountsCapability {
52
+ /** Discriminator for capability type */
53
+ type: 'accounts';
54
+ /** Can get accounts from wallet. Maps to: getAccounts */
55
+ canGet?: boolean;
56
+ /** Can create auth witnesses for accounts. Maps to: createAuthWit */
57
+ canCreateAuthWit?: boolean;
58
+ }
59
+ /**
60
+ * Granted account access capability.
61
+ *
62
+ * Extends the request with specific accounts that were granted by the wallet.
63
+ */
64
+ export interface GrantedAccountsCapability extends AccountsCapability {
65
+ /** Specific accounts granted by the wallet with their aliases. The wallet adds this when granting the capability. */
66
+ accounts: Aliased<AztecAddress>[];
67
+ }
68
+ /**
69
+ * Contract interaction capability - for registering and querying contracts.
70
+ *
71
+ * Maps to wallet methods:
72
+ * - registerContract (when canRegister: true)
73
+ * - getContractMetadata (when canGetMetadata: true)
74
+ *
75
+ * Matching is done by contract address, not class ID. This allows updating
76
+ * existing contracts with new artifacts (e.g., when contract is upgraded
77
+ * to a new contractClassId onchain).
78
+ *
79
+ * Note: For querying contract class metadata, use ContractClassesCapability instead.
80
+ *
81
+ * @example
82
+ * // Register and query specific contracts
83
+ * \{
84
+ * type: 'contracts',
85
+ * contracts: [ammAddress, tokenAddress],
86
+ * canRegister: true,
87
+ * canGetMetadata: true
88
+ * \}
89
+ *
90
+ * @example
91
+ * // Query any contract (read-only)
92
+ * \{
93
+ * type: 'contracts',
94
+ * contracts: '*',
95
+ * canGetMetadata: true
96
+ * \}
97
+ */
98
+ export interface ContractsCapability {
99
+ /** Discriminator for capability type */
100
+ type: 'contracts';
101
+ /**
102
+ * Which contracts this applies to:
103
+ * - '*': Any contract address
104
+ * - AztecAddress[]: Specific contract addresses
105
+ */
106
+ contracts: '*' | AztecAddress[];
107
+ /**
108
+ * Can register contracts and update existing registrations.
109
+ * Maps to: registerContract
110
+ *
111
+ * When true, allows:
112
+ * - Registering new contract instances at specified addresses
113
+ * - Re-registering existing contracts with updated artifacts (e.g., after upgrade)
114
+ */
115
+ canRegister?: boolean;
116
+ /** Can query contract metadata. Maps to: getContractMetadata */
117
+ canGetMetadata?: boolean;
118
+ }
119
+ /**
120
+ * Granted contract interaction capability.
121
+ *
122
+ * The wallet may reduce the scope (e.g., from '*' to specific addresses).
123
+ */
124
+ export interface GrantedContractsCapability extends ContractsCapability {
125
+ }
126
+ /**
127
+ * Contract class capability - for querying contract class metadata and registering contract classes.
128
+ *
129
+ * Maps to wallet methods:
130
+ * - getContractClassMetadata (when canGetMetadata: true)
131
+ * - registerContractClass (when canRegister: true)
132
+ *
133
+ * Contract classes are identified by their class ID (Fr), not by contract address.
134
+ * Multiple contract instances can share the same class. This capability grants
135
+ * permission to query metadata for, and register, specific contract classes.
136
+ *
137
+ * Apps typically acquire this permission automatically when registering a contract
138
+ * with an artifact (the wallet auto-grants permission for that contract's class ID).
139
+ *
140
+ * @example
141
+ * // Register and query a specific contract class
142
+ * \{
143
+ * type: 'contractClasses',
144
+ * classes: [classId1],
145
+ * canRegister: true,
146
+ * canGetMetadata: true
147
+ * \}
148
+ *
149
+ * @example
150
+ * // Query any contract class (wildcard)
151
+ * \{
152
+ * type: 'contractClasses',
153
+ * classes: '*',
154
+ * canGetMetadata: true
155
+ * \}
156
+ */
157
+ export interface ContractClassesCapability {
158
+ /** Discriminator for capability type */
159
+ type: 'contractClasses';
160
+ /**
161
+ * Which contract classes this applies to:
162
+ * - '*': Any contract class ID
163
+ * - Fr[]: Specific contract class IDs
164
+ */
165
+ classes: '*' | Fr[];
166
+ /** Can register a contract class artifact in the local PXE. Maps to: registerContractClass */
167
+ canRegister?: boolean;
168
+ /** Can query contract class metadata. Maps to: getContractClassMetadata */
169
+ canGetMetadata: boolean;
170
+ }
171
+ /**
172
+ * Granted contract class capability.
173
+ *
174
+ * The wallet may reduce the scope (e.g., from '*' to specific class IDs).
175
+ */
176
+ export interface GrantedContractClassesCapability extends ContractClassesCapability {
177
+ }
178
+ /**
179
+ * Transaction simulation capability - for simulating transactions and executing utilities.
180
+ *
181
+ * Maps to wallet methods:
182
+ * - simulateTx (when transactions scope specified)
183
+ * - executeUtility (when utilities scope specified)
184
+ * - profileTx (when transactions scope specified)
185
+ *
186
+ * @example
187
+ * // Simulate any transaction on specific contracts
188
+ * \{
189
+ * type: 'simulation',
190
+ * transactions: \{
191
+ * scope: [
192
+ * \{ contract: ammAddress, function: '*' \},
193
+ * \{ contract: tokenAddress, function: 'transfer' \}
194
+ * ]
195
+ * \}
196
+ * \}
197
+ *
198
+ * @example
199
+ * // Simulate any transaction and execute any utility call
200
+ * \{
201
+ * type: 'simulation',
202
+ * transactions: \{ scope: '*' \},
203
+ * utilities: \{ scope: '*' \}
204
+ * \}
205
+ */
206
+ export interface SimulationCapability {
207
+ /** Discriminator for capability type */
208
+ type: 'simulation';
209
+ /** Transaction simulation scope. Maps to: simulateTx, profileTx */
210
+ transactions?: {
211
+ /**
212
+ * Which contracts/functions to allow:
213
+ * - '*': Any transaction
214
+ * - ContractFunctionPattern[]: Specific contract functions
215
+ */
216
+ scope: '*' | ContractFunctionPattern[];
217
+ };
218
+ /** Utility execution scope (unconstrained calls). Maps to: executeUtility */
219
+ utilities?: {
220
+ /**
221
+ * Which contracts/functions to allow:
222
+ * - '*': Any utility call
223
+ * - ContractFunctionPattern[]: Specific contract functions
224
+ */
225
+ scope: '*' | ContractFunctionPattern[];
226
+ };
227
+ }
228
+ /**
229
+ * Granted transaction simulation capability.
230
+ *
231
+ * The wallet may reduce the scope (e.g., from '*' to specific patterns).
232
+ */
233
+ export interface GrantedSimulationCapability extends SimulationCapability {
234
+ }
235
+ /**
236
+ * Transaction execution capability - for sending transactions.
237
+ *
238
+ * Maps to wallet methods:
239
+ * - sendTx
240
+ *
241
+ * Policy enforcement (rate limits, spending limits) should be handled
242
+ * at the contract level in Aztec, not at the wallet level.
243
+ *
244
+ * @example
245
+ * // Send specific transactions with approval
246
+ * \{
247
+ * type: 'transaction',
248
+ * scope: [
249
+ * \{ contract: ammAddress, function: 'swap' \},
250
+ * \{ contract: ammAddress, function: 'addLiquidity' \}
251
+ * ]
252
+ * \}
253
+ *
254
+ * @example
255
+ * // Send any transaction
256
+ * \{
257
+ * type: 'transaction',
258
+ * scope: '*'
259
+ * \}
260
+ */
261
+ export interface TransactionCapability {
262
+ /** Discriminator for capability type */
263
+ type: 'transaction';
264
+ /**
265
+ * Which contracts/functions to allow:
266
+ * - '*': Any transaction
267
+ * - ContractFunctionPattern[]: Specific patterns
268
+ */
269
+ scope: '*' | ContractFunctionPattern[];
270
+ }
271
+ /**
272
+ * Granted transaction execution capability.
273
+ *
274
+ * The wallet may reduce the scope (e.g., from '*' to specific patterns).
275
+ */
276
+ export interface GrantedTransactionCapability extends TransactionCapability {
277
+ }
278
+ /**
279
+ * Data access capability - for querying private data.
280
+ *
281
+ * Maps to wallet methods:
282
+ * - getAddressBook (when addressBook: true)
283
+ * - getPrivateEvents (when privateEvents specified)
284
+ *
285
+ * @example
286
+ * // Access address book and events from specific contract
287
+ * \{
288
+ * type: 'data',
289
+ * addressBook: true,
290
+ * privateEvents: \{
291
+ * contracts: [ammAddress],
292
+ * events: ['Swap', 'LiquidityAdded']
293
+ * \}
294
+ * \}
295
+ *
296
+ * @example
297
+ * // Access all events from any contract
298
+ * \{
299
+ * type: 'data',
300
+ * privateEvents: \{
301
+ * contracts: '*',
302
+ * events: '*'
303
+ * \}
304
+ * \}
305
+ */
306
+ export interface DataCapability {
307
+ /** Discriminator for capability type */
308
+ type: 'data';
309
+ /** Access to address book. Maps to: getAddressBook */
310
+ addressBook?: boolean;
311
+ /** Access to private events. Maps to: getPrivateEvents */
312
+ privateEvents?: {
313
+ /**
314
+ * Which contracts to allow event queries from:
315
+ * - '*': Any contract
316
+ * - AztecAddress[]: Specific contracts
317
+ */
318
+ contracts: '*' | AztecAddress[];
319
+ };
320
+ }
321
+ /**
322
+ * Granted data access capability.
323
+ *
324
+ * The wallet may reduce the scope (e.g., from '*' to specific contracts).
325
+ */
326
+ export interface GrantedDataCapability extends DataCapability {
327
+ }
328
+ /**
329
+ * Union type of all capability scopes (app request).
330
+ *
331
+ * Capabilities group wallet operations by their security sensitivity
332
+ * and functional cohesion, making permission requests understandable
333
+ * to users.
334
+ */
335
+ export type Capability = AccountsCapability | ContractsCapability | ContractClassesCapability | SimulationCapability | TransactionCapability | DataCapability;
336
+ /**
337
+ * Union type of all granted capabilities (wallet response).
338
+ *
339
+ * The wallet may augment capabilities with additional information:
340
+ * - AccountsCapability: adds specific accounts granted
341
+ * - Other capabilities: may reduce scope (e.g., '*' to specific addresses)
342
+ */
343
+ export type GrantedCapability = GrantedAccountsCapability | GrantedContractsCapability | GrantedContractClassesCapability | GrantedSimulationCapability | GrantedTransactionCapability | GrantedDataCapability;
344
+ /**
345
+ * Application capability manifest.
346
+ *
347
+ * Sent by dApp to declare all operations it needs. This reduces authorization
348
+ * friction from multiple dialogs to a single comprehensive permission request.
349
+ *
350
+ * @example
351
+ * // DEX application manifest
352
+ * const manifest: AppCapabilities = \{
353
+ * version: CAPABILITY_VERSION,
354
+ * metadata: \{
355
+ * name: 'MyDEX',
356
+ * version: '1.0.0',
357
+ * description: 'Decentralized exchange for private token swaps',
358
+ * url: 'https://example.com',
359
+ * icon: 'https://example.com/icon.png'
360
+ * \},
361
+ * capabilities: [
362
+ * \{
363
+ * type: 'accounts',
364
+ * canGet: true,
365
+ * canCreateAuthWit: true
366
+ * \},
367
+ * \{
368
+ * type: 'contracts',
369
+ * contracts: [ammAddress, tokenAAddress, tokenBAddress],
370
+ * canRegister: true,
371
+ * canGetMetadata: true
372
+ * \},
373
+ * \{
374
+ * type: 'simulation',
375
+ * transactions: \{
376
+ * scope: [\{ contract: ammAddress, function: '*' \}]
377
+ * \}
378
+ * \},
379
+ * \{
380
+ * type: 'transaction',
381
+ * scope: [\{ contract: ammAddress, function: 'swap' \}]
382
+ * \}
383
+ * ]
384
+ * \};
385
+ */
386
+ export interface AppCapabilities {
387
+ /**
388
+ * Manifest version for forward compatibility.
389
+ * Currently only '1.0' is supported.
390
+ */
391
+ version: typeof CAPABILITY_VERSION;
392
+ /** Application metadata for display in authorization dialogs. */
393
+ metadata: {
394
+ /** Human-readable app name */
395
+ name: string;
396
+ /** App version */
397
+ version: string;
398
+ /** Optional description of what the app does */
399
+ description?: string;
400
+ /** Optional website URL */
401
+ url?: string;
402
+ /** Optional icon URL or data URI */
403
+ icon?: string;
404
+ };
405
+ /**
406
+ * Requested capabilities grouped by scope.
407
+ */
408
+ capabilities: Capability[];
409
+ }
410
+ /**
411
+ * Wallet capability response.
412
+ *
413
+ * Returned by wallet after user reviews and approves/denies the capability request.
414
+ *
415
+ * The wallet can modify requested capabilities:
416
+ * - Reduce scope (e.g., restrict to specific contracts instead of '*')
417
+ * - Add information (e.g., specify which accounts are granted)
418
+ * - Deny capabilities (by omitting them from the `granted` array)
419
+ *
420
+ * @example
421
+ * // App requests
422
+ * const manifest: AppCapabilities = \{
423
+ * version: '1.0',
424
+ * metadata: \{ name: 'MyDApp', version: '1.0.0' \},
425
+ * capabilities: [
426
+ * \{ type: 'accounts', canGet: true \},
427
+ * \{ type: 'contracts', contracts: '*', canRegister: true \}
428
+ * ]
429
+ * \};
430
+ *
431
+ * // Wallet responds with specific accounts and restricted contracts
432
+ * const response = await wallet.requestCapabilities(manifest);
433
+ * console.log(response.granted);
434
+ * // [
435
+ * // \{ type: 'accounts', canGet: true, accounts: [addr1, addr2] \},
436
+ * // \{ type: 'contracts', contracts: [specificContract], canRegister: true \}
437
+ * // ]
438
+ */
439
+ export interface WalletCapabilities {
440
+ /** Response version for forward compatibility. */
441
+ version: typeof CAPABILITY_VERSION;
442
+ /**
443
+ * Capabilities granted by the wallet.
444
+ * Capabilities not in this array were implicitly denied.
445
+ * Empty array means the user denied all capabilities.
446
+ */
447
+ granted: GrantedCapability[];
448
+ /** Wallet implementation details. */
449
+ wallet: {
450
+ /** Wallet name/implementation */
451
+ name: string;
452
+ /** Wallet version */
453
+ version: string;
454
+ };
455
+ }
456
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwYWJpbGl0aWVzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2FsbGV0L2NhcGFiaWxpdGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM5RCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVyRSxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFM0M7O0dBRUc7QUFDSCxlQUFPLE1BQU0sa0JBQWtCLE9BQWlCLENBQUM7QUFFakQ7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBQ0gsTUFBTSxXQUFXLHVCQUF1QjtJQUN0QywrQ0FBK0M7SUFDL0MsUUFBUSxFQUFFLFlBQVksR0FBRyxHQUFHLENBQUM7SUFFN0IsNENBQTRDO0lBQzVDLFFBQVEsRUFBRSxNQUFNLENBQUM7SUFFakI7Ozs7OztPQU1HO0lBQ0gsZ0JBQWdCLENBQUMsRUFBRSxZQUFZLEVBQUUsR0FBRyxHQUFHLENBQUM7Q0FDekM7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxXQUFXLGtCQUFrQjtJQUNqQyx3Q0FBd0M7SUFDeEMsSUFBSSxFQUFFLFVBQVUsQ0FBQztJQUVqQix5REFBeUQ7SUFDekQsTUFBTSxDQUFDLEVBQUUsT0FBTyxDQUFDO0lBRWpCLHFFQUFxRTtJQUNyRSxnQkFBZ0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQztDQUM1QjtBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFdBQVcseUJBQTBCLFNBQVEsa0JBQWtCO0lBQ25FLHFIQUFxSDtJQUNySCxRQUFRLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7Q0FDbkM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2Qkc7QUFDSCxNQUFNLFdBQVcsbUJBQW1CO0lBQ2xDLHdDQUF3QztJQUN4QyxJQUFJLEVBQUUsV0FB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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../src/wallet/capabilities.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ /**
2
+ * Current capability manifest version.
3
+ */ export const CAPABILITY_VERSION = '1.0';
@@ -0,0 +1,97 @@
1
+ import { Fr } from '@aztec-labs/foundation/curves/bn254';
2
+ import type { ContractArtifact, FunctionArtifact } from '@aztec-labs/stdlib/abi';
3
+ import type { AuthWitness } from '@aztec-labs/stdlib/auth-witness';
4
+ import { AztecAddress } from '@aztec-labs/stdlib/aztec-address';
5
+ import type { ContractInstanceWithAddress } from '@aztec-labs/stdlib/contract';
6
+ import type { PublicKeys } from '@aztec-labs/stdlib/keys';
7
+ import { type Capsule, ExecutionPayload, type HashedValues } from '@aztec-labs/stdlib/tx';
8
+ import type { Account } from '../account/account.js';
9
+ import type { Contract } from '../contract/contract.js';
10
+ import type { ContractBase } from '../contract/contract_base.js';
11
+ import { type DeployOptions, type DeployOptionsWithoutWait, type RequestDeployOptions, type SimulateDeployOptions, UniversalDeployMethod } from '../contract/deploy_method.js';
12
+ import { type FeePaymentMethodOption, type InteractionWaitOptions, type NoFrom, type ProfileInteractionOptions } from '../contract/interaction_options.js';
13
+ import type { ProfileOptions, SendOptions, SimulateOptions, Wallet } from './index.js';
14
+ /**
15
+ * Extended fee payment method option for account deployments that includes entrypoint wrapping options
16
+ */
17
+ export type DeployAccountFeePaymentMethodOption = FeePaymentMethodOption & {
18
+ /** Optional entrypoint-specific options for wrapping execution payloads */
19
+ feeEntrypointOptions?: unknown;
20
+ };
21
+ /**
22
+ * The configuration options for the request method.
23
+ */
24
+ export type RequestDeployAccountOptions = Omit<RequestDeployOptions, 'fee'> & {
25
+ /** Fee options specific to account deployment */
26
+ fee?: DeployAccountFeePaymentMethodOption;
27
+ /**
28
+ * Sender of the request. When NO_FROM, the to-be-deployed account pays for its own
29
+ * deployment (self-paid deploy) and the payload is wrapped through the multicall entrypoint.
30
+ */
31
+ from?: AztecAddress | NoFrom;
32
+ };
33
+ /**
34
+ * The configuration options for the send/prove methods.
35
+ */
36
+ export type DeployAccountOptions<W extends InteractionWaitOptions = undefined> = DeployOptionsWithoutWait & {
37
+ /**
38
+ * Whether to wait for the transaction to be mined.
39
+ * - undefined (default): wait with default options and return TxReceipt
40
+ * - WaitOpts object: wait with custom options and return TxReceipt
41
+ * - false: return txHash immediately without waiting
42
+ */
43
+ wait?: W;
44
+ };
45
+ /**
46
+ * The configuration options for the simulate method.
47
+ */
48
+ export type SimulateDeployAccountOptions = SimulateDeployOptions;
49
+ /**
50
+ * Modified version of the DeployMethod used to deploy account contracts. Supports deploying
51
+ * contracts that can pay for their own fee, plus some preconfigured options to avoid errors.
52
+ */
53
+ export declare class DeployAccountMethod<TContract extends ContractBase = Contract> extends UniversalDeployMethod<TContract> {
54
+ private account;
55
+ constructor(publicKeys: PublicKeys, wallet: Wallet, artifact: ContractArtifact, postDeployCtor: (instance: ContractInstanceWithAddress, wallet: Wallet) => TContract, salt: Fr, immutablesHash: Fr, account: Account, args?: any[], constructorNameOrArtifact?: string | FunctionArtifact, authWitnesses?: AuthWitness[], capsules?: Capsule[], extraHashedArgs?: HashedValues[]);
56
+ private getSelfFeePaymentMethod;
57
+ /**
58
+ * Returns the execution payload that allows this operation to happen on chain.
59
+ * For self-deployments (from === NO_FROM), the payload is wrapped through the
60
+ * multicall entrypoint on the app side so the wallet can execute it directly.
61
+ * @param opts - Configuration options.
62
+ * @returns The execution payload for this operation
63
+ */
64
+ request(opts?: RequestDeployAccountOptions): Promise<ExecutionPayload>;
65
+ protected convertDeployOptionsToSendOptions<W extends InteractionWaitOptions>(options: DeployOptions<W>): SendOptions<W>;
66
+ protected convertDeployOptionsToSimulateOptions(options: SimulateDeployOptions): SimulateOptions;
67
+ protected convertDeployOptionsToProfileOptions(options: DeployOptionsWithoutWait & ProfileInteractionOptions): ProfileOptions;
68
+ /**
69
+ * Augments deploy options so that the PXE has the context it needs to simulate/prove the deploy.
70
+ *
71
+ * - Injects the contract's own address into scopes so the constructor can access its own keys.
72
+ * - When `from === NO_FROM` (self-paid deploy), supplies the to-be-deployed address as `sendMessagesAs`. Without
73
+ * this, fee-payment calls would have no sender for message tagging, and any private log they emit would fail
74
+ * the "Sender for tags is not set" assertion.
75
+ *
76
+ * Note: this reads the cached instance synchronously via `getCachedInstance()`. Because every code path that
77
+ * calls `prepareDeployOptions` (send/simulate/profile) flows through `request()` first, which calls
78
+ * `getInstance()`, the cache is always populated by the time we get here.
79
+ *
80
+ * @param options - The deploy options to augment.
81
+ */
82
+ private prepareDeployOptions;
83
+ /**
84
+ * Augments this DeployAccountMethod with additional metadata, such as authWitnesses and capsules.
85
+ * @param options - An object containing the metadata to add to the interaction
86
+ * @returns A new DeployAccountMethod with the added metadata
87
+ */
88
+ with({ authWitnesses, capsules, extraHashedArgs }: {
89
+ /** The authWitnesses to add to the deployment */
90
+ authWitnesses?: AuthWitness[];
91
+ /** The capsules to add to the deployment */
92
+ capsules?: Capsule[];
93
+ /** The extra hashed args to add to the deployment */
94
+ extraHashedArgs?: HashedValues[];
95
+ }): DeployAccountMethod<TContract>;
96
+ }
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X2FjY291bnRfbWV0aG9kLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2FsbGV0L2RlcGxveV9hY2NvdW50X21ldGhvZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRixPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsS0FBSyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxZQUFZLEVBQTBCLE1BQU0sdUJBQXVCLENBQUM7QUFFbEgsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxFQUNMLEtBQUssYUFBYSxFQUNsQixLQUFLLHdCQUF3QixFQUM3QixLQUFLLG9CQUFvQixFQUN6QixLQUFLLHFCQUFxQixFQUMxQixxQkFBcUIsRUFDdEIsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQ0wsS0FBSyxzQkFBc0IsRUFDM0IsS0FBSyxzQkFBc0IsRUFFM0IsS0FBSyxNQUFNLEVBQ1gsS0FBSyx5QkFBeUIsRUFFL0IsTUFBTSxvQ0FBb0MsQ0FBQztBQUc1QyxPQUFPLEtBQUssRUFBRSxjQUFj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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy_account_method.d.ts","sourceRoot":"","sources":["../../src/wallet/deploy_account_method.ts"],"names":[],"mappings":"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"}