@aztec/pxe 0.21.0 → 0.23.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 (45) hide show
  1. package/README.md +1 -1
  2. package/dest/contract_data_oracle/index.d.ts +10 -14
  3. package/dest/contract_data_oracle/index.d.ts.map +1 -1
  4. package/dest/contract_data_oracle/index.js +26 -23
  5. package/dest/contract_data_oracle/private_functions_tree.d.ts +71 -0
  6. package/dest/contract_data_oracle/private_functions_tree.d.ts.map +1 -0
  7. package/dest/contract_data_oracle/private_functions_tree.js +97 -0
  8. package/dest/contract_database/memory_contract_database.js +3 -3
  9. package/dest/database/kv_pxe_database.d.ts.map +1 -1
  10. package/dest/database/kv_pxe_database.js +68 -36
  11. package/dest/database/note_dao.d.ts +1 -1
  12. package/dest/database/note_dao.d.ts.map +1 -1
  13. package/dest/database/note_dao.js +1 -1
  14. package/dest/database/pxe_database_test_suite.d.ts.map +1 -1
  15. package/dest/database/pxe_database_test_suite.js +29 -7
  16. package/dest/kernel_oracle/index.d.ts +10 -1
  17. package/dest/kernel_oracle/index.d.ts.map +1 -1
  18. package/dest/kernel_oracle/index.js +13 -5
  19. package/dest/kernel_prover/kernel_prover.d.ts +1 -1
  20. package/dest/kernel_prover/kernel_prover.d.ts.map +1 -1
  21. package/dest/kernel_prover/kernel_prover.js +19 -6
  22. package/dest/kernel_prover/proving_data_oracle.d.ts +13 -12
  23. package/dest/kernel_prover/proving_data_oracle.d.ts.map +1 -1
  24. package/dest/note_processor/note_processor.d.ts +1 -1
  25. package/dest/note_processor/note_processor.d.ts.map +1 -1
  26. package/dest/note_processor/note_processor.js +2 -2
  27. package/dest/note_processor/produce_note_dao.d.ts +1 -1
  28. package/dest/note_processor/produce_note_dao.d.ts.map +1 -1
  29. package/dest/note_processor/produce_note_dao.js +1 -1
  30. package/dest/pxe_service/create_pxe_service.d.ts.map +1 -1
  31. package/dest/pxe_service/create_pxe_service.js +5 -4
  32. package/dest/pxe_service/pxe_service.d.ts +2 -0
  33. package/dest/pxe_service/pxe_service.d.ts.map +1 -1
  34. package/dest/pxe_service/pxe_service.js +19 -24
  35. package/dest/pxe_service/test/pxe_test_suite.js +2 -2
  36. package/dest/simulator/index.d.ts +3 -3
  37. package/dest/simulator/index.d.ts.map +1 -1
  38. package/dest/simulator/index.js +5 -5
  39. package/dest/simulator_oracle/index.d.ts +7 -7
  40. package/dest/simulator_oracle/index.d.ts.map +1 -1
  41. package/dest/simulator_oracle/index.js +27 -27
  42. package/package.json +11 -11
  43. package/dest/contract_tree/index.d.ts +0 -108
  44. package/dest/contract_tree/index.d.ts.map +0 -1
  45. package/dest/contract_tree/index.js +0 -176
package/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  ### Main Components in an PXE Service
8
8
 
9
- - [Acir Simulator](../acir-simulator/)
9
+ - [Simulator](../simulator/)
10
10
  - [Key Store](../key-store/)
11
11
  - [Account State](./src/account_state/account_state.ts): It coordinates other components to synchronize and decrypt data, simulate transactions, and generate kernel proofs, for a specific account.
12
12
 
@@ -1,6 +1,10 @@
1
- import { ContractDatabase, StateInfoProvider } from '@aztec/circuit-types';
1
+ import { ContractDatabase } from '@aztec/circuit-types';
2
2
  import { AztecAddress, ContractFunctionDao, MembershipWitness } from '@aztec/circuits.js';
3
3
  import { FunctionDebugMetadata, FunctionSelector } from '@aztec/foundation/abi';
4
+ import { Fr } from '@aztec/foundation/fields';
5
+ import { ContractClass, ContractInstance } from '@aztec/types/contracts';
6
+ import { ContractArtifactDatabase } from '../database/contracts/contract_artifact_db.js';
7
+ import { ContractInstanceDatabase } from '../database/contracts/contract_instance_db.js';
4
8
  /**
5
9
  * ContractDataOracle serves as a data manager and retriever for Aztec.nr contracts.
6
10
  * It provides methods to obtain contract addresses, function ABI, bytecode, and membership witnesses
@@ -10,9 +14,12 @@ import { FunctionDebugMetadata, FunctionSelector } from '@aztec/foundation/abi';
10
14
  */
11
15
  export declare class ContractDataOracle {
12
16
  private db;
13
- private stateProvider;
14
17
  private trees;
15
- constructor(db: ContractDatabase, stateProvider: StateInfoProvider);
18
+ constructor(db: ContractDatabase & ContractArtifactDatabase & ContractInstanceDatabase);
19
+ /** Returns a contract instance for a given address. Throws if not found. */
20
+ getContractInstance(contractAddress: AztecAddress): Promise<ContractInstance>;
21
+ /** Returns a contract class for a given id. Throws if not found. */
22
+ getContractClass(contractClassId: Fr): Promise<ContractClass>;
16
23
  /**
17
24
  * Retrieve the portal contract address associated with the given contract address.
18
25
  * This function searches for the corresponding contract tree in the local cache and returns the portal contract address.
@@ -65,17 +72,6 @@ export declare class ContractDataOracle {
65
72
  * @throws Error if the contract address is unknown or not found.
66
73
  */
67
74
  getBytecode(contractAddress: AztecAddress, selector: FunctionSelector): Promise<string>;
68
- /**
69
- * Retrieves the contract membership witness for a given contract address.
70
- * A contract membership witness is a cryptographic proof that the contract exists in the Aztec network.
71
- * This function will search for an existing contract tree associated with the contract address and obtain its
72
- * membership witness. If no such contract tree exists, it will throw an error.
73
- *
74
- * @param contractAddress - The contract address.
75
- * @returns A promise that resolves to a MembershipWitness instance representing the contract membership witness.
76
- * @throws Error if the contract address is unknown or not found.
77
- */
78
- getContractMembershipWitness(contractAddress: AztecAddress): Promise<MembershipWitness<16>>;
79
75
  /**
80
76
  * Retrieve the function membership witness for the given contract address and function selector.
81
77
  * The function membership witness represents a proof that the function belongs to the specified contract.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contract_data_oracle/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAkB,MAAM,oBAAoB,CAAC;AAC1G,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAIhF;;;;;;GAMG;AACH,qBAAa,kBAAkB;IAGjB,OAAO,CAAC,EAAE;IAAoB,OAAO,CAAC,aAAa;IAF/D,OAAO,CAAC,KAAK,CAAsB;gBAEf,EAAE,EAAE,gBAAgB,EAAU,aAAa,EAAE,iBAAiB;IAElF;;;;;;;;OAQG;IACU,wBAAwB,CAAC,eAAe,EAAE,YAAY;IAKnE;;;;;;;;OAQG;IACU,mBAAmB,CAAC,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB;IAK1F;;;;;;;;OAQG;IACU,yBAAyB,CACpC,eAAe,EAAE,YAAY,EAC7B,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAK3C;;;;;;;;;OASG;IACU,wBAAwB,CACnC,eAAe,EAAE,YAAY,EAC7B,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IAW7C;;;;;;;;;OASG;IACU,WAAW,CAAC,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB;IAKlF;;;;;;;;;OASG;IACU,4BAA4B,CAAC,eAAe,EAAE,YAAY;IAKvE;;;;;;;;OAQG;IACU,4BAA4B,CAAC,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB;IAKnG;;;;;;;;OAQG;IACU,sBAAsB;IAKnC;;;;;;;;;OASG;YACW,OAAO;CAatB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contract_data_oracle/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EAGlB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAEzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AACzF,OAAO,EAAE,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AAGzF;;;;;;GAMG;AACH,qBAAa,kBAAkB;IAGjB,OAAO,CAAC,EAAE;IAFtB,OAAO,CAAC,KAAK,CAA8B;gBAEvB,EAAE,EAAE,gBAAgB,GAAG,wBAAwB,GAAG,wBAAwB;IAE9F,4EAA4E;IAC/D,mBAAmB,CAAC,eAAe,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAQ1F,oEAAoE;IACvD,gBAAgB,CAAC,eAAe,EAAE,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;IAS1E;;;;;;;;OAQG;IACU,wBAAwB,CAAC,eAAe,EAAE,YAAY;IAKnE;;;;;;;;OAQG;IACU,mBAAmB,CAAC,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB;IAK1F;;;;;;;;OAQG;IACU,yBAAyB,CACpC,eAAe,EAAE,YAAY,EAC7B,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAK3C;;;;;;;;;OASG;IACU,wBAAwB,CACnC,eAAe,EAAE,YAAY,EAC7B,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IAW7C;;;;;;;;;OASG;IACU,WAAW,CAAC,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB;IAKlF;;;;;;;;OAQG;IACU,4BAA4B,CAAC,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB;IAKnG;;;;;;;;OAQG;IACU,sBAAsB;IAKnC;;;;;;;;;OASG;YACW,OAAO;CActB"}
@@ -1,6 +1,6 @@
1
- import { ContractNotFoundError } from '@aztec/acir-simulator';
2
- import { MembershipWitness, VK_TREE_HEIGHT } from '@aztec/circuits.js';
3
- import { ContractTree } from '../contract_tree/index.js';
1
+ import { MembershipWitness, VK_TREE_HEIGHT, getContractClassFromArtifact, } from '@aztec/circuits.js';
2
+ import { ContractClassNotFoundError, ContractNotFoundError } from '@aztec/simulator';
3
+ import { PrivateFunctionsTree } from './private_functions_tree.js';
4
4
  /**
5
5
  * ContractDataOracle serves as a data manager and retriever for Aztec.nr contracts.
6
6
  * It provides methods to obtain contract addresses, function ABI, bytecode, and membership witnesses
@@ -9,11 +9,27 @@ import { ContractTree } from '../contract_tree/index.js';
9
9
  * the required information and facilitate cryptographic proof generation.
10
10
  */
11
11
  export class ContractDataOracle {
12
- constructor(db, stateProvider) {
12
+ constructor(db) {
13
13
  this.db = db;
14
- this.stateProvider = stateProvider;
15
14
  this.trees = [];
16
15
  }
16
+ /** Returns a contract instance for a given address. Throws if not found. */
17
+ async getContractInstance(contractAddress) {
18
+ const instance = await this.db.getContractInstance(contractAddress);
19
+ if (!instance) {
20
+ throw new ContractNotFoundError(contractAddress.toString());
21
+ }
22
+ return instance;
23
+ }
24
+ /** Returns a contract class for a given id. Throws if not found. */
25
+ async getContractClass(contractClassId) {
26
+ const contractArtifact = await this.db.getContractArtifact(contractClassId);
27
+ if (!contractArtifact) {
28
+ throw new ContractClassNotFoundError(contractClassId.toString());
29
+ }
30
+ // TODO(@spalladino): Cache this computation using the trees.
31
+ return getContractClassFromArtifact(contractArtifact);
32
+ }
17
33
  /**
18
34
  * Retrieve the portal contract address associated with the given contract address.
19
35
  * This function searches for the corresponding contract tree in the local cache and returns the portal contract address.
@@ -25,7 +41,7 @@ export class ContractDataOracle {
25
41
  */
26
42
  async getPortalContractAddress(contractAddress) {
27
43
  const tree = await this.getTree(contractAddress);
28
- return tree.contract.portalContract;
44
+ return tree.contract.instance.portalContractAddress;
29
45
  }
30
46
  /**
31
47
  * Retrieves the artifact of a specified function within a given contract.
@@ -85,20 +101,6 @@ export class ContractDataOracle {
85
101
  const tree = await this.getTree(contractAddress);
86
102
  return tree.getBytecode(selector);
87
103
  }
88
- /**
89
- * Retrieves the contract membership witness for a given contract address.
90
- * A contract membership witness is a cryptographic proof that the contract exists in the Aztec network.
91
- * This function will search for an existing contract tree associated with the contract address and obtain its
92
- * membership witness. If no such contract tree exists, it will throw an error.
93
- *
94
- * @param contractAddress - The contract address.
95
- * @returns A promise that resolves to a MembershipWitness instance representing the contract membership witness.
96
- * @throws Error if the contract address is unknown or not found.
97
- */
98
- async getContractMembershipWitness(contractAddress) {
99
- const tree = await this.getTree(contractAddress);
100
- return tree.getContractMembershipWitness();
101
- }
102
104
  /**
103
105
  * Retrieve the function membership witness for the given contract address and function selector.
104
106
  * The function membership witness represents a proof that the function belongs to the specified contract.
@@ -136,16 +138,17 @@ export class ContractDataOracle {
136
138
  * @throws An Error if the contract is not found in the ContractDatabase.
137
139
  */
138
140
  async getTree(contractAddress) {
139
- let tree = this.trees.find(t => t.contract.completeAddress.address.equals(contractAddress));
141
+ // TODO(@spalladino): ContractTree should refer to a class, not an instance!
142
+ let tree = this.trees.find(t => t.contract.instance.address.equals(contractAddress));
140
143
  if (!tree) {
141
144
  const contract = await this.db.getContract(contractAddress);
142
145
  if (!contract) {
143
146
  throw new ContractNotFoundError(contractAddress.toString());
144
147
  }
145
- tree = new ContractTree(contract, this.stateProvider);
148
+ tree = new PrivateFunctionsTree(contract);
146
149
  this.trees.push(tree);
147
150
  }
148
151
  return tree;
149
152
  }
150
153
  }
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3RfZGF0YV9vcmFjbGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFOUQsT0FBTyxFQUFxQyxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUcxRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFekQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxPQUFPLGtCQUFrQjtJQUc3QixZQUFvQixFQUFvQixFQUFVLGFBQWdDO1FBQTlELE9BQUUsR0FBRixFQUFFLENBQWtCO1FBQVUsa0JBQWEsR0FBYixhQUFhLENBQW1CO1FBRjFFLFVBQUssR0FBbUIsRUFBRSxDQUFDO0lBRWtELENBQUM7SUFFdEY7Ozs7Ozs7O09BUUc7SUFDSSxLQUFLLENBQUMsd0JBQXdCLENBQUMsZUFBNkI7UUFDakUsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksS0FBSyxDQUFDLG1CQUFtQixDQUFDLGVBQTZCLEVBQUUsUUFBMEI7UUFDeEYsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLEtBQUssQ0FBQyx5QkFBeUIsQ0FDcEMsZUFBNkIsRUFDN0IsWUFBb0I7UUFFcEIsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2pE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
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3RfZGF0YV9vcmFjbGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUdMLGlCQUFpQixFQUNqQixjQUFjLEVBQ2QsNEJBQTRCLEdBQzdCLE1BQU0sb0JBQW9CLENBQUM7QUFHNUIsT0FBTyxFQUFFLDBCQUEwQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFLckYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFbkU7Ozs7OztHQU1HO0FBQ0gsTUFBTSxPQUFPLGtCQUFrQjtJQUc3QixZQUFvQixFQUEwRTtRQUExRSxPQUFFLEdBQUYsRUFBRSxDQUF3RTtRQUZ0RixVQUFLLEdBQTJCLEVBQUUsQ0FBQztJQUVzRCxDQUFDO0lBRWxHLDRFQUE0RTtJQUNyRSxLQUFLLENBQUMsbUJBQW1CLENBQUMsZUFBNkI7UUFDNUQsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNkLE1BQU0sSUFBSSxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBQ0QsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVELG9FQUFvRTtJQUM3RCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsZUFBbUI7UUFDL0MsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDNUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDdEIsTUFBTSxJQUFJLDBCQUEwQixDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFDRCw2REFBNkQ7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
@@ -0,0 +1,71 @@
1
+ import { ContractDao } from '@aztec/circuit-types';
2
+ import { FUNCTION_TREE_HEIGHT, MembershipWitness } from '@aztec/circuits.js';
3
+ import { MerkleTree } from '@aztec/circuits.js/merkle';
4
+ import { FunctionSelector } from '@aztec/foundation/abi';
5
+ import { Fr } from '@aztec/foundation/fields';
6
+ import { ContractClassWithId } from '@aztec/types/contracts';
7
+ /**
8
+ * Represents a Merkle tree of functions for a particular Contract Class.
9
+ * It manages the construction of the function tree, computes its root, and generates membership witnesses
10
+ * for constrained functions. This class also enables lookup of specific function artifact using selectors.
11
+ * It is used in combination with the AztecNode to compute various data for executing private transactions.
12
+ */
13
+ export declare class PrivateFunctionsTree {
14
+ /**
15
+ * The contract data object containing the artifact and contract address.
16
+ * TODO(@spalladino) Replace with contract class sourced from db.
17
+ */
18
+ readonly contract: ContractDao;
19
+ private tree?;
20
+ private contractClass?;
21
+ constructor(
22
+ /**
23
+ * The contract data object containing the artifact and contract address.
24
+ * TODO(@spalladino) Replace with contract class sourced from db.
25
+ */
26
+ contract: ContractDao);
27
+ /**
28
+ * Retrieve the artifact of a given function.
29
+ * The function is identified by its selector, which represents a unique identifier for the function's signature.
30
+ * Throws an error if the function with the provided selector is not found in the contract.
31
+ *
32
+ * @param selector - The function selector.
33
+ * @returns The artifact object containing relevant information about the targeted function.
34
+ */
35
+ getFunctionArtifact(selector: FunctionSelector): import("@aztec/circuits.js").ContractFunctionDao;
36
+ /**
37
+ * Retrieve the bytecode of a function in the contract by its function selector.
38
+ * The function selector is a unique identifier for each function in a contract.
39
+ * Throws an error if the function with the given selector is not found in the contract.
40
+ *
41
+ * @param selector - The selector of a function to get bytecode for.
42
+ * @returns The bytecode of the function as a string.
43
+ */
44
+ getBytecode(selector: FunctionSelector): string;
45
+ /**
46
+ * Calculate and return the root of the function tree for the current contract.
47
+ * This root is a cryptographic commitment to the set of constrained functions within the contract,
48
+ * which is used in the Aztec node's proof system. The root will be cached after the first call.
49
+ *
50
+ * @returns A promise that resolves to the Fr (finite field element) representation of the function tree root.
51
+ */
52
+ getFunctionTreeRoot(): MerkleTree;
53
+ /** Returns the contract class object. */
54
+ getContractClass(): ContractClassWithId;
55
+ /**
56
+ * Returns the contract class identifier for the given artifact.
57
+ */
58
+ getContractClassId(): Fr;
59
+ /**
60
+ * Retrieve the membership witness of a function within a contract's function tree.
61
+ * A membership witness represents the position and authentication path of a target function
62
+ * in the Merkle tree of constrained functions. It is required to prove the existence of the
63
+ * function within the contract during execution. Throws if fn does not exist or is not private.
64
+ *
65
+ * @param selector - The function selector.
66
+ * @returns A MembershipWitness instance representing the position and authentication path of the function in the function tree.
67
+ */
68
+ getFunctionMembershipWitness(selector: FunctionSelector): Promise<MembershipWitness<typeof FUNCTION_TREE_HEIGHT>>;
69
+ private getTree;
70
+ }
71
+ //# sourceMappingURL=private_functions_tree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"private_functions_tree.d.ts","sourceRoot":"","sources":["../../src/contract_data_oracle/private_functions_tree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EAIlB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D;;;;;GAKG;AACH,qBAAa,oBAAoB;IAK7B;;;OAGG;aACa,QAAQ,EAAE,WAAW;IARvC,OAAO,CAAC,IAAI,CAAC,CAAa;IAC1B,OAAO,CAAC,aAAa,CAAC,CAAsB;;IAG1C;;;OAGG;IACa,QAAQ,EAAE,WAAW;IAGvC;;;;;;;OAOG;IACI,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB;IAYrD;;;;;;;OAOG;IACI,WAAW,CAAC,QAAQ,EAAE,gBAAgB;IAI7C;;;;;;OAMG;IACI,mBAAmB;IAI1B,yCAAyC;IAClC,gBAAgB;IAOvB;;OAEG;IACI,kBAAkB;IAIzB;;;;;;;;OAQG;IACI,4BAA4B,CACjC,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,iBAAiB,CAAC,OAAO,oBAAoB,CAAC,CAAC;IAkB1D,OAAO,CAAC,OAAO;CAOhB"}
@@ -0,0 +1,97 @@
1
+ import { FUNCTION_TREE_HEIGHT, MembershipWitness, computePrivateFunctionLeaf, computePrivateFunctionsTree, getContractClassFromArtifact, } from '@aztec/circuits.js';
2
+ import { Fr } from '@aztec/foundation/fields';
3
+ import { assertLength } from '@aztec/foundation/serialize';
4
+ /**
5
+ * Represents a Merkle tree of functions for a particular Contract Class.
6
+ * It manages the construction of the function tree, computes its root, and generates membership witnesses
7
+ * for constrained functions. This class also enables lookup of specific function artifact using selectors.
8
+ * It is used in combination with the AztecNode to compute various data for executing private transactions.
9
+ */
10
+ export class PrivateFunctionsTree {
11
+ constructor(
12
+ /**
13
+ * The contract data object containing the artifact and contract address.
14
+ * TODO(@spalladino) Replace with contract class sourced from db.
15
+ */
16
+ contract) {
17
+ this.contract = contract;
18
+ }
19
+ /**
20
+ * Retrieve the artifact of a given function.
21
+ * The function is identified by its selector, which represents a unique identifier for the function's signature.
22
+ * Throws an error if the function with the provided selector is not found in the contract.
23
+ *
24
+ * @param selector - The function selector.
25
+ * @returns The artifact object containing relevant information about the targeted function.
26
+ */
27
+ getFunctionArtifact(selector) {
28
+ const artifact = this.contract.functions.find(f => f.selector.equals(selector));
29
+ if (!artifact) {
30
+ throw new Error(`Unknown function. Selector ${selector.toString()} not found in the artifact of contract ${this.contract.instance.address.toString()}. Expected one of: ${this.contract.functions
31
+ .map(f => `${f.name} (${f.selector.toString()})`)
32
+ .join(', ')}`);
33
+ }
34
+ return artifact;
35
+ }
36
+ /**
37
+ * Retrieve the bytecode of a function in the contract by its function selector.
38
+ * The function selector is a unique identifier for each function in a contract.
39
+ * Throws an error if the function with the given selector is not found in the contract.
40
+ *
41
+ * @param selector - The selector of a function to get bytecode for.
42
+ * @returns The bytecode of the function as a string.
43
+ */
44
+ getBytecode(selector) {
45
+ return this.getFunctionArtifact(selector).bytecode;
46
+ }
47
+ /**
48
+ * Calculate and return the root of the function tree for the current contract.
49
+ * This root is a cryptographic commitment to the set of constrained functions within the contract,
50
+ * which is used in the Aztec node's proof system. The root will be cached after the first call.
51
+ *
52
+ * @returns A promise that resolves to the Fr (finite field element) representation of the function tree root.
53
+ */
54
+ getFunctionTreeRoot() {
55
+ return this.getTree();
56
+ }
57
+ /** Returns the contract class object. */
58
+ getContractClass() {
59
+ if (!this.contractClass) {
60
+ this.contractClass = getContractClassFromArtifact(this.contract);
61
+ }
62
+ return this.contractClass;
63
+ }
64
+ /**
65
+ * Returns the contract class identifier for the given artifact.
66
+ */
67
+ getContractClassId() {
68
+ return this.getContractClass().id;
69
+ }
70
+ /**
71
+ * Retrieve the membership witness of a function within a contract's function tree.
72
+ * A membership witness represents the position and authentication path of a target function
73
+ * in the Merkle tree of constrained functions. It is required to prove the existence of the
74
+ * function within the contract during execution. Throws if fn does not exist or is not private.
75
+ *
76
+ * @param selector - The function selector.
77
+ * @returns A MembershipWitness instance representing the position and authentication path of the function in the function tree.
78
+ */
79
+ getFunctionMembershipWitness(selector) {
80
+ const fn = this.getContractClass().privateFunctions.find(f => f.selector.equals(selector));
81
+ if (!fn) {
82
+ throw new Error(`Private function with selector ${selector.toString()} not found in contract class.`);
83
+ }
84
+ const leaf = computePrivateFunctionLeaf(fn);
85
+ const index = this.getTree().getIndex(leaf);
86
+ const path = this.getTree().getSiblingPath(index);
87
+ return Promise.resolve(new MembershipWitness(FUNCTION_TREE_HEIGHT, BigInt(index), assertLength(path.map(Fr.fromBuffer), FUNCTION_TREE_HEIGHT)));
88
+ }
89
+ getTree() {
90
+ if (!this.tree) {
91
+ const fns = this.getContractClass().privateFunctions;
92
+ this.tree = computePrivateFunctionsTree(fns);
93
+ }
94
+ return this.tree;
95
+ }
96
+ }
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9mdW5jdGlvbnNfdHJlZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdF9kYXRhX29yYWNsZS9wcml2YXRlX2Z1bmN0aW9uc190cmVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsaUJBQWlCLEVBQ2pCLDBCQUEwQixFQUMxQiwyQkFBMkIsRUFDM0IsNEJBQTRCLEdBQzdCLE1BQU0sb0JBQW9CLENBQUM7QUFHNUIsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUczRDs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyxvQkFBb0I7SUFJL0I7SUFDRTs7O09BR0c7SUFDYSxRQUFxQjtRQUFyQixhQUFRLEdBQVIsUUFBUSxDQUFhO0lBQ3BDLENBQUM7SUFFSjs7Ozs7OztPQU9HO0lBQ0ksbUJBQW1CLENBQUMsUUFBMEI7UUFDbkQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUNoRixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxNQUFNLElBQUksS0FBSyxDQUNiLDhCQUE4QixRQUFRLENBQUMsUUFBUSxFQUFFLDBDQUEwQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLHNCQUFzQixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVM7aUJBQzlLLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUM7aUJBQ2hELElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUNoQixDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksV0FBVyxDQUFDLFFBQTBCO1FBQzNDLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUNyRCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksbUJBQW1CO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCx5Q0FBeUM7SUFDbEMsZ0JBQWdCO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLGFBQWEsR0FBRyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkUsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxrQkFBa0I7UUFDdkIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksNEJBQTRCLENBQ2pDLFFBQTBCO1FBRTFCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDM0YsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ1IsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQ0FBa0MsUUFBUSxDQUFDLFFBQVEsRUFBRSwrQkFBK0IsQ0FBQyxDQUFDO1FBQ3hHLENBQUM7UUFFRCxNQUFNLElBQUksR0FBRywwQkFBMEIsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEQsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUNwQixJQUFJLGlCQUFpQixDQUNuQixvQkFBb0IsRUFDcEIsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUNiLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxvQkFBb0IsQ0FBQyxDQUM1RCxDQUNGLENBQUM7SUFDSixDQUFDO0lBRU8sT0FBTztRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDZixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztZQUNyRCxJQUFJLENBQUMsSUFBSSxHQUFHLDJCQUEyQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztDQUNGIn0=
@@ -17,7 +17,7 @@ export class MemoryContractDatabase {
17
17
  * @returns A Promise that resolves when the contract is successfully added.
18
18
  */
19
19
  addContract(contract) {
20
- this.log(`Adding contract ${contract.completeAddress.address.toString()}`);
20
+ this.log(`Adding contract ${contract.instance.address.toString()}`);
21
21
  this.contracts.push(contract);
22
22
  return Promise.resolve();
23
23
  }
@@ -29,7 +29,7 @@ export class MemoryContractDatabase {
29
29
  * @returns A Promise resolving to the ContractDao instance matching the given address or undefined.
30
30
  */
31
31
  getContract(address) {
32
- return Promise.resolve(this.contracts.find(c => c.completeAddress.address.equals(address)));
32
+ return Promise.resolve(this.contracts.find(c => c.instance.address.equals(address)));
33
33
  }
34
34
  getContracts() {
35
35
  return Promise.resolve(this.contracts);
@@ -48,4 +48,4 @@ export class MemoryContractDatabase {
48
48
  return contract?.functions.find(f => f.selector.equals(selector))?.bytecode;
49
49
  }
50
50
  }
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5X2NvbnRyYWN0X2RhdGFiYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyYWN0X2RhdGFiYXNlL21lbW9yeV9jb250cmFjdF9kYXRhYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQTs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyxzQkFBc0I7SUFHakMsWUFBc0IsR0FBZ0I7UUFBaEIsUUFBRyxHQUFILEdBQUcsQ0FBYTtRQUY5QixjQUFTLEdBQWtCLEVBQUUsQ0FBQztJQUVHLENBQUM7SUFFMUM7Ozs7OztPQU1HO0lBQ0ksV0FBVyxDQUFDLFFBQXFCO1FBQ3RDLElBQUksQ0FBQyxHQUFHLENBQUMsbUJBQW1CLFFBQVEsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QixPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksV0FBVyxDQUFDLE9BQXFCO1FBQ3RDLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUVNLFlBQVk7UUFDakIsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQTZCLEVBQUUsUUFBMEI7UUFDNUUsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3pELE9BQU8sUUFBUSxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQztJQUM5RSxDQUFDO0NBQ0YifQ==
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5X2NvbnRyYWN0X2RhdGFiYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyYWN0X2RhdGFiYXNlL21lbW9yeV9jb250cmFjdF9kYXRhYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQTs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyxzQkFBc0I7SUFHakMsWUFBc0IsR0FBZ0I7UUFBaEIsUUFBRyxHQUFILEdBQUcsQ0FBYTtRQUY5QixjQUFTLEdBQWtCLEVBQUUsQ0FBQztJQUVHLENBQUM7SUFFMUM7Ozs7OztPQU1HO0lBQ0ksV0FBVyxDQUFDLFFBQXFCO1FBQ3RDLElBQUksQ0FBQyxHQUFHLENBQUMsbUJBQW1CLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QixPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksV0FBVyxDQUFDLE9BQXFCO1FBQ3RDLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUVNLFlBQVk7UUFDakIsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQTZCLEVBQUUsUUFBMEI7UUFDNUUsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3pELE9BQU8sUUFBUSxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQztJQUM5RSxDQUFDO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"kv_pxe_database.d.ts","sourceRoot":"","sources":["../../src/database/kv_pxe_database.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kv_pxe_database.d.ts","sourceRoot":"","sources":["../../src/database/kv_pxe_database.ts"],"names":[],"mappings":"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"}