@aztec/pxe 0.28.1 → 0.30.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 (48) hide show
  1. package/dest/contract_data_oracle/index.d.ts +23 -9
  2. package/dest/contract_data_oracle/index.d.ts.map +1 -1
  3. package/dest/contract_data_oracle/index.js +55 -39
  4. package/dest/contract_data_oracle/private_functions_tree.d.ts +7 -15
  5. package/dest/contract_data_oracle/private_functions_tree.d.ts.map +1 -1
  6. package/dest/contract_data_oracle/private_functions_tree.js +10 -15
  7. package/dest/database/contracts/contract_instance_db.d.ts +2 -0
  8. package/dest/database/contracts/contract_instance_db.d.ts.map +1 -1
  9. package/dest/database/kv_pxe_database.d.ts +3 -4
  10. package/dest/database/kv_pxe_database.d.ts.map +1 -1
  11. package/dest/database/kv_pxe_database.js +16 -17
  12. package/dest/database/pxe_database.d.ts +5 -2
  13. package/dest/database/pxe_database.d.ts.map +1 -1
  14. package/dest/kernel_oracle/index.d.ts +1 -0
  15. package/dest/kernel_oracle/index.d.ts.map +1 -1
  16. package/dest/kernel_prover/kernel_prover.js +4 -4
  17. package/dest/pxe_http/pxe_http_server.d.ts.map +1 -1
  18. package/dest/pxe_http/pxe_http_server.js +2 -4
  19. package/dest/pxe_service/create_pxe_service.d.ts.map +1 -1
  20. package/dest/pxe_service/create_pxe_service.js +8 -2
  21. package/dest/pxe_service/pxe_service.d.ts +8 -6
  22. package/dest/pxe_service/pxe_service.d.ts.map +1 -1
  23. package/dest/pxe_service/pxe_service.js +36 -37
  24. package/dest/pxe_service/test/pxe_test_suite.d.ts.map +1 -1
  25. package/dest/pxe_service/test/pxe_test_suite.js +26 -6
  26. package/dest/simulator_oracle/index.d.ts +1 -1
  27. package/dest/simulator_oracle/index.d.ts.map +1 -1
  28. package/dest/simulator_oracle/index.js +11 -14
  29. package/package.json +12 -12
  30. package/src/contract_data_oracle/index.ts +63 -50
  31. package/src/contract_data_oracle/private_functions_tree.ts +12 -17
  32. package/src/database/contracts/contract_instance_db.ts +3 -0
  33. package/src/database/kv_pxe_database.ts +17 -17
  34. package/src/database/pxe_database.ts +6 -2
  35. package/src/kernel_prover/kernel_prover.ts +3 -3
  36. package/src/pxe_http/pxe_http_server.ts +0 -4
  37. package/src/pxe_service/create_pxe_service.ts +7 -1
  38. package/src/pxe_service/pxe_service.ts +42 -40
  39. package/src/pxe_service/test/pxe_test_suite.ts +37 -6
  40. package/src/simulator_oracle/index.ts +10 -15
  41. package/dest/contract_database/index.d.ts +0 -2
  42. package/dest/contract_database/index.d.ts.map +0 -1
  43. package/dest/contract_database/index.js +0 -2
  44. package/dest/contract_database/memory_contract_database.d.ts +0 -43
  45. package/dest/contract_database/memory_contract_database.d.ts.map +0 -1
  46. package/dest/contract_database/memory_contract_database.js +0 -51
  47. package/src/contract_database/index.ts +0 -1
  48. package/src/contract_database/memory_contract_database.ts +0 -58
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/simulator_oracle/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/simulator_oracle/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { MerkleTreeId, } from '@aztec/circuit-types';
2
+ import { getFunctionArtifactWithDebugMetadata } from '@aztec/foundation/abi';
2
3
  import { createDebugLogger } from '@aztec/foundation/log';
3
4
  import { MessageLoadOracleInputs } from '@aztec/simulator';
4
5
  /**
@@ -72,31 +73,27 @@ export class SimulatorOracle {
72
73
  };
73
74
  }
74
75
  async getFunctionArtifactByName(contractAddress, functionName) {
75
- const artifact = await this.contractDataOracle.getFunctionArtifactByName(contractAddress, functionName);
76
- if (!artifact) {
77
- return;
78
- }
79
- const debug = await this.contractDataOracle.getFunctionDebugMetadata(contractAddress, artifact.selector);
80
- return {
81
- ...artifact,
82
- debug,
83
- };
76
+ const instance = await this.contractDataOracle.getContractInstance(contractAddress);
77
+ const artifact = await this.contractDataOracle.getContractArtifact(instance.contractClassId);
78
+ return artifact && getFunctionArtifactWithDebugMetadata(artifact, functionName);
84
79
  }
85
80
  async getPortalContractAddress(contractAddress) {
86
81
  return await this.contractDataOracle.getPortalContractAddress(contractAddress);
87
82
  }
88
83
  /**
89
84
  * Retrieves the L1ToL2Message associated with a specific entry key
90
- * Throws an error if the entry key is not found
91
85
  *
86
+ * @throws If the entry key is not found
92
87
  * @param entryKey - The key of the message to be retrieved
93
88
  * @returns A promise that resolves to the message data, a sibling path and the
94
89
  * index of the message in the l1ToL2MessageTree
95
90
  */
96
91
  async getL1ToL2MembershipWitness(entryKey) {
97
- const messageAndIndex = await this.aztecNode.getL1ToL2MessageAndIndex(entryKey);
98
- const index = messageAndIndex.index;
99
- const siblingPath = await this.aztecNode.getL1ToL2MessageSiblingPath('latest', index);
92
+ const response = await this.aztecNode.getL1ToL2MessageMembershipWitness('latest', entryKey);
93
+ if (!response) {
94
+ throw new Error(`No L1 to L2 message found for entry key ${entryKey.toString()}`);
95
+ }
96
+ const [index, siblingPath] = response;
100
97
  return new MessageLoadOracleInputs(index, siblingPath);
101
98
  }
102
99
  /**
@@ -159,4 +156,4 @@ export class SimulatorOracle {
159
156
  return await this.aztecNode.getBlockNumber();
160
157
  }
161
158
  }
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2ltdWxhdG9yX29yYWNsZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBSUwsWUFBWSxHQUliLE1BQU0sc0JBQXNCLENBQUM7QUFXOUIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFxQix1QkFBdUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBTTlFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGVBQWU7SUFDMUIsWUFDVSxrQkFBc0MsRUFDdEMsRUFBZSxFQUNmLFFBQWtCLEVBQ2xCLFNBQW9CLEVBQ3BCLE1BQU0saUJBQWlCLENBQUMsNEJBQTRCLENBQUM7UUFKckQsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLFFBQUcsR0FBSCxHQUFHLENBQWtEO0lBQzVELENBQUM7SUFFSixLQUFLLENBQUMsbUJBQW1CLENBQUMsY0FBNEIsRUFBRSxlQUE2QjtRQUNuRixNQUFNLGdCQUFnQixHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFFLENBQUMsU0FBUyxDQUFDO1FBQ3ZGLE1BQU0sU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzlFLE1BQU0sU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQywyQkFBMkIsQ0FBQyxnQkFBZ0IsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUNyRyxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxLQUFLLENBQUMsa0JBQWtCLENBQUMsT0FB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
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2ltdWxhdG9yX29yYWNsZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBSUwsWUFBWSxHQUliLE1BQU0sc0JBQXNCLENBQUM7QUFVOUIsT0FBTyxFQUFxQyxvQ0FBb0MsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2hILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBcUIsdUJBQXVCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQU05RTs7R0FFRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBQzFCLFlBQ1Usa0JBQXNDLEVBQ3RDLEVBQWUsRUFDZixRQUFrQixFQUNsQixTQUFvQixFQUNwQixNQUFNLGlCQUFpQixDQUFDLDRCQUE0QixDQUFDO1FBSnJELHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixRQUFHLEdBQUgsR0FBRyxDQUFrRDtJQUM1RCxDQUFDO0lBRUosS0FBSyxDQUFDLG1CQUFtQixDQUFDLGNBQTRCLEVBQUUsZUFBNkI7UUFDbkYsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBRSxDQUFDLFNBQVMsQ0FBQztRQUN2RixNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM5RSxNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsMkJBQTJCLENBQUMsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDckcsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUs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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/pxe",
3
- "version": "0.28.1",
3
+ "version": "0.30.0",
4
4
  "type": "module",
5
5
  "exports": "./dest/index.js",
6
6
  "bin": "./dest/bin/index.js",
@@ -33,17 +33,17 @@
33
33
  "workerThreads": true
34
34
  },
35
35
  "dependencies": {
36
- "@aztec/circuit-types": "0.28.1",
37
- "@aztec/circuits.js": "0.28.1",
38
- "@aztec/ethereum": "0.28.1",
39
- "@aztec/foundation": "0.28.1",
40
- "@aztec/key-store": "0.28.1",
41
- "@aztec/kv-store": "0.28.1",
42
- "@aztec/noir-compiler": "0.28.1",
43
- "@aztec/noir-protocol-circuits-types": "0.28.1",
44
- "@aztec/protocol-contracts": "0.28.1",
45
- "@aztec/simulator": "0.28.1",
46
- "@aztec/types": "0.28.1",
36
+ "@aztec/circuit-types": "0.30.0",
37
+ "@aztec/circuits.js": "0.30.0",
38
+ "@aztec/ethereum": "0.30.0",
39
+ "@aztec/foundation": "0.30.0",
40
+ "@aztec/key-store": "0.30.0",
41
+ "@aztec/kv-store": "0.30.0",
42
+ "@aztec/noir-compiler": "0.30.0",
43
+ "@aztec/noir-protocol-circuits-types": "0.30.0",
44
+ "@aztec/protocol-contracts": "0.30.0",
45
+ "@aztec/simulator": "0.30.0",
46
+ "@aztec/types": "0.30.0",
47
47
  "koa": "^2.14.2",
48
48
  "koa-router": "^12.0.0",
49
49
  "lodash.omit": "^4.5.0",
@@ -1,12 +1,11 @@
1
- import { ContractDatabase } from '@aztec/circuit-types';
1
+ import { AztecAddress, MembershipWitness, VK_TREE_HEIGHT } from '@aztec/circuits.js';
2
2
  import {
3
- AztecAddress,
4
- ContractFunctionDao,
5
- MembershipWitness,
6
- VK_TREE_HEIGHT,
7
- getContractClassFromArtifact,
8
- } from '@aztec/circuits.js';
9
- import { FunctionDebugMetadata, FunctionSelector } from '@aztec/foundation/abi';
3
+ ContractArtifact,
4
+ FunctionArtifact,
5
+ FunctionDebugMetadata,
6
+ FunctionSelector,
7
+ getFunctionDebugMetadata,
8
+ } from '@aztec/foundation/abi';
10
9
  import { Fr } from '@aztec/foundation/fields';
11
10
  import { ContractClassNotFoundError, ContractNotFoundError } from '@aztec/simulator';
12
11
  import { ContractClass, ContractInstance } from '@aztec/types/contracts';
@@ -23,27 +22,34 @@ import { PrivateFunctionsTree } from './private_functions_tree.js';
23
22
  * the required information and facilitate cryptographic proof generation.
24
23
  */
25
24
  export class ContractDataOracle {
26
- private trees: PrivateFunctionsTree[] = [];
25
+ /** Map from contract class id to private function tree. */
26
+ private contractClasses: Map<string, PrivateFunctionsTree> = new Map();
27
+ /** Map from address to contract instance. */
28
+ private contractInstances: Map<string, ContractInstance> = new Map();
27
29
 
28
- constructor(private db: ContractDatabase & ContractArtifactDatabase & ContractInstanceDatabase) {}
30
+ constructor(private db: ContractArtifactDatabase & ContractInstanceDatabase) {}
29
31
 
30
32
  /** Returns a contract instance for a given address. Throws if not found. */
31
33
  public async getContractInstance(contractAddress: AztecAddress): Promise<ContractInstance> {
32
- const instance = await this.db.getContractInstance(contractAddress);
33
- if (!instance) {
34
- throw new ContractNotFoundError(contractAddress.toString());
34
+ if (!this.contractInstances.has(contractAddress.toString())) {
35
+ const instance = await this.db.getContractInstance(contractAddress);
36
+ if (!instance) {
37
+ throw new ContractNotFoundError(contractAddress.toString());
38
+ }
39
+ this.contractInstances.set(contractAddress.toString(), instance);
35
40
  }
36
- return instance;
41
+ return this.contractInstances.get(contractAddress.toString())!;
37
42
  }
38
43
 
39
- /** Returns a contract class for a given id. Throws if not found. */
44
+ /** Returns a contract class for a given class id. Throws if not found. */
40
45
  public async getContractClass(contractClassId: Fr): Promise<ContractClass> {
41
- const contractArtifact = await this.db.getContractArtifact(contractClassId);
42
- if (!contractArtifact) {
43
- throw new ContractClassNotFoundError(contractClassId.toString());
44
- }
45
- // TODO(@spalladino): Cache this computation using the trees.
46
- return getContractClassFromArtifact(contractArtifact);
46
+ const tree = await this.getTreeForClassId(contractClassId);
47
+ return tree.getContractClass();
48
+ }
49
+
50
+ public async getContractArtifact(contractClassId: Fr): Promise<ContractArtifact> {
51
+ const tree = await this.getTreeForClassId(contractClassId);
52
+ return tree.getArtifact();
47
53
  }
48
54
 
49
55
  /**
@@ -56,8 +62,8 @@ export class ContractDataOracle {
56
62
  * @returns A Promise that resolves to the portal contract address.
57
63
  */
58
64
  public async getPortalContractAddress(contractAddress: AztecAddress) {
59
- const tree = await this.getTree(contractAddress);
60
- return tree.contract.instance.portalContractAddress;
65
+ const instance = await this.getContractInstance(contractAddress);
66
+ return instance.portalContractAddress;
61
67
  }
62
68
 
63
69
  /**
@@ -70,7 +76,7 @@ export class ContractDataOracle {
70
76
  * @returns The corresponding function's artifact as an object.
71
77
  */
72
78
  public async getFunctionArtifact(contractAddress: AztecAddress, selector: FunctionSelector) {
73
- const tree = await this.getTree(contractAddress);
79
+ const tree = await this.getTreeForAddress(contractAddress);
74
80
  return tree.getFunctionArtifact(selector);
75
81
  }
76
82
 
@@ -86,9 +92,9 @@ export class ContractDataOracle {
86
92
  public async getFunctionArtifactByName(
87
93
  contractAddress: AztecAddress,
88
94
  functionName: string,
89
- ): Promise<ContractFunctionDao | undefined> {
90
- const tree = await this.getTree(contractAddress);
91
- return tree.contract.getFunctionArtifactByName(functionName);
95
+ ): Promise<FunctionArtifact | undefined> {
96
+ const tree = await this.getTreeForAddress(contractAddress);
97
+ return tree.getArtifact().functions.find(f => f.name === functionName);
92
98
  }
93
99
 
94
100
  /**
@@ -105,14 +111,9 @@ export class ContractDataOracle {
105
111
  contractAddress: AztecAddress,
106
112
  selector: FunctionSelector,
107
113
  ): Promise<FunctionDebugMetadata | undefined> {
108
- const tree = await this.getTree(contractAddress);
109
- const functionArtifact = tree.contract.getFunctionArtifact(selector);
110
-
111
- if (!functionArtifact) {
112
- return undefined;
113
- }
114
-
115
- return tree.contract.getFunctionDebugMetadataByName(functionArtifact.name);
114
+ const tree = await this.getTreeForAddress(contractAddress);
115
+ const artifact = tree.getFunctionArtifact(selector);
116
+ return getFunctionDebugMetadata(tree.getArtifact(), artifact);
116
117
  }
117
118
 
118
119
  /**
@@ -126,7 +127,7 @@ export class ContractDataOracle {
126
127
  * @throws Error if the contract address is unknown or not found.
127
128
  */
128
129
  public async getBytecode(contractAddress: AztecAddress, selector: FunctionSelector) {
129
- const tree = await this.getTree(contractAddress);
130
+ const tree = await this.getTreeForAddress(contractAddress);
130
131
  return tree.getBytecode(selector);
131
132
  }
132
133
 
@@ -140,7 +141,7 @@ export class ContractDataOracle {
140
141
  * @returns A promise that resolves with the MembershipWitness instance for the specified contract's function.
141
142
  */
142
143
  public async getFunctionMembershipWitness(contractAddress: AztecAddress, selector: FunctionSelector) {
143
- const tree = await this.getTree(contractAddress);
144
+ const tree = await this.getTreeForAddress(contractAddress);
144
145
  return tree.getFunctionMembershipWitness(selector);
145
146
  }
146
147
 
@@ -158,6 +159,28 @@ export class ContractDataOracle {
158
159
  return await Promise.resolve(MembershipWitness.random(VK_TREE_HEIGHT));
159
160
  }
160
161
 
162
+ /**
163
+ * Retrieve or create a ContractTree instance based on the provided class id.
164
+ * If an existing tree with the same class id is found in the cache, it will be returned.
165
+ * Otherwise, a new ContractTree instance will be created using the contract data from the database
166
+ * and added to the cache before returning.
167
+ *
168
+ * @param classId - The class id of the contract for which the ContractTree is required.
169
+ * @returns A ContractTree instance associated with the specified contract address.
170
+ * @throws An Error if the contract is not found in the ContractDatabase.
171
+ */
172
+ private async getTreeForClassId(classId: Fr): Promise<PrivateFunctionsTree> {
173
+ if (!this.contractClasses.has(classId.toString())) {
174
+ const artifact = await this.db.getContractArtifact(classId);
175
+ if (!artifact) {
176
+ throw new ContractClassNotFoundError(classId.toString());
177
+ }
178
+ const tree = new PrivateFunctionsTree(artifact);
179
+ this.contractClasses.set(classId.toString(), tree);
180
+ }
181
+ return this.contractClasses.get(classId.toString())!;
182
+ }
183
+
161
184
  /**
162
185
  * Retrieve or create a ContractTree instance based on the provided AztecAddress.
163
186
  * If an existing tree with the same contract address is found in the cache, it will be returned.
@@ -168,18 +191,8 @@ export class ContractDataOracle {
168
191
  * @returns A ContractTree instance associated with the specified contract address.
169
192
  * @throws An Error if the contract is not found in the ContractDatabase.
170
193
  */
171
- private async getTree(contractAddress: AztecAddress): Promise<PrivateFunctionsTree> {
172
- // TODO(@spalladino): ContractTree should refer to a class, not an instance!
173
- let tree = this.trees.find(t => t.contract.instance.address.equals(contractAddress));
174
- if (!tree) {
175
- const contract = await this.db.getContract(contractAddress);
176
- if (!contract) {
177
- throw new ContractNotFoundError(contractAddress.toString());
178
- }
179
-
180
- tree = new PrivateFunctionsTree(contract);
181
- this.trees.push(tree);
182
- }
183
- return tree;
194
+ private async getTreeForAddress(contractAddress: AztecAddress): Promise<PrivateFunctionsTree> {
195
+ const instance = await this.getContractInstance(contractAddress);
196
+ return this.getTreeForClassId(instance.contractClassId);
184
197
  }
185
198
  }
@@ -1,4 +1,3 @@
1
- import { ContractDao } from '@aztec/circuit-types';
2
1
  import {
3
2
  FUNCTION_TREE_HEIGHT,
4
3
  MembershipWitness,
@@ -7,7 +6,7 @@ import {
7
6
  getContractClassFromArtifact,
8
7
  } from '@aztec/circuits.js';
9
8
  import { MerkleTree } from '@aztec/circuits.js/merkle';
10
- import { FunctionSelector } from '@aztec/foundation/abi';
9
+ import { ContractArtifact, FunctionSelector } from '@aztec/foundation/abi';
11
10
  import { Fr } from '@aztec/foundation/fields';
12
11
  import { assertLength } from '@aztec/foundation/serialize';
13
12
  import { ContractClassWithId } from '@aztec/types/contracts';
@@ -20,15 +19,11 @@ import { ContractClassWithId } from '@aztec/types/contracts';
20
19
  */
21
20
  export class PrivateFunctionsTree {
22
21
  private tree?: MerkleTree;
23
- private contractClass?: ContractClassWithId;
22
+ private contractClass: ContractClassWithId;
24
23
 
25
- constructor(
26
- /**
27
- * The contract data object containing the artifact and contract address.
28
- * TODO(@spalladino) Replace with contract class sourced from db.
29
- */
30
- public readonly contract: ContractDao,
31
- ) {}
24
+ constructor(private readonly artifact: ContractArtifact) {
25
+ this.contractClass = getContractClassFromArtifact(artifact);
26
+ }
32
27
 
33
28
  /**
34
29
  * Retrieve the artifact of a given function.
@@ -39,12 +34,10 @@ export class PrivateFunctionsTree {
39
34
  * @returns The artifact object containing relevant information about the targeted function.
40
35
  */
41
36
  public getFunctionArtifact(selector: FunctionSelector) {
42
- const artifact = this.contract.functions.find(f => f.selector.equals(selector));
37
+ const artifact = this.artifact.functions.find(f => selector.equals(f.name, f.parameters));
43
38
  if (!artifact) {
44
39
  throw new Error(
45
- `Unknown function. Selector ${selector.toString()} not found in the artifact of contract ${this.contract.instance.address.toString()}. Expected one of: ${this.contract.functions
46
- .map(f => `${f.name} (${f.selector.toString()})`)
47
- .join(', ')}`,
40
+ `Unknown function. Selector ${selector.toString()} not found in the artifact with class ${this.getContractClassId().toString()}.`,
48
41
  );
49
42
  }
50
43
  return artifact;
@@ -75,12 +68,14 @@ export class PrivateFunctionsTree {
75
68
 
76
69
  /** Returns the contract class object. */
77
70
  public getContractClass() {
78
- if (!this.contractClass) {
79
- this.contractClass = getContractClassFromArtifact(this.contract);
80
- }
81
71
  return this.contractClass;
82
72
  }
83
73
 
74
+ /** Returns the contract artifact. */
75
+ public getArtifact() {
76
+ return this.artifact;
77
+ }
78
+
84
79
  /**
85
80
  * Returns the contract class identifier for the given artifact.
86
81
  */
@@ -15,4 +15,7 @@ export interface ContractInstanceDatabase {
15
15
  * @param address - Address of the contract.
16
16
  */
17
17
  getContractInstance(address: AztecAddress): Promise<ContractInstanceWithAddress | undefined>;
18
+
19
+ /** Returns the addresses all contract instances registered in the DB. */
20
+ getContractsAddresses(): Promise<AztecAddress[]>;
18
21
  }
@@ -1,4 +1,4 @@
1
- import { ContractDao, MerkleTreeId, NoteFilter, NoteStatus, PublicKey } from '@aztec/circuit-types';
1
+ import { MerkleTreeId, NoteFilter, NoteStatus, PublicKey } from '@aztec/circuit-types';
2
2
  import { AztecAddress, CompleteAddress, Header } from '@aztec/circuits.js';
3
3
  import { ContractArtifact } from '@aztec/foundation/abi';
4
4
  import { toBufferBE } from '@aztec/foundation/bigint-buffer';
@@ -20,7 +20,6 @@ export class KVPxeDatabase implements PxeDatabase {
20
20
  #addressIndex: AztecMap<string, number>;
21
21
  #authWitnesses: AztecMap<string, Buffer[]>;
22
22
  #capsules: AztecArray<Buffer[]>;
23
- #contracts: AztecMap<string, Buffer>;
24
23
  #notes: AztecMap<string, Buffer>;
25
24
  #nullifiedNotes: AztecMap<string, Buffer>;
26
25
  #nullifierToNoteId: AztecMap<string, string>;
@@ -47,7 +46,6 @@ export class KVPxeDatabase implements PxeDatabase {
47
46
 
48
47
  this.#authWitnesses = db.openMap('auth_witnesses');
49
48
  this.#capsules = db.openArray('capsules');
50
- this.#contracts = db.openMap('contracts');
51
49
 
52
50
  this.#contractArtifacts = db.openMap('contract_artifacts');
53
51
  this.#contractInstances = db.openMap('contracts_instances');
@@ -73,11 +71,22 @@ export class KVPxeDatabase implements PxeDatabase {
73
71
  this.#deferredNotesByContract = db.openMultiMap('deferred_notes_by_contract');
74
72
  }
75
73
 
74
+ public async getContract(
75
+ address: AztecAddress,
76
+ ): Promise<(ContractInstanceWithAddress & ContractArtifact) | undefined> {
77
+ const instance = await this.getContractInstance(address);
78
+ const artifact = instance && (await this.getContractArtifact(instance?.contractClassId));
79
+ if (!instance || !artifact) {
80
+ return undefined;
81
+ }
82
+ return { ...instance, ...artifact };
83
+ }
84
+
76
85
  public async addContractArtifact(id: Fr, contract: ContractArtifact): Promise<void> {
77
86
  await this.#contractArtifacts.set(id.toString(), contractArtifactToBuffer(contract));
78
87
  }
79
88
 
80
- getContractArtifact(id: Fr): Promise<ContractArtifact | undefined> {
89
+ public getContractArtifact(id: Fr): Promise<ContractArtifact | undefined> {
81
90
  const contract = this.#contractArtifacts.get(id.toString());
82
91
  // TODO(@spalladino): AztecMap lies and returns Uint8Arrays instead of Buffers, hence the extra Buffer.from.
83
92
  return Promise.resolve(contract && contractArtifactFromBuffer(Buffer.from(contract)));
@@ -95,6 +104,10 @@ export class KVPxeDatabase implements PxeDatabase {
95
104
  return Promise.resolve(contract && SerializableContractInstance.fromBuffer(contract).withAddress(address));
96
105
  }
97
106
 
107
+ getContractsAddresses(): Promise<AztecAddress[]> {
108
+ return Promise.resolve(Array.from(this.#contractInstances.keys()).map(AztecAddress.fromString));
109
+ }
110
+
98
111
  async addAuthWitness(messageHash: Fr, witness: Fr[]): Promise<void> {
99
112
  await this.#authWitnesses.set(
100
113
  messageHash.toString(),
@@ -393,17 +406,4 @@ export class KVPxeDatabase implements PxeDatabase {
393
406
 
394
407
  return notesSize + treeRootsSize + authWitsSize + addressesSize;
395
408
  }
396
-
397
- async addContract(contract: ContractDao): Promise<void> {
398
- await this.#contracts.set(contract.instance.address.toString(), contract.toBuffer());
399
- }
400
-
401
- getContract(address: AztecAddress): Promise<ContractDao | undefined> {
402
- const contract = this.#contracts.get(address.toString());
403
- return Promise.resolve(contract ? ContractDao.fromBuffer(contract) : undefined);
404
- }
405
-
406
- getContracts(): Promise<ContractDao[]> {
407
- return Promise.resolve(Array.from(this.#contracts.values()).map(c => ContractDao.fromBuffer(c)));
408
- }
409
409
  }
@@ -1,7 +1,9 @@
1
- import { ContractDatabase, NoteFilter } from '@aztec/circuit-types';
1
+ import { NoteFilter } from '@aztec/circuit-types';
2
2
  import { CompleteAddress, Header, PublicKey } from '@aztec/circuits.js';
3
+ import { ContractArtifact } from '@aztec/foundation/abi';
3
4
  import { AztecAddress } from '@aztec/foundation/aztec-address';
4
5
  import { Fr } from '@aztec/foundation/fields';
6
+ import { ContractInstanceWithAddress } from '@aztec/types/contracts';
5
7
 
6
8
  import { ContractArtifactDatabase } from './contracts/contract_artifact_db.js';
7
9
  import { ContractInstanceDatabase } from './contracts/contract_instance_db.js';
@@ -12,7 +14,9 @@ import { NoteDao } from './note_dao.js';
12
14
  * A database interface that provides methods for retrieving, adding, and removing transactional data related to Aztec
13
15
  * addresses, storage slots, and nullifiers.
14
16
  */
15
- export interface PxeDatabase extends ContractDatabase, ContractArtifactDatabase, ContractInstanceDatabase {
17
+ export interface PxeDatabase extends ContractArtifactDatabase, ContractInstanceDatabase {
18
+ getContract(address: AztecAddress): Promise<(ContractInstanceWithAddress & ContractArtifact) | undefined>;
19
+
16
20
  /**
17
21
  * Add a auth witness to the database.
18
22
  * @param messageHash - The message hash.
@@ -185,12 +185,12 @@ export class KernelProver {
185
185
  >(output.publicInputs.end.newNullifiers);
186
186
 
187
187
  const readNoteHashHints = this.hintsBuilder.getNoteHashReadRequestHints(
188
- output.publicInputs.end.noteHashReadRequests,
188
+ output.publicInputs.validationRequests.noteHashReadRequests,
189
189
  sortedNoteHashes,
190
190
  );
191
191
 
192
192
  const nullifierReadRequestHints = await this.hintsBuilder.getNullifierReadRequestHints(
193
- output.publicInputs.end.nullifierReadRequests,
193
+ output.publicInputs.validationRequests.nullifierReadRequests,
194
194
  output.publicInputs.end.newNullifiers,
195
195
  );
196
196
 
@@ -200,7 +200,7 @@ export class KernelProver {
200
200
  );
201
201
 
202
202
  const masterNullifierSecretKeys = await this.hintsBuilder.getMasterNullifierSecretKeys(
203
- output.publicInputs.end.nullifierKeyValidationRequests,
203
+ output.publicInputs.validationRequests.nullifierKeyValidationRequests,
204
204
  );
205
205
 
206
206
  this.log.debug(
@@ -1,8 +1,6 @@
1
1
  import {
2
2
  AuthWitness,
3
3
  CompleteAddress,
4
- ContractData,
5
- ExtendedContractData,
6
4
  ExtendedNote,
7
5
  ExtendedUnencryptedL2Log,
8
6
  L2Block,
@@ -36,8 +34,6 @@ export function createPXERpcServer(pxeService: PXE): JsonRpcServer {
36
34
  CompleteAddress,
37
35
  AztecAddress,
38
36
  TxExecutionRequest,
39
- ContractData,
40
- ExtendedContractData,
41
37
  ExtendedUnencryptedL2Log,
42
38
  FunctionSelector,
43
39
  TxHash,
@@ -43,7 +43,13 @@ export async function createPXEService(
43
43
  const db = new KVPxeDatabase(await initStoreForRollup(AztecLmdbStore.open(pxeDbPath), l1Contracts.rollupAddress));
44
44
 
45
45
  const server = new PXEService(keyStore, aztecNode, db, config, logSuffix);
46
- await server.addContracts([getCanonicalClassRegisterer(), getCanonicalInstanceDeployer(), getCanonicalGasToken()]);
46
+ for (const contract of [
47
+ getCanonicalClassRegisterer(),
48
+ getCanonicalInstanceDeployer(),
49
+ getCanonicalGasToken(l1Contracts.gasPortalAddress),
50
+ ]) {
51
+ await server.registerContract(contract);
52
+ }
47
53
 
48
54
  await server.start();
49
55
  return server;