@aztec/aztec.js 0.76.4 → 0.77.0-testnet-ignition.21

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 (274) hide show
  1. package/dest/account/contract.d.ts +9 -5
  2. package/dest/account/contract.d.ts.map +1 -1
  3. package/dest/account/contract.js +15 -2
  4. package/dest/account/index.d.ts +2 -2
  5. package/dest/account/index.d.ts.map +1 -1
  6. package/dest/account/index.js +8 -1
  7. package/dest/account/interface.d.ts +5 -4
  8. package/dest/account/interface.d.ts.map +1 -1
  9. package/dest/account/interface.js +4 -3
  10. package/dest/account/wallet.d.ts +4 -3
  11. package/dest/account/wallet.d.ts.map +1 -1
  12. package/dest/account/wallet.js +3 -2
  13. package/dest/account_manager/deploy_account_method.d.ts +5 -5
  14. package/dest/account_manager/deploy_account_method.d.ts.map +1 -1
  15. package/dest/account_manager/deploy_account_method.js +22 -25
  16. package/dest/account_manager/deploy_account_sent_tx.d.ts +4 -3
  17. package/dest/account_manager/deploy_account_sent_tx.d.ts.map +1 -1
  18. package/dest/account_manager/deploy_account_sent_tx.js +16 -17
  19. package/dest/account_manager/index.d.ts +20 -11
  20. package/dest/account_manager/index.d.ts.map +1 -1
  21. package/dest/account_manager/index.js +89 -87
  22. package/dest/api/abi.d.ts +2 -3
  23. package/dest/api/abi.d.ts.map +1 -1
  24. package/dest/api/abi.js +1 -3
  25. package/dest/api/account.d.ts +1 -2
  26. package/dest/api/account.d.ts.map +1 -1
  27. package/dest/api/account.js +1 -2
  28. package/dest/api/addresses.d.ts +2 -2
  29. package/dest/api/addresses.d.ts.map +1 -1
  30. package/dest/api/addresses.js +2 -3
  31. package/dest/api/cheat_codes.d.ts +4 -4
  32. package/dest/api/cheat_codes.d.ts.map +1 -1
  33. package/dest/api/cheat_codes.js +10 -15
  34. package/dest/api/deployment.js +0 -1
  35. package/dest/api/entrypoint.js +0 -1
  36. package/dest/api/eth_address.js +0 -1
  37. package/dest/api/ethereum/anvil_test_watcher.d.ts +10 -6
  38. package/dest/api/ethereum/anvil_test_watcher.d.ts.map +1 -1
  39. package/dest/api/ethereum/anvil_test_watcher.js +43 -18
  40. package/dest/api/ethereum/chain_monitor.d.ts +6 -2
  41. package/dest/api/ethereum/chain_monitor.d.ts.map +1 -1
  42. package/dest/api/ethereum/chain_monitor.js +24 -8
  43. package/dest/api/ethereum/cheat_codes.d.ts +14 -3
  44. package/dest/api/ethereum/cheat_codes.d.ts.map +1 -1
  45. package/dest/api/ethereum/cheat_codes.js +106 -53
  46. package/dest/api/ethereum/index.d.ts +1 -1
  47. package/dest/api/ethereum/index.d.ts.map +1 -1
  48. package/dest/api/ethereum/index.js +1 -2
  49. package/dest/api/ethereum/l1_contracts.d.ts +1 -1
  50. package/dest/api/ethereum/l1_contracts.d.ts.map +1 -1
  51. package/dest/api/ethereum/l1_contracts.js +4 -6
  52. package/dest/api/ethereum/portal_manager.d.ts +16 -12
  53. package/dest/api/ethereum/portal_manager.d.ts.map +1 -1
  54. package/dest/api/ethereum/portal_manager.js +134 -115
  55. package/dest/api/fee.d.ts +0 -1
  56. package/dest/api/fee.d.ts.map +1 -1
  57. package/dest/api/fee.js +0 -2
  58. package/dest/api/fields.js +0 -1
  59. package/dest/api/interfaces/pxe.d.ts +1 -1
  60. package/dest/api/interfaces/pxe.d.ts.map +1 -1
  61. package/dest/api/interfaces/pxe.js +1 -2
  62. package/dest/api/log.js +0 -1
  63. package/dest/api/log_id.d.ts +1 -1
  64. package/dest/api/log_id.d.ts.map +1 -1
  65. package/dest/api/log_id.js +1 -2
  66. package/dest/api/tx_hash.d.ts +1 -1
  67. package/dest/api/tx_hash.d.ts.map +1 -1
  68. package/dest/api/tx_hash.js +1 -2
  69. package/dest/api/wallet.d.ts +1 -1
  70. package/dest/api/wallet.d.ts.map +1 -1
  71. package/dest/api/wallet.js +1 -2
  72. package/dest/contract/base_contract_interaction.d.ts +21 -5
  73. package/dest/contract/base_contract_interaction.d.ts.map +1 -1
  74. package/dest/contract/base_contract_interaction.js +97 -55
  75. package/dest/contract/batch_call.d.ts +3 -2
  76. package/dest/contract/batch_call.d.ts.map +1 -1
  77. package/dest/contract/batch_call.js +64 -40
  78. package/dest/contract/checker.d.ts +1 -1
  79. package/dest/contract/checker.d.ts.map +1 -1
  80. package/dest/contract/checker.js +29 -20
  81. package/dest/contract/contract.d.ts +4 -4
  82. package/dest/contract/contract.d.ts.map +1 -1
  83. package/dest/contract/contract.js +30 -28
  84. package/dest/contract/contract_base.d.ts +5 -5
  85. package/dest/contract/contract_base.d.ts.map +1 -1
  86. package/dest/contract/contract_base.js +22 -31
  87. package/dest/contract/contract_function_interaction.d.ts +9 -8
  88. package/dest/contract/contract_function_interaction.d.ts.map +1 -1
  89. package/dest/contract/contract_function_interaction.js +63 -51
  90. package/dest/contract/deploy_method.d.ts +14 -11
  91. package/dest/contract/deploy_method.d.ts.map +1 -1
  92. package/dest/contract/deploy_method.js +115 -87
  93. package/dest/contract/deploy_proven_tx.d.ts +6 -4
  94. package/dest/contract/deploy_proven_tx.d.ts.map +1 -1
  95. package/dest/contract/deploy_proven_tx.js +8 -11
  96. package/dest/contract/deploy_sent_tx.d.ts +8 -6
  97. package/dest/contract/deploy_sent_tx.d.ts.map +1 -1
  98. package/dest/contract/deploy_sent_tx.js +19 -22
  99. package/dest/contract/get_gas_limits.d.ts +2 -2
  100. package/dest/contract/get_gas_limits.d.ts.map +1 -1
  101. package/dest/contract/get_gas_limits.js +2 -4
  102. package/dest/contract/index.js +2 -4
  103. package/dest/{deployment → contract}/protocol_contracts.d.ts +4 -2
  104. package/dest/contract/protocol_contracts.d.ts.map +1 -0
  105. package/dest/contract/protocol_contracts.js +26 -0
  106. package/dest/contract/proven_tx.d.ts +3 -2
  107. package/dest/contract/proven_tx.d.ts.map +1 -1
  108. package/dest/contract/proven_tx.js +8 -11
  109. package/dest/contract/sent_tx.d.ts +3 -2
  110. package/dest/contract/sent_tx.d.ts.map +1 -1
  111. package/dest/contract/sent_tx.js +33 -35
  112. package/dest/contract/unsafe_contract.d.ts +3 -3
  113. package/dest/contract/unsafe_contract.d.ts.map +1 -1
  114. package/dest/contract/unsafe_contract.js +2 -10
  115. package/dest/deployment/broadcast_function.d.ts +3 -3
  116. package/dest/deployment/broadcast_function.d.ts.map +1 -1
  117. package/dest/deployment/broadcast_function.js +39 -32
  118. package/dest/deployment/contract_deployer.d.ts +3 -3
  119. package/dest/deployment/contract_deployer.d.ts.map +1 -1
  120. package/dest/deployment/contract_deployer.js +16 -15
  121. package/dest/deployment/deploy_instance.d.ts +3 -3
  122. package/dest/deployment/deploy_instance.d.ts.map +1 -1
  123. package/dest/deployment/deploy_instance.js +3 -5
  124. package/dest/deployment/index.js +0 -1
  125. package/dest/deployment/register_class.d.ts +3 -3
  126. package/dest/deployment/register_class.d.ts.map +1 -1
  127. package/dest/deployment/register_class.js +19 -14
  128. package/dest/entrypoint/default_entrypoint.d.ts +2 -2
  129. package/dest/entrypoint/default_entrypoint.d.ts.map +1 -1
  130. package/dest/entrypoint/default_entrypoint.js +11 -9
  131. package/dest/entrypoint/default_multi_call_entrypoint.d.ts +2 -2
  132. package/dest/entrypoint/default_multi_call_entrypoint.d.ts.map +1 -1
  133. package/dest/entrypoint/default_multi_call_entrypoint.js +68 -25
  134. package/dest/entrypoint/entrypoint.d.ts +7 -3
  135. package/dest/entrypoint/entrypoint.d.ts.map +1 -1
  136. package/dest/entrypoint/entrypoint.js +0 -1
  137. package/dest/entrypoint/payload.d.ts +8 -5
  138. package/dest/entrypoint/payload.d.ts.map +1 -1
  139. package/dest/entrypoint/payload.js +78 -85
  140. package/dest/fee/fee_juice_payment_method.d.ts +3 -3
  141. package/dest/fee/fee_juice_payment_method.d.ts.map +1 -1
  142. package/dest/fee/fee_juice_payment_method.js +5 -4
  143. package/dest/fee/fee_juice_payment_method_with_claim.d.ts +5 -4
  144. package/dest/fee/fee_juice_payment_method_with_claim.d.ts.map +1 -1
  145. package/dest/fee/fee_juice_payment_method_with_claim.js +18 -20
  146. package/dest/fee/fee_payment_method.d.ts +3 -3
  147. package/dest/fee/fee_payment_method.d.ts.map +1 -1
  148. package/dest/fee/fee_payment_method.js +3 -2
  149. package/dest/fee/private_fee_payment_method.d.ts +5 -5
  150. package/dest/fee/private_fee_payment_method.d.ts.map +1 -1
  151. package/dest/fee/private_fee_payment_method.js +40 -38
  152. package/dest/fee/public_fee_payment_method.d.ts +5 -5
  153. package/dest/fee/public_fee_payment_method.d.ts.map +1 -1
  154. package/dest/fee/public_fee_payment_method.js +38 -35
  155. package/dest/index.d.ts +25 -12
  156. package/dest/index.d.ts.map +1 -1
  157. package/dest/index.js +24 -14
  158. package/dest/rpc_clients/index.js +0 -1
  159. package/dest/rpc_clients/node/index.d.ts +2 -1
  160. package/dest/rpc_clients/node/index.d.ts.map +1 -1
  161. package/dest/rpc_clients/node/index.js +35 -18
  162. package/dest/rpc_clients/pxe_client.d.ts +2 -2
  163. package/dest/rpc_clients/pxe_client.d.ts.map +1 -1
  164. package/dest/rpc_clients/pxe_client.js +9 -7
  165. package/dest/utils/abi_types.d.ts +4 -1
  166. package/dest/utils/abi_types.d.ts.map +1 -1
  167. package/dest/utils/abi_types.js +1 -2
  168. package/dest/utils/authwit.d.ts +3 -2
  169. package/dest/utils/authwit.d.ts.map +1 -1
  170. package/dest/utils/authwit.js +18 -17
  171. package/dest/utils/aztec_cheatcodes.d.ts +4 -2
  172. package/dest/utils/aztec_cheatcodes.d.ts.map +1 -1
  173. package/dest/utils/aztec_cheatcodes.js +32 -41
  174. package/dest/utils/field_compressed_string.js +3 -5
  175. package/dest/utils/index.d.ts +1 -1
  176. package/dest/utils/index.d.ts.map +1 -1
  177. package/dest/utils/index.js +1 -2
  178. package/dest/utils/node.d.ts +3 -3
  179. package/dest/utils/node.d.ts.map +1 -1
  180. package/dest/utils/node.js +4 -6
  181. package/dest/utils/pub_key.d.ts +2 -1
  182. package/dest/utils/pub_key.d.ts.map +1 -1
  183. package/dest/utils/pub_key.js +2 -4
  184. package/dest/utils/pxe.d.ts +2 -2
  185. package/dest/utils/pxe.d.ts.map +1 -1
  186. package/dest/utils/pxe.js +3 -5
  187. package/dest/wallet/account_wallet.d.ts +8 -5
  188. package/dest/wallet/account_wallet.d.ts.map +1 -1
  189. package/dest/wallet/account_wallet.js +120 -83
  190. package/dest/wallet/account_wallet_with_private_key.d.ts +5 -5
  191. package/dest/wallet/account_wallet_with_private_key.d.ts.map +1 -1
  192. package/dest/wallet/account_wallet_with_private_key.js +10 -16
  193. package/dest/wallet/base_wallet.d.ts +19 -10
  194. package/dest/wallet/base_wallet.d.ts.map +1 -1
  195. package/dest/wallet/base_wallet.js +12 -13
  196. package/dest/wallet/index.d.ts +3 -3
  197. package/dest/wallet/index.d.ts.map +1 -1
  198. package/dest/wallet/index.js +2 -4
  199. package/dest/wallet/signerless_wallet.d.ts +7 -4
  200. package/dest/wallet/signerless_wallet.d.ts.map +1 -1
  201. package/dest/wallet/signerless_wallet.js +4 -6
  202. package/package.json +10 -14
  203. package/src/account/contract.ts +22 -5
  204. package/src/account/index.ts +2 -2
  205. package/src/account/interface.ts +5 -4
  206. package/src/account/wallet.ts +4 -3
  207. package/src/account_manager/deploy_account_method.ts +5 -5
  208. package/src/account_manager/deploy_account_sent_tx.ts +4 -3
  209. package/src/account_manager/index.ts +51 -24
  210. package/src/api/abi.ts +10 -3
  211. package/src/api/account.ts +8 -3
  212. package/src/api/addresses.ts +2 -2
  213. package/src/api/cheat_codes.ts +6 -6
  214. package/src/api/ethereum/anvil_test_watcher.ts +31 -7
  215. package/src/api/ethereum/chain_monitor.ts +9 -2
  216. package/src/api/ethereum/cheat_codes.ts +65 -24
  217. package/src/api/ethereum/index.ts +5 -1
  218. package/src/api/ethereum/l1_contracts.ts +1 -1
  219. package/src/api/ethereum/portal_manager.ts +27 -32
  220. package/src/api/fee.ts +0 -1
  221. package/src/api/interfaces/pxe.ts +1 -1
  222. package/src/api/log_id.ts +1 -1
  223. package/src/api/tx_hash.ts +1 -1
  224. package/src/api/wallet.ts +1 -1
  225. package/src/contract/base_contract_interaction.ts +35 -9
  226. package/src/contract/batch_call.ts +9 -7
  227. package/src/contract/checker.ts +1 -1
  228. package/src/contract/contract.ts +11 -4
  229. package/src/contract/contract_base.ts +3 -3
  230. package/src/contract/contract_function_interaction.ts +24 -13
  231. package/src/contract/deploy_method.ts +27 -18
  232. package/src/contract/deploy_proven_tx.ts +6 -4
  233. package/src/contract/deploy_sent_tx.ts +8 -6
  234. package/src/contract/get_gas_limits.ts +2 -2
  235. package/src/contract/protocol_contracts.ts +35 -0
  236. package/src/contract/proven_tx.ts +3 -2
  237. package/src/contract/sent_tx.ts +3 -2
  238. package/src/contract/unsafe_contract.ts +3 -3
  239. package/src/deployment/broadcast_function.ts +47 -40
  240. package/src/deployment/contract_deployer.ts +4 -3
  241. package/src/deployment/deploy_instance.ts +5 -5
  242. package/src/deployment/register_class.ts +25 -18
  243. package/src/entrypoint/default_entrypoint.ts +5 -5
  244. package/src/entrypoint/default_multi_call_entrypoint.ts +5 -4
  245. package/src/entrypoint/entrypoint.ts +7 -3
  246. package/src/entrypoint/payload.ts +11 -6
  247. package/src/fee/fee_juice_payment_method.ts +5 -3
  248. package/src/fee/fee_juice_payment_method_with_claim.ts +11 -10
  249. package/src/fee/fee_payment_method.ts +3 -3
  250. package/src/fee/private_fee_payment_method.ts +10 -11
  251. package/src/fee/public_fee_payment_method.ts +11 -11
  252. package/src/index.ts +35 -58
  253. package/src/rpc_clients/node/index.ts +2 -1
  254. package/src/rpc_clients/pxe_client.ts +2 -2
  255. package/src/utils/abi_types.ts +4 -7
  256. package/src/utils/authwit.ts +5 -2
  257. package/src/utils/aztec_cheatcodes.ts +5 -3
  258. package/src/utils/field_compressed_string.ts +1 -1
  259. package/src/utils/index.ts +1 -1
  260. package/src/utils/node.ts +3 -3
  261. package/src/utils/pub_key.ts +3 -2
  262. package/src/utils/pxe.ts +2 -2
  263. package/src/wallet/account_wallet.ts +8 -5
  264. package/src/wallet/account_wallet_with_private_key.ts +5 -4
  265. package/src/wallet/base_wallet.ts +37 -46
  266. package/src/wallet/index.ts +3 -3
  267. package/src/wallet/signerless_wallet.ts +7 -4
  268. package/dest/deployment/protocol_contracts.d.ts.map +0 -1
  269. package/dest/deployment/protocol_contracts.js +0 -14
  270. package/dest/fee/no_fee_payment_method.d.ts +0 -13
  271. package/dest/fee/no_fee_payment_method.d.ts.map +0 -1
  272. package/dest/fee/no_fee_payment_method.js +0 -17
  273. package/src/deployment/protocol_contracts.ts +0 -17
  274. package/src/fee/no_fee_payment_method.ts +0 -23
@@ -1,6 +1,9 @@
1
- import { CompleteAddress } from '@aztec/circuit-types';
2
- import { deriveKeys, getContractInstanceFromDeployParams } from '@aztec/circuits.js';
3
1
  import { Fr } from '@aztec/foundation/fields';
2
+ import { CompleteAddress } from '@aztec/stdlib/contract';
3
+ import { getContractInstanceFromDeployParams } from '@aztec/stdlib/contract';
4
+ import { deriveKeys } from '@aztec/stdlib/keys';
5
+ import { DeployMethod } from '../contract/deploy_method.js';
6
+ import { Contract } from '../contract/index.js';
4
7
  import { DefaultWaitOpts } from '../contract/sent_tx.js';
5
8
  import { DefaultMultiCallEntrypoint } from '../entrypoint/default_multi_call_entrypoint.js';
6
9
  import { AccountWalletWithSecretKey, SignerlessWallet } from '../wallet/index.js';
@@ -9,13 +12,15 @@ import { DeployAccountSentTx } from './deploy_account_sent_tx.js';
9
12
  /**
10
13
  * Manages a user account. Provides methods for calculating the account's address, deploying the account contract,
11
14
  * and creating and registering the user wallet in the PXE Service.
12
- */
13
- export class AccountManager {
14
- constructor(pxe, secretKey, accountContract, instance,
15
- /**
15
+ */ export class AccountManager {
16
+ pxe;
17
+ secretKey;
18
+ accountContract;
19
+ instance;
20
+ salt;
21
+ constructor(pxe, secretKey, accountContract, instance, /**
16
22
  * Deployment salt for the account contract
17
- */
18
- salt) {
23
+ */ salt){
19
24
  this.pxe = pxe;
20
25
  this.secretKey = secretKey;
21
26
  this.accountContract = accountContract;
@@ -25,10 +30,11 @@ export class AccountManager {
25
30
  static async create(pxe, secretKey, accountContract, salt) {
26
31
  const { publicKeys } = await deriveKeys(secretKey);
27
32
  salt = salt !== undefined ? new Fr(salt) : Fr.random();
28
- const instance = await getContractInstanceFromDeployParams(accountContract.getContractArtifact(), {
33
+ const artifact = await accountContract.getContractArtifact();
34
+ const instance = await getContractInstanceFromDeployParams(artifact, {
29
35
  constructorArgs: await accountContract.getDeploymentArgs(),
30
36
  salt: salt,
31
- publicKeys,
37
+ publicKeys
32
38
  });
33
39
  return new AccountManager(pxe, secretKey, accountContract, instance, salt);
34
40
  }
@@ -39,119 +45,115 @@ export class AccountManager {
39
45
  return this.getPublicKeys().hash();
40
46
  }
41
47
  /**
42
- * Returns the entrypoint for this account as defined by its account contract.
43
- * @returns An entrypoint.
44
- */
45
- async getAccount() {
48
+ * Returns the entrypoint for this account as defined by its account contract.
49
+ * @returns An entrypoint.
50
+ */ async getAccount() {
46
51
  const nodeInfo = await this.pxe.getNodeInfo();
47
52
  const completeAddress = await this.getCompleteAddress();
48
53
  return this.accountContract.getInterface(completeAddress, nodeInfo);
49
54
  }
50
55
  /**
51
- * Gets the calculated complete address associated with this account.
52
- * Does not require the account to be deployed or registered.
53
- * @returns The address, partial address, and encryption public key.
54
- */
55
- getCompleteAddress() {
56
+ * Gets the calculated complete address associated with this account.
57
+ * Does not require the account to be deployed or registered.
58
+ * @returns The address, partial address, and encryption public key.
59
+ */ getCompleteAddress() {
56
60
  return CompleteAddress.fromSecretKeyAndInstance(this.secretKey, this.instance);
57
61
  }
58
62
  /**
59
- * Gets the address for this given account.
60
- * Does not require the account to be deployed or registered.
61
- * @returns The address.
62
- */
63
- getAddress() {
63
+ * Gets the address for this given account.
64
+ * Does not require the account to be deployed or registered.
65
+ * @returns The address.
66
+ */ getAddress() {
64
67
  return this.instance.address;
65
68
  }
66
69
  /**
67
- * Returns the contract instance definition associated with this account.
68
- * Does not require the account to be deployed or registered.
69
- * @returns ContractInstance instance.
70
- */
71
- getInstance() {
70
+ * Returns the contract instance definition associated with this account.
71
+ * Does not require the account to be deployed or registered.
72
+ * @returns ContractInstance instance.
73
+ */ getInstance() {
72
74
  return this.instance;
73
75
  }
74
76
  /**
75
- * Returns a Wallet instance associated with this account. Use it to create Contract
76
- * instances to be interacted with from this account.
77
- * @returns A Wallet instance.
78
- */
79
- async getWallet() {
77
+ * Returns a Wallet instance associated with this account. Use it to create Contract
78
+ * instances to be interacted with from this account.
79
+ * @returns A Wallet instance.
80
+ */ async getWallet() {
80
81
  const entrypoint = await this.getAccount();
81
82
  return new AccountWalletWithSecretKey(this.pxe, entrypoint, this.secretKey, this.salt);
82
83
  }
83
84
  /**
84
- * Registers this account in the PXE Service and returns the associated wallet. Registering
85
- * the account on the PXE Service is required for managing private state associated with it.
86
- * Use the returned wallet to create Contract instances to be interacted with from this account.
87
- * @param opts - Options to wait for the account to be synched.
88
- * @returns A Wallet instance.
89
- */
90
- async register() {
85
+ * Registers this account in the PXE Service and returns the associated wallet. Registering
86
+ * the account on the PXE Service is required for managing private state associated with it.
87
+ * Use the returned wallet to create Contract instances to be interacted with from this account.
88
+ * @param opts - Options to wait for the account to be synched.
89
+ * @returns A Wallet instance.
90
+ */ async register() {
91
91
  await this.pxe.registerContract({
92
- artifact: this.accountContract.getContractArtifact(),
93
- instance: this.getInstance(),
92
+ artifact: await this.accountContract.getContractArtifact(),
93
+ instance: this.getInstance()
94
94
  });
95
95
  await this.pxe.registerAccount(this.secretKey, (await this.getCompleteAddress()).partialAddress);
96
96
  return this.getWallet();
97
97
  }
98
98
  /**
99
- * Returns the pre-populated deployment method to deploy the account contract that backs this account.
100
- * Typically you will not need this method and can call `deploy` directly. Use this for having finer
101
- * grained control on when to create, simulate, and send the deployment tx.
102
- * @returns A DeployMethod instance that deploys this account contract.
103
- */
104
- async getDeployMethod() {
105
- if (!(await this.isDeployable())) {
106
- throw new Error(`Account contract ${this.accountContract.getContractArtifact().name} does not require deployment.`);
99
+ * Returns the pre-populated deployment method to deploy the account contract that backs this account.
100
+ * Typically you will not need this method and can call `deploy` directly. Use this for having finer
101
+ * grained control on when to create, simulate, and send the deployment tx.
102
+ * @param deployWallet - Wallet used for deploying the account contract.
103
+ * @returns A DeployMethod instance that deploys this account contract.
104
+ */ async getDeployMethod(deployWallet) {
105
+ const artifact = await this.accountContract.getContractArtifact();
106
+ if (!await this.isDeployable()) {
107
+ throw new Error(`Account contract ${artifact.name} does not require deployment.`);
107
108
  }
108
109
  const completeAddress = await this.getCompleteAddress();
109
110
  await this.pxe.registerAccount(this.secretKey, completeAddress.partialAddress);
111
+ const args = await this.accountContract.getDeploymentArgs() ?? [];
112
+ if (deployWallet) {
113
+ // If deploying using an existing wallet/account, treat it like regular contract deployment.
114
+ const thisWallet = await this.getWallet();
115
+ return new DeployMethod(this.getPublicKeys(), deployWallet, artifact, (address)=>Contract.at(address, artifact, thisWallet), args, 'constructor');
116
+ }
110
117
  const { l1ChainId: chainId, protocolVersion } = await this.pxe.getNodeInfo();
111
- const deployWallet = new SignerlessWallet(this.pxe, new DefaultMultiCallEntrypoint(chainId, protocolVersion));
112
- // We use a signerless wallet with the multi call entrypoint in order to make multiple calls in one go
118
+ // We use a signerless wallet with the multi call entrypoint in order to make multiple calls in one go.
113
119
  // If we used getWallet, the deployment would get routed via the account contract entrypoint
114
- // and it can't be used unless the contract is initialized
115
- const args = (await this.accountContract.getDeploymentArgs()) ?? [];
116
- return new DeployAccountMethod(this.accountContract.getAuthWitnessProvider(completeAddress), this.getPublicKeys(), deployWallet, this.accountContract.getContractArtifact(), args, 'constructor', 'entrypoint');
120
+ // and it can't be used unless the contract is initialized.
121
+ const wallet = new SignerlessWallet(this.pxe, new DefaultMultiCallEntrypoint(chainId, protocolVersion));
122
+ return new DeployAccountMethod(this.accountContract.getAuthWitnessProvider(completeAddress), this.getPublicKeys(), wallet, artifact, args, 'constructor', 'entrypoint');
117
123
  }
118
124
  /**
119
- * Deploys the account contract that backs this account.
120
- * Does not register the associated class nor publicly deploy the instance by default.
121
- * Uses the salt provided in the constructor or a randomly generated one.
122
- * Registers the account in the PXE Service before deploying the contract.
123
- * @param opts - Fee options to be used for the deployment.
124
- * @returns A SentTx object that can be waited to get the associated Wallet.
125
- */
126
- deploy(opts) {
127
- const sentTx = this.getDeployMethod()
128
- .then(deployMethod => deployMethod.send({
129
- contractAddressSalt: new Fr(this.salt),
130
- skipClassRegistration: opts?.skipClassRegistration ?? true,
131
- skipPublicDeployment: opts?.skipPublicDeployment ?? true,
132
- skipInitialization: opts?.skipInitialization ?? false,
133
- universalDeploy: true,
134
- fee: opts?.fee,
135
- }))
136
- .then(tx => tx.getTxHash());
125
+ * Deploys the account contract that backs this account.
126
+ * Does not register the associated class nor publicly deploy the instance by default.
127
+ * Uses the salt provided in the constructor or a randomly generated one.
128
+ * Registers the account in the PXE Service before deploying the contract.
129
+ * @param opts - Fee options to be used for the deployment.
130
+ * @returns A SentTx object that can be waited to get the associated Wallet.
131
+ */ deploy(opts) {
132
+ const sentTx = this.getDeployMethod(opts?.deployWallet).then((deployMethod)=>deployMethod.send({
133
+ contractAddressSalt: new Fr(this.salt),
134
+ skipClassRegistration: opts?.skipClassRegistration ?? true,
135
+ skipPublicDeployment: opts?.skipPublicDeployment ?? true,
136
+ skipInitialization: opts?.skipInitialization ?? false,
137
+ universalDeploy: true,
138
+ fee: opts?.fee
139
+ })).then((tx)=>tx.getTxHash());
137
140
  return new DeployAccountSentTx(this.pxe, sentTx, this.getWallet());
138
141
  }
139
142
  /**
140
- * Deploys the account contract that backs this account if needed and awaits the tx to be mined.
141
- * Uses the salt provided in the constructor or a randomly generated one. If no initialization
142
- * is required it skips the transaction, and only registers the account in the PXE Service.
143
- * @param opts - Options to wait for the tx to be mined.
144
- * @returns A Wallet instance.
145
- */
146
- async waitSetup(opts = DefaultWaitOpts) {
147
- await ((await this.isDeployable()) ? this.deploy().wait(opts) : this.register());
143
+ * Deploys the account contract that backs this account if needed and awaits the tx to be mined.
144
+ * Uses the salt provided in the constructor or a randomly generated one. If no initialization
145
+ * is required it skips the transaction, and only registers the account in the PXE Service.
146
+ * @param opts - Options to wait for the tx to be mined.
147
+ * @returns A Wallet instance.
148
+ */ async waitSetup(opts = DefaultWaitOpts) {
149
+ await (await this.isDeployable() ? this.deploy(opts).wait(opts) : this.register());
148
150
  return this.getWallet();
149
151
  }
150
152
  /**
151
- * Returns whether this account contract has a constructor and needs deployment.
152
- */
153
- async isDeployable() {
154
- return (await this.accountContract.getDeploymentArgs()) !== undefined;
153
+ * Returns whether this account contract has a constructor and needs deployment.
154
+ */ async isDeployable() {
155
+ return await this.accountContract.getDeploymentArgs() !== undefined;
155
156
  }
156
157
  }
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWNjb3VudF9tYW5hZ2VyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQVksTUFBTSxzQkFBc0IsQ0FBQztBQUNqRSxPQUFPLEVBQW9DLFVBQVUsRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZILE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQU05QyxPQUFPLEVBQUUsZUFBZSxFQUFpQixNQUFNLHdCQUF3QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBVWxFOzs7R0FHRztBQUNILE1BQU0sT0FBTyxjQUFjO0lBQ3pCLFlBQ1UsR0FBUSxFQUNSLFNBQWEsRUFDYixlQUFnQyxFQUNoQyxRQUFxQztJQUM3Qzs7T0FFRztJQUNhLElBQVU7UUFQbEIsUUFBRyxHQUFILEdBQUcsQ0FBSztRQUNSLGNBQVMsR0FBVCxTQUFTLENBQUk7UUFDYixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsYUFBUSxHQUFSLFFBQVEsQ0FBNkI7UUFJN0IsU0FBSSxHQUFKLElBQUksQ0FBTTtJQUN6QixDQUFDO0lBRUosTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBUSxFQUFFLFNBQWEsRUFBRSxlQUFnQyxFQUFFLElBQVc7UUFDeEYsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLE1BQU0sVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25ELElBQUksR0FBRyxJQUFJLEtBQUss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
158
+ export { DeployAccountMethod } from './deploy_account_method.js';
159
+ export { DeployAccountSentTx } from './deploy_account_sent_tx.js';
package/dest/api/abi.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- export { type ContractArtifact, type FunctionArtifact, EventSelector, FunctionSelector } from '@aztec/foundation/abi';
2
- export { loadContractArtifact, contractArtifactToBuffer, contractArtifactFromBuffer } from '@aztec/types/abi';
3
- export { type NoirCompiledContract } from '@aztec/types/noir';
1
+ export { type ContractArtifact, type FunctionArtifact, EventSelector, FunctionSelector, loadContractArtifact, contractArtifactToBuffer, contractArtifactFromBuffer, } from '@aztec/stdlib/abi';
2
+ export { type NoirCompiledContract } from '@aztec/stdlib/noir';
4
3
  //# sourceMappingURL=abi.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"abi.d.ts","sourceRoot":"","sources":["../../src/api/abi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACtH,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9G,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"abi.d.ts","sourceRoot":"","sources":["../../src/api/abi.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC"}
package/dest/api/abi.js CHANGED
@@ -1,3 +1 @@
1
- export { EventSelector, FunctionSelector } from '@aztec/foundation/abi';
2
- export { loadContractArtifact, contractArtifactToBuffer, contractArtifactFromBuffer } from '@aztec/types/abi';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS9hYmkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnRCxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0SCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsd0JBQXdCLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQyJ9
1
+ export { EventSelector, FunctionSelector, loadContractArtifact, contractArtifactToBuffer, contractArtifactFromBuffer } from '@aztec/stdlib/abi';
@@ -1,4 +1,3 @@
1
- export { AccountContract, AccountInterface, AuthWitnessProvider, Salt, Wallet } from '../account/index.js';
1
+ export { type AccountContract, type AccountInterface, type AuthWitnessProvider, type Salt, type Wallet, getAccountContractAddress, } from '../account/index.js';
2
2
  export { AccountManager } from '../account_manager/index.js';
3
- export { CompleteAddress } from '@aztec/circuit-types';
4
3
  //# sourceMappingURL=account.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../src/api/account.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE3G,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../src/api/account.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,IAAI,EACT,KAAK,MAAM,EACX,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC"}
@@ -1,3 +1,2 @@
1
+ export { getAccountContractAddress } from '../account/index.js';
1
2
  export { AccountManager } from '../account_manager/index.js';
2
- export { CompleteAddress } from '@aztec/circuit-types';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvYWNjb3VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDIn0=
@@ -1,3 +1,3 @@
1
- export { AztecAddress } from '@aztec/foundation/aztec-address';
2
- export { CompleteAddress } from '@aztec/circuits.js';
1
+ export { AztecAddress } from '@aztec/stdlib/aztec-address';
2
+ export { CompleteAddress } from '@aztec/stdlib/contract';
3
3
  //# sourceMappingURL=addresses.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"addresses.d.ts","sourceRoot":"","sources":["../../src/api/addresses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"addresses.d.ts","sourceRoot":"","sources":["../../src/api/addresses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC"}
@@ -1,3 +1,2 @@
1
- export { AztecAddress } from '@aztec/foundation/aztec-address';
2
- export { CompleteAddress } from '@aztec/circuits.js';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzc2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS9hZGRyZXNzZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQyJ9
1
+ export { AztecAddress } from '@aztec/stdlib/aztec-address';
2
+ export { CompleteAddress } from '@aztec/stdlib/contract';
@@ -1,6 +1,6 @@
1
- import { type PXE } from '@aztec/circuit-types';
2
1
  import { EthCheatCodes } from '@aztec/ethereum/eth-cheatcodes';
3
- import { type L1ContractAddresses } from '@aztec/ethereum/l1-contract-addresses';
2
+ import type { L1ContractAddresses } from '@aztec/ethereum/l1-contract-addresses';
3
+ import type { PXE } from '@aztec/stdlib/interfaces/client';
4
4
  import { AztecCheatCodes } from '../utils/aztec_cheatcodes.js';
5
5
  import { RollupCheatCodes } from './ethereum/cheat_codes.js';
6
6
  /**
@@ -20,7 +20,7 @@ export declare class CheatCodes {
20
20
  aztec: AztecCheatCodes,
21
21
  /** Cheat codes for the Aztec Rollup contract on L1. */
22
22
  rollup: RollupCheatCodes);
23
- static create(rpcUrl: string, pxe: PXE): Promise<CheatCodes>;
24
- static createRollup(rpcUrl: string, addresses: Pick<L1ContractAddresses, 'rollupAddress'>): RollupCheatCodes;
23
+ static create(rpcUrls: string[], pxe: PXE): Promise<CheatCodes>;
24
+ static createRollup(rpcUrls: string[], addresses: Pick<L1ContractAddresses, 'rollupAddress'>): RollupCheatCodes;
25
25
  }
26
26
  //# sourceMappingURL=cheat_codes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cheat_codes.d.ts","sourceRoot":"","sources":["../../src/api/cheat_codes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAEjF,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D;;GAEG;AACH,qBAAa,UAAU;IAEnB,yBAAyB;IAClB,GAAG,EAAE,aAAa;IACzB,gCAAgC;IACzB,KAAK,EAAE,eAAe;IAC7B,uDAAuD;IAChD,MAAM,EAAE,gBAAgB;;IAL/B,yBAAyB;IAClB,GAAG,EAAE,aAAa;IACzB,gCAAgC;IACzB,KAAK,EAAE,eAAe;IAC7B,uDAAuD;IAChD,MAAM,EAAE,gBAAgB;WAGpB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC;IAUlE,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC,GAAG,gBAAgB;CAI7G"}
1
+ {"version":3,"file":"cheat_codes.d.ts","sourceRoot":"","sources":["../../src/api/cheat_codes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,iCAAiC,CAAC;AAE3D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D;;GAEG;AACH,qBAAa,UAAU;IAEnB,yBAAyB;IAClB,GAAG,EAAE,aAAa;IACzB,gCAAgC;IACzB,KAAK,EAAE,eAAe;IAC7B,uDAAuD;IAChD,MAAM,EAAE,gBAAgB;;IAL/B,yBAAyB;IAClB,GAAG,EAAE,aAAa;IACzB,gCAAgC;IACzB,KAAK,EAAE,eAAe;IAC7B,uDAAuD;IAChD,MAAM,EAAE,gBAAgB;WAGpB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC;IAUrE,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC,GAAG,gBAAgB;CAIhH"}
@@ -3,28 +3,23 @@ import { AztecCheatCodes } from '../utils/aztec_cheatcodes.js';
3
3
  import { RollupCheatCodes } from './ethereum/cheat_codes.js';
4
4
  /**
5
5
  * A class that provides utility functions for interacting with the chain.
6
- */
7
- export class CheatCodes {
8
- constructor(
9
- /** Cheat codes for L1.*/
10
- eth,
11
- /** Cheat codes for Aztec L2. */
12
- aztec,
13
- /** Cheat codes for the Aztec Rollup contract on L1. */
14
- rollup) {
6
+ */ export class CheatCodes {
7
+ eth;
8
+ aztec;
9
+ rollup;
10
+ constructor(/** Cheat codes for L1.*/ eth, /** Cheat codes for Aztec L2. */ aztec, /** Cheat codes for the Aztec Rollup contract on L1. */ rollup){
15
11
  this.eth = eth;
16
12
  this.aztec = aztec;
17
13
  this.rollup = rollup;
18
14
  }
19
- static async create(rpcUrl, pxe) {
20
- const ethCheatCodes = new EthCheatCodes(rpcUrl);
15
+ static async create(rpcUrls, pxe) {
16
+ const ethCheatCodes = new EthCheatCodes(rpcUrls);
21
17
  const aztecCheatCodes = new AztecCheatCodes(pxe);
22
- const rollupCheatCodes = new RollupCheatCodes(ethCheatCodes, await pxe.getNodeInfo().then(n => n.l1ContractAddresses));
18
+ const rollupCheatCodes = new RollupCheatCodes(ethCheatCodes, await pxe.getNodeInfo().then((n)=>n.l1ContractAddresses));
23
19
  return new CheatCodes(ethCheatCodes, aztecCheatCodes, rollupCheatCodes);
24
20
  }
25
- static createRollup(rpcUrl, addresses) {
26
- const ethCheatCodes = new EthCheatCodes(rpcUrl);
21
+ static createRollup(rpcUrls, addresses) {
22
+ const ethCheatCodes = new EthCheatCodes(rpcUrls);
27
23
  return new RollupCheatCodes(ethCheatCodes, addresses);
28
24
  }
29
25
  }
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlYXRfY29kZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBpL2NoZWF0X2NvZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUcvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFN0Q7O0dBRUc7QUFDSCxNQUFNLE9BQU8sVUFBVTtJQUNyQjtJQUNFLHlCQUF5QjtJQUNsQixHQUFrQjtJQUN6QixnQ0FBZ0M7SUFDekIsS0FBc0I7SUFDN0IsdURBQXVEO0lBQ2hELE1BQXdCO1FBSnhCLFFBQUcsR0FBSCxHQUFHLENBQWU7UUFFbEIsVUFBSyxHQUFMLEtBQUssQ0FBaUI7UUFFdEIsV0FBTSxHQUFOLE1BQU0sQ0FBa0I7SUFDOUIsQ0FBQztJQUVKLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQWMsRUFBRSxHQUFRO1FBQzFDLE1BQU0sYUFBYSxHQUFHLElBQUksYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hELE1BQU0sZUFBZSxHQUFHLElBQUksZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxnQkFBZ0IsQ0FDM0MsYUFBYSxFQUNiLE1BQU0sR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUN6RCxDQUFDO1FBQ0YsT0FBTyxJQUFJLFVBQVUsQ0FBQyxhQUFhLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBYyxFQUFFLFNBQXFEO1FBQ3ZGLE1BQU0sYUFBYSxHQUFHLElBQUksYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hELE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDeEQsQ0FBQztDQUNGIn0=
@@ -1,4 +1,3 @@
1
1
  export { registerContractClass } from '../deployment/register_class.js';
2
2
  export { broadcastPrivateFunction, broadcastUnconstrainedFunction } from '../deployment/broadcast_function.js';
3
3
  export { deployInstance } from '../deployment/deploy_instance.js';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95bWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvZGVwbG95bWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMvRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUMifQ==
@@ -1,2 +1 @@
1
1
  export * from '../entrypoint/entrypoint.js';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnlwb2ludC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvZW50cnlwb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZCQUE2QixDQUFDIn0=
@@ -1,2 +1 @@
1
1
  export { EthAddress } from '@aztec/foundation/eth-address';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXRoX2FkZHJlc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBpL2V0aF9hZGRyZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQyJ9
@@ -1,8 +1,7 @@
1
- import { type EthAddress } from '@aztec/circuits.js';
2
- import { type EthCheatCodes } from '@aztec/ethereum/eth-cheatcodes';
3
- import { type TestDateProvider } from '@aztec/foundation/timer';
4
- import { type HttpTransport, type PublicClient } from 'viem';
5
- import type * as chains from 'viem/chains';
1
+ import type { ViemPublicClient } from '@aztec/ethereum';
2
+ import type { EthCheatCodes } from '@aztec/ethereum/eth-cheatcodes';
3
+ import type { EthAddress } from '@aztec/foundation/eth-address';
4
+ import type { TestDateProvider } from '@aztec/foundation/timer';
6
5
  /**
7
6
  * Represents a watcher for a rollup contract.
8
7
  *
@@ -15,13 +14,18 @@ export declare class AnvilTestWatcher {
15
14
  private dateProvider?;
16
15
  private isSandbox;
17
16
  private rollup;
17
+ private rollupCheatCodes;
18
18
  private filledRunningPromise?;
19
19
  private mineIfOutdatedPromise?;
20
+ private markingAsProvenRunningPromise?;
20
21
  private logger;
21
- constructor(cheatcodes: EthCheatCodes, rollupAddress: EthAddress, publicClient: PublicClient<HttpTransport, chains.Chain>, dateProvider?: TestDateProvider | undefined);
22
+ private isMarkingAsProven;
23
+ constructor(cheatcodes: EthCheatCodes, rollupAddress: EthAddress, publicClient: ViemPublicClient, dateProvider?: TestDateProvider | undefined);
24
+ setIsMarkingAsProven(isMarkingAsProven: boolean): void;
22
25
  setIsSandbox(isSandbox: boolean): void;
23
26
  start(): Promise<void>;
24
27
  stop(): Promise<void>;
28
+ markAsProven(): Promise<void>;
25
29
  mineIfOutdated(): Promise<void>;
26
30
  warpTimeIfNeeded(): Promise<void>;
27
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"anvil_test_watcher.d.ts","sourceRoot":"","sources":["../../../src/api/ethereum/anvil_test_watcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAGpE,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,OAAO,EAA8B,KAAK,aAAa,EAAE,KAAK,YAAY,EAA2B,MAAM,MAAM,CAAC;AAClH,OAAO,KAAK,KAAK,MAAM,MAAM,aAAa,CAAC;AAE3C;;;;;;GAMG;AACH,qBAAa,gBAAgB;IAWzB,OAAO,CAAC,UAAU;IAGlB,OAAO,CAAC,YAAY,CAAC;IAbvB,OAAO,CAAC,SAAS,CAAkB;IAEnC,OAAO,CAAC,MAAM,CAAqF;IAEnG,OAAO,CAAC,oBAAoB,CAAC,CAAiB;IAC9C,OAAO,CAAC,qBAAqB,CAAC,CAAiB;IAE/C,OAAO,CAAC,MAAM,CAAiD;gBAGrD,UAAU,EAAE,aAAa,EACjC,aAAa,EAAE,UAAU,EACzB,YAAY,EAAE,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,EAC/C,YAAY,CAAC,8BAAkB;IAWzC,YAAY,CAAC,SAAS,EAAE,OAAO;IAIzB,KAAK;IAsBL,IAAI;IAKJ,cAAc;IAoBd,gBAAgB;CAwCvB"}
1
+ {"version":3,"file":"anvil_test_watcher.d.ts","sourceRoot":"","sources":["../../../src/api/ethereum/anvil_test_watcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAGhE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAOhE;;;;;;GAMG;AACH,qBAAa,gBAAgB;IAezB,OAAO,CAAC,UAAU;IAGlB,OAAO,CAAC,YAAY,CAAC;IAjBvB,OAAO,CAAC,SAAS,CAAkB;IAEnC,OAAO,CAAC,MAAM,CAA4D;IAC1E,OAAO,CAAC,gBAAgB,CAAmB;IAE3C,OAAO,CAAC,oBAAoB,CAAC,CAAiB;IAC9C,OAAO,CAAC,qBAAqB,CAAC,CAAiB;IAC/C,OAAO,CAAC,6BAA6B,CAAC,CAAiB;IAEvD,OAAO,CAAC,MAAM,CAAiD;IAE/D,OAAO,CAAC,iBAAiB,CAAQ;gBAGvB,UAAU,EAAE,aAAa,EACjC,aAAa,EAAE,UAAU,EACzB,YAAY,EAAE,gBAAgB,EACtB,YAAY,CAAC,8BAAkB;IAezC,oBAAoB,CAAC,iBAAiB,EAAE,OAAO;IAI/C,YAAY,CAAC,SAAS,EAAE,OAAO;IAIzB,KAAK;IAwBL,IAAI;IAMJ,YAAY;IAOZ,cAAc;IAoBd,gBAAgB;CAwCvB"}
@@ -2,26 +2,43 @@ import { createLogger } from '@aztec/foundation/log';
2
2
  import { RunningPromise } from '@aztec/foundation/running-promise';
3
3
  import { RollupAbi } from '@aztec/l1-artifacts';
4
4
  import { getAddress, getContract } from 'viem';
5
+ import { RollupCheatCodes } from './cheat_codes.js';
5
6
  /**
6
7
  * Represents a watcher for a rollup contract.
7
8
  *
8
9
  * It started on a network like anvil where time traveling is allowed, and auto-mine is turned on
9
10
  * it will periodically check if the current slot have already been filled, e.g., there was an L2
10
11
  * block within the slot. And if so, it will time travel into the next slot.
11
- */
12
- export class AnvilTestWatcher {
13
- constructor(cheatcodes, rollupAddress, publicClient, dateProvider) {
12
+ */ export class AnvilTestWatcher {
13
+ cheatcodes;
14
+ dateProvider;
15
+ isSandbox;
16
+ rollup;
17
+ rollupCheatCodes;
18
+ filledRunningPromise;
19
+ mineIfOutdatedPromise;
20
+ markingAsProvenRunningPromise;
21
+ logger;
22
+ isMarkingAsProven;
23
+ constructor(cheatcodes, rollupAddress, publicClient, dateProvider){
14
24
  this.cheatcodes = cheatcodes;
15
25
  this.dateProvider = dateProvider;
16
26
  this.isSandbox = false;
17
27
  this.logger = createLogger(`aztecjs:utils:watcher`);
28
+ this.isMarkingAsProven = true;
18
29
  this.rollup = getContract({
19
30
  address: getAddress(rollupAddress.toString()),
20
31
  abi: RollupAbi,
21
- client: publicClient,
32
+ client: publicClient
33
+ });
34
+ this.rollupCheatCodes = new RollupCheatCodes(this.cheatcodes, {
35
+ rollupAddress
22
36
  });
23
37
  this.logger.debug(`Watcher created for rollup at ${rollupAddress}`);
24
38
  }
39
+ setIsMarkingAsProven(isMarkingAsProven) {
40
+ this.isMarkingAsProven = isMarkingAsProven;
41
+ }
25
42
  setIsSandbox(isSandbox) {
26
43
  this.isSandbox = isSandbox;
27
44
  }
@@ -35,26 +52,34 @@ export class AnvilTestWatcher {
35
52
  // the next slot.
36
53
  const isAutoMining = await this.cheatcodes.isAutoMining();
37
54
  if (isAutoMining) {
38
- this.filledRunningPromise = new RunningPromise(() => this.warpTimeIfNeeded(), this.logger, 1000);
55
+ this.filledRunningPromise = new RunningPromise(()=>this.warpTimeIfNeeded(), this.logger, 1000);
39
56
  this.filledRunningPromise.start();
40
- this.mineIfOutdatedPromise = new RunningPromise(() => this.mineIfOutdated(), this.logger, 1000);
57
+ this.mineIfOutdatedPromise = new RunningPromise(()=>this.mineIfOutdated(), this.logger, 1000);
41
58
  this.mineIfOutdatedPromise.start();
59
+ this.markingAsProvenRunningPromise = new RunningPromise(()=>this.markAsProven(), this.logger, 1000);
60
+ this.markingAsProvenRunningPromise.start();
42
61
  this.logger.info(`Watcher started for rollup at ${this.rollup.address}`);
43
- }
44
- else {
62
+ } else {
45
63
  this.logger.info(`Watcher not started because not auto mining`);
46
64
  }
47
65
  }
48
66
  async stop() {
49
67
  await this.filledRunningPromise?.stop();
50
68
  await this.mineIfOutdatedPromise?.stop();
69
+ await this.markingAsProvenRunningPromise?.stop();
70
+ }
71
+ async markAsProven() {
72
+ if (!this.isMarkingAsProven) {
73
+ return;
74
+ }
75
+ await this.rollupCheatCodes.markAsProven();
51
76
  }
52
77
  async mineIfOutdated() {
53
78
  // this doesn't apply to the sandbox, because we don't have a date provider in the sandbox
54
79
  if (!this.dateProvider) {
55
80
  return;
56
81
  }
57
- const l1Time = (await this.cheatcodes.timestamp()) * 1000;
82
+ const l1Time = await this.cheatcodes.timestamp() * 1000;
58
83
  const wallTime = this.dateProvider.now();
59
84
  // If the wall time is more than 24 seconds away from L1 time,
60
85
  // mine a block and sync the clocks
@@ -70,15 +95,18 @@ export class AnvilTestWatcher {
70
95
  try {
71
96
  const currentSlot = await this.rollup.read.getCurrentSlot();
72
97
  const pendingBlockNumber = BigInt(await this.rollup.read.getPendingBlockNumber());
73
- const blockLog = await this.rollup.read.getBlock([pendingBlockNumber]);
74
- const nextSlotTimestamp = Number(await this.rollup.read.getTimestampForSlot([currentSlot + 1n]));
98
+ const blockLog = await this.rollup.read.getBlock([
99
+ pendingBlockNumber
100
+ ]);
101
+ const nextSlotTimestamp = Number(await this.rollup.read.getTimestampForSlot([
102
+ currentSlot + 1n
103
+ ]));
75
104
  if (currentSlot === blockLog.slotNumber) {
76
105
  // We should jump to the next slot
77
106
  try {
78
107
  await this.cheatcodes.warp(nextSlotTimestamp);
79
108
  this.dateProvider?.setTime(nextSlotTimestamp * 1000);
80
- }
81
- catch (e) {
109
+ } catch (e) {
82
110
  this.logger.error(`Failed to warp to timestamp ${nextSlotTimestamp}: ${e}`);
83
111
  }
84
112
  this.logger.info(`Slot ${currentSlot} was filled, jumped to next slot`);
@@ -93,16 +121,13 @@ export class AnvilTestWatcher {
93
121
  try {
94
122
  await this.cheatcodes.warp(nextSlotTimestamp);
95
123
  this.dateProvider?.setTime(nextSlotTimestamp * 1000);
96
- }
97
- catch (e) {
124
+ } catch (e) {
98
125
  this.logger.error(`Failed to warp to timestamp ${nextSlotTimestamp}: ${e}`);
99
126
  }
100
127
  this.logger.info(`Slot ${currentSlot} was missed, jumped to next slot`);
101
128
  }
102
- }
103
- catch (err) {
129
+ } catch (err) {
104
130
  this.logger.error('mineIfSlotFilled failed');
105
131
  }
106
132
  }
107
133
  }
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW52aWxfdGVzdF93YXRjaGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS9ldGhlcmV1bS9hbnZpbF90ZXN0X3dhdGNoZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFlLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVuRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFaEQsT0FBTyxFQUFxRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR2xIOzs7Ozs7R0FNRztBQUNILE1BQU0sT0FBTyxnQkFBZ0I7SUFVM0IsWUFDVSxVQUF5QixFQUNqQyxhQUF5QixFQUN6QixZQUF1RCxFQUMvQyxZQUErQjtRQUgvQixlQUFVLEdBQVYsVUFBVSxDQUFlO1FBR3pCLGlCQUFZLEdBQVosWUFBWSxDQUFtQjtRQWJqQyxjQUFTLEdBQVksS0FBSyxDQUFDO1FBTzNCLFdBQU0sR0FBVyxZQUFZLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQVE3RCxJQUFJLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQztZQUN4QixPQUFPLEVBQUUsVUFBVSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM3QyxHQUFHLEVBQUUsU0FBUztZQUNkLE1BQU0sRUFBRSxZQUFZO1NBQ3JCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGlDQUFpQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxZQUFZLENBQUMsU0FBa0I7UUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFLO1FBQ1QsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUM5QixNQUFNLElBQUksS0FB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
@@ -1,4 +1,4 @@
1
- import { type RollupContract } from '@aztec/ethereum/contracts';
1
+ import type { RollupContract } from '@aztec/ethereum/contracts';
2
2
  /** Utility class that polls the chain on quick intervals and logs new L1 blocks, L2 blocks, and L2 proofs. */
3
3
  export declare class ChainMonitor {
4
4
  private readonly rollup;
@@ -12,8 +12,12 @@ export declare class ChainMonitor {
12
12
  l2BlockNumber: number;
13
13
  /** Current L2 proven block number */
14
14
  l2ProvenBlockNumber: number;
15
+ /** L1 timestamp for the current L2 block */
16
+ l2BlockTimestamp: bigint;
17
+ /** L1 timestamp for the proven L2 block */
18
+ l2ProvenBlockTimestamp: bigint;
15
19
  constructor(rollup: RollupContract, logger?: import("@aztec/foundation/log").Logger, intervalMs?: number);
16
- start(): void;
20
+ start(): this;
17
21
  stop(): void;
18
22
  private safeRun;
19
23
  run(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"chain_monitor.d.ts","sourceRoot":"","sources":["../../../src/api/ethereum/chain_monitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAKhE,8GAA8G;AAC9G,qBAAa,YAAY;IAYrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ,CAAC,UAAU;IAb7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,MAAM,CAA6B;IAE3C,8BAA8B;IACvB,aAAa,EAAG,MAAM,CAAC;IAC9B,8BAA8B;IACvB,aAAa,EAAG,MAAM,CAAC;IAC9B,qCAAqC;IAC9B,mBAAmB,EAAG,MAAM,CAAC;gBAGjB,MAAM,EAAE,cAAc,EAC/B,MAAM,yCAA8C,EAC3C,UAAU,SAAM;IAKnC,KAAK;IAOL,IAAI;IAOJ,OAAO,CAAC,OAAO;IAMT,GAAG;CAmCV"}
1
+ {"version":3,"file":"chain_monitor.d.ts","sourceRoot":"","sources":["../../../src/api/ethereum/chain_monitor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAKhE,8GAA8G;AAC9G,qBAAa,YAAY;IAgBrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ,CAAC,UAAU;IAjB7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,MAAM,CAA6B;IAE3C,8BAA8B;IACvB,aAAa,EAAG,MAAM,CAAC;IAC9B,8BAA8B;IACvB,aAAa,EAAG,MAAM,CAAC;IAC9B,qCAAqC;IAC9B,mBAAmB,EAAG,MAAM,CAAC;IACpC,4CAA4C;IACrC,gBAAgB,EAAG,MAAM,CAAC;IACjC,2CAA2C;IACpC,sBAAsB,EAAG,MAAM,CAAC;gBAGpB,MAAM,EAAE,cAAc,EAC/B,MAAM,yCAA8C,EAC3C,UAAU,SAAM;IAKnC,KAAK;IAQL,IAAI;IAOJ,OAAO,CAAC,OAAO;IAMT,GAAG;CAqCV"}