@aztec/prover-client 0.57.0 → 0.58.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.d.ts +4 -5
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +11 -2
- package/dest/mocks/fixtures.d.ts +6 -6
- package/dest/mocks/fixtures.d.ts.map +1 -1
- package/dest/mocks/fixtures.js +8 -4
- package/dest/mocks/test_context.d.ts +5 -5
- package/dest/mocks/test_context.d.ts.map +1 -1
- package/dest/mocks/test_context.js +9 -12
- package/dest/orchestrator/block-building-helpers.d.ts +12 -12
- package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
- package/dest/orchestrator/block-building-helpers.js +4 -2
- package/dest/orchestrator/block-proving-state.d.ts +1 -0
- package/dest/orchestrator/block-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/block-proving-state.js +2 -1
- package/dest/orchestrator/orchestrator.d.ts +4 -5
- package/dest/orchestrator/orchestrator.d.ts.map +1 -1
- package/dest/orchestrator/orchestrator.js +35 -16
- package/dest/prover-agent/memory-proving-queue.d.ts +4 -7
- package/dest/prover-agent/memory-proving-queue.d.ts.map +1 -1
- package/dest/prover-agent/rpc.d.ts.map +1 -1
- package/dest/prover-agent/rpc.js +2 -4
- package/dest/test/mock_prover.d.ts +7 -13
- package/dest/test/mock_prover.d.ts.map +1 -1
- package/dest/test/mock_prover.js +16 -22
- package/dest/tx-prover/tx-prover.d.ts +2 -3
- package/dest/tx-prover/tx-prover.d.ts.map +1 -1
- package/dest/tx-prover/tx-prover.js +1 -1
- package/package.json +11 -10
- package/src/config.ts +20 -11
- package/src/mocks/fixtures.ts +21 -7
- package/src/mocks/test_context.ts +19 -15
- package/src/orchestrator/block-building-helpers.ts +21 -12
- package/src/orchestrator/block-proving-state.ts +2 -0
- package/src/orchestrator/orchestrator.ts +45 -16
- package/src/prover-agent/memory-proving-queue.ts +4 -4
- package/src/prover-agent/rpc.ts +0 -3
- package/src/test/mock_prover.ts +24 -26
- package/src/tx-prover/tx-prover.ts +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock_prover.d.ts","sourceRoot":"","sources":["../../src/test/mock_prover.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,
|
|
1
|
+
{"version":3,"file":"mock_prover.d.ts","sourceRoot":"","sources":["../../src/test/mock_prover.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,6BAA6B,EAClC,KAAK,mBAAmB,EAGzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,KAAK,6BAA6B,EAClC,KAAK,iCAAiC,EACtC,KAAK,yBAAyB,EAC9B,KAAK,+BAA+B,EAEpC,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,iBAAiB,EACjB,KAAK,qBAAqB,EAI3B,MAAM,oBAAoB,CAAC;AAW5B,qBAAa,UAAW,YAAW,mBAAmB;;IAGpD,WAAW;IASX,kBAAkB;IAIlB,kBAAkB;IAIlB,kBAAkB;IAUlB,mBAAmB,IAAI,OAAO,CAAC,6BAA6B,CAAC,6BAA6B,CAAC,CAAC;IAU5F,wBAAwB;IAUxB,4BAA4B,IAAI,OAAO,CAAC,6BAA6B,CAAC,iCAAiC,CAAC,CAAC;IAUzG,uBAAuB,IAAI,OAAO,CAAC,6BAA6B,CAAC,iCAAiC,CAAC,CAAC;IAUpG,0BAA0B,IAAI,OAAO,CAAC,6BAA6B,CAAC,yBAAyB,CAAC,CAAC;IAU/F,iBAAiB,IAAI,OAAO,CAAC,6BAA6B,CAAC,yBAAyB,CAAC,CAAC;IAUtF,yBAAyB,IAAI,OAAO,CAAC,6BAA6B,CAAC,qBAAqB,CAAC,CAAC;IAU1F,yBAAyB,IAAI,OAAO,CAAC,6BAA6B,CAAC,+BAA+B,CAAC,CAAC;IAUpG,kBAAkB,IAAI,OAAO,CAAC,6BAA6B,CAAC,yBAAyB,CAAC,CAAC;IAUvF,kBAAkB,IAAI,OAAO,CAAC,6BAA6B,CAAC,sBAAsB,CAAC,CAAC;IAUpF,YAAY,IAAI,OAAO,CAAC,uBAAuB,CAAC,cAAc,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC;CAK3F"}
|
package/dest/test/mock_prover.js
CHANGED
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
import { makePublicInputsAndRecursiveProof, } from '@aztec/circuit-types';
|
|
2
|
-
import {
|
|
1
|
+
import { makeProofAndVerificationKey, makePublicInputsAndRecursiveProof, } from '@aztec/circuit-types';
|
|
2
|
+
import { AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS, RECURSIVE_PROOF_LENGTH, TUBE_PROOF_LENGTH, VerificationKeyData, makeEmptyProof, makeRecursiveProof, } from '@aztec/circuits.js';
|
|
3
3
|
import { makeBaseOrMergeRollupPublicInputs, makeBlockRootOrBlockMergeRollupPublicInputs, makeKernelCircuitPublicInputs, makePublicKernelCircuitPublicInputs, makeRootParityInput, makeRootRollupPublicInputs, makeVMCircuitPublicInputs, } from '@aztec/circuits.js/testing';
|
|
4
4
|
export class MockProver {
|
|
5
5
|
constructor() { }
|
|
6
6
|
getAvmProof() {
|
|
7
|
-
return Promise.resolve(
|
|
8
|
-
proof: makeEmptyProof(),
|
|
9
|
-
verificationKey: AvmVerificationKeyData.makeFake(),
|
|
10
|
-
}));
|
|
7
|
+
return Promise.resolve(makeProofAndVerificationKey(makeEmptyProof(), VerificationKeyData.makeFake(AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS)));
|
|
11
8
|
}
|
|
12
9
|
getBaseParityProof() {
|
|
13
10
|
return Promise.resolve(makeRootParityInput(RECURSIVE_PROOF_LENGTH));
|
|
@@ -16,43 +13,40 @@ export class MockProver {
|
|
|
16
13
|
return Promise.resolve(makeRootParityInput(RECURSIVE_PROOF_LENGTH));
|
|
17
14
|
}
|
|
18
15
|
getBaseRollupProof() {
|
|
19
|
-
return Promise.resolve(makePublicInputsAndRecursiveProof(makeBaseOrMergeRollupPublicInputs(), makeRecursiveProof(RECURSIVE_PROOF_LENGTH), VerificationKeyData.
|
|
16
|
+
return Promise.resolve(makePublicInputsAndRecursiveProof(makeBaseOrMergeRollupPublicInputs(), makeRecursiveProof(RECURSIVE_PROOF_LENGTH), VerificationKeyData.makeFakeHonk()));
|
|
20
17
|
}
|
|
21
18
|
getMergeRollupProof() {
|
|
22
|
-
return Promise.resolve(makePublicInputsAndRecursiveProof(makeBaseOrMergeRollupPublicInputs(), makeRecursiveProof(RECURSIVE_PROOF_LENGTH), VerificationKeyData.
|
|
19
|
+
return Promise.resolve(makePublicInputsAndRecursiveProof(makeBaseOrMergeRollupPublicInputs(), makeRecursiveProof(RECURSIVE_PROOF_LENGTH), VerificationKeyData.makeFakeHonk()));
|
|
23
20
|
}
|
|
24
21
|
getBlockMergeRollupProof() {
|
|
25
|
-
return Promise.resolve(makePublicInputsAndRecursiveProof(makeBlockRootOrBlockMergeRollupPublicInputs(), makeRecursiveProof(RECURSIVE_PROOF_LENGTH), VerificationKeyData.
|
|
22
|
+
return Promise.resolve(makePublicInputsAndRecursiveProof(makeBlockRootOrBlockMergeRollupPublicInputs(), makeRecursiveProof(RECURSIVE_PROOF_LENGTH), VerificationKeyData.makeFakeHonk()));
|
|
26
23
|
}
|
|
27
24
|
getEmptyBlockRootRollupProof() {
|
|
28
|
-
return Promise.resolve(makePublicInputsAndRecursiveProof(makeBlockRootOrBlockMergeRollupPublicInputs(), makeRecursiveProof(RECURSIVE_PROOF_LENGTH), VerificationKeyData.
|
|
25
|
+
return Promise.resolve(makePublicInputsAndRecursiveProof(makeBlockRootOrBlockMergeRollupPublicInputs(), makeRecursiveProof(RECURSIVE_PROOF_LENGTH), VerificationKeyData.makeFakeHonk()));
|
|
29
26
|
}
|
|
30
27
|
getBlockRootRollupProof() {
|
|
31
|
-
return Promise.resolve(makePublicInputsAndRecursiveProof(makeBlockRootOrBlockMergeRollupPublicInputs(), makeRecursiveProof(RECURSIVE_PROOF_LENGTH), VerificationKeyData.
|
|
28
|
+
return Promise.resolve(makePublicInputsAndRecursiveProof(makeBlockRootOrBlockMergeRollupPublicInputs(), makeRecursiveProof(RECURSIVE_PROOF_LENGTH), VerificationKeyData.makeFakeHonk()));
|
|
32
29
|
}
|
|
33
30
|
getEmptyPrivateKernelProof() {
|
|
34
|
-
return Promise.resolve(makePublicInputsAndRecursiveProof(makeKernelCircuitPublicInputs(), makeRecursiveProof(RECURSIVE_PROOF_LENGTH), VerificationKeyData.
|
|
31
|
+
return Promise.resolve(makePublicInputsAndRecursiveProof(makeKernelCircuitPublicInputs(), makeRecursiveProof(RECURSIVE_PROOF_LENGTH), VerificationKeyData.makeFakeHonk()));
|
|
35
32
|
}
|
|
36
33
|
getEmptyTubeProof() {
|
|
37
|
-
return Promise.resolve(makePublicInputsAndRecursiveProof(makeKernelCircuitPublicInputs(), makeRecursiveProof(RECURSIVE_PROOF_LENGTH), VerificationKeyData.
|
|
34
|
+
return Promise.resolve(makePublicInputsAndRecursiveProof(makeKernelCircuitPublicInputs(), makeRecursiveProof(RECURSIVE_PROOF_LENGTH), VerificationKeyData.makeFakeHonk()));
|
|
38
35
|
}
|
|
39
36
|
getPublicKernelInnerProof() {
|
|
40
|
-
return Promise.resolve(makePublicInputsAndRecursiveProof(makeVMCircuitPublicInputs(), makeRecursiveProof(RECURSIVE_PROOF_LENGTH), VerificationKeyData.
|
|
37
|
+
return Promise.resolve(makePublicInputsAndRecursiveProof(makeVMCircuitPublicInputs(), makeRecursiveProof(RECURSIVE_PROOF_LENGTH), VerificationKeyData.makeFakeHonk()));
|
|
41
38
|
}
|
|
42
39
|
getPublicKernelMergeProof() {
|
|
43
|
-
return Promise.resolve(makePublicInputsAndRecursiveProof(makePublicKernelCircuitPublicInputs(), makeRecursiveProof(RECURSIVE_PROOF_LENGTH), VerificationKeyData.
|
|
40
|
+
return Promise.resolve(makePublicInputsAndRecursiveProof(makePublicKernelCircuitPublicInputs(), makeRecursiveProof(RECURSIVE_PROOF_LENGTH), VerificationKeyData.makeFakeHonk()));
|
|
44
41
|
}
|
|
45
42
|
getPublicTailProof() {
|
|
46
|
-
return Promise.resolve(makePublicInputsAndRecursiveProof(makeKernelCircuitPublicInputs(), makeRecursiveProof(RECURSIVE_PROOF_LENGTH), VerificationKeyData.
|
|
43
|
+
return Promise.resolve(makePublicInputsAndRecursiveProof(makeKernelCircuitPublicInputs(), makeRecursiveProof(RECURSIVE_PROOF_LENGTH), VerificationKeyData.makeFakeHonk()));
|
|
47
44
|
}
|
|
48
45
|
getRootRollupProof() {
|
|
49
|
-
return Promise.resolve(makePublicInputsAndRecursiveProof(makeRootRollupPublicInputs(), makeRecursiveProof(RECURSIVE_PROOF_LENGTH), VerificationKeyData.
|
|
46
|
+
return Promise.resolve(makePublicInputsAndRecursiveProof(makeRootRollupPublicInputs(), makeRecursiveProof(RECURSIVE_PROOF_LENGTH), VerificationKeyData.makeFakeHonk()));
|
|
50
47
|
}
|
|
51
48
|
getTubeProof() {
|
|
52
|
-
return Promise.resolve(
|
|
53
|
-
tubeVK: VerificationKeyData.makeFake(),
|
|
54
|
-
tubeProof: makeRecursiveProof(RECURSIVE_PROOF_LENGTH),
|
|
55
|
-
});
|
|
49
|
+
return Promise.resolve(makeProofAndVerificationKey(makeRecursiveProof(TUBE_PROOF_LENGTH), VerificationKeyData.makeFake()));
|
|
56
50
|
}
|
|
57
51
|
}
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja19wcm92ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC9tb2NrX3Byb3Zlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBSUwsMkJBQTJCLEVBQzNCLGlDQUFpQyxHQUNsQyxNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFDTCxxQ0FBcUMsRUFLckMsc0JBQXNCLEVBR3RCLGlCQUFpQixFQUVqQixtQkFBbUIsRUFDbkIsY0FBYyxFQUNkLGtCQUFrQixHQUNuQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFDTCxpQ0FBaUMsRUFDakMsMkNBQTJDLEVBQzNDLDZCQUE2QixFQUM3QixtQ0FBbUMsRUFDbkMsbUJBQW1CLEVBQ25CLDBCQUEwQixFQUMxQix5QkFBeUIsR0FDMUIsTUFBTSw0QkFBNEIsQ0FBQztBQUVwQyxNQUFNLE9BQU8sVUFBVTtJQUNyQixnQkFBZSxDQUFDO0lBRWhCLFdBQVc7UUFDVCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQ3BCLDJCQUEyQixDQUN6QixjQUFjLEVBQUUsRUFDaEIsbUJBQW1CLENBQUMsUUFBUSxDQUFDLHFDQUFxQyxDQUFDLENBQ3BFLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQ3BCLGlDQUFpQyxDQUMvQixpQ0FBaUMsRUFBRSxFQUNuQyxrQkFBa0IsQ0FBQyxzQkFBc0IsQ0FBQyxFQUMxQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FDbkMsQ0FDRixDQUFDO0lB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
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { type EpochProver, type EpochProverManager, type ProvingJobSource } from '@aztec/circuit-types/interfaces';
|
|
1
|
+
import { type EpochProver, type EpochProverManager, type MerkleTreeWriteOperations, type ProvingJobSource } from '@aztec/circuit-types/interfaces';
|
|
2
2
|
import { Fr } from '@aztec/circuits.js';
|
|
3
3
|
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
4
|
-
import { type MerkleTreeOperations } from '@aztec/world-state';
|
|
5
4
|
import { type ProverClientConfig } from '../config.js';
|
|
6
5
|
/**
|
|
7
6
|
* A prover factory.
|
|
@@ -14,7 +13,7 @@ export declare class TxProver implements EpochProverManager {
|
|
|
14
13
|
private queue;
|
|
15
14
|
private running;
|
|
16
15
|
private constructor();
|
|
17
|
-
createEpochProver(db:
|
|
16
|
+
createEpochProver(db: MerkleTreeWriteOperations): EpochProver;
|
|
18
17
|
getProverId(): Fr;
|
|
19
18
|
updateProverConfig(config: Partial<ProverClientConfig>): Promise<void>;
|
|
20
19
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx-prover.d.ts","sourceRoot":"","sources":["../../src/tx-prover/tx-prover.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EAEtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAExC,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"tx-prover.d.ts","sourceRoot":"","sources":["../../src/tx-prover/tx-prover.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,gBAAgB,EAEtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAExC,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAKvD;;;GAGG;AACH,qBAAa,QAAS,YAAW,kBAAkB;IAK/C,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,KAAK,CAAC;IANhB,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO;IAUA,iBAAiB,CAAC,EAAE,EAAE,yBAAyB,GAAG,WAAW;IAI7D,WAAW,IAAI,EAAE;IAIlB,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB5E;;OAEG;IACI,KAAK;IAWZ;;OAEG;IACU,IAAI;IAWjB;;;;;;OAMG;WACiB,GAAG,CAAC,MAAM,EAAE,kBAAkB,EAAE,SAAS,EAAE,eAAe;mBAczD,kBAAkB;IAehC,mBAAmB,IAAI,gBAAgB;CAG/C"}
|
|
@@ -90,4 +90,4 @@ export class TxProver {
|
|
|
90
90
|
return this.queue;
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHgtcHJvdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R4LXByb3Zlci90eC1wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFRM0UsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBSXZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU5RDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sUUFBUTtJQUluQixZQUNVLE1BQTBCLEVBQzFCLFNBQTBCLEVBQzFCLEtBQW1CO1FBRm5CLFdBQU0sR0FBTixNQUFNLENBQW9CO1FBQzFCLGNBQVMsR0FBVCxTQUFTLENBQWlCO1FBQzFCLFVBQUssR0FBTCxLQUFLLENBQWM7UUFMckIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQU90QiwyRkFBMkY7UUFDM0YsMEVBQTBFO1FBQzFFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQzVHLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxFQUE2QjtRQUNwRCxPQUFPLElBQUksbUJBQW1CLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFTSxXQUFXO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE1BQU0s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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/prover-client",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.58.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -63,15 +63,16 @@
|
|
|
63
63
|
]
|
|
64
64
|
},
|
|
65
65
|
"dependencies": {
|
|
66
|
-
"@aztec/bb-prover": "0.
|
|
67
|
-
"@aztec/circuit-types": "0.
|
|
68
|
-
"@aztec/circuits.js": "0.
|
|
69
|
-
"@aztec/foundation": "0.
|
|
70
|
-
"@aztec/kv-store": "0.
|
|
71
|
-
"@aztec/noir-protocol-circuits-types": "0.
|
|
72
|
-
"@aztec/
|
|
73
|
-
"@aztec/
|
|
74
|
-
"@aztec/
|
|
66
|
+
"@aztec/bb-prover": "0.58.0",
|
|
67
|
+
"@aztec/circuit-types": "0.58.0",
|
|
68
|
+
"@aztec/circuits.js": "0.58.0",
|
|
69
|
+
"@aztec/foundation": "0.58.0",
|
|
70
|
+
"@aztec/kv-store": "0.58.0",
|
|
71
|
+
"@aztec/noir-protocol-circuits-types": "0.58.0",
|
|
72
|
+
"@aztec/protocol-contracts": "0.58.0",
|
|
73
|
+
"@aztec/simulator": "0.58.0",
|
|
74
|
+
"@aztec/telemetry-client": "0.58.0",
|
|
75
|
+
"@aztec/world-state": "0.58.0",
|
|
75
76
|
"@noir-lang/types": "portal:../../noir/packages/types",
|
|
76
77
|
"commander": "^12.1.0",
|
|
77
78
|
"lodash.chunk": "^4.2.0",
|
package/src/config.ts
CHANGED
|
@@ -1,21 +1,25 @@
|
|
|
1
|
+
import { type BBConfig } from '@aztec/bb-prover';
|
|
1
2
|
import { type ProverConfig, proverConfigMappings } from '@aztec/circuit-types';
|
|
2
|
-
import { type ConfigMappingsType, getConfigFromMappings } from '@aztec/foundation/config';
|
|
3
|
+
import { type ConfigMappingsType, booleanConfigHelper, getConfigFromMappings } from '@aztec/foundation/config';
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* The prover configuration.
|
|
6
7
|
*/
|
|
7
|
-
export type ProverClientConfig = ProverConfig &
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
};
|
|
8
|
+
export type ProverClientConfig = ProverConfig &
|
|
9
|
+
BBConfig & {
|
|
10
|
+
/** The URL to the Aztec prover node to take proving jobs from */
|
|
11
|
+
proverJobSourceUrl?: string;
|
|
12
|
+
/** The working directory to use for simulation/proving */
|
|
13
|
+
acvmWorkingDirectory: string;
|
|
14
|
+
/** The path to the ACVM binary */
|
|
15
|
+
acvmBinaryPath: string;
|
|
16
|
+
};
|
|
17
17
|
|
|
18
18
|
export const proverClientConfigMappings: ConfigMappingsType<ProverClientConfig> = {
|
|
19
|
+
proverJobSourceUrl: {
|
|
20
|
+
env: 'PROVER_JOB_SOURCE_URL',
|
|
21
|
+
description: 'The URL to the Aztec prover node to take proving jobs from',
|
|
22
|
+
},
|
|
19
23
|
acvmWorkingDirectory: {
|
|
20
24
|
env: 'ACVM_WORKING_DIRECTORY',
|
|
21
25
|
description: 'The working directory to use for simulation/proving',
|
|
@@ -32,6 +36,11 @@ export const proverClientConfigMappings: ConfigMappingsType<ProverClientConfig>
|
|
|
32
36
|
env: 'BB_BINARY_PATH',
|
|
33
37
|
description: 'The path to the bb binary',
|
|
34
38
|
},
|
|
39
|
+
bbSkipCleanup: {
|
|
40
|
+
env: 'BB_SKIP_CLEANUP',
|
|
41
|
+
description: 'Whether to skip cleanup of bb temporary files',
|
|
42
|
+
...booleanConfigHelper(false),
|
|
43
|
+
},
|
|
35
44
|
...proverConfigMappings,
|
|
36
45
|
};
|
|
37
46
|
|
package/src/mocks/fixtures.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
MerkleTreeId,
|
|
3
|
+
type MerkleTreeReadOperations,
|
|
4
|
+
type MerkleTreeWriteOperations,
|
|
3
5
|
type ProcessedTx,
|
|
4
6
|
makeEmptyProcessedTx as makeEmptyProcessedTxFromHistoricalTreeRoots,
|
|
5
7
|
} from '@aztec/circuit-types';
|
|
@@ -21,8 +23,8 @@ import { randomBytes } from '@aztec/foundation/crypto';
|
|
|
21
23
|
import { type DebugLogger } from '@aztec/foundation/log';
|
|
22
24
|
import { fileURLToPath } from '@aztec/foundation/url';
|
|
23
25
|
import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types';
|
|
26
|
+
import { protocolContractTreeRoot } from '@aztec/protocol-contracts';
|
|
24
27
|
import { NativeACVMSimulator, type SimulationProvider, WASMSimulator } from '@aztec/simulator';
|
|
25
|
-
import { type MerkleTreeOperations } from '@aztec/world-state';
|
|
26
28
|
|
|
27
29
|
import * as fs from 'fs/promises';
|
|
28
30
|
import path from 'path';
|
|
@@ -32,6 +34,7 @@ const {
|
|
|
32
34
|
TEMP_DIR = '/tmp',
|
|
33
35
|
BB_BINARY_PATH = '',
|
|
34
36
|
BB_WORKING_DIRECTORY = '',
|
|
37
|
+
BB_SKIP_CLEANUP = '',
|
|
35
38
|
NOIR_RELEASE_DIR = 'noir-repo/target/release',
|
|
36
39
|
ACVM_BINARY_PATH = '',
|
|
37
40
|
ACVM_WORKING_DIRECTORY = '',
|
|
@@ -56,12 +59,17 @@ export const getEnvironmentConfig = async (logger: DebugLogger) => {
|
|
|
56
59
|
const acvmWorkingDirectory = ACVM_WORKING_DIRECTORY ? ACVM_WORKING_DIRECTORY : `${tempWorkingDirectory}/acvm`;
|
|
57
60
|
await fs.mkdir(acvmWorkingDirectory, { recursive: true });
|
|
58
61
|
logger.verbose(`Using native ACVM binary at ${expectedAcvmPath} with working directory ${acvmWorkingDirectory}`);
|
|
62
|
+
|
|
63
|
+
const bbSkipCleanup = ['1', 'true'].includes(BB_SKIP_CLEANUP);
|
|
64
|
+
bbSkipCleanup && logger.verbose(`Not going to clean up BB working directory ${bbWorkingDirectory} after run`);
|
|
65
|
+
|
|
59
66
|
return {
|
|
60
67
|
acvmWorkingDirectory,
|
|
61
68
|
bbWorkingDirectory,
|
|
62
69
|
expectedAcvmPath,
|
|
63
70
|
expectedBBPath,
|
|
64
71
|
directoryToCleanup: ACVM_WORKING_DIRECTORY && BB_WORKING_DIRECTORY ? undefined : tempWorkingDirectory,
|
|
72
|
+
bbSkipCleanup,
|
|
65
73
|
};
|
|
66
74
|
} catch (err) {
|
|
67
75
|
logger.verbose(`Native BB not available, error: ${err}`);
|
|
@@ -89,16 +97,22 @@ export async function getSimulationProvider(
|
|
|
89
97
|
return new WASMSimulator();
|
|
90
98
|
}
|
|
91
99
|
|
|
92
|
-
export const makeBloatedProcessedTx = (builderDb:
|
|
93
|
-
makeBloatedProcessedTxWithVKRoot(builderDb, getVKTreeRoot(), seed);
|
|
100
|
+
export const makeBloatedProcessedTx = (builderDb: MerkleTreeReadOperations, seed = 0x1) =>
|
|
101
|
+
makeBloatedProcessedTxWithVKRoot(builderDb, getVKTreeRoot(), protocolContractTreeRoot, seed);
|
|
94
102
|
|
|
95
|
-
export const makeEmptyProcessedTx = (builderDb:
|
|
103
|
+
export const makeEmptyProcessedTx = (builderDb: MerkleTreeReadOperations, chainId: Fr, version: Fr) => {
|
|
96
104
|
const header = builderDb.getInitialHeader();
|
|
97
|
-
return makeEmptyProcessedTxFromHistoricalTreeRoots(
|
|
105
|
+
return makeEmptyProcessedTxFromHistoricalTreeRoots(
|
|
106
|
+
header,
|
|
107
|
+
chainId,
|
|
108
|
+
version,
|
|
109
|
+
getVKTreeRoot(),
|
|
110
|
+
protocolContractTreeRoot,
|
|
111
|
+
);
|
|
98
112
|
};
|
|
99
113
|
|
|
100
114
|
// Updates the expectedDb trees based on the new note hashes, contracts, and nullifiers from these txs
|
|
101
|
-
export const updateExpectedTreesFromTxs = async (db:
|
|
115
|
+
export const updateExpectedTreesFromTxs = async (db: MerkleTreeWriteOperations, txs: ProcessedTx[]) => {
|
|
102
116
|
await db.appendLeaves(
|
|
103
117
|
MerkleTreeId.NOTE_HASH_TREE,
|
|
104
118
|
txs.flatMap(tx =>
|
|
@@ -144,5 +158,5 @@ export const makeGlobals = (blockNumber: number) => {
|
|
|
144
158
|
);
|
|
145
159
|
};
|
|
146
160
|
|
|
147
|
-
export const makeEmptyProcessedTestTx = (builderDb:
|
|
161
|
+
export const makeEmptyProcessedTestTx = (builderDb: MerkleTreeReadOperations): ProcessedTx =>
|
|
148
162
|
makeEmptyProcessedTx(builderDb, Fr.ZERO, Fr.ZERO);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type BBProverConfig } from '@aztec/bb-prover';
|
|
2
2
|
import {
|
|
3
|
-
type
|
|
3
|
+
type MerkleTreeWriteOperations,
|
|
4
4
|
type ProcessedTx,
|
|
5
5
|
type ProcessedTxHandler,
|
|
6
6
|
type PublicExecutionRequest,
|
|
@@ -8,7 +8,14 @@ import {
|
|
|
8
8
|
type Tx,
|
|
9
9
|
type TxValidator,
|
|
10
10
|
} from '@aztec/circuit-types';
|
|
11
|
-
import {
|
|
11
|
+
import {
|
|
12
|
+
type CombinedConstantData,
|
|
13
|
+
type Gas,
|
|
14
|
+
type GlobalVariables,
|
|
15
|
+
Header,
|
|
16
|
+
type Nullifier,
|
|
17
|
+
type TxContext,
|
|
18
|
+
} from '@aztec/circuits.js';
|
|
12
19
|
import { type Fr } from '@aztec/foundation/fields';
|
|
13
20
|
import { type DebugLogger } from '@aztec/foundation/log';
|
|
14
21
|
import { openTmpStore } from '@aztec/kv-store/utils';
|
|
@@ -28,8 +35,6 @@ import { NativeWorldStateService } from '@aztec/world-state/native';
|
|
|
28
35
|
|
|
29
36
|
import * as fs from 'fs/promises';
|
|
30
37
|
import { type MockProxy, mock } from 'jest-mock-extended';
|
|
31
|
-
import { tmpdir } from 'os';
|
|
32
|
-
import { join } from 'path';
|
|
33
38
|
|
|
34
39
|
import { TestCircuitProver } from '../../../bb-prover/src/test/test_circuit_prover.js';
|
|
35
40
|
import { ProvingOrchestrator } from '../orchestrator/index.js';
|
|
@@ -44,7 +49,7 @@ export class TestContext {
|
|
|
44
49
|
public publicProcessor: PublicProcessor,
|
|
45
50
|
public simulationProvider: SimulationProvider,
|
|
46
51
|
public globalVariables: GlobalVariables,
|
|
47
|
-
public actualDb:
|
|
52
|
+
public actualDb: MerkleTreeWriteOperations,
|
|
48
53
|
public prover: ServerCircuitProver,
|
|
49
54
|
public proverAgent: ProverAgent,
|
|
50
55
|
public orchestrator: ProvingOrchestrator,
|
|
@@ -59,7 +64,7 @@ export class TestContext {
|
|
|
59
64
|
|
|
60
65
|
static async new(
|
|
61
66
|
logger: DebugLogger,
|
|
62
|
-
worldState: 'native' | 'legacy' = '
|
|
67
|
+
worldState: 'native' | 'legacy' = 'native',
|
|
63
68
|
proverCount = 4,
|
|
64
69
|
createProver: (bbConfig: BBProverConfig) => Promise<ServerCircuitProver> = _ =>
|
|
65
70
|
Promise.resolve(new TestCircuitProver(new NoopTelemetryClient(), new WASMSimulator())),
|
|
@@ -73,16 +78,14 @@ export class TestContext {
|
|
|
73
78
|
const publicKernel = new RealPublicKernelCircuitSimulator(new WASMSimulator());
|
|
74
79
|
const telemetry = new NoopTelemetryClient();
|
|
75
80
|
|
|
76
|
-
let actualDb:
|
|
81
|
+
let actualDb: MerkleTreeWriteOperations;
|
|
77
82
|
|
|
78
83
|
if (worldState === 'native') {
|
|
79
|
-
const
|
|
80
|
-
|
|
81
|
-
const ws = await NativeWorldStateService.create(dir);
|
|
82
|
-
actualDb = ws.asLatest();
|
|
84
|
+
const ws = await NativeWorldStateService.tmp();
|
|
85
|
+
actualDb = await ws.fork();
|
|
83
86
|
} else {
|
|
84
87
|
const ws = await MerkleTrees.new(openTmpStore(), telemetry);
|
|
85
|
-
actualDb = ws.
|
|
88
|
+
actualDb = await ws.getLatest();
|
|
86
89
|
}
|
|
87
90
|
|
|
88
91
|
const processor = PublicProcessor.create(
|
|
@@ -109,11 +112,12 @@ export class TestContext {
|
|
|
109
112
|
acvmWorkingDirectory: config.acvmWorkingDirectory,
|
|
110
113
|
bbBinaryPath: config.expectedBBPath,
|
|
111
114
|
bbWorkingDirectory: config.bbWorkingDirectory,
|
|
115
|
+
bbSkipCleanup: config.bbSkipCleanup,
|
|
112
116
|
};
|
|
113
117
|
localProver = await createProver(bbConfig);
|
|
114
118
|
}
|
|
115
119
|
|
|
116
|
-
if (config?.directoryToCleanup) {
|
|
120
|
+
if (config?.directoryToCleanup && !config.bbSkipCleanup) {
|
|
117
121
|
directoriesToCleanup.push(config.directoryToCleanup);
|
|
118
122
|
}
|
|
119
123
|
|
|
@@ -155,7 +159,7 @@ export class TestContext {
|
|
|
155
159
|
) {
|
|
156
160
|
const defaultExecutorImplementation = (
|
|
157
161
|
execution: PublicExecutionRequest,
|
|
158
|
-
|
|
162
|
+
_constants: CombinedConstantData,
|
|
159
163
|
availableGas: Gas,
|
|
160
164
|
_txContext: TxContext,
|
|
161
165
|
_pendingNullifiers: Nullifier[],
|
|
@@ -195,7 +199,7 @@ export class TestContext {
|
|
|
195
199
|
txValidator?: TxValidator<ProcessedTx>,
|
|
196
200
|
executorMock?: (
|
|
197
201
|
execution: PublicExecutionRequest,
|
|
198
|
-
|
|
202
|
+
constants: CombinedConstantData,
|
|
199
203
|
availableGas: Gas,
|
|
200
204
|
txContext: TxContext,
|
|
201
205
|
pendingNullifiers: Nullifier[],
|
|
@@ -1,4 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
type Body,
|
|
3
|
+
MerkleTreeId,
|
|
4
|
+
type MerkleTreeWriteOperations,
|
|
5
|
+
type ProcessedTx,
|
|
6
|
+
TxEffect,
|
|
7
|
+
getTreeHeight,
|
|
8
|
+
} from '@aztec/circuit-types';
|
|
2
9
|
import {
|
|
3
10
|
ARCHIVE_HEIGHT,
|
|
4
11
|
AppendOnlyTreeSnapshot,
|
|
@@ -52,8 +59,9 @@ import { type DebugLogger } from '@aztec/foundation/log';
|
|
|
52
59
|
import { type Tuple, assertLength, toFriendlyJSON } from '@aztec/foundation/serialize';
|
|
53
60
|
import { computeUnbalancedMerkleRoot } from '@aztec/foundation/trees';
|
|
54
61
|
import { getVKIndex, getVKSiblingPath, getVKTreeRoot } from '@aztec/noir-protocol-circuits-types';
|
|
62
|
+
import { protocolContractTreeRoot } from '@aztec/protocol-contracts';
|
|
55
63
|
import { HintsBuilder, computeFeePayerBalanceLeafSlot } from '@aztec/simulator';
|
|
56
|
-
import { type
|
|
64
|
+
import { type MerkleTreeReadOperations } from '@aztec/world-state';
|
|
57
65
|
|
|
58
66
|
import { inspect } from 'util';
|
|
59
67
|
|
|
@@ -71,7 +79,7 @@ export async function buildBaseRollupInput(
|
|
|
71
79
|
tx: ProcessedTx,
|
|
72
80
|
proof: RecursiveProof<typeof NESTED_RECURSIVE_PROOF_LENGTH>,
|
|
73
81
|
globalVariables: GlobalVariables,
|
|
74
|
-
db:
|
|
82
|
+
db: MerkleTreeWriteOperations,
|
|
75
83
|
kernelVk: VerificationKeyData,
|
|
76
84
|
) {
|
|
77
85
|
// Get trees info before any changes hit
|
|
@@ -251,7 +259,7 @@ export async function buildHeaderFromTxEffects(
|
|
|
251
259
|
body: Body,
|
|
252
260
|
globalVariables: GlobalVariables,
|
|
253
261
|
l1ToL2Messages: Fr[],
|
|
254
|
-
db:
|
|
262
|
+
db: MerkleTreeReadOperations,
|
|
255
263
|
) {
|
|
256
264
|
const stateReference = new StateReference(
|
|
257
265
|
await getTreeSnapshot(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, db),
|
|
@@ -291,7 +299,7 @@ export async function buildHeaderFromTxEffects(
|
|
|
291
299
|
export async function validateBlockRootOutput(
|
|
292
300
|
blockRootOutput: BlockRootOrBlockMergePublicInputs,
|
|
293
301
|
blockHeader: Header,
|
|
294
|
-
db:
|
|
302
|
+
db: MerkleTreeReadOperations,
|
|
295
303
|
) {
|
|
296
304
|
await Promise.all([
|
|
297
305
|
validateState(blockHeader.state, db),
|
|
@@ -299,7 +307,7 @@ export async function validateBlockRootOutput(
|
|
|
299
307
|
]);
|
|
300
308
|
}
|
|
301
309
|
|
|
302
|
-
export async function validateState(state: StateReference, db:
|
|
310
|
+
export async function validateState(state: StateReference, db: MerkleTreeReadOperations) {
|
|
303
311
|
const promises = [MerkleTreeId.NOTE_HASH_TREE, MerkleTreeId.NULLIFIER_TREE, MerkleTreeId.PUBLIC_DATA_TREE].map(
|
|
304
312
|
async (id: MerkleTreeId) => {
|
|
305
313
|
return { key: id, value: await getTreeSnapshot(id, db) };
|
|
@@ -316,7 +324,7 @@ export async function validateState(state: StateReference, db: MerkleTreeOperati
|
|
|
316
324
|
);
|
|
317
325
|
}
|
|
318
326
|
|
|
319
|
-
export async function getRootTreeSiblingPath<TID extends MerkleTreeId>(treeId: TID, db:
|
|
327
|
+
export async function getRootTreeSiblingPath<TID extends MerkleTreeId>(treeId: TID, db: MerkleTreeReadOperations) {
|
|
320
328
|
const { size } = await db.getTreeInfo(treeId);
|
|
321
329
|
const path = await db.getSiblingPath(treeId, size);
|
|
322
330
|
return padArrayEnd(path.toFields(), Fr.ZERO, getTreeHeight(treeId));
|
|
@@ -375,16 +383,17 @@ export function getPreviousRollupBlockDataFromPublicInputs(
|
|
|
375
383
|
|
|
376
384
|
export async function getConstantRollupData(
|
|
377
385
|
globalVariables: GlobalVariables,
|
|
378
|
-
db:
|
|
386
|
+
db: MerkleTreeReadOperations,
|
|
379
387
|
): Promise<ConstantRollupData> {
|
|
380
388
|
return ConstantRollupData.from({
|
|
381
389
|
vkTreeRoot: getVKTreeRoot(),
|
|
390
|
+
protocolContractTreeRoot,
|
|
382
391
|
lastArchive: await getTreeSnapshot(MerkleTreeId.ARCHIVE, db),
|
|
383
392
|
globalVariables,
|
|
384
393
|
});
|
|
385
394
|
}
|
|
386
395
|
|
|
387
|
-
export async function getTreeSnapshot(id: MerkleTreeId, db:
|
|
396
|
+
export async function getTreeSnapshot(id: MerkleTreeId, db: MerkleTreeReadOperations): Promise<AppendOnlyTreeSnapshot> {
|
|
388
397
|
const treeInfo = await db.getTreeInfo(id);
|
|
389
398
|
return new AppendOnlyTreeSnapshot(Fr.fromBuffer(treeInfo.root), Number(treeInfo.size));
|
|
390
399
|
}
|
|
@@ -414,7 +423,7 @@ export function makeEmptyMembershipWitness<N extends number>(height: N) {
|
|
|
414
423
|
);
|
|
415
424
|
}
|
|
416
425
|
|
|
417
|
-
export async function processPublicDataUpdateRequests(tx: ProcessedTx, db:
|
|
426
|
+
export async function processPublicDataUpdateRequests(tx: ProcessedTx, db: MerkleTreeWriteOperations) {
|
|
418
427
|
const allPublicDataUpdateRequests = padArrayEnd(
|
|
419
428
|
tx.finalPublicDataUpdateRequests,
|
|
420
429
|
PublicDataUpdateRequest.empty(),
|
|
@@ -482,7 +491,7 @@ export async function processPublicDataUpdateRequests(tx: ProcessedTx, db: Merkl
|
|
|
482
491
|
export async function getSubtreeSiblingPath(
|
|
483
492
|
treeId: MerkleTreeId,
|
|
484
493
|
subtreeHeight: number,
|
|
485
|
-
db:
|
|
494
|
+
db: MerkleTreeReadOperations,
|
|
486
495
|
): Promise<Fr[]> {
|
|
487
496
|
const nextAvailableLeafIndex = await db.getTreeInfo(treeId).then(t => t.size);
|
|
488
497
|
const fullSiblingPath = await db.getSiblingPath(treeId, nextAvailableLeafIndex);
|
|
@@ -496,7 +505,7 @@ export async function getMembershipWitnessFor<N extends number>(
|
|
|
496
505
|
value: Fr,
|
|
497
506
|
treeId: MerkleTreeId,
|
|
498
507
|
height: N,
|
|
499
|
-
db:
|
|
508
|
+
db: MerkleTreeReadOperations,
|
|
500
509
|
): Promise<MembershipWitness<N>> {
|
|
501
510
|
// If this is an empty tx, then just return zeroes
|
|
502
511
|
if (value.isZero()) {
|
|
@@ -45,6 +45,7 @@ export class BlockProvingState {
|
|
|
45
45
|
public finalProof: Proof | undefined;
|
|
46
46
|
public block: L2Block | undefined;
|
|
47
47
|
private txs: TxProvingState[] = [];
|
|
48
|
+
public error: string | undefined;
|
|
48
49
|
|
|
49
50
|
constructor(
|
|
50
51
|
public readonly index: number,
|
|
@@ -209,6 +210,7 @@ export class BlockProvingState {
|
|
|
209
210
|
}
|
|
210
211
|
|
|
211
212
|
public reject(reason: string) {
|
|
213
|
+
this.error = reason;
|
|
212
214
|
this.parentEpoch.reject(reason);
|
|
213
215
|
}
|
|
214
216
|
}
|