@aztec/aztec.js 0.7.2 → 0.7.4

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 (180) hide show
  1. package/.tsbuildinfo +1 -0
  2. package/dest/abis/ecdsa_account_contract.json +679 -0
  3. package/dest/abis/schnorr_account_contract.json +667 -0
  4. package/dest/abis/schnorr_single_key_account_contract.json +602 -0
  5. package/dest/account/contract/base_account_contract.d.ts +17 -0
  6. package/dest/account/contract/base_account_contract.d.ts.map +1 -0
  7. package/dest/account/contract/base_account_contract.js +17 -0
  8. package/dest/account/contract/ecdsa_account_contract.d.ts +15 -0
  9. package/dest/account/contract/ecdsa_account_contract.d.ts.map +1 -0
  10. package/dest/account/contract/ecdsa_account_contract.js +33 -0
  11. package/dest/account/contract/index.d.ts +31 -0
  12. package/dest/account/contract/index.d.ts.map +1 -0
  13. package/dest/account/contract/index.js +6 -0
  14. package/dest/account/contract/schnorr_account_contract.d.ts +15 -0
  15. package/dest/account/contract/schnorr_account_contract.d.ts.map +1 -0
  16. package/dest/account/contract/schnorr_account_contract.js +33 -0
  17. package/dest/account/contract/single_key_account_contract.d.ts +14 -0
  18. package/dest/account/contract/single_key_account_contract.d.ts.map +1 -0
  19. package/dest/account/contract/single_key_account_contract.js +40 -0
  20. package/dest/account/defaults/default_entrypoint.d.ts +17 -0
  21. package/dest/account/defaults/default_entrypoint.d.ts.map +1 -0
  22. package/dest/account/defaults/default_entrypoint.js +90 -0
  23. package/dest/account/defaults/default_interface.d.ts +17 -0
  24. package/dest/account/defaults/default_interface.d.ts.map +1 -0
  25. package/dest/account/defaults/default_interface.js +22 -0
  26. package/dest/account/defaults/entrypoint_payload.d.ts +28 -0
  27. package/dest/account/defaults/entrypoint_payload.d.ts.map +1 -0
  28. package/dest/account/defaults/entrypoint_payload.js +48 -0
  29. package/dest/account/defaults/index.d.ts +4 -0
  30. package/dest/account/defaults/index.d.ts.map +1 -0
  31. package/dest/account/defaults/index.js +4 -0
  32. package/dest/account/index.d.ts +50 -0
  33. package/dest/account/index.d.ts.map +1 -0
  34. package/dest/account/index.js +65 -0
  35. package/dest/account/interface.d.ts +31 -0
  36. package/dest/account/interface.d.ts.map +1 -0
  37. package/dest/account/interface.js +3 -0
  38. package/dest/account/manager/deploy_account_sent_tx.d.ts +28 -0
  39. package/dest/account/manager/deploy_account_sent_tx.d.ts.map +1 -0
  40. package/dest/account/manager/deploy_account_sent_tx.js +29 -0
  41. package/dest/account/manager/index.d.ts +73 -0
  42. package/dest/account/manager/index.d.ts.map +1 -0
  43. package/dest/account/manager/index.js +115 -0
  44. package/dest/aztec_rpc_client.d.ts +5 -0
  45. package/dest/aztec_rpc_client.d.ts.map +1 -0
  46. package/dest/aztec_rpc_client.js +19 -0
  47. package/dest/contract/base_contract_interaction.d.ts +45 -0
  48. package/dest/contract/base_contract_interaction.d.ts.map +1 -0
  49. package/dest/contract/base_contract_interaction.js +37 -0
  50. package/dest/contract/batch_call.d.ts +15 -0
  51. package/dest/contract/batch_call.d.ts.map +1 -0
  52. package/dest/contract/batch_call.js +21 -0
  53. package/dest/contract/checker.d.ts +11 -0
  54. package/dest/contract/checker.d.ts.map +1 -0
  55. package/dest/contract/checker.js +98 -0
  56. package/dest/contract/checker.test.d.ts +2 -0
  57. package/dest/contract/checker.test.d.ts.map +1 -0
  58. package/dest/contract/checker.test.js +168 -0
  59. package/dest/contract/contract.d.ts +39 -0
  60. package/dest/contract/contract.d.ts.map +1 -0
  61. package/dest/contract/contract.js +45 -0
  62. package/dest/contract/contract.test.d.ts +2 -0
  63. package/dest/contract/contract.test.d.ts.map +1 -0
  64. package/dest/contract/contract.test.js +147 -0
  65. package/dest/contract/contract_base.d.ts +72 -0
  66. package/dest/contract/contract_base.d.ts.map +1 -0
  67. package/dest/contract/contract_base.js +74 -0
  68. package/dest/contract/contract_function_interaction.d.ts +49 -0
  69. package/dest/contract/contract_function_interaction.d.ts.map +1 -0
  70. package/dest/contract/contract_function_interaction.js +59 -0
  71. package/dest/contract/index.d.ts +6 -0
  72. package/dest/contract/index.d.ts.map +1 -0
  73. package/dest/contract/index.js +6 -0
  74. package/dest/contract/sent_tx.d.ts +58 -0
  75. package/dest/contract/sent_tx.d.ts.map +1 -0
  76. package/dest/contract/sent_tx.js +86 -0
  77. package/dest/contract/sent_tx.test.d.ts +2 -0
  78. package/dest/contract/sent_tx.test.d.ts.map +1 -0
  79. package/dest/contract/sent_tx.test.js +42 -0
  80. package/dest/contract_deployer/contract_deployer.d.ts +25 -0
  81. package/dest/contract_deployer/contract_deployer.d.ts.map +1 -0
  82. package/dest/contract_deployer/contract_deployer.js +26 -0
  83. package/dest/contract_deployer/contract_deployer.test.d.ts +2 -0
  84. package/dest/contract_deployer/contract_deployer.test.d.ts.map +1 -0
  85. package/dest/contract_deployer/contract_deployer.test.js +46 -0
  86. package/dest/contract_deployer/deploy_method.d.ts +63 -0
  87. package/dest/contract_deployer/deploy_method.d.ts.map +1 -0
  88. package/dest/contract_deployer/deploy_method.js +81 -0
  89. package/dest/contract_deployer/deploy_sent_tx.d.ts +35 -0
  90. package/dest/contract_deployer/deploy_sent_tx.d.ts.map +1 -0
  91. package/dest/contract_deployer/deploy_sent_tx.js +39 -0
  92. package/dest/contract_deployer/index.d.ts +2 -0
  93. package/dest/contract_deployer/index.d.ts.map +1 -0
  94. package/dest/contract_deployer/index.js +2 -0
  95. package/dest/index.d.ts +14 -0
  96. package/dest/index.d.ts.map +1 -0
  97. package/dest/index.js +14 -0
  98. package/dest/main.js +2 -0
  99. package/dest/main.js.LICENSE.txt +10 -0
  100. package/dest/sandbox/index.d.ts +167 -0
  101. package/dest/sandbox/index.d.ts.map +1 -0
  102. package/dest/sandbox/index.js +69 -0
  103. package/dest/utils/abi_types.d.ts +7 -0
  104. package/dest/utils/abi_types.d.ts.map +1 -0
  105. package/dest/utils/abi_types.js +2 -0
  106. package/dest/utils/account.d.ts +23 -0
  107. package/dest/utils/account.d.ts.map +1 -0
  108. package/dest/utils/account.js +40 -0
  109. package/dest/utils/cheat_codes.d.ts +199 -0
  110. package/dest/utils/cheat_codes.d.ts.map +1 -0
  111. package/dest/utils/cheat_codes.js +279 -0
  112. package/dest/utils/defaults.d.ts +5 -0
  113. package/dest/utils/defaults.d.ts.map +1 -0
  114. package/dest/utils/defaults.js +5 -0
  115. package/dest/utils/index.d.ts +8 -0
  116. package/dest/utils/index.d.ts.map +1 -0
  117. package/dest/utils/index.js +8 -0
  118. package/dest/utils/l1_contracts.d.ts +32 -0
  119. package/dest/utils/l1_contracts.d.ts.map +1 -0
  120. package/dest/utils/l1_contracts.js +16 -0
  121. package/dest/utils/l2_contracts.d.ts +10 -0
  122. package/dest/utils/l2_contracts.d.ts.map +1 -0
  123. package/dest/utils/l2_contracts.js +10 -0
  124. package/dest/utils/pub_key.d.ts +8 -0
  125. package/dest/utils/pub_key.d.ts.map +1 -0
  126. package/dest/utils/pub_key.js +11 -0
  127. package/dest/utils/secrets.d.ts +8 -0
  128. package/dest/utils/secrets.d.ts.map +1 -0
  129. package/dest/utils/secrets.js +12 -0
  130. package/dest/wallet/account_wallet.d.ts +29 -0
  131. package/dest/wallet/account_wallet.d.ts.map +1 -0
  132. package/dest/wallet/account_wallet.js +61 -0
  133. package/dest/wallet/base_wallet.d.ts +38 -0
  134. package/dest/wallet/base_wallet.d.ts.map +1 -0
  135. package/dest/wallet/base_wallet.js +78 -0
  136. package/dest/wallet/index.d.ts +9 -0
  137. package/dest/wallet/index.d.ts.map +1 -0
  138. package/dest/wallet/index.js +4 -0
  139. package/dest/wallet/signerless_wallet.d.ts +13 -0
  140. package/dest/wallet/signerless_wallet.d.ts.map +1 -0
  141. package/dest/wallet/signerless_wallet.js +26 -0
  142. package/package.json +4 -4
  143. package/src/abis/ecdsa_account_contract.json +531 -12
  144. package/src/abis/schnorr_account_contract.json +531 -12
  145. package/src/abis/schnorr_single_key_account_contract.json +523 -24
  146. package/src/account/contract/base_account_contract.ts +25 -0
  147. package/src/account/contract/ecdsa_account_contract.ts +21 -12
  148. package/src/account/contract/index.ts +13 -8
  149. package/src/account/contract/schnorr_account_contract.ts +20 -12
  150. package/src/account/contract/single_key_account_contract.ts +28 -12
  151. package/src/account/defaults/default_entrypoint.ts +95 -0
  152. package/src/account/defaults/default_interface.ts +36 -0
  153. package/src/account/defaults/index.ts +3 -0
  154. package/src/account/index.ts +14 -14
  155. package/src/account/interface.ts +35 -0
  156. package/src/account/{deploy_account_sent_tx.ts → manager/deploy_account_sent_tx.ts} +1 -1
  157. package/src/account/{account.ts → manager/index.ts} +8 -7
  158. package/src/{aztec_rpc_client/aztec_rpc_client.ts → aztec_rpc_client.ts} +2 -0
  159. package/src/contract/contract.test.ts +9 -3
  160. package/src/contract/contract.ts +1 -1
  161. package/src/contract/contract_base.ts +1 -1
  162. package/src/contract/contract_function_interaction.ts +3 -3
  163. package/src/contract_deployer/deploy_method.ts +1 -0
  164. package/src/index.ts +2 -1
  165. package/src/utils/account.ts +1 -1
  166. package/src/wallet/account_wallet.ts +70 -0
  167. package/src/wallet/base_wallet.ts +103 -0
  168. package/src/wallet/index.ts +10 -0
  169. package/src/wallet/signerless_wallet.ts +39 -0
  170. package/Dockerfile +0 -15
  171. package/src/abis/schnorr_auth_witness_account_contract.json +0 -643
  172. package/src/account/contract/auth_witness_account_contract.ts +0 -35
  173. package/src/account/entrypoint/auth_witness_account_entrypoint.ts +0 -125
  174. package/src/account/entrypoint/entrypoint_utils.ts +0 -31
  175. package/src/account/entrypoint/index.ts +0 -23
  176. package/src/account/entrypoint/single_key_account_entrypoint.ts +0 -55
  177. package/src/account/entrypoint/stored_key_account_entrypoint.ts +0 -56
  178. package/src/aztec_rpc_client/index.ts +0 -2
  179. package/src/aztec_rpc_client/wallet.ts +0 -219
  180. /package/src/account/{entrypoint → defaults}/entrypoint_payload.ts +0 -0
@@ -0,0 +1,10 @@
1
+ /*!
2
+ * The buffer module from node.js, for the browser.
3
+ *
4
+ * @author Feross Aboukhadijeh <https://feross.org>
5
+ * @license MIT
6
+ */
7
+
8
+ /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
9
+
10
+ /*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
@@ -0,0 +1,167 @@
1
+ import { Fr, GrumpkinScalar } from '@aztec/circuits.js';
2
+ import { AccountWallet, AztecRPC } from '../index.js';
3
+ export declare const INITIAL_SANDBOX_ENCRYPTION_KEYS: GrumpkinScalar[];
4
+ export declare const INITIAL_SANDBOX_SIGNING_KEYS: GrumpkinScalar[];
5
+ export declare const INITIAL_SANDBOX_SALTS: Fr[];
6
+ export declare const INITIAL_SANDBOX_ACCOUNT_CONTRACT_ABI: {
7
+ name: string;
8
+ functions: ({
9
+ name: string;
10
+ functionType: string;
11
+ isInternal: boolean;
12
+ parameters: ({
13
+ name: string;
14
+ type: {
15
+ kind: string;
16
+ length?: undefined;
17
+ type?: undefined;
18
+ };
19
+ visibility: string;
20
+ } | {
21
+ name: string;
22
+ type: {
23
+ kind: string;
24
+ length: number;
25
+ type: {
26
+ kind: string;
27
+ };
28
+ };
29
+ visibility: string;
30
+ })[];
31
+ returnTypes: {
32
+ kind: string;
33
+ length: number;
34
+ type: {
35
+ kind: string;
36
+ };
37
+ }[];
38
+ bytecode: string;
39
+ verificationKey: string;
40
+ } | {
41
+ name: string;
42
+ functionType: string;
43
+ isInternal: boolean;
44
+ parameters: {
45
+ name: string;
46
+ type: {
47
+ kind: string;
48
+ path: string;
49
+ fields: ({
50
+ name: string;
51
+ type: {
52
+ kind: string;
53
+ length: number;
54
+ type: {
55
+ kind: string;
56
+ };
57
+ };
58
+ } | {
59
+ name: string;
60
+ type: {
61
+ kind: string;
62
+ length?: undefined;
63
+ type?: undefined;
64
+ };
65
+ })[];
66
+ };
67
+ visibility: string;
68
+ }[];
69
+ returnTypes: never[];
70
+ bytecode: string;
71
+ verificationKey: string;
72
+ } | {
73
+ name: string;
74
+ functionType: string;
75
+ isInternal: boolean;
76
+ parameters: {
77
+ name: string;
78
+ type: {
79
+ kind: string;
80
+ };
81
+ visibility: string;
82
+ }[];
83
+ returnTypes: {
84
+ kind: string;
85
+ path: string;
86
+ fields: ({
87
+ name: string;
88
+ type: {
89
+ kind: string;
90
+ path: string;
91
+ fields: {
92
+ name: string;
93
+ type: {
94
+ kind: string;
95
+ };
96
+ }[];
97
+ length?: undefined;
98
+ type?: undefined;
99
+ };
100
+ } | {
101
+ name: string;
102
+ type: {
103
+ kind: string;
104
+ path?: undefined;
105
+ fields?: undefined;
106
+ length?: undefined;
107
+ type?: undefined;
108
+ };
109
+ } | {
110
+ name: string;
111
+ type: {
112
+ kind: string;
113
+ length: number;
114
+ type: {
115
+ kind: string;
116
+ path?: undefined;
117
+ fields?: undefined;
118
+ };
119
+ path?: undefined;
120
+ fields?: undefined;
121
+ };
122
+ } | {
123
+ name: string;
124
+ type: {
125
+ kind: string;
126
+ length: number;
127
+ type: {
128
+ kind: string;
129
+ path: string;
130
+ fields: {
131
+ name: string;
132
+ type: {
133
+ kind: string;
134
+ };
135
+ }[];
136
+ };
137
+ path?: undefined;
138
+ fields?: undefined;
139
+ };
140
+ })[];
141
+ }[];
142
+ bytecode: string;
143
+ verificationKey: string;
144
+ })[];
145
+ };
146
+ export declare const SANDBOX_URL: string;
147
+ /**
148
+ * Gets a collection of wallets for the Aztec accounts that are initially stored in the sandbox.
149
+ * @param aztecRpc - An instance of the Aztec RPC interface.
150
+ * @returns A set of AccountWallet implementations for each of the initial accounts.
151
+ */
152
+ export declare function getSandboxAccountsWallets(aztecRpc: AztecRPC): Promise<AccountWallet[]>;
153
+ /**
154
+ * Deploys the initial set of schnorr signature accounts to the sandbox
155
+ * @param aztecRpc - An instance of the Aztec RPC interface.
156
+ * @returns The set of deployed Account objects and associated private encryption keys
157
+ */
158
+ export declare function deployInitialSandboxAccounts(aztecRpc: AztecRPC): Promise<{
159
+ account: import("../index.js").AccountManager;
160
+ privateKey: GrumpkinScalar;
161
+ }[]>;
162
+ /**
163
+ * Function to wait until the sandbox becomes ready for use.
164
+ * @param rpc - The rpc client connected to the sandbox.
165
+ */
166
+ export declare function waitForSandbox(rpc?: AztecRPC): Promise<void>;
167
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sandbox/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAMxD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAA2C,MAAM,aAAa,CAAC;AAE/F,eAAO,MAAM,+BAA+B,kBAI3C,CAAC;AAEF,eAAO,MAAM,4BAA4B,kBAAkC,CAAC;AAE5E,eAAO,MAAM,qBAAqB,MAA8B,CAAC;AAEjE,eAAO,MAAM,oCAAoC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAA4B,CAAC;AAE9E,eAAO,MAAQ,WAAW,QAA0C,CAAC;AAErE;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAMtF;AAED;;;;GAIG;AACH,wBAAsB,4BAA4B,CAAC,QAAQ,EAAE,QAAQ;;;KA4BpE;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,GAAG,CAAC,EAAE,QAAQ,iBAUlD"}
@@ -0,0 +1,69 @@
1
+ import { Fr, GrumpkinScalar } from '@aztec/circuits.js';
2
+ import { sleep } from '@aztec/foundation/sleep';
3
+ import zip from 'lodash.zip';
4
+ import SchnorrAccountContractAbi from '../abis/schnorr_account_contract.json' assert { type: 'json' };
5
+ import { createAztecRpcClient, getSchnorrAccount } from '../index.js';
6
+ export const INITIAL_SANDBOX_ENCRYPTION_KEYS = [
7
+ GrumpkinScalar.fromString('2153536ff6628eee01cf4024889ff977a18d9fa61d0e414422f7681cf085c281'),
8
+ GrumpkinScalar.fromString('aebd1b4be76efa44f5ee655c20bf9ea60f7ae44b9a7fd1fd9f189c7a0b0cdae'),
9
+ GrumpkinScalar.fromString('0f6addf0da06c33293df974a565b03d1ab096090d907d98055a8b7f4954e120c'),
10
+ ];
11
+ export const INITIAL_SANDBOX_SIGNING_KEYS = INITIAL_SANDBOX_ENCRYPTION_KEYS;
12
+ export const INITIAL_SANDBOX_SALTS = [Fr.ZERO, Fr.ZERO, Fr.ZERO];
13
+ export const INITIAL_SANDBOX_ACCOUNT_CONTRACT_ABI = SchnorrAccountContractAbi;
14
+ export const { SANDBOX_URL = 'http://localhost:8080' } = process.env;
15
+ /**
16
+ * Gets a collection of wallets for the Aztec accounts that are initially stored in the sandbox.
17
+ * @param aztecRpc - An instance of the Aztec RPC interface.
18
+ * @returns A set of AccountWallet implementations for each of the initial accounts.
19
+ */
20
+ export function getSandboxAccountsWallets(aztecRpc) {
21
+ return Promise.all(zip(INITIAL_SANDBOX_ENCRYPTION_KEYS, INITIAL_SANDBOX_SIGNING_KEYS, INITIAL_SANDBOX_SALTS).map(([encryptionKey, signingKey, salt]) => getSchnorrAccount(aztecRpc, encryptionKey, signingKey, salt).getWallet()));
22
+ }
23
+ /**
24
+ * Deploys the initial set of schnorr signature accounts to the sandbox
25
+ * @param aztecRpc - An instance of the Aztec RPC interface.
26
+ * @returns The set of deployed Account objects and associated private encryption keys
27
+ */
28
+ export async function deployInitialSandboxAccounts(aztecRpc) {
29
+ const accounts = INITIAL_SANDBOX_ENCRYPTION_KEYS.map((privateKey, i) => {
30
+ const account = getSchnorrAccount(aztecRpc, privateKey, INITIAL_SANDBOX_SIGNING_KEYS[i], INITIAL_SANDBOX_SALTS[i]);
31
+ return {
32
+ account,
33
+ privateKey,
34
+ };
35
+ });
36
+ // Attempt to get as much parallelism as possible
37
+ const deployMethods = await Promise.all(accounts.map(async (x) => {
38
+ const deployMethod = await x.account.getDeployMethod();
39
+ await deployMethod.create({ contractAddressSalt: x.account.salt });
40
+ await deployMethod.simulate({});
41
+ return deployMethod;
42
+ }));
43
+ // Send tx together to try and get them in the same rollup
44
+ const sentTxs = deployMethods.map(dm => {
45
+ return dm.send();
46
+ });
47
+ await Promise.all(sentTxs.map(async (tx, i) => {
48
+ const wallet = await accounts[i].account.getWallet();
49
+ return tx.wait({ wallet });
50
+ }));
51
+ return accounts;
52
+ }
53
+ /**
54
+ * Function to wait until the sandbox becomes ready for use.
55
+ * @param rpc - The rpc client connected to the sandbox.
56
+ */
57
+ export async function waitForSandbox(rpc) {
58
+ rpc = rpc ?? createAztecRpcClient(SANDBOX_URL);
59
+ while (true) {
60
+ try {
61
+ await rpc.getNodeInfo();
62
+ break;
63
+ }
64
+ catch (err) {
65
+ await sleep(1000);
66
+ }
67
+ }
68
+ }
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2FuZGJveC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsRUFBRSxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVoRCxPQUFPLEdBQUcsTUFBTSxZQUFZLENBQUM7QUFFN0IsT0FBTyx5QkFBeUIsTUFBTSx1Q0FBdUMsQ0FBQyxTQUFTLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztBQUN0RyxPQUFPLEVBQTJCLG9CQUFvQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRS9GLE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFHO0lBQzdDLGNBQWMsQ0FBQyxVQUFVLENBQUMsa0VBQWtFLENBQUM7SUFDN0YsY0FBYyxDQUFDLFVBQVUsQ0FBQyxpRUFBaUUsQ0FBQztJQUM1RixjQUFjLENBQUMsVUFBVSxDQUFDLGtFQUFrRSxDQUFDO0NBQzlGLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRywrQkFBK0IsQ0FBQztBQUU1RSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7QUFFakUsTUFBTSxDQUFDLE1BQU0sb0NBQW9DLEdBQUcseUJBQXlCLENBQUM7QUFFOUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxXQUFXLEdBQUcsdUJBQXVCLEVBQUUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDO0FBRXJFOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUseUJBQXlCLENBQUMsUUFBa0I7SUFDMUQsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUNoQixHQUFHLENBQUMsK0JBQStCLEVBQUUsNEJBQTRCLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxHQUFHLENBQzNGLENBQUMsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsYUFBYyxFQUFFLFVBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FDbEgsQ0FDRixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLDRCQUE0QixDQUFDLFFBQWtCO0lBQ25FLE1BQU0sUUFBUSxHQUFHLCtCQUErQixDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNyRSxNQUFNLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLDRCQUE0QixDQUFDLENBQUMsQ0FBQyxFQUFFLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkgsT0FBTztZQUNMLE9BQU87WUFDUCxVQUFVO1NBQ1gsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0gsaURBQWlEO0lBQ2pELE1BQU0sYUFBYSxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDckMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxFQUFDLEVBQUU7UUFDckIsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZELE1BQU0sWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNuRSxNQUFNLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEMsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNGLDBEQUEwRDtJQUMxRCxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1FBQ3JDLE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ25CLENBQUMsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUMxQixNQUFNLE1BQU0sR0FBRyxNQUFNLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDckQsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0YsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsY0FBYyxDQUFDLEdBQWM7SUFDakQsR0FBRyxHQUFHLEdBQUcsSUFBSSxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvQyxPQUFPLElBQUksRUFBRTtRQUNYLElBQUk7WUFDRixNQUFNLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN4QixNQUFNO1NBQ1A7UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUNaLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ25CO0tBQ0Y7QUFDSCxDQUFDIn0=
@@ -0,0 +1,7 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ import { Fr } from '@aztec/circuits.js';
3
+ /** Any type that can be converted into a field for a contract call. */
4
+ export type FieldLike = Fr | Buffer | bigint | number | {
5
+ toField: () => Fr;
6
+ };
7
+ //# sourceMappingURL=abi_types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abi_types.d.ts","sourceRoot":"","sources":["../../src/utils/abi_types.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAExC,uEAAuE;AACvE,MAAM,MAAM,SAAS,GAAG,EAAE,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG;IAA2B,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJpX3R5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2FiaV90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -0,0 +1,23 @@
1
+ import { CompleteAddress } from '@aztec/circuits.js';
2
+ import { AztecRPC } from '@aztec/types';
3
+ import { AccountWallet } from '../wallet/account_wallet.js';
4
+ /**
5
+ * Deploys and registers a new account using random private keys and returns the associated wallet. Useful for testing.
6
+ * @param rpc - RPC client.
7
+ * @returns - A wallet for a fresh account.
8
+ */
9
+ export declare function createAccount(rpc: AztecRPC): Promise<AccountWallet>;
10
+ /**
11
+ * Creates a random address and registers it as a recipient on the RPC server. Useful for testing.
12
+ * @param rpc - RPC client.
13
+ * @returns Complete address of the registered recipient.
14
+ */
15
+ export declare function createRecipient(rpc: AztecRPC): Promise<CompleteAddress>;
16
+ /**
17
+ * Creates a given number of random accounts using the Schnorr account wallet.
18
+ * @param rpc - RPC interface.
19
+ * @param numberOfAccounts - How many accounts to create.
20
+ * @returns The created account wallets.
21
+ */
22
+ export declare function createAccounts(rpc: AztecRPC, numberOfAccounts?: number): Promise<AccountWallet[]>;
23
+ //# sourceMappingURL=account.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../src/utils/account.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAkB,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAGxC,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,CAEnE;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,eAAe,CAAC,CAI7E;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE,gBAAgB,SAAI,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAclG"}
@@ -0,0 +1,40 @@
1
+ import { CompleteAddress, GrumpkinScalar } from '@aztec/circuits.js';
2
+ import { getSchnorrAccount } from '../index.js';
3
+ /**
4
+ * Deploys and registers a new account using random private keys and returns the associated wallet. Useful for testing.
5
+ * @param rpc - RPC client.
6
+ * @returns - A wallet for a fresh account.
7
+ */
8
+ export function createAccount(rpc) {
9
+ return getSchnorrAccount(rpc, GrumpkinScalar.random(), GrumpkinScalar.random()).waitDeploy();
10
+ }
11
+ /**
12
+ * Creates a random address and registers it as a recipient on the RPC server. Useful for testing.
13
+ * @param rpc - RPC client.
14
+ * @returns Complete address of the registered recipient.
15
+ */
16
+ export async function createRecipient(rpc) {
17
+ const completeAddress = await CompleteAddress.random();
18
+ await rpc.registerRecipient(completeAddress);
19
+ return completeAddress;
20
+ }
21
+ /**
22
+ * Creates a given number of random accounts using the Schnorr account wallet.
23
+ * @param rpc - RPC interface.
24
+ * @param numberOfAccounts - How many accounts to create.
25
+ * @returns The created account wallets.
26
+ */
27
+ export async function createAccounts(rpc, numberOfAccounts = 1) {
28
+ const accounts = [];
29
+ // Prepare deployments
30
+ for (let i = 0; i < numberOfAccounts; ++i) {
31
+ const account = getSchnorrAccount(rpc, GrumpkinScalar.random(), GrumpkinScalar.random());
32
+ await account.getDeployMethod().then(d => d.simulate({ contractAddressSalt: account.salt }));
33
+ accounts.push(account);
34
+ }
35
+ // Send them and await them to be mined
36
+ const txs = await Promise.all(accounts.map(account => account.deploy()));
37
+ await Promise.all(txs.map(tx => tx.wait({ interval: 0.1 })));
38
+ return Promise.all(accounts.map(account => account.getWallet()));
39
+ }
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9hY2NvdW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR2hEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUFDLEdBQWE7SUFDekMsT0FBTyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDLE1BQU0sRUFBRSxFQUFFLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO0FBQy9GLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxlQUFlLENBQUMsR0FBYTtJQUNqRCxNQUFNLGVBQWUsR0FBRyxNQUFNLGVBQWUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN2RCxNQUFNLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM3QyxPQUFPLGVBQWUsQ0FBQztBQUN6QixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGNBQWMsQ0FBQyxHQUFhLEVBQUUsZ0JBQWdCLEdBQUcsQ0FBQztJQUN0RSxNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFFcEIsc0JBQXNCO0lBQ3RCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsRUFBRTtRQUN6QyxNQUFNLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDLE1BQU0sRUFBRSxFQUFFLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3pGLE1BQU0sT0FBTyxDQUFDLGVBQWUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxtQkFBbUIsRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzdGLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDeEI7SUFFRCx1Q0FBdUM7SUFDdkMsTUFBTSxHQUFHLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3RCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDbkUsQ0FBQyJ9
@@ -0,0 +1,199 @@
1
+ import { AztecAddress, CircuitsWasm, EthAddress, Fr } from '@aztec/circuits.js';
2
+ import { AztecRPC, NotePreimage } from '@aztec/types';
3
+ /**
4
+ * A class that provides utility functions for interacting with the chain.
5
+ */
6
+ export declare class CheatCodes {
7
+ /**
8
+ * The cheat codes for ethereum (L1).
9
+ */
10
+ eth: EthCheatCodes;
11
+ /**
12
+ * The cheat codes for aztec.
13
+ */
14
+ aztec: AztecCheatCodes;
15
+ constructor(
16
+ /**
17
+ * The cheat codes for ethereum (L1).
18
+ */
19
+ eth: EthCheatCodes,
20
+ /**
21
+ * The cheat codes for aztec.
22
+ */
23
+ aztec: AztecCheatCodes);
24
+ static create(rpcUrl: string, aztecRpc: AztecRPC): Promise<CheatCodes>;
25
+ }
26
+ /**
27
+ * A class that provides utility functions for interacting with ethereum (L1).
28
+ */
29
+ export declare class EthCheatCodes {
30
+ /**
31
+ * The RPC client to use for interacting with the chain
32
+ */
33
+ rpcUrl: string;
34
+ /**
35
+ * The logger to use for the eth cheatcodes
36
+ */
37
+ logger: import("@aztec/foundation/log").DebugLogger;
38
+ constructor(
39
+ /**
40
+ * The RPC client to use for interacting with the chain
41
+ */
42
+ rpcUrl: string,
43
+ /**
44
+ * The logger to use for the eth cheatcodes
45
+ */
46
+ logger?: import("@aztec/foundation/log").DebugLogger);
47
+ rpcCall(method: string, params: any[]): Promise<any>;
48
+ /**
49
+ * Get the current blocknumber
50
+ * @returns The current block number
51
+ */
52
+ blockNumber(): Promise<number>;
53
+ /**
54
+ * Get the current chainId
55
+ * @returns The current chainId
56
+ */
57
+ chainId(): Promise<number>;
58
+ /**
59
+ * Get the current timestamp
60
+ * @returns The current timestamp
61
+ */
62
+ timestamp(): Promise<number>;
63
+ /**
64
+ * Advance the chain by a number of blocks
65
+ * @param numberOfBlocks - The number of blocks to mine
66
+ * @returns The current chainId
67
+ */
68
+ mine(numberOfBlocks?: number): Promise<void>;
69
+ /**
70
+ * Set the next block timestamp
71
+ * @param timestamp - The timestamp to set the next block to
72
+ */
73
+ setNextBlockTimestamp(timestamp: number): Promise<void>;
74
+ /**
75
+ * Dumps the current chain state to a file.
76
+ * @param fileName - The file name to dump state into
77
+ */
78
+ dumpChainState(fileName: string): Promise<void>;
79
+ /**
80
+ * Loads the chain state from a file.
81
+ * @param fileName - The file name to load state from
82
+ */
83
+ loadChainState(fileName: string): Promise<void>;
84
+ /**
85
+ * Load the value at a storage slot of a contract address on eth
86
+ * @param contract - The contract address
87
+ * @param slot - The storage slot
88
+ * @returns - The value at the storage slot
89
+ */
90
+ load(contract: EthAddress, slot: bigint): Promise<bigint>;
91
+ /**
92
+ * Set the value at a storage slot of a contract address on eth
93
+ * @param contract - The contract address
94
+ * @param slot - The storage slot
95
+ * @param value - The value to set the storage slot to
96
+ */
97
+ store(contract: EthAddress, slot: bigint, value: bigint): Promise<void>;
98
+ /**
99
+ * Computes the slot value for a given map and key.
100
+ * @param baseSlot - The base slot of the map (specified in Aztec.nr contract)
101
+ * @param key - The key to lookup in the map
102
+ * @returns The storage slot of the value in the map
103
+ */
104
+ keccak256(baseSlot: bigint, key: bigint): bigint;
105
+ /**
106
+ * Send transactions impersonating an externally owned account or contract.
107
+ * @param who - The address to impersonate
108
+ */
109
+ startImpersonating(who: EthAddress): Promise<void>;
110
+ /**
111
+ * Stop impersonating an account that you are currently impersonating.
112
+ * @param who - The address to stop impersonating
113
+ */
114
+ stopImpersonating(who: EthAddress): Promise<void>;
115
+ /**
116
+ * Set the bytecode for a contract
117
+ * @param contract - The contract address
118
+ * @param bytecode - The bytecode to set
119
+ */
120
+ etch(contract: EthAddress, bytecode: `0x${string}`): Promise<void>;
121
+ /**
122
+ * Get the bytecode for a contract
123
+ * @param contract - The contract address
124
+ * @returns The bytecode for the contract
125
+ */
126
+ getBytecode(contract: EthAddress): Promise<`0x${string}`>;
127
+ }
128
+ /**
129
+ * A class that provides utility functions for interacting with the aztec chain.
130
+ */
131
+ export declare class AztecCheatCodes {
132
+ /**
133
+ * The RPC client to use for interacting with the chain
134
+ */
135
+ aztecRpc: AztecRPC;
136
+ /**
137
+ * The circuits wasm module used for pedersen hashing
138
+ */
139
+ wasm: CircuitsWasm;
140
+ /**
141
+ * The eth cheat codes.
142
+ */
143
+ eth: EthCheatCodes;
144
+ /**
145
+ * The logger to use for the aztec cheatcodes
146
+ */
147
+ logger: import("@aztec/foundation/log").DebugLogger;
148
+ constructor(
149
+ /**
150
+ * The RPC client to use for interacting with the chain
151
+ */
152
+ aztecRpc: AztecRPC,
153
+ /**
154
+ * The circuits wasm module used for pedersen hashing
155
+ */
156
+ wasm: CircuitsWasm,
157
+ /**
158
+ * The eth cheat codes.
159
+ */
160
+ eth: EthCheatCodes,
161
+ /**
162
+ * The logger to use for the aztec cheatcodes
163
+ */
164
+ logger?: import("@aztec/foundation/log").DebugLogger);
165
+ /**
166
+ * Computes the slot value for a given map and key.
167
+ * @param baseSlot - The base slot of the map (specified in Aztec.nr contract)
168
+ * @param key - The key to lookup in the map
169
+ * @returns The storage slot of the value in the map
170
+ */
171
+ computeSlotInMap(baseSlot: Fr | bigint, key: Fr | bigint | AztecAddress): Fr;
172
+ /**
173
+ * Get the current blocknumber
174
+ * @returns The current block number
175
+ */
176
+ blockNumber(): Promise<number>;
177
+ /**
178
+ * Set time of the next execution on aztec.
179
+ * It also modifies time on eth for next execution and stores this time as the last rollup block on the rollup contract.
180
+ * @param to - The timestamp to set the next block to (must be greater than current time)
181
+ */
182
+ warp(to: number): Promise<void>;
183
+ /**
184
+ * Loads the value stored at the given slot in the public storage of the given contract.
185
+ * @param who - The address of the contract
186
+ * @param slot - The storage slot to lookup
187
+ * @returns The value stored at the given slot
188
+ */
189
+ loadPublic(who: AztecAddress, slot: Fr | bigint): Promise<Fr>;
190
+ /**
191
+ * Loads the value stored at the given slot in the private storage of the given contract.
192
+ * @param contract - The address of the contract
193
+ * @param owner - The owner for whom the notes are encrypted
194
+ * @param slot - The storage slot to lookup
195
+ * @returns The notes stored at the given slot
196
+ */
197
+ loadPrivate(owner: AztecAddress, contract: AztecAddress, slot: Fr | bigint): Promise<NotePreimage[]>;
198
+ }
199
+ //# sourceMappingURL=cheat_codes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cheat_codes.d.ts","sourceRoot":"","sources":["../../src/utils/cheat_codes.ts"],"names":[],"mappings":"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"}