@aztec/pxe 0.37.0 → 0.38.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.
- package/dest/config/index.d.ts +17 -2
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +1 -1
- package/dest/index.d.ts +1 -0
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +3 -1
- package/dest/kernel_oracle/index.d.ts +1 -1
- package/dest/kernel_oracle/index.d.ts.map +1 -1
- package/dest/kernel_oracle/index.js +2 -2
- package/dest/kernel_prover/bb_prover/bb_native_proof_creator.d.ts +95 -0
- package/dest/kernel_prover/bb_prover/bb_native_proof_creator.d.ts.map +1 -0
- package/dest/kernel_prover/bb_prover/bb_native_proof_creator.js +437 -0
- package/dest/kernel_prover/{proof_creator.d.ts → interface/proof_creator.d.ts} +16 -35
- package/dest/kernel_prover/interface/proof_creator.d.ts.map +1 -0
- package/dest/kernel_prover/interface/proof_creator.js +2 -0
- package/dest/kernel_prover/kernel_prover.d.ts +4 -4
- package/dest/kernel_prover/kernel_prover.d.ts.map +1 -1
- package/dest/kernel_prover/kernel_prover.js +10 -37
- package/dest/kernel_prover/private_inputs_builders/build_private_kernel_tail_hints.d.ts +1 -1
- package/dest/kernel_prover/private_inputs_builders/build_private_kernel_tail_hints.d.ts.map +1 -1
- package/dest/kernel_prover/private_inputs_builders/build_private_kernel_tail_hints.js +4 -33
- package/dest/kernel_prover/proving_data_oracle.d.ts +1 -1
- package/dest/kernel_prover/proving_data_oracle.d.ts.map +1 -1
- package/dest/kernel_prover/test/test_circuit_prover.d.ts +16 -0
- package/dest/kernel_prover/test/test_circuit_prover.d.ts.map +1 -0
- package/dest/kernel_prover/test/test_circuit_prover.js +67 -0
- package/dest/pxe_service/create_pxe_service.d.ts +3 -1
- package/dest/pxe_service/create_pxe_service.d.ts.map +1 -1
- package/dest/pxe_service/create_pxe_service.js +16 -3
- package/dest/pxe_service/pxe_service.d.ts +3 -2
- package/dest/pxe_service/pxe_service.d.ts.map +1 -1
- package/dest/pxe_service/pxe_service.js +11 -56
- package/dest/simulator_oracle/index.d.ts +3 -3
- package/dest/simulator_oracle/index.d.ts.map +1 -1
- package/dest/simulator_oracle/index.js +3 -3
- package/package.json +14 -12
- package/src/config/index.ts +19 -2
- package/src/index.ts +3 -0
- package/src/kernel_oracle/index.ts +1 -1
- package/src/kernel_prover/bb_prover/bb_native_proof_creator.ts +713 -0
- package/src/kernel_prover/interface/proof_creator.ts +79 -0
- package/src/kernel_prover/kernel_prover.ts +19 -48
- package/src/kernel_prover/private_inputs_builders/build_private_kernel_tail_hints.ts +5 -40
- package/src/kernel_prover/proving_data_oracle.ts +1 -1
- package/src/kernel_prover/test/test_circuit_prover.ts +96 -0
- package/src/pxe_service/create_pxe_service.ts +17 -1
- package/src/pxe_service/pxe_service.ts +17 -66
- package/src/simulator_oracle/index.ts +4 -7
- package/dest/kernel_prover/proof_creator.d.ts.map +0 -1
- package/dest/kernel_prover/proof_creator.js +0 -68
- package/src/kernel_prover/proof_creator.ts +0 -157
package/dest/config/index.d.ts
CHANGED
|
@@ -1,7 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Temporary configuration until WASM can be used instead of native
|
|
3
3
|
*/
|
|
4
|
-
export interface
|
|
4
|
+
export interface BBProverConfig {
|
|
5
|
+
bbWorkingDirectory?: string;
|
|
6
|
+
bbBinaryPath?: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Configuration settings for the prover factory
|
|
10
|
+
*/
|
|
11
|
+
export interface KernelProverConfig {
|
|
12
|
+
/** Whether we are running with real proofs */
|
|
13
|
+
proverEnabled?: boolean;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Configuration settings for the PXE.
|
|
17
|
+
*/
|
|
18
|
+
export interface PXEConfig {
|
|
5
19
|
/** The interval to wait between polling for new blocks. */
|
|
6
20
|
l2BlockPollingIntervalMS: number;
|
|
7
21
|
/** L2 block to start scanning from for new accounts */
|
|
@@ -9,6 +23,7 @@ export interface PXEServiceConfig {
|
|
|
9
23
|
/** Where to store PXE data. If not set, will store in memory */
|
|
10
24
|
dataDirectory?: string;
|
|
11
25
|
}
|
|
26
|
+
export type PXEServiceConfig = PXEConfig & KernelProverConfig & BBProverConfig;
|
|
12
27
|
/**
|
|
13
28
|
* Creates an instance of PXEServiceConfig out of environment variables using sensible defaults for integration testing if not set.
|
|
14
29
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,8CAA8C;IAC9C,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AACD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,2DAA2D;IAC3D,wBAAwB,EAAE,MAAM,CAAC;IACjC,uDAAuD;IACvD,eAAe,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,kBAAkB,GAAG,cAAc,CAAC;AAE/E;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,gBAAgB,CAQtD;AAED;;GAEG;AACH,wBAAgB,cAAc;;;EAK7B"}
|
package/dest/config/index.js
CHANGED
|
@@ -21,4 +21,4 @@ export function getPackageInfo() {
|
|
|
21
21
|
const { version, name } = JSON.parse(readFileSync(packageJsonPath).toString());
|
|
22
22
|
return { version, name };
|
|
23
23
|
}
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRXBFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDbEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEtBQUssQ0FBQztBQStCcEM7O0dBRUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CO0lBQ2pDLE1BQU0sRUFBRSw2QkFBNkIsRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUM7SUFFakcsT0FBTztRQUNMLHdCQUF3QixFQUFFLDZCQUE2QixDQUFDLENBQUMsQ0FBQyxDQUFDLDZCQUE2QixDQUFDLENBQUMsQ0FBQyxJQUFJO1FBQy9GLGVBQWUsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsb0JBQW9CO1FBQ3RGLGFBQWEsRUFBRSxrQkFBa0I7S0FDbEMsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxjQUFjO0lBQzVCLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0lBQy9GLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUUvRSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO0FBQzNCLENBQUMifQ==
|
package/dest/index.d.ts
CHANGED
|
@@ -7,4 +7,5 @@ export * from '@aztec/foundation/fields';
|
|
|
7
7
|
export * from '@aztec/foundation/eth-address';
|
|
8
8
|
export * from '@aztec/foundation/aztec-address';
|
|
9
9
|
export * from '@aztec/key-store';
|
|
10
|
+
export { BBNativeProofCreator } from './kernel_prover/bb_prover/bb_native_proof_creator.js';
|
|
10
11
|
//# sourceMappingURL=index.d.ts.map
|
package/dest/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAElC,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC/D,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAElC,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC/D,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,kBAAkB,CAAC;AAGjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,sDAAsD,CAAC"}
|
package/dest/index.js
CHANGED
|
@@ -7,4 +7,6 @@ export * from '@aztec/foundation/fields';
|
|
|
7
7
|
export * from '@aztec/foundation/eth-address';
|
|
8
8
|
export * from '@aztec/foundation/aztec-address';
|
|
9
9
|
export * from '@aztec/key-store';
|
|
10
|
-
|
|
10
|
+
// Temporarily used in e2e client prover integration test
|
|
11
|
+
export { BBNativeProofCreator } from './kernel_prover/bb_prover/bb_native_proof_creator.js';
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsbUJBQW1CLENBQUM7QUFFbEMsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVsRCxPQUFPLEVBQUUsU0FBUyxFQUFrQixNQUFNLG9CQUFvQixDQUFDO0FBQy9ELGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsa0JBQWtCLENBQUM7QUFFakMseURBQXlEO0FBQ3pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDIn0=
|
|
@@ -22,7 +22,7 @@ export declare class KernelOracle implements ProvingDataOracle {
|
|
|
22
22
|
getContractClassIdPreimage(contractClassId: Fr): Promise<import("@aztec/circuits.js").ContractClassIdPreimage>;
|
|
23
23
|
getFunctionMembershipWitness(contractAddress: AztecAddress, selector: FunctionSelector): Promise<MembershipWitness<5>>;
|
|
24
24
|
getVkMembershipWitness(): Promise<MembershipWitness<3>>;
|
|
25
|
-
|
|
25
|
+
getNoteHashMembershipWitness(leafIndex: bigint): Promise<MembershipWitness<typeof NOTE_HASH_TREE_HEIGHT>>;
|
|
26
26
|
getNullifierMembershipWitness(nullifier: Fr): Promise<import("@aztec/circuit-types").NullifierMembershipWitness | undefined>;
|
|
27
27
|
getNoteHashTreeRoot(): Promise<Fr>;
|
|
28
28
|
getMasterNullifierSecretKey(nullifierPublicKey: Point): Promise<import("@aztec/circuits.js").Fq>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/kernel_oracle/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,EAAE,EACP,KAAK,gBAAgB,EACrB,iBAAiB,EACjB,KAAK,qBAAqB,EAC1B,KAAK,KAAK,EAGX,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAInF;;GAEG;AACH,qBAAa,YAAa,YAAW,iBAAiB;IACxC,OAAO,CAAC,kBAAkB;IAAsB,OAAO,CAAC,QAAQ;IAAY,OAAO,CAAC,IAAI;gBAAhF,kBAAkB,EAAE,kBAAkB,EAAU,QAAQ,EAAE,QAAQ,EAAU,IAAI,EAAE,SAAS;IAElG,0BAA0B,CAAC,OAAO,EAAE,YAAY;;;;;;;;;IAQhD,0BAA0B,CAAC,eAAe,EAAE,EAAE;IAK9C,4BAA4B,CAAC,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB;IAItF,sBAAsB;IAI7B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/kernel_oracle/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,EAAE,EACP,KAAK,gBAAgB,EACrB,iBAAiB,EACjB,KAAK,qBAAqB,EAC1B,KAAK,KAAK,EAGX,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAInF;;GAEG;AACH,qBAAa,YAAa,YAAW,iBAAiB;IACxC,OAAO,CAAC,kBAAkB;IAAsB,OAAO,CAAC,QAAQ;IAAY,OAAO,CAAC,IAAI;gBAAhF,kBAAkB,EAAE,kBAAkB,EAAU,QAAQ,EAAE,QAAQ,EAAU,IAAI,EAAE,SAAS;IAElG,0BAA0B,CAAC,OAAO,EAAE,YAAY;;;;;;;;;IAQhD,0BAA0B,CAAC,eAAe,EAAE,EAAE;IAK9C,4BAA4B,CAAC,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB;IAItF,sBAAsB;IAI7B,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,OAAO,qBAAqB,CAAC,CAAC;IAS/G,6BAA6B,CAAC,SAAS,EAAE,EAAE;IAIrC,mBAAmB,IAAI,OAAO,CAAC,EAAE,CAAC;IAKjC,2BAA2B,CAAC,kBAAkB,EAAE,KAAK;CAG7D"}
|
|
@@ -27,7 +27,7 @@ export class KernelOracle {
|
|
|
27
27
|
async getVkMembershipWitness() {
|
|
28
28
|
return await this.contractDataOracle.getVkMembershipWitness();
|
|
29
29
|
}
|
|
30
|
-
async
|
|
30
|
+
async getNoteHashMembershipWitness(leafIndex) {
|
|
31
31
|
const path = await this.node.getNoteHashSiblingPath('latest', leafIndex);
|
|
32
32
|
return new MembershipWitness(path.pathSize, leafIndex, path.toFields());
|
|
33
33
|
}
|
|
@@ -42,4 +42,4 @@ export class KernelOracle {
|
|
|
42
42
|
return this.keyStore.getMasterNullifierSecretKeyForPublicKey(nullifierPublicKey);
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMva2VybmVsX29yYWNsZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBSUwsaUJBQWlCLEVBR2pCLDhCQUE4QixFQUM5QiwrQkFBK0IsR0FDaEMsTUFBTSxvQkFBb0IsQ0FBQztBQU01Qiw2Q0FBNkM7QUFDN0Msc0lBQXNJO0FBQ3RJOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFlBQVk7SUFDdkIsWUFBb0Isa0JBQXNDLEVBQVUsUUFBa0IsRUFBVSxJQUFlO1FBQTNGLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQVUsU0FBSSxHQUFKLElBQUksQ0FBVztJQUFHLENBQUM7SUFFNUcsS0FBSyxDQUFDLDBCQUEwQixDQUFDLE9BQXFCO1FBQzNELE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVFLE9BQU87WUFDTCx3QkFBd0IsRUFBRSwrQkFBK0IsQ0FBQyxRQUFRLENBQUM7WUFDbkUsR0FBRyxRQUFRO1NBQ1osQ0FBQztJQUNKLENBQUM7SUFFTSxLQUFLLENBQUMsMEJBQTBCLENBQUMsZUFBbUI7UUFDekQsTUFBTSxhQUFhLEdBQUcsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDdEYsT0FBTyw4QkFBOEIsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRU0sS0FBSyxDQUFDLDRCQUE0QixDQUFDLGVBQTZCLEVBQUUsUUFBMEI7UUFDakcsT0FBTyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyw0QkFBNEIsQ0FBQyxlQUFlLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDL0YsQ0FBQztJQUVNLEtBQUssQ0FBQyxzQkFBc0I7UUFDakMsT0FBTyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hFLENBQUM7SUFFRCxLQUFLLENBQUMsNEJBQTRCLENBQUMsU0FBaUI7UUFDbEQsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN6RSxPQUFPLElBQUksaUJBQWlCLENBQzFCLElBQUksQ0FBQyxRQUFRLEVBQ2IsU0FBUyxFQUNULElBQUksQ0FBQyxRQUFRLEVBQTZDLENBQzNELENBQUM7SUFDSixDQUFDO0lBRUQsNkJBQTZCLENBQUMsU0FBYTtRQUN6QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxLQUFLLENBQUMsbUJBQW1CO1FBQ3ZCLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUMzQyxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7SUFDaEQsQ0FBQztJQUVNLDJCQUEyQixDQUFDLGtCQUF5QjtRQUMxRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsdUNBQXVDLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNuRixDQUFDO0NBQ0YifQ==
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
import { Fr, type PrivateCircuitPublicInputs, type PrivateKernelCircuitPublicInputs, type PrivateKernelInitCircuitPrivateInputs, type PrivateKernelInnerCircuitPrivateInputs, type PrivateKernelTailCircuitPrivateInputs, type PrivateKernelTailCircuitPublicInputs, Proof } from '@aztec/circuits.js';
|
|
3
|
+
import { type LogFn } from '@aztec/foundation/log';
|
|
4
|
+
import { type ClientProtocolArtifact } from '@aztec/noir-protocol-circuits-types';
|
|
5
|
+
import { type ACVMField } from '@aztec/simulator';
|
|
6
|
+
import { type NoirCompiledCircuit } from '@aztec/types/noir';
|
|
7
|
+
import { type ProofCreator, type ProofOutput } from '../interface/proof_creator.js';
|
|
8
|
+
declare enum BB_RESULT {
|
|
9
|
+
SUCCESS = 0,
|
|
10
|
+
FAILURE = 1,
|
|
11
|
+
ALREADY_PRESENT = 2
|
|
12
|
+
}
|
|
13
|
+
type BBSuccess = {
|
|
14
|
+
status: BB_RESULT.SUCCESS | BB_RESULT.ALREADY_PRESENT;
|
|
15
|
+
duration: number;
|
|
16
|
+
pkPath?: string;
|
|
17
|
+
vkPath?: string;
|
|
18
|
+
proofPath?: string;
|
|
19
|
+
};
|
|
20
|
+
type BBFailure = {
|
|
21
|
+
status: BB_RESULT.FAILURE;
|
|
22
|
+
reason: string;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Used for generating proofs of noir circuits.
|
|
26
|
+
* It is assumed that the working directory is a temporary and/or random directory used solely for generating this proof.
|
|
27
|
+
* @param pathToBB - The full path to the bb binary
|
|
28
|
+
* @param workingDirectory - A working directory for use by bb
|
|
29
|
+
* @param circuitName - An identifier for the circuit
|
|
30
|
+
* @param bytecode - The compiled circuit bytecode
|
|
31
|
+
* @param inputWitnessFile - The circuit input witness
|
|
32
|
+
* @param log - A logging function
|
|
33
|
+
* @returns An object containing a result indication, the location of the proof and the duration taken
|
|
34
|
+
*/
|
|
35
|
+
export declare function generateProof(pathToBB: string, workingDirectory: string, circuitName: string, bytecode: Buffer, inputWitnessFile: string, log: LogFn): Promise<BBFailure | BBSuccess>;
|
|
36
|
+
/**
|
|
37
|
+
* Used for generating either a proving or verification key, will exit early if the key already exists
|
|
38
|
+
* It assumes the provided working directory is one where the caller wishes to maintain a permanent set of keys
|
|
39
|
+
* It is not considered a temporary directory
|
|
40
|
+
* @param pathToBB - The full path to the bb binary
|
|
41
|
+
* @param workingDirectory - The directory into which the key should be created
|
|
42
|
+
* @param circuitName - An identifier for the circuit
|
|
43
|
+
* @param compiledCircuit - The compiled circuit
|
|
44
|
+
* @param key - The type of key, either 'pk' or 'vk'
|
|
45
|
+
* @param log - A logging function
|
|
46
|
+
* @param force - Force the key to be regenerated even if it already exists
|
|
47
|
+
* @returns An instance of BBResult
|
|
48
|
+
*/
|
|
49
|
+
export declare function generateKeyForNoirCircuit(pathToBB: string, workingDirectory: string, circuitName: string, compiledCircuit: NoirCompiledCircuit, key: 'vk' | 'pk', log: LogFn, force?: boolean): Promise<BBSuccess | BBFailure>;
|
|
50
|
+
/**
|
|
51
|
+
* This proof creator implementation uses the native bb binary.
|
|
52
|
+
* This is a temporary implementation until we make the WASM version work.
|
|
53
|
+
*/
|
|
54
|
+
export declare class BBNativeProofCreator implements ProofCreator {
|
|
55
|
+
private bbBinaryPath;
|
|
56
|
+
private bbWorkingDirectory;
|
|
57
|
+
private log;
|
|
58
|
+
private simulator;
|
|
59
|
+
private verificationKeys;
|
|
60
|
+
constructor(bbBinaryPath: string, bbWorkingDirectory: string, log?: import("@aztec/foundation/log").Logger);
|
|
61
|
+
getSiloedCommitments(publicInputs: PrivateCircuitPublicInputs): Promise<Fr[]>;
|
|
62
|
+
createProofInit(inputs: PrivateKernelInitCircuitPrivateInputs): Promise<ProofOutput<PrivateKernelCircuitPublicInputs>>;
|
|
63
|
+
createProofInner(inputs: PrivateKernelInnerCircuitPrivateInputs): Promise<ProofOutput<PrivateKernelCircuitPublicInputs>>;
|
|
64
|
+
createProofTail(inputs: PrivateKernelTailCircuitPrivateInputs): Promise<ProofOutput<PrivateKernelTailCircuitPublicInputs>>;
|
|
65
|
+
createAppCircuitProof(partialWitness: Map<number, ACVMField>, bytecode: Buffer): Promise<Proof>;
|
|
66
|
+
/**
|
|
67
|
+
* Verifies a proof, will generate the verification key if one is not cached internally
|
|
68
|
+
* @param circuitType - The type of circuit whose proof is to be verified
|
|
69
|
+
* @param proof - The proof to be verified
|
|
70
|
+
*/
|
|
71
|
+
verifyProof(circuitType: ClientProtocolArtifact, proof: Proof): Promise<void>;
|
|
72
|
+
/**
|
|
73
|
+
* Returns the verification key data for a circuit, will generate and cache it if not cached internally
|
|
74
|
+
* @param circuitType - The type of circuit for which the verification key is required
|
|
75
|
+
* @returns The verification key data
|
|
76
|
+
*/
|
|
77
|
+
private getVerificationKeyDataForCircuit;
|
|
78
|
+
/**
|
|
79
|
+
* Reads the verification key data stored at the specified location and parses into a VerificationKeyData
|
|
80
|
+
* @param filePath - The directory containing the verification key data files
|
|
81
|
+
* @returns The verification key data
|
|
82
|
+
*/
|
|
83
|
+
private convertVk;
|
|
84
|
+
/**
|
|
85
|
+
* Ensures our verification key cache includes the key data located at the specified directory
|
|
86
|
+
* @param filePath - The directory containing the verification key data files
|
|
87
|
+
* @param circuitType - The type of circuit to which the verification key corresponds
|
|
88
|
+
*/
|
|
89
|
+
private updateVerificationKeyAfterProof;
|
|
90
|
+
private createSafeProof;
|
|
91
|
+
private generateWitnessAndCreateProof;
|
|
92
|
+
private createProof;
|
|
93
|
+
}
|
|
94
|
+
export {};
|
|
95
|
+
//# sourceMappingURL=bb_native_proof_creator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bb_native_proof_creator.d.ts","sourceRoot":"","sources":["../../../src/kernel_prover/bb_prover/bb_native_proof_creator.ts"],"names":[],"mappings":"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"}
|