@aztec/pxe 0.16.6 → 0.16.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/config/index.d.ts +2 -0
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +3 -2
- package/dest/contract_tree/index.d.ts.map +1 -1
- package/dest/contract_tree/index.js +3 -8
- package/dest/database/index.d.ts +1 -1
- package/dest/database/index.d.ts.map +1 -1
- package/dest/database/index.js +2 -2
- package/dest/database/kv_pxe_database.d.ts +32 -0
- package/dest/database/kv_pxe_database.d.ts.map +1 -0
- package/dest/database/kv_pxe_database.js +220 -0
- package/dest/database/memory_db.d.ts +4 -4
- package/dest/database/memory_db.d.ts.map +1 -1
- package/dest/database/memory_db.js +5 -5
- package/dest/database/{database.d.ts → pxe_database.d.ts} +3 -13
- package/dest/database/pxe_database.d.ts.map +1 -0
- package/dest/database/pxe_database.js +2 -0
- package/dest/database/pxe_database_test_suite.d.ts +7 -0
- package/dest/database/pxe_database_test_suite.d.ts.map +1 -0
- package/dest/database/pxe_database_test_suite.js +170 -0
- package/dest/note_processor/note_processor.d.ts +2 -2
- package/dest/note_processor/note_processor.d.ts.map +1 -1
- package/dest/note_processor/note_processor.js +1 -1
- package/dest/pxe_service/create_pxe_service.d.ts +2 -17
- package/dest/pxe_service/create_pxe_service.d.ts.map +1 -1
- package/dest/pxe_service/create_pxe_service.js +10 -5
- package/dest/pxe_service/pxe_service.d.ts +2 -2
- package/dest/pxe_service/pxe_service.d.ts.map +1 -1
- package/dest/pxe_service/pxe_service.js +4 -4
- package/dest/simulator/index.d.ts +2 -2
- package/dest/simulator/index.d.ts.map +1 -1
- package/dest/simulator/index.js +1 -1
- package/dest/simulator_oracle/index.d.ts +7 -2
- package/dest/simulator_oracle/index.d.ts.map +1 -1
- package/dest/simulator_oracle/index.js +8 -1
- package/dest/synchronizer/synchronizer.d.ts +2 -2
- package/dest/synchronizer/synchronizer.d.ts.map +1 -1
- package/dest/synchronizer/synchronizer.js +1 -1
- package/package.json +12 -10
- package/dest/database/database.d.ts.map +0 -1
- package/dest/database/database.js +0 -2
package/dest/config/index.d.ts
CHANGED
|
@@ -6,6 +6,8 @@ export interface PXEServiceConfig {
|
|
|
6
6
|
l2BlockPollingIntervalMS: number;
|
|
7
7
|
/** L2 block to start scanning from */
|
|
8
8
|
l2StartingBlock: number;
|
|
9
|
+
/** Where to store PXE data. If not set will store in memory */
|
|
10
|
+
dataDirectory?: string;
|
|
9
11
|
}
|
|
10
12
|
/**
|
|
11
13
|
* Creates an instance of PXEServiceConfig out of environment variables using sensible defaults for integration testing if not set.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2DAA2D;IAC3D,wBAAwB,EAAE,MAAM,CAAC;IACjC,sCAAsC;IACtC,eAAe,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2DAA2D;IAC3D,wBAAwB,EAAE,MAAM,CAAC;IACjC,sCAAsC;IACtC,eAAe,EAAE,MAAM,CAAC;IAExB,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,gBAAgB,CAQtD;AAED;;GAEG;AACH,wBAAgB,cAAc;;;EAK7B"}
|
package/dest/config/index.js
CHANGED
|
@@ -6,10 +6,11 @@ import { fileURLToPath } from 'url';
|
|
|
6
6
|
* Creates an instance of PXEServiceConfig out of environment variables using sensible defaults for integration testing if not set.
|
|
7
7
|
*/
|
|
8
8
|
export function getPXEServiceConfig() {
|
|
9
|
-
const { PXE_BLOCK_POLLING_INTERVAL_MS, PXE_L2_STARTING_BLOCK } = process.env;
|
|
9
|
+
const { PXE_BLOCK_POLLING_INTERVAL_MS, PXE_L2_STARTING_BLOCK, DATA_DIRECTORY } = process.env;
|
|
10
10
|
return {
|
|
11
11
|
l2BlockPollingIntervalMS: PXE_BLOCK_POLLING_INTERVAL_MS ? +PXE_BLOCK_POLLING_INTERVAL_MS : 1000,
|
|
12
12
|
l2StartingBlock: PXE_L2_STARTING_BLOCK ? +PXE_L2_STARTING_BLOCK : INITIAL_L2_BLOCK_NUM,
|
|
13
|
+
dataDirectory: DATA_DIRECTORY,
|
|
13
14
|
};
|
|
14
15
|
}
|
|
15
16
|
/**
|
|
@@ -20,4 +21,4 @@ export function getPackageInfo() {
|
|
|
20
21
|
const { version, name } = JSON.parse(readFileSync(packageJsonPath).toString());
|
|
21
22
|
return { version, name };
|
|
22
23
|
}
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFlcEM7O0dBRUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CO0lBQ2pDLE1BQU0sRUFBRSw2QkFBNkIsRUFBRSxxQkFBcUIsRUFBRSxjQUFjLEVBQUUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDO0lBRTdGLE9BQU87UUFDTCx3QkFBd0IsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDLENBQUMsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDLENBQUMsSUFBSTtRQUMvRixlQUFlLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLG9CQUFvQjtRQUN0RixhQUFhLEVBQUUsY0FBYztLQUM5QixDQUFDO0FBQ0osQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGNBQWM7SUFDNUIsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLG9CQUFvQixDQUFDLENBQUM7SUFDL0YsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBRS9FLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7QUFDM0IsQ0FBQyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contract_tree/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,oBAAoB,EACpB,EAAE,EAEF,iBAAiB,EACjB,sBAAsB,EAOvB,MAAM,oBAAoB,CAAC;AAS5B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE3E,OAAO,EAAE,SAAS,EAAE,WAAW,EAAgB,SAAS,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAElG;;;;;GAKG;AACH,qBAAa,YAAY;IAOrB;;OAEG;aACa,QAAQ,EAAE,WAAW;IACrC,OAAO,CAAC,iBAAiB;IACzB;;OAEG;aACa,sBAAsB,CAAC;IAdzC,OAAO,CAAC,cAAc,CAAC,CAAO;IAC9B,OAAO,CAAC,YAAY,CAAC,CAAO;IAC5B,OAAO,CAAC,gBAAgB,CAAC,CAAK;IAC9B,OAAO,CAAC,aAAa,CAAC,CAAS;;IAG7B;;OAEG;IACa,QAAQ,EAAE,WAAW,EAC7B,iBAAiB,EAAE,iBAAiB;IAC5C;;OAEG;IACa,sBAAsB,CAAC,oCAAwB;IAGjE;;;;;;;;;;;;;;OAcG;WACW,GAAG,CACf,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE,EAAE,EAAE,EACV,cAAc,EAAE,UAAU,EAC1B,mBAAmB,EAAE,EAAE,EACvB,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,SAAS;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contract_tree/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,oBAAoB,EACpB,EAAE,EAEF,iBAAiB,EACjB,sBAAsB,EAOvB,MAAM,oBAAoB,CAAC;AAS5B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE3E,OAAO,EAAE,SAAS,EAAE,WAAW,EAAgB,SAAS,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAElG;;;;;GAKG;AACH,qBAAa,YAAY;IAOrB;;OAEG;aACa,QAAQ,EAAE,WAAW;IACrC,OAAO,CAAC,iBAAiB;IACzB;;OAEG;aACa,sBAAsB,CAAC;IAdzC,OAAO,CAAC,cAAc,CAAC,CAAO;IAC9B,OAAO,CAAC,YAAY,CAAC,CAAO;IAC5B,OAAO,CAAC,gBAAgB,CAAC,CAAK;IAC9B,OAAO,CAAC,aAAa,CAAC,CAAS;;IAG7B;;OAEG;IACa,QAAQ,EAAE,WAAW,EAC7B,iBAAiB,EAAE,iBAAiB;IAC5C;;OAEG;IACa,sBAAsB,CAAC,oCAAwB;IAGjE;;;;;;;;;;;;;;OAcG;WACW,GAAG,CACf,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE,EAAE,EAAE,EACV,cAAc,EAAE,UAAU,EAC1B,mBAAmB,EAAE,EAAE,EACvB,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,SAAS;IA+BjB;;;;;;;OAOG;IACI,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB;IAYrD;;;;;;;OAOG;IACI,WAAW,CAAC,QAAQ,EAAE,gBAAgB;IAI7C;;;;;;;;;;;OAWG;IACU,4BAA4B,CAAC,WAAW,GAAE,MAAM,GAAG,QAAmB;IAWnF;;;;;;OAMG;IACI,mBAAmB;IAQ1B;;;;;;;;OAQG;IACI,4BAA4B,CACjC,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,iBAAiB,CAAC,OAAO,oBAAoB,CAAC,CAAC;IAqB1D;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;YAOX,gBAAgB;CAgB/B"}
|
|
@@ -2,7 +2,7 @@ import { CONTRACT_TREE_HEIGHT, FUNCTION_TREE_HEIGHT, FunctionData, MembershipWit
|
|
|
2
2
|
import { computeCompleteAddress, computeContractLeaf, computeFunctionTree, computeFunctionTreeRoot, computeVarArgsHash, hashConstructor, } from '@aztec/circuits.js/abis';
|
|
3
3
|
import { FunctionSelector } from '@aztec/foundation/abi';
|
|
4
4
|
import { assertLength } from '@aztec/foundation/serialize';
|
|
5
|
-
import { MerkleTreeId } from '@aztec/types';
|
|
5
|
+
import { ContractDao, MerkleTreeId } from '@aztec/types';
|
|
6
6
|
/**
|
|
7
7
|
* The ContractTree class represents a Merkle tree of functions for a particular contract.
|
|
8
8
|
* It manages the construction of the function tree, computes its root, and generates membership witnesses
|
|
@@ -57,12 +57,7 @@ export class ContractTree {
|
|
|
57
57
|
const argsHash = computeVarArgsHash(args);
|
|
58
58
|
const constructorHash = hashConstructor(functionData, argsHash, vkHash);
|
|
59
59
|
const completeAddress = computeCompleteAddress(from, contractAddressSalt, root, constructorHash);
|
|
60
|
-
const contractDao =
|
|
61
|
-
...artifact,
|
|
62
|
-
completeAddress,
|
|
63
|
-
functions,
|
|
64
|
-
portalContract,
|
|
65
|
-
};
|
|
60
|
+
const contractDao = new ContractDao(artifact, completeAddress, portalContract);
|
|
66
61
|
const NewContractConstructor = {
|
|
67
62
|
functionData,
|
|
68
63
|
vkHash,
|
|
@@ -178,4 +173,4 @@ export class ContractTree {
|
|
|
178
173
|
return this.contractIndex;
|
|
179
174
|
}
|
|
180
175
|
}
|
|
181
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3RfdHJlZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsb0JBQW9CLEVBRXBCLG9CQUFvQixFQUVwQixZQUFZLEVBQ1osaUJBQWlCLEVBRWpCLGVBQWUsRUFDZix1QkFBdUIsRUFDdkIsc0JBQXNCLEVBQ3RCLFNBQVMsRUFDVCxhQUFhLEVBQ2IsYUFBYSxHQUNkLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixtQkFBbUIsRUFDbkIsbUJBQW1CLEVBQ25CLHVCQUF1QixFQUN2QixrQkFBa0IsRUFDbEIsZUFBZSxHQUNoQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBb0IsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFhLFdBQVcsRUFBRSxZQUFZLEVBQWdDLE1BQU0sY0FBYyxDQUFDO0FBRWxHOzs7OztHQUtHO0FBQ0gsTUFBTSxPQUFPLFlBQVk7SUFNdkI7SUFDRTs7T0FFRztJQUNhLFFBQXFCLEVBQzdCLGlCQUFvQztJQUM1Qzs7T0FFRztJQUNhLHNCQUErQztRQUwvQyxhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQzdCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFJNUIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF5QjtJQUM5RCxDQUFDO0lBRUo7Ozs7Ozs7Ozs7Ozs7O09BY0c7SUFDSSxNQUFNLENBQUMsR0FBRyxDQUNmLFFBQTBCLEVBQzFCLElBQVUsRUFDVixjQUEwQixFQUMxQixtQkFBdUIsRUFDdkIsSUFBZSxFQUNmLElBQWU7UUFFZixNQUFNLG1CQUFtQixHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ25FLElB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
|
package/dest/database/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/database/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/database/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC"}
|
package/dest/database/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './
|
|
1
|
+
export * from './pxe_database.js';
|
|
2
2
|
export * from './memory_db.js';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGF0YWJhc2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGdCQUFnQixDQUFDIn0=
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { AztecAddress, BlockHeader, CompleteAddress } from '@aztec/circuits.js';
|
|
2
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
3
|
+
import { AztecKVStore } from '@aztec/kv-store';
|
|
4
|
+
import { ContractDao, MerkleTreeId, NoteFilter, PublicKey } from '@aztec/types';
|
|
5
|
+
import { NoteDao } from './note_dao.js';
|
|
6
|
+
import { PxeDatabase } from './pxe_database.js';
|
|
7
|
+
/**
|
|
8
|
+
* A PXE database backed by LMDB.
|
|
9
|
+
*/
|
|
10
|
+
export declare class KVPxeDatabase implements PxeDatabase {
|
|
11
|
+
#private;
|
|
12
|
+
constructor(db: AztecKVStore);
|
|
13
|
+
addAuthWitness(messageHash: Fr, witness: Fr[]): Promise<void>;
|
|
14
|
+
getAuthWitness(messageHash: Fr): Promise<Fr[] | undefined>;
|
|
15
|
+
addCapsule(capsule: Fr[]): Promise<void>;
|
|
16
|
+
popCapsule(): Promise<Fr[] | undefined>;
|
|
17
|
+
addNote(note: NoteDao): Promise<void>;
|
|
18
|
+
addNotes(notes: NoteDao[]): Promise<void>;
|
|
19
|
+
getNotes(filter: NoteFilter): Promise<NoteDao[]>;
|
|
20
|
+
removeNullifiedNotes(nullifiers: Fr[], account: PublicKey): Promise<NoteDao[]>;
|
|
21
|
+
getTreeRoots(): Record<MerkleTreeId, Fr>;
|
|
22
|
+
setBlockHeader(blockHeader: BlockHeader): Promise<void>;
|
|
23
|
+
getBlockHeader(): BlockHeader;
|
|
24
|
+
addCompleteAddress(completeAddress: CompleteAddress): Promise<boolean>;
|
|
25
|
+
getCompleteAddress(address: AztecAddress): Promise<CompleteAddress | undefined>;
|
|
26
|
+
getCompleteAddresses(): Promise<CompleteAddress[]>;
|
|
27
|
+
estimateSize(): number;
|
|
28
|
+
addContract(contract: ContractDao): Promise<void>;
|
|
29
|
+
getContract(address: AztecAddress): Promise<ContractDao | undefined>;
|
|
30
|
+
getContracts(): Promise<ContractDao[]>;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=kv_pxe_database.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kv_pxe_database.d.ts","sourceRoot":"","sources":["../../src/database/kv_pxe_database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAc,YAAY,EAA2C,MAAM,iBAAiB,CAAC;AACpG,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEhF,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAUhD;;GAEG;AACH,qBAAa,aAAc,YAAW,WAAW;;gBAenC,EAAE,EAAE,YAAY;IAoBtB,cAAc,CAAC,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAOnE,cAAc,CAAC,WAAW,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC;IAKpD,UAAU,CAAC,OAAO,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,UAAU,IAAI,OAAO,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC;IAKvC,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBzC,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAiDtD,oBAAoB,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAuB9E,YAAY,IAAI,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC;IAgBlC,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAc7D,cAAc,IAAI,WAAW;IAoB7B,kBAAkB,CAAC,eAAe,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAyBtE,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IAU/E,oBAAoB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAIlD,YAAY,IAAI,MAAM;IAYhB,WAAW,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAKpE,YAAY,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;CAGvC"}
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
var _KVPxeDatabase_instances, _KVPxeDatabase_blockHeader, _KVPxeDatabase_addresses, _KVPxeDatabase_addressIndex, _KVPxeDatabase_authWitnesses, _KVPxeDatabase_capsules, _KVPxeDatabase_contracts, _KVPxeDatabase_notes, _KVPxeDatabase_nullifiedNotes, _KVPxeDatabase_notesByContract, _KVPxeDatabase_notesByStorageSlot, _KVPxeDatabase_notesByTxHash, _KVPxeDatabase_notesByOwner, _KVPxeDatabase_db, _KVPxeDatabase_getAllNonNullifiedNotes;
|
|
2
|
+
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
3
|
+
import { BlockHeader, CompleteAddress } from '@aztec/circuits.js';
|
|
4
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
5
|
+
import { ContractDao, MerkleTreeId } from '@aztec/types';
|
|
6
|
+
import { NoteDao } from './note_dao.js';
|
|
7
|
+
/**
|
|
8
|
+
* A PXE database backed by LMDB.
|
|
9
|
+
*/
|
|
10
|
+
export class KVPxeDatabase {
|
|
11
|
+
constructor(db) {
|
|
12
|
+
_KVPxeDatabase_instances.add(this);
|
|
13
|
+
_KVPxeDatabase_blockHeader.set(this, void 0);
|
|
14
|
+
_KVPxeDatabase_addresses.set(this, void 0);
|
|
15
|
+
_KVPxeDatabase_addressIndex.set(this, void 0);
|
|
16
|
+
_KVPxeDatabase_authWitnesses.set(this, void 0);
|
|
17
|
+
_KVPxeDatabase_capsules.set(this, void 0);
|
|
18
|
+
_KVPxeDatabase_contracts.set(this, void 0);
|
|
19
|
+
_KVPxeDatabase_notes.set(this, void 0);
|
|
20
|
+
_KVPxeDatabase_nullifiedNotes.set(this, void 0);
|
|
21
|
+
_KVPxeDatabase_notesByContract.set(this, void 0);
|
|
22
|
+
_KVPxeDatabase_notesByStorageSlot.set(this, void 0);
|
|
23
|
+
_KVPxeDatabase_notesByTxHash.set(this, void 0);
|
|
24
|
+
_KVPxeDatabase_notesByOwner.set(this, void 0);
|
|
25
|
+
_KVPxeDatabase_db.set(this, void 0);
|
|
26
|
+
__classPrivateFieldSet(this, _KVPxeDatabase_db, db, "f");
|
|
27
|
+
__classPrivateFieldSet(this, _KVPxeDatabase_addresses, db.createArray('addresses'), "f");
|
|
28
|
+
__classPrivateFieldSet(this, _KVPxeDatabase_addressIndex, db.createMap('address_index'), "f");
|
|
29
|
+
__classPrivateFieldSet(this, _KVPxeDatabase_authWitnesses, db.createMap('auth_witnesses'), "f");
|
|
30
|
+
__classPrivateFieldSet(this, _KVPxeDatabase_capsules, db.createArray('capsules'), "f");
|
|
31
|
+
__classPrivateFieldSet(this, _KVPxeDatabase_blockHeader, db.createSingleton('block_header'), "f");
|
|
32
|
+
__classPrivateFieldSet(this, _KVPxeDatabase_contracts, db.createMap('contracts'), "f");
|
|
33
|
+
__classPrivateFieldSet(this, _KVPxeDatabase_notes, db.createArray('notes'), "f");
|
|
34
|
+
__classPrivateFieldSet(this, _KVPxeDatabase_nullifiedNotes, db.createMap('nullified_notes'), "f");
|
|
35
|
+
__classPrivateFieldSet(this, _KVPxeDatabase_notesByContract, db.createMultiMap('notes_by_contract'), "f");
|
|
36
|
+
__classPrivateFieldSet(this, _KVPxeDatabase_notesByStorageSlot, db.createMultiMap('notes_by_storage_slot'), "f");
|
|
37
|
+
__classPrivateFieldSet(this, _KVPxeDatabase_notesByTxHash, db.createMultiMap('notes_by_tx_hash'), "f");
|
|
38
|
+
__classPrivateFieldSet(this, _KVPxeDatabase_notesByOwner, db.createMultiMap('notes_by_owner'), "f");
|
|
39
|
+
}
|
|
40
|
+
async addAuthWitness(messageHash, witness) {
|
|
41
|
+
await __classPrivateFieldGet(this, _KVPxeDatabase_authWitnesses, "f").set(messageHash.toString(), witness.map(w => w.toBuffer()));
|
|
42
|
+
}
|
|
43
|
+
getAuthWitness(messageHash) {
|
|
44
|
+
const witness = __classPrivateFieldGet(this, _KVPxeDatabase_authWitnesses, "f").get(messageHash.toString());
|
|
45
|
+
return Promise.resolve(witness?.map(w => Fr.fromBuffer(w)));
|
|
46
|
+
}
|
|
47
|
+
async addCapsule(capsule) {
|
|
48
|
+
await __classPrivateFieldGet(this, _KVPxeDatabase_capsules, "f").push(capsule.map(c => c.toBuffer()));
|
|
49
|
+
}
|
|
50
|
+
async popCapsule() {
|
|
51
|
+
const val = await __classPrivateFieldGet(this, _KVPxeDatabase_capsules, "f").pop();
|
|
52
|
+
return val?.map(b => Fr.fromBuffer(b));
|
|
53
|
+
}
|
|
54
|
+
async addNote(note) {
|
|
55
|
+
await this.addNotes([note]);
|
|
56
|
+
}
|
|
57
|
+
async addNotes(notes) {
|
|
58
|
+
const newLength = await __classPrivateFieldGet(this, _KVPxeDatabase_notes, "f").push(...notes.map(note => note.toBuffer()));
|
|
59
|
+
for (const [index, note] of notes.entries()) {
|
|
60
|
+
const noteId = newLength - notes.length + index;
|
|
61
|
+
await Promise.all([
|
|
62
|
+
__classPrivateFieldGet(this, _KVPxeDatabase_notesByContract, "f").set(note.contractAddress.toString(), noteId),
|
|
63
|
+
__classPrivateFieldGet(this, _KVPxeDatabase_notesByStorageSlot, "f").set(note.storageSlot.toString(), noteId),
|
|
64
|
+
__classPrivateFieldGet(this, _KVPxeDatabase_notesByTxHash, "f").set(note.txHash.toString(), noteId),
|
|
65
|
+
__classPrivateFieldGet(this, _KVPxeDatabase_notesByOwner, "f").set(note.publicKey.toString(), noteId),
|
|
66
|
+
]);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
async getNotes(filter) {
|
|
70
|
+
const publicKey = filter.owner
|
|
71
|
+
? (await this.getCompleteAddress(filter.owner))?.publicKey
|
|
72
|
+
: undefined;
|
|
73
|
+
const initialNoteIds = publicKey
|
|
74
|
+
? __classPrivateFieldGet(this, _KVPxeDatabase_notesByOwner, "f").getValues(publicKey.toString())
|
|
75
|
+
: filter.txHash
|
|
76
|
+
? __classPrivateFieldGet(this, _KVPxeDatabase_notesByTxHash, "f").getValues(filter.txHash.toString())
|
|
77
|
+
: filter.contractAddress
|
|
78
|
+
? __classPrivateFieldGet(this, _KVPxeDatabase_notesByContract, "f").getValues(filter.contractAddress.toString())
|
|
79
|
+
: filter.storageSlot
|
|
80
|
+
? __classPrivateFieldGet(this, _KVPxeDatabase_notesByStorageSlot, "f").getValues(filter.storageSlot.toString())
|
|
81
|
+
: undefined;
|
|
82
|
+
if (!initialNoteIds) {
|
|
83
|
+
return Array.from(__classPrivateFieldGet(this, _KVPxeDatabase_instances, "m", _KVPxeDatabase_getAllNonNullifiedNotes).call(this));
|
|
84
|
+
}
|
|
85
|
+
const result = [];
|
|
86
|
+
for (const noteId of initialNoteIds) {
|
|
87
|
+
const serializedNote = __classPrivateFieldGet(this, _KVPxeDatabase_notes, "f").at(noteId);
|
|
88
|
+
if (!serializedNote) {
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
const note = NoteDao.fromBuffer(serializedNote);
|
|
92
|
+
if (filter.contractAddress && !note.contractAddress.equals(filter.contractAddress)) {
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
95
|
+
if (filter.txHash && !note.txHash.equals(filter.txHash)) {
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
if (filter.storageSlot && !note.storageSlot.equals(filter.storageSlot)) {
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
if (publicKey && !note.publicKey.equals(publicKey)) {
|
|
102
|
+
continue;
|
|
103
|
+
}
|
|
104
|
+
result.push(note);
|
|
105
|
+
}
|
|
106
|
+
return result;
|
|
107
|
+
}
|
|
108
|
+
removeNullifiedNotes(nullifiers, account) {
|
|
109
|
+
const nullifierSet = new Set(nullifiers.map(n => n.toString()));
|
|
110
|
+
return __classPrivateFieldGet(this, _KVPxeDatabase_db, "f").transaction(() => {
|
|
111
|
+
const notesIds = __classPrivateFieldGet(this, _KVPxeDatabase_notesByOwner, "f").getValues(account.toString());
|
|
112
|
+
const nullifiedNotes = [];
|
|
113
|
+
for (const noteId of notesIds) {
|
|
114
|
+
const note = NoteDao.fromBuffer(__classPrivateFieldGet(this, _KVPxeDatabase_notes, "f").at(noteId));
|
|
115
|
+
if (nullifierSet.has(note.siloedNullifier.toString())) {
|
|
116
|
+
nullifiedNotes.push(note);
|
|
117
|
+
void __classPrivateFieldGet(this, _KVPxeDatabase_nullifiedNotes, "f").set(noteId, true);
|
|
118
|
+
void __classPrivateFieldGet(this, _KVPxeDatabase_notesByOwner, "f").deleteValue(account.toString(), noteId);
|
|
119
|
+
void __classPrivateFieldGet(this, _KVPxeDatabase_notesByTxHash, "f").deleteValue(note.txHash.toString(), noteId);
|
|
120
|
+
void __classPrivateFieldGet(this, _KVPxeDatabase_notesByContract, "f").deleteValue(note.contractAddress.toString(), noteId);
|
|
121
|
+
void __classPrivateFieldGet(this, _KVPxeDatabase_notesByStorageSlot, "f").deleteValue(note.storageSlot.toString(), noteId);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return nullifiedNotes;
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
getTreeRoots() {
|
|
128
|
+
const roots = __classPrivateFieldGet(this, _KVPxeDatabase_blockHeader, "f").get()?.roots;
|
|
129
|
+
if (!roots) {
|
|
130
|
+
throw new Error(`Tree roots not set`);
|
|
131
|
+
}
|
|
132
|
+
return {
|
|
133
|
+
[MerkleTreeId.ARCHIVE]: Fr.fromString(roots[MerkleTreeId.ARCHIVE]),
|
|
134
|
+
[MerkleTreeId.CONTRACT_TREE]: Fr.fromString(roots[MerkleTreeId.CONTRACT_TREE].toString()),
|
|
135
|
+
[MerkleTreeId.L1_TO_L2_MESSAGES_TREE]: Fr.fromString(roots[MerkleTreeId.L1_TO_L2_MESSAGES_TREE].toString()),
|
|
136
|
+
[MerkleTreeId.NOTE_HASH_TREE]: Fr.fromString(roots[MerkleTreeId.NOTE_HASH_TREE].toString()),
|
|
137
|
+
[MerkleTreeId.PUBLIC_DATA_TREE]: Fr.fromString(roots[MerkleTreeId.PUBLIC_DATA_TREE].toString()),
|
|
138
|
+
[MerkleTreeId.NULLIFIER_TREE]: Fr.fromString(roots[MerkleTreeId.NULLIFIER_TREE].toString()),
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
async setBlockHeader(blockHeader) {
|
|
142
|
+
await __classPrivateFieldGet(this, _KVPxeDatabase_blockHeader, "f").set({
|
|
143
|
+
globalVariablesHash: blockHeader.globalVariablesHash.toString(),
|
|
144
|
+
roots: {
|
|
145
|
+
[MerkleTreeId.NOTE_HASH_TREE]: blockHeader.noteHashTreeRoot.toString(),
|
|
146
|
+
[MerkleTreeId.NULLIFIER_TREE]: blockHeader.nullifierTreeRoot.toString(),
|
|
147
|
+
[MerkleTreeId.CONTRACT_TREE]: blockHeader.contractTreeRoot.toString(),
|
|
148
|
+
[MerkleTreeId.L1_TO_L2_MESSAGES_TREE]: blockHeader.l1ToL2MessagesTreeRoot.toString(),
|
|
149
|
+
[MerkleTreeId.ARCHIVE]: blockHeader.archiveRoot.toString(),
|
|
150
|
+
[MerkleTreeId.PUBLIC_DATA_TREE]: blockHeader.publicDataTreeRoot.toString(),
|
|
151
|
+
},
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
getBlockHeader() {
|
|
155
|
+
const value = __classPrivateFieldGet(this, _KVPxeDatabase_blockHeader, "f").get();
|
|
156
|
+
if (!value) {
|
|
157
|
+
throw new Error(`Block header not set`);
|
|
158
|
+
}
|
|
159
|
+
const blockHeader = new BlockHeader(Fr.fromString(value.roots[MerkleTreeId.NOTE_HASH_TREE]), Fr.fromString(value.roots[MerkleTreeId.NULLIFIER_TREE]), Fr.fromString(value.roots[MerkleTreeId.CONTRACT_TREE]), Fr.fromString(value.roots[MerkleTreeId.L1_TO_L2_MESSAGES_TREE]), Fr.fromString(value.roots[MerkleTreeId.ARCHIVE]), Fr.ZERO, // todo: private kernel vk tree root
|
|
160
|
+
Fr.fromString(value.roots[MerkleTreeId.PUBLIC_DATA_TREE]), Fr.fromString(value.globalVariablesHash));
|
|
161
|
+
return blockHeader;
|
|
162
|
+
}
|
|
163
|
+
addCompleteAddress(completeAddress) {
|
|
164
|
+
return __classPrivateFieldGet(this, _KVPxeDatabase_db, "f").transaction(() => {
|
|
165
|
+
const addressString = completeAddress.address.toString();
|
|
166
|
+
const buffer = completeAddress.toBuffer();
|
|
167
|
+
const existing = __classPrivateFieldGet(this, _KVPxeDatabase_addressIndex, "f").get(addressString);
|
|
168
|
+
if (typeof existing === 'undefined') {
|
|
169
|
+
const index = __classPrivateFieldGet(this, _KVPxeDatabase_addresses, "f").length;
|
|
170
|
+
void __classPrivateFieldGet(this, _KVPxeDatabase_addresses, "f").push(buffer);
|
|
171
|
+
void __classPrivateFieldGet(this, _KVPxeDatabase_addressIndex, "f").set(addressString, index);
|
|
172
|
+
return true;
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
const existingBuffer = __classPrivateFieldGet(this, _KVPxeDatabase_addresses, "f").at(existing);
|
|
176
|
+
if (existingBuffer?.equals(buffer)) {
|
|
177
|
+
return false;
|
|
178
|
+
}
|
|
179
|
+
throw new Error(`Complete address with aztec address ${addressString} but different public key or partial key already exists in memory database`);
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
getCompleteAddress(address) {
|
|
184
|
+
const index = __classPrivateFieldGet(this, _KVPxeDatabase_addressIndex, "f").get(address.toString());
|
|
185
|
+
if (typeof index === 'undefined') {
|
|
186
|
+
return Promise.resolve(undefined);
|
|
187
|
+
}
|
|
188
|
+
const value = __classPrivateFieldGet(this, _KVPxeDatabase_addresses, "f").at(index);
|
|
189
|
+
return Promise.resolve(value ? CompleteAddress.fromBuffer(value) : undefined);
|
|
190
|
+
}
|
|
191
|
+
getCompleteAddresses() {
|
|
192
|
+
return Promise.resolve(Array.from(__classPrivateFieldGet(this, _KVPxeDatabase_addresses, "f")).map(v => CompleteAddress.fromBuffer(v)));
|
|
193
|
+
}
|
|
194
|
+
estimateSize() {
|
|
195
|
+
const notesSize = Array.from(__classPrivateFieldGet(this, _KVPxeDatabase_instances, "m", _KVPxeDatabase_getAllNonNullifiedNotes).call(this)).reduce((sum, note) => sum + note.getSize(), 0);
|
|
196
|
+
const authWitsSize = Array.from(__classPrivateFieldGet(this, _KVPxeDatabase_authWitnesses, "f").values()).reduce((sum, value) => sum + value.length * Fr.SIZE_IN_BYTES, 0);
|
|
197
|
+
const addressesSize = __classPrivateFieldGet(this, _KVPxeDatabase_addresses, "f").length * CompleteAddress.SIZE_IN_BYTES;
|
|
198
|
+
const treeRootsSize = Object.keys(MerkleTreeId).length * Fr.SIZE_IN_BYTES;
|
|
199
|
+
return notesSize + treeRootsSize + authWitsSize + addressesSize;
|
|
200
|
+
}
|
|
201
|
+
async addContract(contract) {
|
|
202
|
+
await __classPrivateFieldGet(this, _KVPxeDatabase_contracts, "f").set(contract.completeAddress.address.toString(), contract.toBuffer());
|
|
203
|
+
}
|
|
204
|
+
getContract(address) {
|
|
205
|
+
const contract = __classPrivateFieldGet(this, _KVPxeDatabase_contracts, "f").get(address.toString());
|
|
206
|
+
return Promise.resolve(contract ? ContractDao.fromBuffer(contract) : undefined);
|
|
207
|
+
}
|
|
208
|
+
getContracts() {
|
|
209
|
+
return Promise.resolve(Array.from(__classPrivateFieldGet(this, _KVPxeDatabase_contracts, "f").values()).map(c => ContractDao.fromBuffer(c)));
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
_KVPxeDatabase_blockHeader = new WeakMap(), _KVPxeDatabase_addresses = new WeakMap(), _KVPxeDatabase_addressIndex = new WeakMap(), _KVPxeDatabase_authWitnesses = new WeakMap(), _KVPxeDatabase_capsules = new WeakMap(), _KVPxeDatabase_contracts = new WeakMap(), _KVPxeDatabase_notes = new WeakMap(), _KVPxeDatabase_nullifiedNotes = new WeakMap(), _KVPxeDatabase_notesByContract = new WeakMap(), _KVPxeDatabase_notesByStorageSlot = new WeakMap(), _KVPxeDatabase_notesByTxHash = new WeakMap(), _KVPxeDatabase_notesByOwner = new WeakMap(), _KVPxeDatabase_db = new WeakMap(), _KVPxeDatabase_instances = new WeakSet(), _KVPxeDatabase_getAllNonNullifiedNotes = function* _KVPxeDatabase_getAllNonNullifiedNotes() {
|
|
213
|
+
for (const [index, serialized] of __classPrivateFieldGet(this, _KVPxeDatabase_notes, "f").entries()) {
|
|
214
|
+
if (__classPrivateFieldGet(this, _KVPxeDatabase_nullifiedNotes, "f").has(index)) {
|
|
215
|
+
continue;
|
|
216
|
+
}
|
|
217
|
+
yield NoteDao.fromBuffer(serialized);
|
|
218
|
+
}
|
|
219
|
+
};
|
|
220
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3ZfcHhlX2RhdGFiYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGFiYXNlL2t2X3B4ZV9kYXRhYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBZ0IsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBeUIsTUFBTSxjQUFjLENBQUM7QUFFaEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVd4Qzs7R0FFRztBQUNILE1BQU0sT0FBTyxhQUFhO0lBZXhCLFlBQVksRUFBZ0I7O1FBZDVCLDZDQUFvRDtRQUNwRCwyQ0FBK0I7UUFDL0IsOENBQXdDO1FBQ3hDLCtDQUEyQztRQUMzQywwQ0FBZ0M7UUFDaEMsMkNBQXFDO1FBQ3JDLHVDQUEyQjtRQUMzQixnREFBMkM7UUFDM0MsaURBQWdEO1FBQ2hELG9EQUFtRDtRQUNuRCwrQ0FBOEM7UUFDOUMsOENBQTZDO1FBQzdDLG9DQUFrQjtRQUdoQix1QkFBQSxJQUFJLHFCQUFPLEVBQUUsTUFBQSxDQUFDO1FBRWQsdUJBQUEsSUFBSSw0QkFBYyxFQUFFLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxNQUFBLENBQUM7UUFDOUMsdUJBQUEsSUFBSSwrQkFBaUIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsTUFBQSxDQUFDO1FBRW5ELHVCQUFBLElBQUksZ0NBQWtCLEVBQUUsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsTUFBQSxDQUFDO1FBQ3JELHVCQUFBLElBQUksMkJBQWEsRUFBRSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsTUFBQSxDQUFDO1FBQzVDLHVCQUFBLElBQUksOEJBQWdCLEVBQUUsQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLE1BQUEsQ0FBQztR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
|
|
@@ -3,15 +3,15 @@ import { AztecAddress } from '@aztec/foundation/aztec-address';
|
|
|
3
3
|
import { Fr } from '@aztec/foundation/fields';
|
|
4
4
|
import { MerkleTreeId, NoteFilter } from '@aztec/types';
|
|
5
5
|
import { MemoryContractDatabase } from '../contract_database/index.js';
|
|
6
|
-
import { Database } from './database.js';
|
|
7
6
|
import { NoteDao } from './note_dao.js';
|
|
7
|
+
import { PxeDatabase } from './pxe_database.js';
|
|
8
8
|
/**
|
|
9
9
|
* The MemoryDB class provides an in-memory implementation of a database to manage transactions and auxiliary data.
|
|
10
10
|
* It extends the MemoryContractDatabase, allowing it to store contract-related data as well.
|
|
11
11
|
* The class offers methods to add, fetch, and remove transaction records and auxiliary data based on various filters such as transaction hash, address, and storage slot.
|
|
12
12
|
* As an in-memory database, the stored data will not persist beyond the life of the application instance.
|
|
13
13
|
*/
|
|
14
|
-
export declare class MemoryDB extends MemoryContractDatabase implements
|
|
14
|
+
export declare class MemoryDB extends MemoryContractDatabase implements PxeDatabase {
|
|
15
15
|
private notesTable;
|
|
16
16
|
private treeRoots;
|
|
17
17
|
private globalVariablesHash;
|
|
@@ -30,7 +30,7 @@ export declare class MemoryDB extends MemoryContractDatabase implements Database
|
|
|
30
30
|
* @param messageHash - The message hash.
|
|
31
31
|
* @returns A Promise that resolves to an array of field elements representing the auth witness.
|
|
32
32
|
*/
|
|
33
|
-
getAuthWitness(messageHash: Fr): Promise<Fr[]>;
|
|
33
|
+
getAuthWitness(messageHash: Fr): Promise<Fr[] | undefined>;
|
|
34
34
|
addNote(note: NoteDao): Promise<void>;
|
|
35
35
|
addCapsule(capsule: Fr[]): Promise<void>;
|
|
36
36
|
popCapsule(): Promise<Fr[] | undefined>;
|
|
@@ -38,7 +38,7 @@ export declare class MemoryDB extends MemoryContractDatabase implements Database
|
|
|
38
38
|
getNotes(filter: NoteFilter): Promise<NoteDao[]>;
|
|
39
39
|
removeNullifiedNotes(nullifiers: Fr[], account: PublicKey): Promise<NoteDao[]>;
|
|
40
40
|
getTreeRoots(): Record<MerkleTreeId, Fr>;
|
|
41
|
-
setTreeRoots
|
|
41
|
+
private setTreeRoots;
|
|
42
42
|
getBlockHeader(): BlockHeader;
|
|
43
43
|
setBlockHeader(blockHeader: BlockHeader): Promise<void>;
|
|
44
44
|
addCompleteAddress(completeAddress: CompleteAddress): Promise<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory_db.d.ts","sourceRoot":"","sources":["../../src/database/memory_db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAExD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"memory_db.d.ts","sourceRoot":"","sources":["../../src/database/memory_db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAExD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;;;;GAKG;AACH,qBAAa,QAAS,SAAQ,sBAAuB,YAAW,WAAW;IACzE,OAAO,CAAC,UAAU,CAAiB;IACnC,OAAO,CAAC,SAAS,CAAuC;IACxD,OAAO,CAAC,mBAAmB,CAAiB;IAC5C,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,aAAa,CAA4B;IAGjD,OAAO,CAAC,YAAY,CAAc;gBAEtB,SAAS,CAAC,EAAE,MAAM;IAI9B;;;;OAIG;IACI,cAAc,CAAC,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKpE;;;;OAIG;IACI,cAAc,CAAC,WAAW,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC;IAI1D,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrC,UAAU,CAAC,OAAO,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxC,UAAU,IAAI,OAAO,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC;IAIvC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE;IAKnB,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAmBtD,oBAAoB,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS;IAoBzD,YAAY,IAAI,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC;IAQ/C,OAAO,CAAC,YAAY;IAIb,cAAc,IAAI,WAAW;IAiB7B,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAcvD,kBAAkB,CAAC,eAAe,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBtE,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IAK/E,oBAAoB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAIlD,YAAY;CAOpB"}
|
|
@@ -89,7 +89,6 @@ export class MemoryDB extends MemoryContractDatabase {
|
|
|
89
89
|
}
|
|
90
90
|
setTreeRoots(roots) {
|
|
91
91
|
this.treeRoots = roots;
|
|
92
|
-
return Promise.resolve();
|
|
93
92
|
}
|
|
94
93
|
getBlockHeader() {
|
|
95
94
|
const roots = this.getTreeRoots();
|
|
@@ -99,9 +98,9 @@ export class MemoryDB extends MemoryContractDatabase {
|
|
|
99
98
|
return new BlockHeader(roots[MerkleTreeId.NOTE_HASH_TREE], roots[MerkleTreeId.NULLIFIER_TREE], roots[MerkleTreeId.CONTRACT_TREE], roots[MerkleTreeId.L1_TO_L2_MESSAGES_TREE], roots[MerkleTreeId.ARCHIVE], Fr.ZERO, // todo: private kernel vk tree root
|
|
100
99
|
roots[MerkleTreeId.PUBLIC_DATA_TREE], this.globalVariablesHash);
|
|
101
100
|
}
|
|
102
|
-
|
|
101
|
+
setBlockHeader(blockHeader) {
|
|
103
102
|
this.globalVariablesHash = blockHeader.globalVariablesHash;
|
|
104
|
-
|
|
103
|
+
this.setTreeRoots({
|
|
105
104
|
[MerkleTreeId.NOTE_HASH_TREE]: blockHeader.noteHashTreeRoot,
|
|
106
105
|
[MerkleTreeId.NULLIFIER_TREE]: blockHeader.nullifierTreeRoot,
|
|
107
106
|
[MerkleTreeId.CONTRACT_TREE]: blockHeader.contractTreeRoot,
|
|
@@ -109,6 +108,7 @@ export class MemoryDB extends MemoryContractDatabase {
|
|
|
109
108
|
[MerkleTreeId.ARCHIVE]: blockHeader.archiveRoot,
|
|
110
109
|
[MerkleTreeId.PUBLIC_DATA_TREE]: blockHeader.publicDataTreeRoot,
|
|
111
110
|
});
|
|
111
|
+
return Promise.resolve();
|
|
112
112
|
}
|
|
113
113
|
addCompleteAddress(completeAddress) {
|
|
114
114
|
const accountIndex = this.addresses.findIndex(r => r.address.equals(completeAddress.address));
|
|
@@ -116,7 +116,7 @@ export class MemoryDB extends MemoryContractDatabase {
|
|
|
116
116
|
if (this.addresses[accountIndex].equals(completeAddress)) {
|
|
117
117
|
return Promise.resolve(false);
|
|
118
118
|
}
|
|
119
|
-
|
|
119
|
+
return Promise.reject(new Error(`Complete address with aztec address ${completeAddress.address.toString()} but different public key or partial key already exists in memory database`));
|
|
120
120
|
}
|
|
121
121
|
this.addresses.push(completeAddress);
|
|
122
122
|
return Promise.resolve(true);
|
|
@@ -136,4 +136,4 @@ export class MemoryDB extends MemoryContractDatabase {
|
|
|
136
136
|
return notesSize + treeRootsSize + authWitsSize + this.addresses.length * CompleteAddress.SIZE_IN_BYTES;
|
|
137
137
|
}
|
|
138
138
|
}
|
|
139
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5X2RiLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGFiYXNlL21lbW9yeV9kYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBYSxNQUFNLG9CQUFvQixDQUFDO0FBRTdFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFjLE1BQU0sY0FBYyxDQUFDO0FBRXhELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBSXZFOzs7OztHQUtHO0FBQ0gsTUFBTSxPQUFPLFFBQVMsU0FBUSxzQkFBc0I7SUFVbEQsWUFBWSxTQUFrQjtRQUM1QixLQUFLLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztRQVZuRixlQUFVLEdBQWMsRUFBRSxDQUFDO1FBRzNCLGNBQVMsR0FBc0IsRUFBRSxDQUFDO1FBQ2xDLGtCQUFhLEdBQXlCLEVBQUUsQ0FBQztRQUNqRCxrRkFBa0Y7UUFDbEYsc0ZBQXNGO1FBQzlFLGlCQUFZLEdBQVcsRUFBRSxDQUFDO0lBSWxDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksY0FBYyxDQUFDLFdBQWUsRUFBRSxPQUFhO1FBQ2xELElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDO1FBQ3JELE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksY0FBYyxDQUFDLFdBQWU7UUFDbkMsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsV0FB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
|
|
@@ -7,7 +7,7 @@ import { NoteDao } from './note_dao.js';
|
|
|
7
7
|
* A database interface that provides methods for retrieving, adding, and removing transactional data related to Aztec
|
|
8
8
|
* addresses, storage slots, and nullifiers.
|
|
9
9
|
*/
|
|
10
|
-
export interface
|
|
10
|
+
export interface PxeDatabase extends ContractDatabase {
|
|
11
11
|
/**
|
|
12
12
|
* Add a auth witness to the database.
|
|
13
13
|
* @param messageHash - The message hash.
|
|
@@ -19,7 +19,7 @@ export interface Database extends ContractDatabase {
|
|
|
19
19
|
* @param messageHash - The message hash.
|
|
20
20
|
* @returns A Promise that resolves to an array of field elements representing the auth witness.
|
|
21
21
|
*/
|
|
22
|
-
getAuthWitness(messageHash: Fr): Promise<Fr[]>;
|
|
22
|
+
getAuthWitness(messageHash: Fr): Promise<Fr[] | undefined>;
|
|
23
23
|
/**
|
|
24
24
|
* Adding a capsule to the capsule dispenser.
|
|
25
25
|
* @remarks A capsule is a "blob" of data that is passed to the contract through an oracle.
|
|
@@ -68,16 +68,6 @@ export interface Database extends ContractDatabase {
|
|
|
68
68
|
* @returns An object containing the Merkle tree roots for each merkle tree id.
|
|
69
69
|
*/
|
|
70
70
|
getTreeRoots(): Record<MerkleTreeId, Fr>;
|
|
71
|
-
/**
|
|
72
|
-
* Set the tree roots for the Merkle trees in the database.
|
|
73
|
-
* This function updates the 'treeRoots' property of the instance
|
|
74
|
-
* with the provided 'roots' object containing MerkleTreeId and Fr pairs.
|
|
75
|
-
* Note that this will overwrite any existing tree roots in the database.
|
|
76
|
-
*
|
|
77
|
-
* @param roots - A Record object mapping MerkleTreeIds to their corresponding Fr root values.
|
|
78
|
-
* @returns A Promise that resolves when the tree roots have been successfully updated in the database.
|
|
79
|
-
*/
|
|
80
|
-
setTreeRoots(roots: Record<MerkleTreeId, Fr>): Promise<void>;
|
|
81
71
|
/**
|
|
82
72
|
* Retrieve the stored Block Header from the database.
|
|
83
73
|
* The function returns a Promise that resolves to the Block Header.
|
|
@@ -121,4 +111,4 @@ export interface Database extends ContractDatabase {
|
|
|
121
111
|
*/
|
|
122
112
|
estimateSize(): number;
|
|
123
113
|
}
|
|
124
|
-
//# sourceMappingURL=
|
|
114
|
+
//# sourceMappingURL=pxe_database.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pxe_database.d.ts","sourceRoot":"","sources":["../../src/database/pxe_database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1E,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC;;;GAGG;AACH,MAAM,WAAW,WAAY,SAAQ,gBAAgB;IACnD;;;;OAIG;IACH,cAAc,CAAC,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9D;;;;OAIG;IACH,cAAc,CAAC,WAAW,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC;IAE3D;;;;OAIG;IACH,UAAU,CAAC,OAAO,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzC;;;;OAIG;IACH,UAAU,IAAI,OAAO,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC;IAExC;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAEjD;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtC;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1C;;;;;;OAMG;IACH,oBAAoB,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAE/E;;;;;;;OAOG;IACH,YAAY,IAAI,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAEzC;;;;;;;OAOG;IACH,cAAc,IAAI,WAAW,CAAC;IAE9B;;;;;;;OAOG;IACH,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExD;;;;;;OAMG;IACH,kBAAkB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE/D;;;;OAIG;IACH,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAAC;IAEhF;;;OAGG;IACH,oBAAoB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAEnD;;;OAGG;IACH,YAAY,IAAI,MAAM,CAAC;CACxB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { PxeDatabase } from './pxe_database.js';
|
|
2
|
+
/**
|
|
3
|
+
* A common test suite for a PXE database.
|
|
4
|
+
* @param getDatabase - A function that returns a database instance.
|
|
5
|
+
*/
|
|
6
|
+
export declare function describePxeDatabase(getDatabase: () => PxeDatabase): void;
|
|
7
|
+
//# sourceMappingURL=pxe_database_test_suite.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pxe_database_test_suite.d.ts","sourceRoot":"","sources":["../../src/database/pxe_database_test_suite.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,WAAW,QA+MjE"}
|