@aztec/aztec.js 0.1.0-alpha37 → 0.1.0-alpha38

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 (75) hide show
  1. package/.tsbuildinfo +1 -1
  2. package/README.md +3 -3
  3. package/dest/abis/ecdsa_account_contract.json +2 -2
  4. package/dest/abis/schnorr_account_contract.json +2 -2
  5. package/dest/abis/schnorr_single_key_account_contract.json +1 -1
  6. package/dest/account/account.d.ts +1 -2
  7. package/dest/account/account.d.ts.map +1 -1
  8. package/dest/account/account.js +7 -6
  9. package/dest/account/contract/ecdsa_account_contract.d.ts +1 -2
  10. package/dest/account/contract/ecdsa_account_contract.d.ts.map +1 -1
  11. package/dest/account/contract/ecdsa_account_contract.js +1 -1
  12. package/dest/account/contract/index.d.ts +1 -2
  13. package/dest/account/contract/index.d.ts.map +1 -1
  14. package/dest/account/contract/index.js +1 -1
  15. package/dest/account/contract/schnorr_account_contract.d.ts +1 -2
  16. package/dest/account/contract/schnorr_account_contract.d.ts.map +1 -1
  17. package/dest/account/contract/schnorr_account_contract.js +1 -1
  18. package/dest/account/contract/single_key_account_contract.d.ts +1 -2
  19. package/dest/account/contract/single_key_account_contract.d.ts.map +1 -1
  20. package/dest/account/contract/single_key_account_contract.js +1 -1
  21. package/dest/account/index.d.ts +1 -2
  22. package/dest/account/index.d.ts.map +1 -1
  23. package/dest/account/index.js +7 -3
  24. package/dest/aztec_rpc_client/aztec_rpc_client.d.ts.map +1 -1
  25. package/dest/aztec_rpc_client/aztec_rpc_client.js +3 -2
  26. package/dest/aztec_rpc_client/wallet.d.ts +7 -5
  27. package/dest/aztec_rpc_client/wallet.d.ts.map +1 -1
  28. package/dest/aztec_rpc_client/wallet.js +14 -8
  29. package/dest/contract/contract.d.ts +1 -1
  30. package/dest/contract/contract.d.ts.map +1 -1
  31. package/dest/contract/contract.js +2 -2
  32. package/dest/contract/contract.test.js +14 -13
  33. package/dest/contract_deployer/deploy_method.js +6 -6
  34. package/dest/contract_deployer/deploy_sent_tx.js +2 -2
  35. package/dest/index.d.ts +2 -0
  36. package/dest/index.d.ts.map +1 -1
  37. package/dest/index.js +3 -1
  38. package/dest/main.js +1 -1
  39. package/dest/sandbox/index.d.ts +108 -0
  40. package/dest/sandbox/index.d.ts.map +1 -0
  41. package/dest/sandbox/index.js +66 -0
  42. package/dest/utils/abi_types.d.ts +6 -0
  43. package/dest/utils/abi_types.d.ts.map +1 -0
  44. package/dest/utils/abi_types.js +2 -0
  45. package/dest/utils/account.d.ts +5 -2
  46. package/dest/utils/account.d.ts.map +1 -1
  47. package/dest/utils/account.js +21 -12
  48. package/dest/utils/index.d.ts +1 -0
  49. package/dest/utils/index.d.ts.map +1 -1
  50. package/dest/utils/index.js +2 -1
  51. package/package.json +4 -4
  52. package/src/abis/ecdsa_account_contract.json +2 -2
  53. package/src/abis/schnorr_account_contract.json +2 -2
  54. package/src/abis/schnorr_single_key_account_contract.json +1 -1
  55. package/src/account/account.ts +6 -6
  56. package/src/account/contract/ecdsa_account_contract.ts +1 -2
  57. package/src/account/contract/index.ts +1 -2
  58. package/src/account/contract/schnorr_account_contract.ts +1 -2
  59. package/src/account/contract/single_key_account_contract.ts +1 -2
  60. package/src/account/index.ts +5 -4
  61. package/src/aztec_rpc_client/aztec_rpc_client.ts +2 -1
  62. package/src/aztec_rpc_client/wallet.ts +15 -13
  63. package/src/contract/contract.test.ts +13 -12
  64. package/src/contract/contract.ts +1 -1
  65. package/src/contract_deployer/deploy_method.ts +5 -5
  66. package/src/contract_deployer/deploy_sent_tx.ts +1 -1
  67. package/src/index.ts +2 -0
  68. package/src/sandbox/index.ts +83 -0
  69. package/src/utils/abi_types.ts +4 -0
  70. package/src/utils/account.ts +36 -16
  71. package/src/utils/index.ts +1 -0
  72. package/dest/account/complete_address.d.ts +0 -13
  73. package/dest/account/complete_address.d.ts.map +0 -1
  74. package/dest/account/complete_address.js +0 -8
  75. package/src/account/complete_address.ts +0 -18
@@ -0,0 +1,108 @@
1
+ import { Fr, PrivateKey } from '@aztec/circuits.js';
2
+ import { AztecRPC } from '../index.js';
3
+ export declare const INITIAL_SANDBOX_ENCRYPTION_KEYS: PrivateKey[];
4
+ export declare const INITIAL_SANDBOX_SIGNING_KEYS: PrivateKey[];
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
+ fields: ({
49
+ name: string;
50
+ type: {
51
+ kind: string;
52
+ length: number;
53
+ type: {
54
+ kind: string;
55
+ };
56
+ };
57
+ } | {
58
+ name: string;
59
+ type: {
60
+ kind: string;
61
+ length?: undefined;
62
+ type?: undefined;
63
+ };
64
+ })[];
65
+ length?: undefined;
66
+ type?: undefined;
67
+ };
68
+ visibility: string;
69
+ } | {
70
+ name: string;
71
+ type: {
72
+ kind: string;
73
+ length: number;
74
+ type: {
75
+ kind: string;
76
+ sign: string;
77
+ width: number;
78
+ };
79
+ fields?: undefined;
80
+ };
81
+ visibility: string;
82
+ })[];
83
+ returnTypes: never[];
84
+ bytecode: string;
85
+ verificationKey: string;
86
+ })[];
87
+ };
88
+ /**
89
+ * Gets a wallet for the Aztec accounts that are initially stored in the sandbox.
90
+ * @param aztecRpc - An instance of the Aztec RPC interface.
91
+ * @returns An AccountWallet implementation that includes all the accounts found.
92
+ */
93
+ export declare function getSandboxAccountsWallet(aztecRpc: AztecRPC): Promise<import("../index.js").EntrypointWallet>;
94
+ /**
95
+ * Deploys the initial set of schnorr signature accounts to the sandbox
96
+ * @param aztecRpc - An instance of the Aztec RPC interface.
97
+ * @returns The set of deployed Account objects and associated private encryption keys
98
+ */
99
+ export declare function deployInitialSandboxAccounts(aztecRpc: AztecRPC): Promise<{
100
+ account: import("../index.js").Account;
101
+ privateKey: PrivateKey;
102
+ }[]>;
103
+ /**
104
+ * Function to wait until the sandbox becomes ready for use.
105
+ * @param rpcServer - The rpc client connected to the sandbox.
106
+ */
107
+ export declare const waitForSandbox: (rpcServer: AztecRPC) => Promise<void>;
108
+ //# 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,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAKpD,OAAO,EAAE,QAAQ,EAAwC,MAAM,aAAa,CAAC;AAE7E,eAAO,MAAM,+BAA+B,cAI3C,CAAC;AAEF,eAAO,MAAM,4BAA4B,cAAkC,CAAC;AAE5E,eAAO,MAAM,qBAAqB,MAA8B,CAAC;AAEjE,eAAO,MAAM,oCAAoC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAA4B,CAAC;AAE9E;;;;GAIG;AACH,wBAAsB,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,mDAQhE;AAED;;;;GAIG;AACH,wBAAsB,4BAA4B,CAAC,QAAQ,EAAE,QAAQ;;;KA4BpE;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,cAAqB,QAAQ,kBASvD,CAAC"}
@@ -0,0 +1,66 @@
1
+ import { Fr, PrivateKey } from '@aztec/circuits.js';
2
+ import { sleep } from '@aztec/foundation/sleep';
3
+ import SchnorrAccountContractAbi from '../abis/schnorr_account_contract.json' assert { type: 'json' };
4
+ import { getAccountWallets, getSchnorrAccount } from '../index.js';
5
+ export const INITIAL_SANDBOX_ENCRYPTION_KEYS = [
6
+ new PrivateKey(Buffer.from('b2803ec899f76f6b2ac011480d24028f1a29587f8a3a92f7ee9d48d8c085c284', 'hex')),
7
+ new PrivateKey(Buffer.from('6bb46e9a80da2ff7bfff71c2c50eaaa4b15f7ed5ad1ade4261b574ef80b0cdb0', 'hex')),
8
+ new PrivateKey(Buffer.from('0f6addf0da06c33293df974a565b03d1ab096090d907d98055a8b7f4954e120c', 'hex')),
9
+ ];
10
+ export const INITIAL_SANDBOX_SIGNING_KEYS = INITIAL_SANDBOX_ENCRYPTION_KEYS;
11
+ export const INITIAL_SANDBOX_SALTS = [Fr.ZERO, Fr.ZERO, Fr.ZERO];
12
+ export const INITIAL_SANDBOX_ACCOUNT_CONTRACT_ABI = SchnorrAccountContractAbi;
13
+ /**
14
+ * Gets a wallet for the Aztec accounts that are initially stored in the sandbox.
15
+ * @param aztecRpc - An instance of the Aztec RPC interface.
16
+ * @returns An AccountWallet implementation that includes all the accounts found.
17
+ */
18
+ export async function getSandboxAccountsWallet(aztecRpc) {
19
+ return await getAccountWallets(aztecRpc, INITIAL_SANDBOX_ACCOUNT_CONTRACT_ABI, INITIAL_SANDBOX_ENCRYPTION_KEYS, INITIAL_SANDBOX_SIGNING_KEYS, INITIAL_SANDBOX_SALTS);
20
+ }
21
+ /**
22
+ * Deploys the initial set of schnorr signature accounts to the sandbox
23
+ * @param aztecRpc - An instance of the Aztec RPC interface.
24
+ * @returns The set of deployed Account objects and associated private encryption keys
25
+ */
26
+ export async function deployInitialSandboxAccounts(aztecRpc) {
27
+ const accounts = INITIAL_SANDBOX_ENCRYPTION_KEYS.map((privateKey, i) => {
28
+ const account = getSchnorrAccount(aztecRpc, privateKey, INITIAL_SANDBOX_SIGNING_KEYS[i], INITIAL_SANDBOX_SALTS[i]);
29
+ return {
30
+ account,
31
+ privateKey,
32
+ };
33
+ });
34
+ // Attempt to get as much parallelism as possible
35
+ const deployMethods = await Promise.all(accounts.map(async (x) => {
36
+ const deployMethod = await x.account.getDeployMethod();
37
+ await deployMethod.create({ contractAddressSalt: x.account.salt });
38
+ await deployMethod.simulate({});
39
+ return deployMethod;
40
+ }));
41
+ // Send tx together to try and get them in the same rollup
42
+ const sentTxs = deployMethods.map(dm => {
43
+ return dm.send();
44
+ });
45
+ await Promise.all(sentTxs.map(async (tx, i) => {
46
+ const wallet = await accounts[i].account.getWallet();
47
+ return tx.wait({ wallet });
48
+ }));
49
+ return accounts;
50
+ }
51
+ /**
52
+ * Function to wait until the sandbox becomes ready for use.
53
+ * @param rpcServer - The rpc client connected to the sandbox.
54
+ */
55
+ export const waitForSandbox = async (rpcServer) => {
56
+ while (true) {
57
+ try {
58
+ await rpcServer.getNodeInfo();
59
+ break;
60
+ }
61
+ catch (err) {
62
+ await sleep(1000);
63
+ }
64
+ }
65
+ };
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2FuZGJveC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVoRCxPQUFPLHlCQUF5QixNQUFNLHVDQUF1QyxDQUFDLFNBQVMsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO0FBQ3RHLE9BQU8sRUFBWSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU3RSxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBRztJQUM3QyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGtFQUFrRSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RHLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0VBQWtFLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdEcsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxrRUFBa0UsRUFBRSxLQUFLLENBQUMsQ0FBQztDQUN2RyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsK0JBQStCLENBQUM7QUFFNUUsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBRWpFLE1BQU0sQ0FBQyxNQUFNLG9DQUFvQyxHQUFHLHlCQUF5QixDQUFDO0FBRTlFOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLHdCQUF3QixDQUFDLFFBQWtCO0lBQy9ELE9BQU8sTUFBTSxpQkFBaUIsQ0FDNUIsUUFBUSxFQUNSLG9DQUFtRCxFQUNuRCwrQkFBK0IsRUFDL0IsNEJBQTRCLEVBQzVCLHFCQUFxQixDQUN0QixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLDRCQUE0QixDQUFDLFFBQWtCO0lBQ25FLE1BQU0sUUFBUSxHQUFHLCtCQUErQixDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNyRSxNQUFNLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLDRCQUE0QixDQUFDLENBQUMsQ0FBQyxFQUFFLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkgsT0FBTztZQUNMLE9BQU87WUFDUCxVQUFVO1NBQ1gsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0gsaURBQWlEO0lBQ2pELE1BQU0sYUFBYSxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDckMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxFQUFDLEVBQUU7UUFDckIsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZELE1BQU0sWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNuRSxNQUFNLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEMsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNGLDBEQUEwRDtJQUMxRCxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1FBQ3JDLE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ25CLENBQUMsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUMxQixNQUFNLE1BQU0sR0FBRyxNQUFNLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDckQsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0YsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxLQUFLLEVBQUUsU0FBbUIsRUFBRSxFQUFFO0lBQzFELE9BQU8sSUFBSSxFQUFFO1FBQ1gsSUFBSTtZQUNGLE1BQU0sU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzlCLE1BQU07U0FDUDtRQUFDLE9BQU8sR0FBRyxFQUFFO1lBQ1osTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDbkI7S0FDRjtBQUNILENBQUMsQ0FBQyJ9
@@ -0,0 +1,6 @@
1
+ import { Fr } from '@aztec/circuits.js';
2
+ /** Any type that can be converted into a field for a contract call. */
3
+ export type FieldLike = Fr | bigint | number | {
4
+ toField: () => Fr;
5
+ };
6
+ //# 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;IAA2B,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJpX3R5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2FiaV90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -10,8 +10,11 @@ export declare function createAccounts(aztecRpcClient: AztecRPC, accountContract
10
10
  /**
11
11
  * Gets the Aztec accounts that are stored in an Aztec RPC instance.
12
12
  * @param aztecRpcClient - An instance of the Aztec RPC interface.
13
- * @param numberOfAccounts - The number of accounts to fetch.
13
+ * @param accountContractAbi - The abi of the account contract used when the accounts were deployed
14
+ * @param privateKeys - The encryption private keys used to create the accounts.
15
+ * @param signingKeys - The signing private keys used to create the accounts.
16
+ * @param salts - The salt values used to create the accounts.
14
17
  * @returns An AccountWallet implementation that includes all the accounts found.
15
18
  */
16
- export declare function getAccountWallet(aztecRpcClient: AztecRPC, accountContractAbi: ContractAbi, privateKey: PrivateKey, salt: Fr): Promise<EntrypointWallet>;
19
+ export declare function getAccountWallets(aztecRpcClient: AztecRPC, accountContractAbi: ContractAbi, privateKeys: PrivateKey[], signingKeys: PrivateKey[], salts: Fr[]): Promise<EntrypointWallet>;
17
20
  //# sourceMappingURL=account.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../src/utils/account.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,UAAU,EAA6B,MAAM,oBAAoB,CAAC;AAE/E,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,QAAQ,EAAY,MAAM,cAAc,CAAC;AAGlD,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAGzE;;;GAGG;AACH,wBAAsB,cAAc,CAClC,cAAc,EAAE,QAAQ,EACxB,kBAAkB,EAAE,WAAW,EAC/B,UAAU,CAAC,EAAE,UAAU,EACvB,IAAI,KAAc,EAClB,gBAAgB,SAAI,EACpB,MAAM,8CAA+C,GACpD,OAAO,CAAC,MAAM,CAAC,CA6BjB;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,cAAc,EAAE,QAAQ,EACxB,kBAAkB,EAAE,WAAW,EAC/B,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,EAAE,6BAYT"}
1
+ {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../src/utils/account.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,UAAU,EAA6B,MAAM,oBAAoB,CAAC;AAE/E,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,QAAQ,EAAY,MAAM,cAAc,CAAC;AAGlD,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAGzE;;;GAGG;AACH,wBAAsB,cAAc,CAClC,cAAc,EAAE,QAAQ,EACxB,kBAAkB,EAAE,WAAW,EAC/B,UAAU,CAAC,EAAE,UAAU,EACvB,IAAI,KAAc,EAClB,gBAAgB,SAAI,EACpB,MAAM,8CAA+C,GACpD,OAAO,CAAC,MAAM,CAAC,CAkCjB;AAED;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CACrC,cAAc,EAAE,QAAQ,EACxB,kBAAkB,EAAE,WAAW,EAC/B,WAAW,EAAE,UAAU,EAAE,EACzB,WAAW,EAAE,UAAU,EAAE,EACzB,KAAK,EAAE,EAAE,EAAE,6BAuBZ"}
@@ -4,7 +4,7 @@ import { createDebugLogger } from '@aztec/foundation/log';
4
4
  import { TxStatus } from '@aztec/types';
5
5
  import { SingleKeyAccountEntrypoint } from '../account/entrypoint/single_key_account_entrypoint.js';
6
6
  import { EntrypointWallet } from '../aztec_rpc_client/wallet.js';
7
- import { ContractDeployer, EntrypointCollection, generatePublicKey } from '../index.js';
7
+ import { ContractDeployer, EntrypointCollection, StoredKeyAccountEntrypoint, generatePublicKey } from '../index.js';
8
8
  /**
9
9
  * Creates an Aztec Account.
10
10
  * @returns The account's address & public key.
@@ -16,7 +16,7 @@ export async function createAccounts(aztecRpcClient, accountContractAbi, private
16
16
  const privKey = i == 0 && privateKey ? privateKey : PrivateKey.random();
17
17
  const publicKey = await generatePublicKey(privKey);
18
18
  const deploymentInfo = await getContractDeploymentInfo(accountContractAbi, [], salt, publicKey);
19
- await aztecRpcClient.addAccount(privKey, deploymentInfo.address, deploymentInfo.partialAddress);
19
+ await aztecRpcClient.registerAccount(privKey, deploymentInfo.completeAddress);
20
20
  const contractDeployer = new ContractDeployer(accountContractAbi, aztecRpcClient, publicKey);
21
21
  const tx = contractDeployer.deploy().send({ contractAddressSalt: salt });
22
22
  await tx.isMined({ interval: 0.5 });
@@ -25,26 +25,35 @@ export async function createAccounts(aztecRpcClient, accountContractAbi, private
25
25
  throw new Error(`Deployment tx not mined (status is ${receipt.status})`);
26
26
  }
27
27
  const address = receipt.contractAddress;
28
- if (!address.equals(deploymentInfo.address)) {
29
- throw new Error(`Deployment address does not match for account contract (expected ${deploymentInfo.address.toString()} got ${address.toString()})`);
28
+ if (!address.equals(deploymentInfo.completeAddress.address)) {
29
+ throw new Error(`Deployment address does not match for account contract (expected ${deploymentInfo.completeAddress.address.toString()} got ${address.toString()})`);
30
30
  }
31
31
  logger(`Created account ${address.toString()} with public key ${publicKey.toString()}`);
32
- accountImpls.registerAccount(address, new SingleKeyAccountEntrypoint(address, deploymentInfo.partialAddress, privKey, await Schnorr.new()));
32
+ accountImpls.registerAccount(address, new SingleKeyAccountEntrypoint(address, deploymentInfo.completeAddress.partialAddress, privKey, await Schnorr.new()));
33
33
  }
34
34
  return new EntrypointWallet(aztecRpcClient, accountImpls);
35
35
  }
36
36
  /**
37
37
  * Gets the Aztec accounts that are stored in an Aztec RPC instance.
38
38
  * @param aztecRpcClient - An instance of the Aztec RPC interface.
39
- * @param numberOfAccounts - The number of accounts to fetch.
39
+ * @param accountContractAbi - The abi of the account contract used when the accounts were deployed
40
+ * @param privateKeys - The encryption private keys used to create the accounts.
41
+ * @param signingKeys - The signing private keys used to create the accounts.
42
+ * @param salts - The salt values used to create the accounts.
40
43
  * @returns An AccountWallet implementation that includes all the accounts found.
41
44
  */
42
- export async function getAccountWallet(aztecRpcClient, accountContractAbi, privateKey, salt) {
45
+ export async function getAccountWallets(aztecRpcClient, accountContractAbi, privateKeys, signingKeys, salts) {
46
+ if (privateKeys.length != salts.length || signingKeys.length != privateKeys.length) {
47
+ throw new Error('Keys and salts must be the same length');
48
+ }
43
49
  const accountCollection = new EntrypointCollection();
44
- const publicKey = await generatePublicKey(privateKey);
45
- const deploymentInfo = await getContractDeploymentInfo(accountContractAbi, [], salt, publicKey);
46
- const address = deploymentInfo.address;
47
- accountCollection.registerAccount(address, new SingleKeyAccountEntrypoint(address, deploymentInfo.partialAddress, privateKey, await Schnorr.new()));
50
+ for (let i = 0; i < privateKeys.length; i++) {
51
+ const publicKey = await generatePublicKey(privateKeys[i]);
52
+ const signingPublicKey = await generatePublicKey(signingKeys[i]);
53
+ const deploymentInfo = await getContractDeploymentInfo(accountContractAbi, [signingPublicKey.x, signingPublicKey.y], salts[i], publicKey);
54
+ const address = deploymentInfo.completeAddress.address;
55
+ accountCollection.registerAccount(address, new StoredKeyAccountEntrypoint(address, signingKeys[i], await Schnorr.new()));
56
+ }
48
57
  return new EntrypointWallet(aztecRpcClient, accountCollection);
49
58
  }
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9hY2NvdW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDL0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBWSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFbEQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDcEcsT0FBTyxFQUFFLGdCQUFnQixFQUFVLE1BQU0sK0JBQStCLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXhGOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsY0FBYyxDQUNsQyxjQUF3QixFQUN4QixrQkFBK0IsRUFDL0IsVUFBdUIsRUFDdkIsSUFBSSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFDbEIsZ0JBQWdCLEdBQUcsQ0FBQyxFQUNwQixNQUFNLEdBQUcsaUJBQWlCLENBQUMseUJBQXlCLENBQUM7SUFFckQsTUFBTSxZQUFZLEdBQUcsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO0lBRWhELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsRUFBRTtRQUN6QyxtR0FBbUc7UUFDbkcsTUFBTSxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3hFLE1BQU0sU0FBUyxHQUFHLE1B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
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9hY2NvdW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDL0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBWSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFbEQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDcEcsT0FBTyxFQUFFLGdCQUFnQixFQUFVLE1BQU0sK0JBQStCLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLDBCQUEwQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXBIOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsY0FBYyxDQUNsQyxjQUF3QixFQUN4QixrQkFBK0IsRUFDL0IsVUFBdUIsRUFDdkIsSUFBSSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFDbEIsZ0JBQWdCLEdBQUcsQ0FBQyxFQUNwQixNQUFNLEdBQUcsaUJBQWlCLENBQUMseUJBQXlCLENBQUM7SUFFckQsTUFBTSxZQUFZLEdBQUcsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO0lBRWhELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsRUFBRTtRQUN6QyxtR0FBbUc7UUFDbkcsTUFBTSxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3hFLE1BQU0s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
@@ -3,4 +3,5 @@ export * from './account.js';
3
3
  export * from './pub_key.js';
4
4
  export * from './l1_contracts.js';
5
5
  export * from './l2_contracts.js';
6
+ export * from './abi_types.js';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC"}
@@ -3,4 +3,5 @@ export * from './account.js';
3
3
  export * from './pub_key.js';
4
4
  export * from './l1_contracts.js';
5
5
  export * from './l2_contracts.js';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLG1CQUFtQixDQUFDIn0=
6
+ export * from './abi_types.js';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsZ0JBQWdCLENBQUMifQ==
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@aztec/aztec.js",
3
- "version": "0.1.0-alpha37",
3
+ "version": "0.1.0-alpha38",
4
4
  "exports": {
5
5
  "node": "./dest/index.js",
6
6
  "default": "./dest/main.js"
7
7
  },
8
8
  "type": "module",
9
9
  "dependencies": {
10
- "@aztec/circuits.js": "0.1.0-alpha37",
11
- "@aztec/foundation": "0.1.0-alpha37",
12
- "@aztec/types": "0.1.0-alpha37",
10
+ "@aztec/circuits.js": "0.1.0-alpha38",
11
+ "@aztec/foundation": "0.1.0-alpha38",
12
+ "@aztec/types": "0.1.0-alpha38",
13
13
  "lodash.every": "^4.6.0",
14
14
  "lodash.partition": "^4.6.0",
15
15
  "tslib": "^2.4.0"
@@ -84,7 +84,7 @@
84
84
  }
85
85
  ],
86
86
  "returnTypes": [],
87
- "bytecode": "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",
87
+ "bytecode": "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",
88
88
  "verificationKey": "0000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f"
89
89
  },
90
90
  {
@@ -152,7 +152,7 @@
152
152
  }
153
153
  ],
154
154
  "returnTypes": [],
155
- "bytecode": "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",
155
+ "bytecode": "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",
156
156
  "verificationKey": "0000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f"
157
157
  }
158
158
  ]