@aztec/pxe 0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2 → 0.75.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.
Files changed (101) hide show
  1. package/dest/bin/index.d.ts +3 -0
  2. package/dest/bin/index.d.ts.map +1 -0
  3. package/dest/bin/index.js +5 -3
  4. package/dest/config/index.d.ts +46 -0
  5. package/dest/config/index.d.ts.map +1 -0
  6. package/dest/config/index.js +21 -18
  7. package/dest/config/package_info.d.ts +5 -0
  8. package/dest/config/package_info.d.ts.map +1 -0
  9. package/dest/config/package_info.js +2 -4
  10. package/dest/contract_data_oracle/index.d.ts +104 -0
  11. package/dest/contract_data_oracle/index.d.ts.map +1 -0
  12. package/dest/contract_data_oracle/index.js +79 -69
  13. package/dest/contract_data_oracle/private_functions_tree.d.ts +65 -0
  14. package/dest/contract_data_oracle/private_functions_tree.d.ts.map +1 -0
  15. package/dest/contract_data_oracle/private_functions_tree.js +50 -44
  16. package/dest/database/contracts/contract_artifact_db.d.ts +20 -0
  17. package/dest/database/contracts/contract_artifact_db.d.ts.map +1 -0
  18. package/dest/database/contracts/contract_artifact_db.js +2 -3
  19. package/dest/database/contracts/contract_instance_db.d.ts +19 -0
  20. package/dest/database/contracts/contract_instance_db.d.ts.map +1 -0
  21. package/dest/database/contracts/contract_instance_db.js +2 -3
  22. package/dest/database/index.d.ts +3 -0
  23. package/dest/database/index.d.ts.map +1 -0
  24. package/dest/database/index.js +1 -0
  25. package/dest/database/kv_pxe_database.d.ts +55 -0
  26. package/dest/database/kv_pxe_database.d.ts.map +1 -0
  27. package/dest/database/kv_pxe_database.js +259 -243
  28. package/dest/database/note_dao.d.ts +103 -0
  29. package/dest/database/note_dao.d.ts.map +1 -0
  30. package/dest/database/note_dao.js +43 -28
  31. package/dest/database/outgoing_note_dao.d.ts +73 -0
  32. package/dest/database/outgoing_note_dao.d.ts.map +1 -0
  33. package/dest/database/outgoing_note_dao.js +34 -20
  34. package/dest/database/pxe_database.d.ts +216 -0
  35. package/dest/database/pxe_database.d.ts.map +1 -0
  36. package/dest/database/pxe_database.js +2 -4
  37. package/dest/database/pxe_database_test_suite.d.ts +7 -0
  38. package/dest/database/pxe_database_test_suite.d.ts.map +1 -0
  39. package/dest/database/pxe_database_test_suite.js +151 -296
  40. package/dest/index.d.ts +15 -0
  41. package/dest/index.d.ts.map +1 -0
  42. package/dest/index.js +1 -0
  43. package/dest/kernel_oracle/index.d.ts +34 -0
  44. package/dest/kernel_oracle/index.d.ts.map +1 -0
  45. package/dest/kernel_oracle/index.js +6 -9
  46. package/dest/kernel_prover/hints/build_private_kernel_reset_private_inputs.d.ts +28 -0
  47. package/dest/kernel_prover/hints/build_private_kernel_reset_private_inputs.d.ts.map +1 -0
  48. package/dest/kernel_prover/hints/build_private_kernel_reset_private_inputs.js +66 -68
  49. package/dest/kernel_prover/hints/index.d.ts +2 -0
  50. package/dest/kernel_prover/hints/index.d.ts.map +1 -0
  51. package/dest/kernel_prover/hints/index.js +1 -0
  52. package/dest/kernel_prover/index.d.ts +3 -0
  53. package/dest/kernel_prover/index.d.ts.map +1 -0
  54. package/dest/kernel_prover/index.js +1 -0
  55. package/dest/kernel_prover/kernel_prover.d.ts +38 -0
  56. package/dest/kernel_prover/kernel_prover.d.ts.map +1 -0
  57. package/dest/kernel_prover/kernel_prover.js +65 -60
  58. package/dest/kernel_prover/proving_data_oracle.d.ts +65 -0
  59. package/dest/kernel_prover/proving_data_oracle.d.ts.map +1 -0
  60. package/dest/kernel_prover/proving_data_oracle.js +2 -4
  61. package/dest/note_decryption_utils/add_public_values_to_payload.d.ts +10 -0
  62. package/dest/note_decryption_utils/add_public_values_to_payload.d.ts.map +1 -0
  63. package/dest/note_decryption_utils/add_public_values_to_payload.js +9 -8
  64. package/dest/pxe_http/index.d.ts +2 -0
  65. package/dest/pxe_http/index.d.ts.map +1 -0
  66. package/dest/pxe_http/index.js +1 -0
  67. package/dest/pxe_http/pxe_http_server.d.ts +16 -0
  68. package/dest/pxe_http/pxe_http_server.d.ts.map +1 -0
  69. package/dest/pxe_http/pxe_http_server.js +6 -8
  70. package/dest/pxe_service/error_enriching.d.ts +11 -0
  71. package/dest/pxe_service/error_enriching.d.ts.map +1 -0
  72. package/dest/pxe_service/error_enriching.js +13 -10
  73. package/dest/pxe_service/index.d.ts +4 -0
  74. package/dest/pxe_service/index.d.ts.map +1 -0
  75. package/dest/pxe_service/index.js +1 -0
  76. package/dest/pxe_service/pxe_service.d.ts +98 -0
  77. package/dest/pxe_service/pxe_service.d.ts.map +1 -0
  78. package/dest/pxe_service/pxe_service.js +290 -282
  79. package/dest/pxe_service/test/pxe_test_suite.d.ts +3 -0
  80. package/dest/pxe_service/test/pxe_test_suite.d.ts.map +1 -0
  81. package/dest/pxe_service/test/pxe_test_suite.js +27 -40
  82. package/dest/simulator/index.d.ts +10 -0
  83. package/dest/simulator/index.d.ts.map +1 -0
  84. package/dest/simulator/index.js +3 -1
  85. package/dest/simulator_oracle/index.d.ts +129 -0
  86. package/dest/simulator_oracle/index.d.ts.map +1 -0
  87. package/dest/simulator_oracle/index.js +231 -266
  88. package/dest/simulator_oracle/tagging_utils.d.ts +16 -0
  89. package/dest/simulator_oracle/tagging_utils.d.ts.map +1 -0
  90. package/dest/simulator_oracle/tagging_utils.js +6 -4
  91. package/dest/synchronizer/index.d.ts +2 -0
  92. package/dest/synchronizer/index.d.ts.map +1 -0
  93. package/dest/synchronizer/index.js +1 -0
  94. package/dest/synchronizer/synchronizer.d.ts +30 -0
  95. package/dest/synchronizer/synchronizer.d.ts.map +1 -0
  96. package/dest/synchronizer/synchronizer.js +42 -42
  97. package/dest/utils/create_pxe_service.d.ts +16 -0
  98. package/dest/utils/create_pxe_service.d.ts.map +1 -0
  99. package/dest/utils/create_pxe_service.js +9 -9
  100. package/package.json +15 -15
  101. package/src/pxe_service/pxe_service.ts +10 -5
@@ -0,0 +1,3 @@
1
+ import { type PXE } from '@aztec/circuit-types';
2
+ export declare const pxeTestSuite: (testName: string, pxeSetup: () => Promise<PXE>) => void;
3
+ //# sourceMappingURL=pxe_test_suite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pxe_test_suite.d.ts","sourceRoot":"","sources":["../../../src/pxe_service/test/pxe_test_suite.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,GAAG,EAIT,MAAM,sBAAsB,CAAC;AAK9B,eAAO,MAAM,YAAY,aAAc,MAAM,YAAY,MAAM,QAAQ,GAAG,CAAC,SAwG1E,CAAC"}
@@ -1,13 +1,13 @@
1
- import { randomContractArtifact, randomContractInstanceWithAddress, randomDeployedContract } from '@aztec/circuit-types';
1
+ import { randomContractArtifact, randomContractInstanceWithAddress, randomDeployedContract, } from '@aztec/circuit-types';
2
2
  import { AztecAddress, Fr, INITIAL_L2_BLOCK_NUM, getContractClassFromArtifact } from '@aztec/circuits.js';
3
3
  import omit from 'lodash.omit';
4
- export const pxeTestSuite = (testName, pxeSetup)=>{
5
- describe(testName, ()=>{
4
+ export const pxeTestSuite = (testName, pxeSetup) => {
5
+ describe(testName, () => {
6
6
  let pxe;
7
- beforeAll(async ()=>{
7
+ beforeAll(async () => {
8
8
  pxe = await pxeSetup();
9
- }, 120_000);
10
- it('registers an account and returns it as an account only and not as a recipient', async ()=>{
9
+ }, 120000);
10
+ it('registers an account and returns it as an account only and not as a recipient', async () => {
11
11
  const randomSecretKey = Fr.random();
12
12
  const randomPartialAddress = Fr.random();
13
13
  const completeAddress = await pxe.registerAccount(randomSecretKey, randomPartialAddress);
@@ -15,80 +15,66 @@ export const pxeTestSuite = (testName, pxeSetup)=>{
15
15
  const accounts = await pxe.getRegisteredAccounts();
16
16
  expect(accounts).toContainEqual(completeAddress);
17
17
  });
18
- it('does not throw when registering the same account twice (just ignores the second attempt)', async ()=>{
18
+ it('does not throw when registering the same account twice (just ignores the second attempt)', async () => {
19
19
  const randomSecretKey = Fr.random();
20
20
  const randomPartialAddress = Fr.random();
21
21
  await pxe.registerAccount(randomSecretKey, randomPartialAddress);
22
22
  await pxe.registerAccount(randomSecretKey, randomPartialAddress);
23
23
  });
24
- it('successfully adds a contract', async ()=>{
25
- const contracts = await Promise.all([
26
- randomDeployedContract(),
27
- randomDeployedContract()
28
- ]);
29
- for (const contract of contracts){
24
+ it('successfully adds a contract', async () => {
25
+ const contracts = await Promise.all([randomDeployedContract(), randomDeployedContract()]);
26
+ for (const contract of contracts) {
30
27
  await pxe.registerContract(contract);
31
28
  }
32
- const expectedContractAddresses = contracts.map((contract)=>contract.instance.address);
29
+ const expectedContractAddresses = contracts.map(contract => contract.instance.address);
33
30
  const contractAddresses = await pxe.getContracts();
34
31
  expect(contractAddresses).toEqual(expect.arrayContaining(expectedContractAddresses));
35
32
  });
36
- it('registers a class and adds a contract for it', async ()=>{
33
+ it('registers a class and adds a contract for it', async () => {
37
34
  const artifact = randomContractArtifact();
38
35
  const contractClass = await getContractClassFromArtifact(artifact);
39
36
  const contractClassId = contractClass.id;
40
- const instance = await randomContractInstanceWithAddress({
41
- contractClassId
42
- });
37
+ const instance = await randomContractInstanceWithAddress({ contractClassId });
43
38
  await pxe.registerContractClass(artifact);
44
39
  expect((await pxe.getContractClassMetadata(contractClassId)).contractClass).toMatchObject(omit(contractClass, 'privateFunctionsRoot', 'publicBytecodeCommitment'));
45
- await pxe.registerContract({
46
- instance
47
- });
40
+ await pxe.registerContract({ instance });
48
41
  expect((await pxe.getContractMetadata(instance.address)).contractInstance).toEqual(instance);
49
42
  });
50
- it('refuses to register a class with a mismatched address', async ()=>{
43
+ it('refuses to register a class with a mismatched address', async () => {
51
44
  const artifact = randomContractArtifact();
52
45
  const contractClass = await getContractClassFromArtifact(artifact);
53
46
  const contractClassId = contractClass.id;
54
- const instance = await randomContractInstanceWithAddress({
55
- contractClassId
56
- });
47
+ const instance = await randomContractInstanceWithAddress({ contractClassId });
57
48
  await expect(pxe.registerContract({
58
49
  instance: {
59
50
  ...instance,
60
- address: await AztecAddress.random()
51
+ address: await AztecAddress.random(),
61
52
  },
62
- artifact
53
+ artifact,
63
54
  })).rejects.toThrow(/Added a contract in which the address does not match the contract instance./);
64
55
  });
65
- it('refuses to register a contract with a class that has not been registered', async ()=>{
56
+ it('refuses to register a contract with a class that has not been registered', async () => {
66
57
  const instance = await randomContractInstanceWithAddress();
67
- await expect(pxe.registerContract({
68
- instance
69
- })).rejects.toThrow(/Missing contract artifact/i);
58
+ await expect(pxe.registerContract({ instance })).rejects.toThrow(/Missing contract artifact/i);
70
59
  });
71
- it('refuses to register a contract with an artifact with mismatching class id', async ()=>{
60
+ it('refuses to register a contract with an artifact with mismatching class id', async () => {
72
61
  const artifact = randomContractArtifact();
73
62
  const instance = await randomContractInstanceWithAddress();
74
- await expect(pxe.registerContract({
75
- instance,
76
- artifact
77
- })).rejects.toThrow(/Artifact does not match/i);
63
+ await expect(pxe.registerContract({ instance, artifact })).rejects.toThrow(/Artifact does not match/i);
78
64
  });
79
65
  // Note: Not testing a successful run of `proveTx`, `sendTx`, `getTxReceipt` and `simulateUnconstrained` here as it requires
80
66
  // a larger setup and it's sufficiently tested in the e2e tests.
81
- it('throws when getting public storage for non-existent contract', async ()=>{
67
+ it('throws when getting public storage for non-existent contract', async () => {
82
68
  const contract = await AztecAddress.random();
83
- await expect(async ()=>await pxe.getPublicStorageAt(contract, new Fr(0n))).rejects.toThrow(`Contract ${contract.toString()} is not deployed`);
69
+ await expect(async () => await pxe.getPublicStorageAt(contract, new Fr(0n))).rejects.toThrow(`Contract ${contract.toString()} is not deployed`);
84
70
  });
85
71
  // Note: Not testing `getContractData` and `getPublicLogs` here as these
86
72
  // functions only call AztecNode and these methods are frequently used by the e2e tests.
87
- it('successfully gets a block number', async ()=>{
73
+ it('successfully gets a block number', async () => {
88
74
  const blockNum = await pxe.getBlockNumber();
89
75
  expect(blockNum).toBeGreaterThanOrEqual(INITIAL_L2_BLOCK_NUM);
90
76
  });
91
- it('successfully gets node info', async ()=>{
77
+ it('successfully gets node info', async () => {
92
78
  const nodeInfo = await pxe.getNodeInfo();
93
79
  expect(typeof nodeInfo.protocolVersion).toEqual('number');
94
80
  expect(typeof nodeInfo.l1ChainId).toEqual('number');
@@ -96,3 +82,4 @@ export const pxeTestSuite = (testName, pxeSetup)=>{
96
82
  });
97
83
  });
98
84
  };
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHhlX3Rlc3Rfc3VpdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHhlX3NlcnZpY2UvdGVzdC9weGVfdGVzdF9zdWl0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsc0JBQXNCLEVBQ3RCLGlDQUFpQyxFQUNqQyxzQkFBc0IsR0FDdkIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxvQkFBb0IsRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTFHLE9BQU8sSUFBSSxNQUFNLGFBQWEsQ0FBQztBQUUvQixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxRQUFnQixFQUFFLFFBQTRCLEVBQUUsRUFBRTtJQUM3RSxRQUFRLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRTtRQUN0QixJQUFJLEdBQVEsQ0FBQztRQUViLFNBQVMsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNuQixHQUFHLEdBQUcsTUFBTSxRQUFRLEVBQUUsQ0FBQztRQUN6QixDQUFDLEVBQUUsTUFBTyxDQUFDLENBQUM7UUFFWixFQUFFLENBQUMsK0VBQStFLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDN0YsTUFBTSxlQUFlLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3BDLE1BQU0sb0JBQW9CLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3pDLE1BQU0sZUFBZSxHQUFHLE1BQU0sR0FBRyxDQUFDLGVBQWUsQ0FBQyxlQUFlLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztZQUV6RixpR0FBaUc7WUFDakcsTUFBTSxRQUFRLEdBQUcsTUFBTSxHQUFHLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUNuRCxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxD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
@@ -0,0 +1,10 @@
1
+ import { type AztecNode } from '@aztec/circuit-types';
2
+ import { type KeyStore } from '@aztec/key-store';
3
+ import { AcirSimulator, type SimulationProvider } from '@aztec/simulator/client';
4
+ import { ContractDataOracle } from '../contract_data_oracle/index.js';
5
+ import { type PxeDatabase } from '../database/pxe_database.js';
6
+ /**
7
+ * Helper method to create an instance of the acir simulator.
8
+ */
9
+ export declare function getAcirSimulator(db: PxeDatabase, aztecNode: AztecNode, keyStore: KeyStore, simulationProvider: SimulationProvider, contractDataOracle?: ContractDataOracle): AcirSimulator;
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/simulator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAEjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAG/D;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,WAAW,EACf,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,kBAAkB,EAAE,kBAAkB,EACtC,kBAAkB,CAAC,EAAE,kBAAkB,iBAUxC"}
@@ -3,7 +3,9 @@ import { ContractDataOracle } from '../contract_data_oracle/index.js';
3
3
  import { SimulatorOracle } from '../simulator_oracle/index.js';
4
4
  /**
5
5
  * Helper method to create an instance of the acir simulator.
6
- */ export function getAcirSimulator(db, aztecNode, keyStore, simulationProvider, contractDataOracle) {
6
+ */
7
+ export function getAcirSimulator(db, aztecNode, keyStore, simulationProvider, contractDataOracle) {
7
8
  const simulatorOracle = new SimulatorOracle(contractDataOracle ?? new ContractDataOracle(db), db, keyStore, aztecNode, simulationProvider);
8
9
  return new AcirSimulator(simulatorOracle, aztecNode, simulationProvider);
9
10
  }
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2ltdWxhdG9yL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxhQUFhLEVBQTJCLE1BQU0seUJBQXlCLENBQUM7QUFFakYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRS9EOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUM5QixFQUFlLEVBQ2YsU0FBb0IsRUFDcEIsUUFBa0IsRUFDbEIsa0JBQXNDLEVBQ3RDLGtCQUF1QztJQUV2QyxNQUFNLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FDekMsa0JBQWtCLElBQUksSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsRUFDaEQsRUFBRSxFQUNGLFFBQVEsRUFDUixTQUFTLEVBQ1Qsa0JBQWtCLENBQ25CLENBQUM7SUFDRixPQUFPLElBQUksYUFBYSxDQUFDLGVBQWUsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztBQUMzRSxDQUFDIn0=
@@ -0,0 +1,129 @@
1
+ import { type AztecNode, type L2Block, MerkleTreeId, Note, type NoteStatus, type NullifierMembershipWitness, type PublicDataWitness, TxHash, type TxScopedL2Log } from '@aztec/circuit-types';
2
+ import { type AztecAddress, type BlockHeader, type CompleteAddress, type ContractInstance, Fr, FunctionSelector, IndexedTaggingSecret, type KeyValidationRequest, type L1_TO_L2_MSG_TREE_HEIGHT } from '@aztec/circuits.js';
3
+ import { type FunctionArtifact } from '@aztec/foundation/abi';
4
+ import { type KeyStore } from '@aztec/key-store';
5
+ import { type AcirSimulator, type DBOracle, MessageLoadOracleInputs, type SimulationProvider } from '@aztec/simulator/client';
6
+ import { ContractDataOracle } from '../contract_data_oracle/index.js';
7
+ import { type PxeDatabase } from '../database/index.js';
8
+ import { NoteDao } from '../database/note_dao.js';
9
+ /**
10
+ * A data oracle that provides information needed for simulating a transaction.
11
+ */
12
+ export declare class SimulatorOracle implements DBOracle {
13
+ #private;
14
+ private contractDataOracle;
15
+ private db;
16
+ private keyStore;
17
+ private aztecNode;
18
+ private simulationProvider;
19
+ private log;
20
+ constructor(contractDataOracle: ContractDataOracle, db: PxeDatabase, keyStore: KeyStore, aztecNode: AztecNode, simulationProvider: SimulationProvider, log?: import("@aztec/foundation/log").Logger);
21
+ getKeyValidationRequest(pkMHash: Fr, contractAddress: AztecAddress): Promise<KeyValidationRequest>;
22
+ getCompleteAddress(account: AztecAddress): Promise<CompleteAddress>;
23
+ getContractInstance(address: AztecAddress): Promise<ContractInstance>;
24
+ getAuthWitness(messageHash: Fr): Promise<Fr[]>;
25
+ popCapsule(): Promise<Fr[]>;
26
+ getNotes(contractAddress: AztecAddress, storageSlot: Fr, status: NoteStatus, scopes?: AztecAddress[]): Promise<{
27
+ contractAddress: AztecAddress;
28
+ storageSlot: Fr;
29
+ nonce: Fr;
30
+ note: Note;
31
+ noteHash: Fr;
32
+ siloedNullifier: Fr;
33
+ index: bigint;
34
+ }[]>;
35
+ getFunctionArtifact(contractAddress: AztecAddress, selector: FunctionSelector): Promise<FunctionArtifact>;
36
+ getFunctionArtifactByName(contractAddress: AztecAddress, functionName: string): Promise<FunctionArtifact | undefined>;
37
+ /**
38
+ * Fetches a message from the db, given its key.
39
+ * @param contractAddress - Address of a contract by which the message was emitted.
40
+ * @param messageHash - Hash of the message.
41
+ * @param secret - Secret used to compute a nullifier.
42
+ * @dev Contract address and secret are only used to compute the nullifier to get non-nullified messages
43
+ * @returns The l1 to l2 membership witness (index of message in the tree and sibling path).
44
+ */
45
+ getL1ToL2MembershipWitness(contractAddress: AztecAddress, messageHash: Fr, secret: Fr): Promise<MessageLoadOracleInputs<typeof L1_TO_L2_MSG_TREE_HEIGHT>>;
46
+ getL1ToL2LeafValue(_leafIndex: bigint): Promise<Fr | undefined>;
47
+ /**
48
+ * Gets the index of a commitment in the note hash tree.
49
+ * @param commitment - The commitment.
50
+ * @returns - The index of the commitment. Undefined if it does not exist in the tree.
51
+ */
52
+ getCommitmentIndex(commitment: Fr): Promise<bigint | undefined>;
53
+ getCommitmentValue(_leafIndex: bigint): Promise<Fr | undefined>;
54
+ getNullifierIndex(nullifier: Fr): Promise<bigint | undefined>;
55
+ getMembershipWitness(blockNumber: number, treeId: MerkleTreeId, leafValue: Fr): Promise<Fr[]>;
56
+ getNullifierMembershipWitnessAtLatestBlock(nullifier: Fr): Promise<NullifierMembershipWitness | undefined>;
57
+ getNullifierMembershipWitness(blockNumber: number, nullifier: Fr): Promise<NullifierMembershipWitness | undefined>;
58
+ getLowNullifierMembershipWitness(blockNumber: number, nullifier: Fr): Promise<NullifierMembershipWitness | undefined>;
59
+ getBlock(blockNumber: number): Promise<L2Block | undefined>;
60
+ getPublicDataTreeWitness(blockNumber: number, leafSlot: Fr): Promise<PublicDataWitness | undefined>;
61
+ /**
62
+ * Retrieve the databases view of the Block Header object.
63
+ * This structure is fed into the circuits simulator and is used to prove against certain historical roots.
64
+ *
65
+ * @returns A Promise that resolves to a BlockHeader object.
66
+ */
67
+ getBlockHeader(): Promise<BlockHeader>;
68
+ /**
69
+ * Fetches the current block number.
70
+ * @returns The block number.
71
+ */
72
+ getBlockNumber(): Promise<number>;
73
+ getDebugFunctionName(contractAddress: AztecAddress, selector: FunctionSelector): Promise<string>;
74
+ /**
75
+ * Returns the full contents of your address book.
76
+ * This is used when calculating tags for incoming notes by deriving the shared secret, the contract-siloed tagging secret, and
77
+ * finally the index specified tag. We will then query the node with this tag for each address in the address book.
78
+ * @returns The full list of the users contact addresses.
79
+ */
80
+ getSenders(): Promise<AztecAddress[]>;
81
+ /**
82
+ * Returns the tagging secret for a given sender and recipient pair. For this to work, the ivsk_m of the sender must be known.
83
+ * Includes the next index to be used used for tagging with this secret.
84
+ * @param contractAddress - The contract address to silo the secret for
85
+ * @param sender - The address sending the note
86
+ * @param recipient - The address receiving the note
87
+ * @returns An indexed tagging secret that can be used to tag notes.
88
+ */
89
+ getIndexedTaggingSecretAsSender(contractAddress: AztecAddress, sender: AztecAddress, recipient: AztecAddress): Promise<IndexedTaggingSecret>;
90
+ /**
91
+ * Increments the tagging secret for a given sender and recipient pair. For this to work, the ivsk_m of the sender must be known.
92
+ * @param contractAddress - The contract address to silo the secret for
93
+ * @param sender - The address sending the note
94
+ * @param recipient - The address receiving the note
95
+ */
96
+ incrementAppTaggingSecretIndexAsSender(contractAddress: AztecAddress, sender: AztecAddress, recipient: AztecAddress): Promise<void>;
97
+ /**
98
+ * Updates the local index of the shared tagging secret of a sender / recipient pair
99
+ * if a log with a larger index is found from the node.
100
+ * @param contractAddress - The address of the contract that the logs are tagged for
101
+ * @param sender - The address of the sender, we must know the sender's ivsk_m.
102
+ * @param recipient - The address of the recipient.
103
+ */
104
+ syncTaggedLogsAsSender(contractAddress: AztecAddress, sender: AztecAddress, recipient: AztecAddress): Promise<void>;
105
+ /**
106
+ * Synchronizes the logs tagged with scoped addresses and all the senders in the address book.
107
+ * Returns the unsynched logs and updates the indexes of the secrets used to tag them until there are no more logs
108
+ * to sync.
109
+ * @param contractAddress - The address of the contract that the logs are tagged for
110
+ * @param recipient - The address of the recipient
111
+ * @returns A list of encrypted logs tagged with the recipient's address
112
+ */
113
+ syncTaggedLogs(contractAddress: AztecAddress, maxBlockNumber: number, scopes?: AztecAddress[]): Promise<Map<string, TxScopedL2Log[]>>;
114
+ /**
115
+ * Processes the tagged logs returned by syncTaggedLogs by decrypting them and storing them in the database.
116
+ * @param logs - The logs to process.
117
+ * @param recipient - The recipient of the logs.
118
+ */
119
+ processTaggedLogs(logs: TxScopedL2Log[], recipient: AztecAddress, simulator?: AcirSimulator): Promise<void>;
120
+ deliverNote(contractAddress: AztecAddress, storageSlot: Fr, nonce: Fr, content: Fr[], noteHash: Fr, nullifier: Fr, txHash: Fr, recipient: AztecAddress): Promise<void>;
121
+ removeNullifiedNotes(contractAddress: AztecAddress): Promise<void>;
122
+ produceNoteDao(contractAddress: AztecAddress, storageSlot: Fr, nonce: Fr, content: Fr[], noteHash: Fr, nullifier: Fr, txHash: Fr, recipient: AztecAddress): Promise<NoteDao>;
123
+ callProcessLog(contractAddress: AztecAddress, logPlaintext: Fr[], txHash: TxHash, noteHashes: Fr[], firstNullifier: Fr, recipient: AztecAddress, simulator?: AcirSimulator): Promise<void>;
124
+ dbStore(contractAddress: AztecAddress, slot: Fr, values: Fr[]): Promise<void>;
125
+ dbLoad(contractAddress: AztecAddress, slot: Fr): Promise<Fr[] | null>;
126
+ dbDelete(contractAddress: AztecAddress, slot: Fr): Promise<void>;
127
+ dbCopy(contractAddress: AztecAddress, srcSlot: Fr, dstSlot: Fr, numEntries: number): Promise<void>;
128
+ }
129
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/simulator_oracle/index.ts"],"names":[],"mappings":"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"}