@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.
@@ -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,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAIxD;;;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
+ {"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,MAAM,oBAAoB,CAAC;AAEjF,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD;;;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"}
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudF9pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVmYXVsdHMvYWNjb3VudF9pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUEyQyxFQUFFLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUd0RTs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sdUJBQXVCO0lBS2xDLFlBQ1UsbUJBQXdDLEVBQ3hDLE9BQXdCLEVBQ2hDLFFBQXlEO1FBRmpELHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFHaEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLHdCQUF3QixDQUM1QyxPQUFPLENBQUMsT0FBTyxFQUNmLG1CQUFtQixFQUNuQixRQUFRLENBQUMsU0FBUyxFQUNsQixRQUFRLENBQUMsZUFBZSxDQUN6QixDQUFDO1FBQ0YsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELHdCQUF3QixDQUFDLFNBQStCO1FBQ3RELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyx3QkFBd0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsYUFBYSxDQUFDLFdBQWU7UUFDM0IsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztJQUM5QixDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0NBQ0YifQ==
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudF9pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVmYXVsdHMvYWNjb3VudF9pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUEyQyxFQUFFLEVBQWlCLE1BQU0sb0JBQW9CLENBQUM7QUFDaEcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFdEU7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLHVCQUF1QjtJQUtsQyxZQUNVLG1CQUF3QyxFQUN4QyxPQUF3QixFQUNoQyxRQUF5RDtRQUZqRCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBR2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSx3QkFBd0IsQ0FDNUMsT0FBTyxDQUFDLE9BQU8sRUFDZixtQkFBbUIsRUFDbkIsUUFBUSxDQUFDLFNBQVMsRUFDbEIsUUFBUSxDQUFDLGVBQWUsQ0FDekIsQ0FBQztRQUNGLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxTQUErQjtRQUN0RCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsd0JBQXdCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELGFBQWEsQ0FBQyxXQUFlO1FBQzNCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7SUFDOUIsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../src/testing/configuration.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACzE,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
+ {"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 deployMethods = await Promise.all(accounts.map(async (x) => {
61
+ const deployTxs = await Promise.all(accounts.map(async (x) => {
55
62
  const deployMethod = await x.account.getDeployMethod();
56
- await deployMethod.create({
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
- await deployMethod.prove({});
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 = deployMethods.map(dm => {
67
- return dm.send();
70
+ const sentTxs = deployTxs.map(tx => {
71
+ return tx.send();
68
72
  });
69
- await Promise.all(sentTxs.map(async (tx, i) => {
70
- const wallet = await accounts[i].account.getWallet();
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0aW5nL2NvbmZpZ3VyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHcEQsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDakcsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTlDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhELE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHO0lBQ3RDLEVBQUUsQ0FBQyxVQUFVLENBQUMsa0VBQWtFLENBQUM7SUFDakYsRUFBRSxDQUFDLFVBQVUsQ0FBQyxpRUFBaUUsQ0FBQztJQUNoRixFQUFFLENBQUMsVUFBVSxDQUFDLGtFQUFrRSxDQUFDO0NBQ2xGLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyx3QkFBd0IsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FDbkYsb0NBQW9DLENBQUMsU0FBUyxDQUFDLENBQ2hELENBQUM7QUFDRixrSEFBa0g7QUFDbEgsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsNEJBQTRCLENBQUM7QUFFdEUsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBRXRFOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsNkJBQTZCLENBQUMsR0FBUTtJQUNwRCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQ2hCLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUNoRCxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUs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
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,CA+BvC"}
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
- for (const secret of secrets) {
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
- // Unfortunately the function below is not stateless and we call it here because it takes a long time to run and
34
- // the results get stored within the account object. By calling it here we increase the probability of all the
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
- accounts.push(account);
43
- }
38
+ });
39
+ return { account, provenTx };
40
+ }));
44
41
  // Send them and await them to be mined
45
- const txs = await Promise.all(accounts.map(account => account.deploy()));
46
- await Promise.all(txs.map(tx => tx.wait(waitOpts)));
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlX2FjY291bnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdGluZy9jcmVhdGVfYWNjb3VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsRUFBRSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFMUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFeEQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQUMsR0FBUTtJQUNwQyxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDOUIsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0MsT0FBTyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0FBQ25FLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxjQUFjLENBQ2xDLEdBQVEsRUFDUixnQkFBZ0IsR0FBRyxDQUFDLEVBQ3BCLFVBQWdCLEVBQUUsRUFDbEIsV0FBcUIsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFO0lBRXRDLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUVwQixJQUFJLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDeEIsT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN4RSxDQUFDO1NBQU0sSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLGdCQUFnQixFQUFFLENBQUM7UUFDckUsTUFBTSxJQUFJLEtBQUssQ0FBQywrRUFBK0UsQ0FBQyxDQUFDO0lBQ25HLENBQUM7SUFFRCxzQkFBc0I7SUFDdEIsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM3QixNQUFNLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QyxNQUFNLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzNELGdIQUFnSDtRQUNoSCw4R0FBOEc7UUFDOUcsb0dBQW9HO1FBQ3BHLE1BQU0sT0FBTyxDQUFDLGVBQWUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUN2QyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQ04sbUJBQW1CLEVBQUUsT0FBTyxDQUFDLElBQUk7WUFDakMscUJBQXFCLEVBQUUsSUFBSTtZQUMzQixvQkFBb0IsRUFBRSxJQUFJO1lBQzFCLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FDSCxDQUFDO1FBQ0YsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsdUNBQXVDO0lBQ3ZDLE1BQU0sR0FBRyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN6RSxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BELE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNuRSxDQUFDIn0=
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.56.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.56.0",
74
- "@aztec/circuit-types": "0.56.0",
75
- "@aztec/circuits.js": "0.56.0",
76
- "@aztec/entrypoints": "0.56.0",
77
- "@aztec/ethereum": "0.56.0",
78
- "@aztec/foundation": "0.56.0",
79
- "@aztec/types": "0.56.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 { type AccountWalletWithSecretKey } from '@aztec/aztec.js/wallet';
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 deployMethods = await Promise.all(
79
+ const deployTxs = await Promise.all(
74
80
  accounts.map(async x => {
75
81
  const deployMethod = await x.account.getDeployMethod();
76
- await deployMethod.create({
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
- await deployMethod.prove({});
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 = deployMethods.map(dm => {
88
- return dm.send();
90
+ const sentTxs = deployTxs.map(tx => {
91
+ return tx.send();
89
92
  });
90
93
  await Promise.all(
91
- sentTxs.map(async (tx, i) => {
92
- const wallet = await accounts[i].account.getWallet();
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
- for (const secret of secrets) {
43
- const signingKey = deriveSigningKey(secret);
44
- const account = getSchnorrAccount(pxe, secret, signingKey);
45
- // Unfortunately the function below is not stateless and we call it here because it takes a long time to run and
46
- // the results get stored within the account object. By calling it here we increase the probability of all the
47
- // accounts being deployed in the same block because it makes the deploy() method basically instant.
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
- accounts.push(account);
57
- }
50
+ });
51
+ return { account, provenTx };
52
+ }),
53
+ );
58
54
 
59
55
  // Send them and await them to be mined
60
- const txs = await Promise.all(accounts.map(account => account.deploy()));
61
- await Promise.all(txs.map(tx => tx.wait(waitOpts)));
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
  }