@aztec/accounts 0.56.0 → 0.58.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/artifacts/EcdsaKAccount.json +1 -1
- package/artifacts/EcdsaRAccount.json +1 -1
- package/artifacts/SchnorrAccount.json +1 -1
- package/artifacts/SchnorrSingleKeyAccount.json +1 -1
- package/dest/defaults/account_contract.d.ts +1 -1
- package/dest/defaults/account_contract.d.ts.map +1 -1
- package/dest/defaults/account_interface.d.ts +1 -2
- package/dest/defaults/account_interface.d.ts.map +1 -1
- package/dest/defaults/account_interface.js +1 -1
- package/dest/testing/configuration.d.ts.map +1 -1
- package/dest/testing/configuration.js +16 -13
- package/dest/testing/create_account.d.ts.map +1 -1
- package/dest/testing/create_account.js +9 -13
- package/package.json +11 -8
- package/src/defaults/account_contract.ts +1 -1
- package/src/defaults/account_interface.ts +1 -2
- package/src/testing/configuration.ts +15 -13
- package/src/testing/create_account.ts +12 -17
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type AccountContract, type AccountInterface, type AuthWitnessProvider } from '@aztec/aztec.js/account';
|
|
2
2
|
import { type CompleteAddress } from '@aztec/circuit-types';
|
|
3
|
+
import { type NodeInfo } from '@aztec/circuits.js';
|
|
3
4
|
import { type ContractArtifact } from '@aztec/foundation/abi';
|
|
4
|
-
import { type NodeInfo } from '@aztec/types/interfaces';
|
|
5
5
|
/**
|
|
6
6
|
* Base class for implementing an account contract. Requires that the account uses the
|
|
7
7
|
* default entrypoint method signature.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account_contract.d.ts","sourceRoot":"","sources":["../../src/defaults/account_contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,KAAK,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAChH,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"account_contract.d.ts","sourceRoot":"","sources":["../../src/defaults/account_contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,KAAK,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAChH,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAI9D;;;GAGG;AACH,8BAAsB,sBAAuB,YAAW,eAAe;IAIzD,OAAO,CAAC,QAAQ;IAH5B,QAAQ,CAAC,sBAAsB,CAAC,OAAO,EAAE,eAAe,GAAG,mBAAmB;IAC9E,QAAQ,CAAC,iBAAiB,IAAI,GAAG,EAAE,GAAG,SAAS;gBAE3B,QAAQ,EAAE,gBAAgB;IAE9C,mBAAmB,IAAI,gBAAgB;IAIvC,YAAY,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,GAAG,gBAAgB;CAG7E"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { type AccountInterface, type AuthWitnessProvider } from '@aztec/aztec.js/account';
|
|
2
2
|
import { type ExecutionRequestInit } from '@aztec/aztec.js/entrypoint';
|
|
3
3
|
import { type AuthWitness, type TxExecutionRequest } from '@aztec/circuit-types';
|
|
4
|
-
import { type AztecAddress, type CompleteAddress, Fr } from '@aztec/circuits.js';
|
|
5
|
-
import { type NodeInfo } from '@aztec/types/interfaces';
|
|
4
|
+
import { type AztecAddress, type CompleteAddress, Fr, type NodeInfo } from '@aztec/circuits.js';
|
|
6
5
|
/**
|
|
7
6
|
* Default implementation for an account interface. Requires that the account uses the default
|
|
8
7
|
* entrypoint signature, which accept an AppPayload and a FeePayload as defined in noir-libs/aztec-noir/src/entrypoint module
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account_interface.d.ts","sourceRoot":"","sources":["../../src/defaults/account_interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC1F,OAAO,EAA4B,KAAK,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACjG,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,eAAe,EAAE,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"account_interface.d.ts","sourceRoot":"","sources":["../../src/defaults/account_interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC1F,OAAO,EAA4B,KAAK,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACjG,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,eAAe,EAAE,EAAE,EAAE,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAGhG;;;GAGG;AACH,qBAAa,uBAAwB,YAAW,gBAAgB;IAM5D,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,OAAO;IANjB,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,OAAO,CAAK;gBAGV,mBAAmB,EAAE,mBAAmB,EACxC,OAAO,EAAE,eAAe,EAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,GAAG,iBAAiB,CAAC;IAY3D,wBAAwB,CAAC,SAAS,EAAE,oBAAoB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAItF,aAAa,CAAC,WAAW,EAAE,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IAIpD,kBAAkB,IAAI,eAAe;IAIrC,UAAU,IAAI,YAAY;IAI1B,UAAU,IAAI,EAAE;IAIhB,UAAU,IAAI,EAAE;CAGjB"}
|
|
@@ -31,4 +31,4 @@ export class DefaultAccountInterface {
|
|
|
31
31
|
return this.version;
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudF9pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVmYXVsdHMvYWNjb3VudF9pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUEyQyxFQUFFLEVBQWlCLE1BQU0sb0JBQW9CLENBQUM7QUFDaEcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFdEU7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLHVCQUF1QjtJQUtsQyxZQUNVLG1CQUF3QyxFQUN4QyxPQUF3QixFQUNoQyxRQUF5RDtRQUZqRCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBR2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSx3QkFBd0IsQ0FDNUMsT0FBTyxDQUFDLE9BQU8sRUFDZixtQkFBbUIsRUFDbkIsUUFBUSxDQUFDLFNBQVMsRUFDbEIsUUFBUSxDQUFDLGVBQWUsQ0FDekIsQ0FBQztRQUNGLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxTQUErQjtRQUN0RCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsd0JBQXdCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELGFBQWEsQ0FBQyxXQUFlO1FBQzNCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7SUFDOUIsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../src/testing/configuration.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../src/testing/configuration.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,0BAA0B,EAAoB,MAAM,wBAAwB,CAAC;AAC3F,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAI9C,eAAO,MAAM,wBAAwB,MAIpC,CAAC;AAEF,eAAO,MAAM,4BAA4B,gCAExC,CAAC;AAEF,eAAO,MAAM,yBAAyB,gCAA+B,CAAC;AAEtE,eAAO,MAAM,0BAA0B,MAA8B,CAAC;AAEtE;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,0BAA0B,EAAE,CAAC,CAM7F;AAED;;;;GAIG;AACH,wBAAsB,8BAA8B,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,0BAA0B,EAAE,CAAC,CAgBpG;AAED;;;;GAIG;AACH,wBAAsB,yBAAyB,CAAC,GAAG,EAAE,GAAG;;;KAiCvD"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { generatePublicKey } from '@aztec/aztec.js';
|
|
2
|
+
import { registerContractClass } from '@aztec/aztec.js/deployment';
|
|
3
|
+
import { DefaultMultiCallEntrypoint } from '@aztec/aztec.js/entrypoint';
|
|
4
|
+
import { SignerlessWallet } from '@aztec/aztec.js/wallet';
|
|
2
5
|
import { deriveMasterIncomingViewingSecretKey, deriveSigningKey } from '@aztec/circuits.js/keys';
|
|
3
6
|
import { Fr } from '@aztec/foundation/fields';
|
|
4
|
-
import { getSchnorrAccount } from '../schnorr/index.js';
|
|
7
|
+
import { SchnorrAccountContractArtifact, getSchnorrAccount } from '../schnorr/index.js';
|
|
5
8
|
export const INITIAL_TEST_SECRET_KEYS = [
|
|
6
9
|
Fr.fromString('2153536ff6628eee01cf4024889ff977a18d9fa61d0e414422f7681cf085c281'),
|
|
7
10
|
Fr.fromString('aebd1b4be76efa44f5ee655c20bf9ea60f7ae44b9a7fd1fd9f189c7a0b0cdae'),
|
|
@@ -50,26 +53,26 @@ export async function deployInitialTestAccounts(pxe) {
|
|
|
50
53
|
secretKey,
|
|
51
54
|
};
|
|
52
55
|
});
|
|
56
|
+
// Register contract class to avoid duplicate nullifier errors
|
|
57
|
+
const { l1ChainId: chainId, protocolVersion } = await pxe.getNodeInfo();
|
|
58
|
+
const deployWallet = new SignerlessWallet(pxe, new DefaultMultiCallEntrypoint(chainId, protocolVersion));
|
|
59
|
+
await (await registerContractClass(deployWallet, SchnorrAccountContractArtifact)).send().wait();
|
|
53
60
|
// Attempt to get as much parallelism as possible
|
|
54
|
-
const
|
|
61
|
+
const deployTxs = await Promise.all(accounts.map(async (x) => {
|
|
55
62
|
const deployMethod = await x.account.getDeployMethod();
|
|
56
|
-
await deployMethod.
|
|
63
|
+
const tx = await deployMethod.prove({
|
|
57
64
|
contractAddressSalt: x.account.salt,
|
|
58
|
-
skipClassRegistration: true,
|
|
59
|
-
skipPublicDeployment: true,
|
|
60
65
|
universalDeploy: true,
|
|
61
66
|
});
|
|
62
|
-
|
|
63
|
-
return deployMethod;
|
|
67
|
+
return tx;
|
|
64
68
|
}));
|
|
65
69
|
// Send tx together to try and get them in the same rollup
|
|
66
|
-
const sentTxs =
|
|
67
|
-
return
|
|
70
|
+
const sentTxs = deployTxs.map(tx => {
|
|
71
|
+
return tx.send();
|
|
68
72
|
});
|
|
69
|
-
await Promise.all(sentTxs.map(
|
|
70
|
-
|
|
71
|
-
return tx.wait({ wallet });
|
|
73
|
+
await Promise.all(sentTxs.map(tx => {
|
|
74
|
+
return tx.wait();
|
|
72
75
|
}));
|
|
73
76
|
return accounts;
|
|
74
77
|
}
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0aW5nL2NvbmZpZ3VyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEUsT0FBTyxFQUFtQyxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTNGLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU5QyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV4RixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRztJQUN0QyxFQUFFLENBQUMsVUFBVSxDQUFDLGtFQUFrRSxDQUFDO0lBQ2pGLEVBQUUsQ0FBQyxVQUFVLENBQUMsaUVBQWlFLENBQUM7SUFDaEYsRUFBRSxDQUFDLFVBQVUsQ0FBQyxrRUFBa0UsQ0FBQztDQUNsRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsd0JBQXdCLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQ25GLG9DQUFvQyxDQUFDLFNBQVMsQ0FBQyxDQUNoRCxDQUFDO0FBQ0Ysa0hBQWtIO0FBQ2xILE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLDRCQUE0QixDQUFDO0FBRXRFLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUV0RTs7OztH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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create_account.d.ts","sourceRoot":"","sources":["../../src/testing/create_account.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,EAAE,EAAoB,MAAM,oBAAoB,CAAC;AAI1D;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAI3E;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,GAAG,EACR,gBAAgB,SAAI,EACpB,OAAO,GAAE,EAAE,EAAO,EAClB,QAAQ,GAAE,QAA4B,GACrC,OAAO,CAAC,0BAA0B,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"create_account.d.ts","sourceRoot":"","sources":["../../src/testing/create_account.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,EAAE,EAAoB,MAAM,oBAAoB,CAAC;AAI1D;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAI3E;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,GAAG,EACR,gBAAgB,SAAI,EACpB,OAAO,GAAE,EAAE,EAAO,EAClB,QAAQ,GAAE,QAA4B,GACrC,OAAO,CAAC,0BAA0B,EAAE,CAAC,CA0BvC"}
|
|
@@ -19,7 +19,6 @@ export function createAccount(pxe) {
|
|
|
19
19
|
* @returns The created account wallets.
|
|
20
20
|
*/
|
|
21
21
|
export async function createAccounts(pxe, numberOfAccounts = 1, secrets = [], waitOpts = { interval: 0.1 }) {
|
|
22
|
-
const accounts = [];
|
|
23
22
|
if (secrets.length == 0) {
|
|
24
23
|
secrets = Array.from({ length: numberOfAccounts }, () => Fr.random());
|
|
25
24
|
}
|
|
@@ -27,23 +26,20 @@ export async function createAccounts(pxe, numberOfAccounts = 1, secrets = [], wa
|
|
|
27
26
|
throw new Error('Secrets array must be empty or have the same length as the number of accounts');
|
|
28
27
|
}
|
|
29
28
|
// Prepare deployments
|
|
30
|
-
|
|
29
|
+
const accountsAndDeployments = await Promise.all(secrets.map(async (secret) => {
|
|
31
30
|
const signingKey = deriveSigningKey(secret);
|
|
32
31
|
const account = getSchnorrAccount(pxe, secret, signingKey);
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
// accounts being deployed in the same block because it makes the deploy() method basically instant.
|
|
36
|
-
await account.getDeployMethod().then(d => d.prove({
|
|
32
|
+
const deployMethod = await account.getDeployMethod();
|
|
33
|
+
const provenTx = await deployMethod.prove({
|
|
37
34
|
contractAddressSalt: account.salt,
|
|
38
35
|
skipClassRegistration: true,
|
|
39
36
|
skipPublicDeployment: true,
|
|
40
37
|
universalDeploy: true,
|
|
41
|
-
})
|
|
42
|
-
|
|
43
|
-
}
|
|
38
|
+
});
|
|
39
|
+
return { account, provenTx };
|
|
40
|
+
}));
|
|
44
41
|
// Send them and await them to be mined
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
return Promise.all(accounts.map(account => account.getWallet()));
|
|
42
|
+
await Promise.all(accountsAndDeployments.map(({ provenTx }) => provenTx.send().wait(waitOpts)));
|
|
43
|
+
return Promise.all(accountsAndDeployments.map(({ account }) => account.getWallet()));
|
|
48
44
|
}
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlX2FjY291bnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdGluZy9jcmVhdGVfYWNjb3VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsRUFBRSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFMUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFeEQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQUMsR0FBUTtJQUNwQyxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDOUIsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0MsT0FBTyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0FBQ25FLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxjQUFjLENBQ2xDLEdBQVEsRUFDUixnQkFBZ0IsR0FBRyxDQUFDLEVBQ3BCLFVBQWdCLEVBQUUsRUFDbEIsV0FBcUIsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFO0lBRXRDLElBQUksT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUN4QixPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7U0FBTSxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssZ0JBQWdCLEVBQUUsQ0FBQztRQUNyRSxNQUFNLElBQUksS0FBSyxDQUFDLCtFQUErRSxDQUFDLENBQUM7SUFDbkcsQ0FBQztJQUVELHNCQUFzQjtJQUN0QixNQUFNLHNCQUFzQixHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDOUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUMsTUFBTSxFQUFDLEVBQUU7UUFDekIsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUMsTUFBTSxPQUFPLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMzRCxNQUFNLFlBQVksR0FBRyxNQUFNLE9BQU8sQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNyRCxNQUFNLFFBQVEsR0FBRyxNQUFNLFlBQVksQ0FBQyxLQUFLLENBQUM7WUFDeEMsbUJBQW1CLEVBQUUsT0FBTyxDQUFDLElBQUk7WUFDakMscUJBQXFCLEVBQUUsSUFBSTtZQUMzQixvQkFBb0IsRUFBRSxJQUFJO1lBQzFCLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztRQUNILE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLENBQUM7SUFDL0IsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUVGLHVDQUF1QztJQUN2QyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEcsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDdkYsQ0FBQyJ9
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@aztec/accounts",
|
|
3
3
|
"homepage": "https://github.com/AztecProtocol/aztec-packages/tree/master/yarn-project/accounts",
|
|
4
4
|
"description": "Implementation of sample account contracts for Aztec Network",
|
|
5
|
-
"version": "0.
|
|
5
|
+
"version": "0.58.0",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"exports": {
|
|
8
8
|
"./defaults": "./dest/defaults/index.js",
|
|
@@ -52,6 +52,9 @@
|
|
|
52
52
|
"parser": {
|
|
53
53
|
"syntax": "typescript",
|
|
54
54
|
"decorators": true
|
|
55
|
+
},
|
|
56
|
+
"transform": {
|
|
57
|
+
"decoratorVersion": "2022-03"
|
|
55
58
|
}
|
|
56
59
|
}
|
|
57
60
|
}
|
|
@@ -70,13 +73,13 @@
|
|
|
70
73
|
]
|
|
71
74
|
},
|
|
72
75
|
"dependencies": {
|
|
73
|
-
"@aztec/aztec.js": "0.
|
|
74
|
-
"@aztec/circuit-types": "0.
|
|
75
|
-
"@aztec/circuits.js": "0.
|
|
76
|
-
"@aztec/entrypoints": "0.
|
|
77
|
-
"@aztec/ethereum": "0.
|
|
78
|
-
"@aztec/foundation": "0.
|
|
79
|
-
"@aztec/types": "0.
|
|
76
|
+
"@aztec/aztec.js": "0.58.0",
|
|
77
|
+
"@aztec/circuit-types": "0.58.0",
|
|
78
|
+
"@aztec/circuits.js": "0.58.0",
|
|
79
|
+
"@aztec/entrypoints": "0.58.0",
|
|
80
|
+
"@aztec/ethereum": "0.58.0",
|
|
81
|
+
"@aztec/foundation": "0.58.0",
|
|
82
|
+
"@aztec/types": "0.58.0",
|
|
80
83
|
"tslib": "^2.4.0"
|
|
81
84
|
},
|
|
82
85
|
"devDependencies": {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type AccountContract, type AccountInterface, type AuthWitnessProvider } from '@aztec/aztec.js/account';
|
|
2
2
|
import { type CompleteAddress } from '@aztec/circuit-types';
|
|
3
|
+
import { type NodeInfo } from '@aztec/circuits.js';
|
|
3
4
|
import { type ContractArtifact } from '@aztec/foundation/abi';
|
|
4
|
-
import { type NodeInfo } from '@aztec/types/interfaces';
|
|
5
5
|
|
|
6
6
|
import { DefaultAccountInterface } from '../defaults/account_interface.js';
|
|
7
7
|
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { type AccountInterface, type AuthWitnessProvider } from '@aztec/aztec.js/account';
|
|
2
2
|
import { type EntrypointInterface, type ExecutionRequestInit } from '@aztec/aztec.js/entrypoint';
|
|
3
3
|
import { type AuthWitness, type TxExecutionRequest } from '@aztec/circuit-types';
|
|
4
|
-
import { type AztecAddress, type CompleteAddress, Fr } from '@aztec/circuits.js';
|
|
4
|
+
import { type AztecAddress, type CompleteAddress, Fr, type NodeInfo } from '@aztec/circuits.js';
|
|
5
5
|
import { DefaultAccountEntrypoint } from '@aztec/entrypoints/account';
|
|
6
|
-
import { type NodeInfo } from '@aztec/types/interfaces';
|
|
7
6
|
|
|
8
7
|
/**
|
|
9
8
|
* Default implementation for an account interface. Requires that the account uses the default
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { generatePublicKey } from '@aztec/aztec.js';
|
|
2
|
-
import {
|
|
2
|
+
import { registerContractClass } from '@aztec/aztec.js/deployment';
|
|
3
|
+
import { DefaultMultiCallEntrypoint } from '@aztec/aztec.js/entrypoint';
|
|
4
|
+
import { type AccountWalletWithSecretKey, SignerlessWallet } from '@aztec/aztec.js/wallet';
|
|
3
5
|
import { type PXE } from '@aztec/circuit-types';
|
|
4
6
|
import { deriveMasterIncomingViewingSecretKey, deriveSigningKey } from '@aztec/circuits.js/keys';
|
|
5
7
|
import { Fr } from '@aztec/foundation/fields';
|
|
6
8
|
|
|
7
|
-
import { getSchnorrAccount } from '../schnorr/index.js';
|
|
9
|
+
import { SchnorrAccountContractArtifact, getSchnorrAccount } from '../schnorr/index.js';
|
|
8
10
|
|
|
9
11
|
export const INITIAL_TEST_SECRET_KEYS = [
|
|
10
12
|
Fr.fromString('2153536ff6628eee01cf4024889ff977a18d9fa61d0e414422f7681cf085c281'),
|
|
@@ -69,28 +71,28 @@ export async function deployInitialTestAccounts(pxe: PXE) {
|
|
|
69
71
|
secretKey,
|
|
70
72
|
};
|
|
71
73
|
});
|
|
74
|
+
// Register contract class to avoid duplicate nullifier errors
|
|
75
|
+
const { l1ChainId: chainId, protocolVersion } = await pxe.getNodeInfo();
|
|
76
|
+
const deployWallet = new SignerlessWallet(pxe, new DefaultMultiCallEntrypoint(chainId, protocolVersion));
|
|
77
|
+
await (await registerContractClass(deployWallet, SchnorrAccountContractArtifact)).send().wait();
|
|
72
78
|
// Attempt to get as much parallelism as possible
|
|
73
|
-
const
|
|
79
|
+
const deployTxs = await Promise.all(
|
|
74
80
|
accounts.map(async x => {
|
|
75
81
|
const deployMethod = await x.account.getDeployMethod();
|
|
76
|
-
await deployMethod.
|
|
82
|
+
const tx = await deployMethod.prove({
|
|
77
83
|
contractAddressSalt: x.account.salt,
|
|
78
|
-
skipClassRegistration: true,
|
|
79
|
-
skipPublicDeployment: true,
|
|
80
84
|
universalDeploy: true,
|
|
81
85
|
});
|
|
82
|
-
|
|
83
|
-
return deployMethod;
|
|
86
|
+
return tx;
|
|
84
87
|
}),
|
|
85
88
|
);
|
|
86
89
|
// Send tx together to try and get them in the same rollup
|
|
87
|
-
const sentTxs =
|
|
88
|
-
return
|
|
90
|
+
const sentTxs = deployTxs.map(tx => {
|
|
91
|
+
return tx.send();
|
|
89
92
|
});
|
|
90
93
|
await Promise.all(
|
|
91
|
-
sentTxs.map(
|
|
92
|
-
|
|
93
|
-
return tx.wait({ wallet });
|
|
94
|
+
sentTxs.map(tx => {
|
|
95
|
+
return tx.wait();
|
|
94
96
|
}),
|
|
95
97
|
);
|
|
96
98
|
return accounts;
|
|
@@ -30,8 +30,6 @@ export async function createAccounts(
|
|
|
30
30
|
secrets: Fr[] = [],
|
|
31
31
|
waitOpts: WaitOpts = { interval: 0.1 },
|
|
32
32
|
): Promise<AccountWalletWithSecretKey[]> {
|
|
33
|
-
const accounts = [];
|
|
34
|
-
|
|
35
33
|
if (secrets.length == 0) {
|
|
36
34
|
secrets = Array.from({ length: numberOfAccounts }, () => Fr.random());
|
|
37
35
|
} else if (secrets.length > 0 && secrets.length !== numberOfAccounts) {
|
|
@@ -39,25 +37,22 @@ export async function createAccounts(
|
|
|
39
37
|
}
|
|
40
38
|
|
|
41
39
|
// Prepare deployments
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
await account.getDeployMethod().then(d =>
|
|
49
|
-
d.prove({
|
|
40
|
+
const accountsAndDeployments = await Promise.all(
|
|
41
|
+
secrets.map(async secret => {
|
|
42
|
+
const signingKey = deriveSigningKey(secret);
|
|
43
|
+
const account = getSchnorrAccount(pxe, secret, signingKey);
|
|
44
|
+
const deployMethod = await account.getDeployMethod();
|
|
45
|
+
const provenTx = await deployMethod.prove({
|
|
50
46
|
contractAddressSalt: account.salt,
|
|
51
47
|
skipClassRegistration: true,
|
|
52
48
|
skipPublicDeployment: true,
|
|
53
49
|
universalDeploy: true,
|
|
54
|
-
})
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
50
|
+
});
|
|
51
|
+
return { account, provenTx };
|
|
52
|
+
}),
|
|
53
|
+
);
|
|
58
54
|
|
|
59
55
|
// Send them and await them to be mined
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
return Promise.all(accounts.map(account => account.getWallet()));
|
|
56
|
+
await Promise.all(accountsAndDeployments.map(({ provenTx }) => provenTx.send().wait(waitOpts)));
|
|
57
|
+
return Promise.all(accountsAndDeployments.map(({ account }) => account.getWallet()));
|
|
63
58
|
}
|