@aztec/pxe 0.41.0 → 0.43.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.map +1 -1
- package/dest/config/index.js +5 -2
- package/dest/contract_data_oracle/index.d.ts +1 -0
- package/dest/contract_data_oracle/index.d.ts.map +1 -1
- package/dest/contract_data_oracle/index.js +7 -1
- package/dest/contract_data_oracle/private_functions_tree.d.ts.map +1 -1
- package/dest/contract_data_oracle/private_functions_tree.js +2 -2
- package/dest/database/deferred_note_dao.d.ts +2 -2
- package/dest/database/deferred_note_dao.d.ts.map +1 -1
- package/dest/database/deferred_note_dao.js +2 -2
- package/dest/database/incoming_note_dao.d.ts +73 -0
- package/dest/database/incoming_note_dao.d.ts.map +1 -0
- package/dest/database/incoming_note_dao.js +92 -0
- package/dest/database/kv_pxe_database.d.ts +10 -7
- package/dest/database/kv_pxe_database.d.ts.map +1 -1
- package/dest/database/kv_pxe_database.js +149 -78
- package/dest/database/{note_dao.d.ts → outgoing_note_dao.d.ts} +7 -12
- package/dest/database/outgoing_note_dao.d.ts.map +1 -0
- package/dest/database/outgoing_note_dao.js +83 -0
- package/dest/database/pxe_database.d.ts +21 -9
- package/dest/database/pxe_database.d.ts.map +1 -1
- package/dest/database/pxe_database_test_suite.d.ts.map +1 -1
- package/dest/database/pxe_database_test_suite.js +71 -24
- package/dest/kernel_oracle/index.d.ts +4 -4
- package/dest/kernel_oracle/index.d.ts.map +1 -1
- package/dest/kernel_oracle/index.js +6 -17
- package/dest/kernel_prover/kernel_prover.d.ts +3 -0
- package/dest/kernel_prover/kernel_prover.d.ts.map +1 -1
- package/dest/kernel_prover/kernel_prover.js +44 -8
- package/dest/kernel_prover/private_inputs_builders/build_private_kernel_reset_hints.d.ts +2 -1
- package/dest/kernel_prover/private_inputs_builders/build_private_kernel_reset_hints.d.ts.map +1 -1
- package/dest/kernel_prover/private_inputs_builders/build_private_kernel_reset_hints.js +32 -12
- package/dest/kernel_prover/private_inputs_builders/build_private_kernel_reset_outputs.d.ts +1 -1
- package/dest/kernel_prover/private_inputs_builders/build_private_kernel_reset_outputs.d.ts.map +1 -1
- package/dest/kernel_prover/private_inputs_builders/build_private_kernel_reset_outputs.js +9 -7
- 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 +7 -3
- package/dest/kernel_prover/proving_data_oracle.d.ts +6 -6
- package/dest/kernel_prover/proving_data_oracle.d.ts.map +1 -1
- package/dest/note_processor/note_processor.d.ts +23 -20
- package/dest/note_processor/note_processor.d.ts.map +1 -1
- package/dest/note_processor/note_processor.js +123 -76
- package/dest/note_processor/produce_note_dao.d.ts +13 -4
- package/dest/note_processor/produce_note_dao.d.ts.map +1 -1
- package/dest/note_processor/produce_note_dao.js +88 -31
- package/dest/pxe_http/pxe_http_server.js +3 -3
- package/dest/pxe_service/create_pxe_service.d.ts.map +1 -1
- package/dest/pxe_service/create_pxe_service.js +4 -2
- package/dest/pxe_service/pxe_service.d.ts +14 -6
- package/dest/pxe_service/pxe_service.d.ts.map +1 -1
- package/dest/pxe_service/pxe_service.js +139 -87
- package/dest/pxe_service/test/pxe_test_suite.d.ts.map +1 -1
- package/dest/pxe_service/test/pxe_test_suite.js +3 -16
- package/dest/simulator_oracle/index.d.ts +1 -0
- package/dest/simulator_oracle/index.d.ts.map +1 -1
- package/dest/simulator_oracle/index.js +5 -2
- package/dest/synchronizer/synchronizer.d.ts +9 -2
- package/dest/synchronizer/synchronizer.d.ts.map +1 -1
- package/dest/synchronizer/synchronizer.js +43 -34
- package/package.json +14 -14
- package/src/config/index.ts +11 -1
- package/src/contract_data_oracle/index.ts +7 -0
- package/src/contract_data_oracle/private_functions_tree.ts +3 -1
- package/src/database/deferred_note_dao.ts +1 -1
- package/src/database/{note_dao.ts → incoming_note_dao.ts} +10 -7
- package/src/database/kv_pxe_database.ts +127 -29
- package/src/database/outgoing_note_dao.ts +90 -0
- package/src/database/pxe_database.ts +23 -9
- package/src/database/pxe_database_test_suite.ts +93 -29
- package/src/kernel_oracle/index.ts +4 -17
- package/src/kernel_prover/kernel_prover.ts +76 -16
- package/src/kernel_prover/private_inputs_builders/build_private_kernel_reset_hints.ts +79 -8
- package/src/kernel_prover/private_inputs_builders/build_private_kernel_reset_outputs.ts +9 -5
- package/src/kernel_prover/private_inputs_builders/build_private_kernel_tail_hints.ts +13 -1
- package/src/kernel_prover/proving_data_oracle.ts +5 -6
- package/src/note_processor/note_processor.ts +191 -121
- package/src/note_processor/produce_note_dao.ts +164 -50
- package/src/pxe_http/pxe_http_server.ts +2 -2
- package/src/pxe_service/create_pxe_service.ts +3 -1
- package/src/pxe_service/pxe_service.ts +210 -149
- package/src/pxe_service/test/pxe_test_suite.ts +0 -20
- package/src/simulator_oracle/index.ts +5 -1
- package/src/synchronizer/synchronizer.ts +55 -50
- package/dest/database/note_dao.d.ts.map +0 -1
- package/dest/database/note_dao.js +0 -89
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { KeyValidationHint, MAX_KEY_VALIDATION_REQUESTS_PER_TX, MAX_NEW_NOTE_HASHES_PER_TX, MAX_NEW_NULLIFIERS_PER_TX, MAX_NOTE_ENCRYPTED_LOGS_PER_TX, MAX_NOTE_HASH_READ_REQUESTS_PER_TX, MAX_NULLIFIER_READ_REQUESTS_PER_TX, MembershipWitness, NULLIFIER_TREE_HEIGHT, PRIVATE_RESET_VARIANTS, PrivateKernelResetCircuitPrivateInputs, PrivateKernelResetHints, ScopedNoteHash, ScopedNullifier, ScopedReadRequest, buildNoteHashReadRequestHints, buildNullifierReadRequestHints, buildTransientDataHints, getNonEmptyItems, } from '@aztec/circuits.js';
|
|
2
2
|
import { makeTuple } from '@aztec/foundation/array';
|
|
3
3
|
import { buildPrivateKernelResetOutputs } from './build_private_kernel_reset_outputs.js';
|
|
4
|
-
function getNullifierReadRequestHints(nullifierReadRequests, nullifiers, oracle, sizePending, sizeSettled) {
|
|
4
|
+
function getNullifierReadRequestHints(nullifierReadRequests, nullifiers, oracle, sizePending, sizeSettled, futureNullifiers) {
|
|
5
5
|
const getNullifierMembershipWitness = async (nullifier) => {
|
|
6
6
|
const res = await oracle.getNullifierMembershipWitness(nullifier);
|
|
7
7
|
if (!res) {
|
|
@@ -13,7 +13,7 @@ function getNullifierReadRequestHints(nullifierReadRequests, nullifiers, oracle,
|
|
|
13
13
|
leafPreimage,
|
|
14
14
|
};
|
|
15
15
|
};
|
|
16
|
-
return buildNullifierReadRequestHints({ getNullifierMembershipWitness }, nullifierReadRequests, nullifiers, sizePending, sizeSettled);
|
|
16
|
+
return buildNullifierReadRequestHints({ getNullifierMembershipWitness }, nullifierReadRequests, nullifiers, sizePending, sizeSettled, futureNullifiers);
|
|
17
17
|
}
|
|
18
18
|
async function getMasterSecretKeysAndAppKeyGenerators(keyValidationRequests, oracle) {
|
|
19
19
|
const keysHints = makeTuple(MAX_KEY_VALIDATION_REQUESTS_PER_TX, KeyValidationHint.empty);
|
|
@@ -23,8 +23,8 @@ async function getMasterSecretKeysAndAppKeyGenerators(keyValidationRequests, ora
|
|
|
23
23
|
if (request.isEmpty()) {
|
|
24
24
|
break;
|
|
25
25
|
}
|
|
26
|
-
const
|
|
27
|
-
keysHints[keyIndex] = new KeyValidationHint(secretKeys,
|
|
26
|
+
const secretKeys = await oracle.getMasterSecretKey(request.request.pkM);
|
|
27
|
+
keysHints[keyIndex] = new KeyValidationHint(secretKeys, i);
|
|
28
28
|
keyIndex++;
|
|
29
29
|
}
|
|
30
30
|
return {
|
|
@@ -32,14 +32,24 @@ async function getMasterSecretKeysAndAppKeyGenerators(keyValidationRequests, ora
|
|
|
32
32
|
keysHints,
|
|
33
33
|
};
|
|
34
34
|
}
|
|
35
|
-
export async function buildPrivateKernelResetInputs(previousKernelData, noteHashLeafIndexMap, oracle) {
|
|
35
|
+
export async function buildPrivateKernelResetInputs(executionStack, previousKernelData, noteHashLeafIndexMap, noteHashNullifierCounterMap, oracle) {
|
|
36
36
|
const publicInputs = previousKernelData.publicInputs;
|
|
37
37
|
// Use max sizes, they will be trimmed down later.
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
const
|
|
38
|
+
const futureNoteHashes = collectNested(executionStack, executionResult => {
|
|
39
|
+
const nonEmptyNoteHashes = getNonEmptyItems(executionResult.callStackItem.publicInputs.newNoteHashes);
|
|
40
|
+
return nonEmptyNoteHashes.map(noteHash => new ScopedNoteHash(noteHash, noteHashNullifierCounterMap.get(noteHash.counter) ?? 0, executionResult.callStackItem.publicInputs.callContext.storageContractAddress));
|
|
41
|
+
});
|
|
42
|
+
const { numPendingReadHints: noteHashPendingReadHints, numSettledReadHints: noteHashSettledReadHints, hints: noteHashReadRequestHints, } = await buildNoteHashReadRequestHints(oracle, publicInputs.validationRequests.noteHashReadRequests, publicInputs.end.newNoteHashes, noteHashLeafIndexMap, MAX_NOTE_HASH_READ_REQUESTS_PER_TX, MAX_NOTE_HASH_READ_REQUESTS_PER_TX, futureNoteHashes);
|
|
43
|
+
const futureNullifiers = collectNested(executionStack, executionResult => {
|
|
44
|
+
const nonEmptyNullifiers = getNonEmptyItems(executionResult.callStackItem.publicInputs.newNullifiers);
|
|
45
|
+
return nonEmptyNullifiers.map(nullifier => new ScopedNullifier(nullifier, executionResult.callStackItem.publicInputs.callContext.storageContractAddress));
|
|
46
|
+
});
|
|
47
|
+
const { numPendingReadHints: nullifierPendingReadHints, numSettledReadHints: nullifierSettledReadHints, hints: nullifierReadRequestHints, } = await getNullifierReadRequestHints(publicInputs.validationRequests.nullifierReadRequests, publicInputs.end.newNullifiers, oracle, MAX_NULLIFIER_READ_REQUESTS_PER_TX, MAX_NULLIFIER_READ_REQUESTS_PER_TX, futureNullifiers);
|
|
48
|
+
const { keysCount, keysHints } = await getMasterSecretKeysAndAppKeyGenerators(publicInputs.validationRequests.scopedKeyValidationRequestsAndGenerators, oracle);
|
|
49
|
+
const futureNoteHashReads = collectNestedReadRequests(executionStack, executionResult => executionResult.callStackItem.publicInputs.noteHashReadRequests);
|
|
50
|
+
const futureNullifierReads = collectNestedReadRequests(executionStack, executionResult => executionResult.callStackItem.publicInputs.nullifierReadRequests);
|
|
51
|
+
const [transientNullifierIndexesForNoteHashes, transientNoteHashIndexesForNullifiers, transientNoteHashIndexesForLogs,] = buildTransientDataHints(publicInputs.end.newNoteHashes, publicInputs.end.newNullifiers, publicInputs.end.noteEncryptedLogsHashes, futureNoteHashReads, futureNullifierReads, MAX_NEW_NOTE_HASHES_PER_TX, MAX_NEW_NULLIFIERS_PER_TX, MAX_NOTE_ENCRYPTED_LOGS_PER_TX);
|
|
52
|
+
const expectedOutputs = buildPrivateKernelResetOutputs(previousKernelData.publicInputs.end.newNoteHashes, previousKernelData.publicInputs.end.newNullifiers, previousKernelData.publicInputs.end.noteEncryptedLogsHashes, transientNullifierIndexesForNoteHashes, transientNoteHashIndexesForNullifiers);
|
|
43
53
|
let privateInputs;
|
|
44
54
|
for (const [sizeTag, hintSizes] of Object.entries(PRIVATE_RESET_VARIANTS)) {
|
|
45
55
|
if (hintSizes.NOTE_HASH_PENDING_AMOUNT >= noteHashPendingReadHints &&
|
|
@@ -56,4 +66,14 @@ export async function buildPrivateKernelResetInputs(previousKernelData, noteHash
|
|
|
56
66
|
}
|
|
57
67
|
return privateInputs;
|
|
58
68
|
}
|
|
59
|
-
|
|
69
|
+
function collectNested(executionStack, extractExecutionItems) {
|
|
70
|
+
const thisExecutionReads = executionStack.flatMap(extractExecutionItems);
|
|
71
|
+
return thisExecutionReads.concat(executionStack.flatMap(({ nestedExecutions }) => collectNested(nestedExecutions, extractExecutionItems)));
|
|
72
|
+
}
|
|
73
|
+
function collectNestedReadRequests(executionStack, extractReadRequests) {
|
|
74
|
+
return collectNested(executionStack, executionResult => {
|
|
75
|
+
const nonEmptyReadRequests = getNonEmptyItems(extractReadRequests(executionResult));
|
|
76
|
+
return nonEmptyReadRequests.map(readRequest => new ScopedReadRequest(readRequest, executionResult.callStackItem.publicInputs.callContext.storageContractAddress));
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRfcHJpdmF0ZV9rZXJuZWxfcmVzZXRfaGludHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMva2VybmVsX3Byb3Zlci9wcml2YXRlX2lucHV0c19idWlsZGVycy9idWlsZF9wcml2YXRlX2tlcm5lbF9yZXNldF9oaW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLGtDQUFrQyxFQUNsQywwQkFBMEIsRUFDMUIseUJBQXlCLEVBQ3pCLDhCQUE4QixFQUM5QixrQ0FBa0MsRUFDbEMsa0NBQWtDLEVBQ2xDLGlCQUFpQixFQUNqQixxQkFBcUIsRUFDckIsc0JBQXNCLEVBRXRCLHNDQUFzQyxFQUV0Qyx1QkFBdUIsRUFHdkIsY0FBYyxFQUNkLGVBQWUsRUFDZixpQkFBaUIsRUFDakIsNkJBQTZCLEVBQzdCLDhCQUE4QixFQUM5Qix1QkFBdUIsRUFDdkIsZ0JBQWdCLEdBQ2pCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBS3BELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRXpGLFNBQVMsNEJBQTRCLENBQ25DLHFCQUEwRixFQUMxRixVQUFvRSxFQUNwRSxNQUF5QixFQUN6QixXQUFvQixFQUNwQixXQUFvQixFQUNwQixnQkFBbUM7SUFFbkMsTUFBTSw2QkFBNkIsR0FBRyxLQUFLLEVBQUUsU0FBYSxFQUFFLEVBQUU7UUFDNUQsTUFBTSxHQUFHLEdBQUcsTUFBTSxNQUFNLENBQUMsNkJBQTZCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1QsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsU0FBUyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNqRixDQUFDO1FBRUQsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFX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
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { MAX_NEW_NOTE_HASHES_PER_TX, MAX_NEW_NULLIFIERS_PER_TX, MAX_NOTE_ENCRYPTED_LOGS_PER_TX, NoteLogHash, PrivateKernelResetOutputs, ScopedNoteHash, ScopedNullifier } from '@aztec/circuits.js';
|
|
2
2
|
import { type Tuple } from '@aztec/foundation/serialize';
|
|
3
|
-
export declare function buildPrivateKernelResetOutputs(prevNoteHashes: Tuple<ScopedNoteHash, typeof MAX_NEW_NOTE_HASHES_PER_TX>, prevNullifiers: Tuple<ScopedNullifier, typeof MAX_NEW_NULLIFIERS_PER_TX>, prevLogs: Tuple<NoteLogHash, typeof MAX_NOTE_ENCRYPTED_LOGS_PER_TX>): PrivateKernelResetOutputs;
|
|
3
|
+
export declare function buildPrivateKernelResetOutputs(prevNoteHashes: Tuple<ScopedNoteHash, typeof MAX_NEW_NOTE_HASHES_PER_TX>, prevNullifiers: Tuple<ScopedNullifier, typeof MAX_NEW_NULLIFIERS_PER_TX>, prevLogs: Tuple<NoteLogHash, typeof MAX_NOTE_ENCRYPTED_LOGS_PER_TX>, transientNullifierIndexesForNoteHashes: Tuple<number, typeof MAX_NEW_NOTE_HASHES_PER_TX>, transientNoteHashIndexesForNullifiers: Tuple<number, typeof MAX_NEW_NULLIFIERS_PER_TX>): PrivateKernelResetOutputs;
|
|
4
4
|
//# sourceMappingURL=build_private_kernel_reset_outputs.d.ts.map
|
package/dest/kernel_prover/private_inputs_builders/build_private_kernel_reset_outputs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build_private_kernel_reset_outputs.d.ts","sourceRoot":"","sources":["../../../src/kernel_prover/private_inputs_builders/build_private_kernel_reset_outputs.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,8BAA8B,EAC9B,WAAW,EACX,yBAAyB,EACzB,cAAc,EACd,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAEzD,wBAAgB,8BAA8B,CAC5C,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,OAAO,0BAA0B,CAAC,EACxE,cAAc,EAAE,KAAK,CAAC,eAAe,EAAE,OAAO,yBAAyB,CAAC,EACxE,QAAQ,EAAE,KAAK,CAAC,WAAW,EAAE,OAAO,8BAA8B,CAAC,
|
|
1
|
+
{"version":3,"file":"build_private_kernel_reset_outputs.d.ts","sourceRoot":"","sources":["../../../src/kernel_prover/private_inputs_builders/build_private_kernel_reset_outputs.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,8BAA8B,EAC9B,WAAW,EACX,yBAAyB,EACzB,cAAc,EACd,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAEzD,wBAAgB,8BAA8B,CAC5C,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,OAAO,0BAA0B,CAAC,EACxE,cAAc,EAAE,KAAK,CAAC,eAAe,EAAE,OAAO,yBAAyB,CAAC,EACxE,QAAQ,EAAE,KAAK,CAAC,WAAW,EAAE,OAAO,8BAA8B,CAAC,EACnE,sCAAsC,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,0BAA0B,CAAC,EACxF,qCAAqC,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,yBAAyB,CAAC,6BA2BvF"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { MAX_NEW_NOTE_HASHES_PER_TX, MAX_NEW_NULLIFIERS_PER_TX, MAX_NOTE_ENCRYPTED_LOGS_PER_TX, NoteLogHash, PrivateKernelResetOutputs, ScopedNoteHash, ScopedNullifier, } from '@aztec/circuits.js';
|
|
2
2
|
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
3
|
-
export function buildPrivateKernelResetOutputs(prevNoteHashes, prevNullifiers, prevLogs) {
|
|
4
|
-
// Propagate note hashes that are not
|
|
5
|
-
//
|
|
6
|
-
const noteHashes = padArrayEnd(prevNoteHashes.filter(
|
|
7
|
-
const nullifiers = padArrayEnd(prevNullifiers.filter(
|
|
8
|
-
const nullifiedNotes = prevNoteHashes
|
|
3
|
+
export function buildPrivateKernelResetOutputs(prevNoteHashes, prevNullifiers, prevLogs, transientNullifierIndexesForNoteHashes, transientNoteHashIndexesForNullifiers) {
|
|
4
|
+
// Propagate note hashes that are not going to be squashed in the transient arrays.
|
|
5
|
+
// A value isn't going to be squashed if the symmetrical index in the corresponding array is the length of the array.
|
|
6
|
+
const noteHashes = padArrayEnd(prevNoteHashes.filter((_, index) => transientNullifierIndexesForNoteHashes[index] === MAX_NEW_NULLIFIERS_PER_TX), ScopedNoteHash.empty(), MAX_NEW_NOTE_HASHES_PER_TX);
|
|
7
|
+
const nullifiers = padArrayEnd(prevNullifiers.filter((_, index) => transientNoteHashIndexesForNullifiers[index] === MAX_NEW_NOTE_HASHES_PER_TX), ScopedNullifier.empty(), MAX_NEW_NULLIFIERS_PER_TX);
|
|
8
|
+
const nullifiedNotes = prevNoteHashes
|
|
9
|
+
.filter((_, index) => transientNullifierIndexesForNoteHashes[index] < MAX_NEW_NULLIFIERS_PER_TX)
|
|
10
|
+
.map(n => n.counter);
|
|
9
11
|
const logs = padArrayEnd(prevLogs.filter(l => !l.isEmpty() && !nullifiedNotes.includes(l.noteHashCounter)), NoteLogHash.empty(), MAX_NOTE_ENCRYPTED_LOGS_PER_TX);
|
|
10
12
|
return new PrivateKernelResetOutputs(noteHashes, nullifiers, logs);
|
|
11
13
|
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRfcHJpdmF0ZV9rZXJuZWxfcmVzZXRfb3V0cHV0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9rZXJuZWxfcHJvdmVyL3ByaXZhdGVfaW5wdXRzX2J1aWxkZXJzL2J1aWxkX3ByaXZhdGVfa2VybmVsX3Jlc2V0X291dHB1dHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLDBCQUEwQixFQUMxQix5QkFBeUIsRUFDekIsOEJBQThCLEVBQzlCLFdBQVcsRUFDWCx5QkFBeUIsRUFDekIsY0FBYyxFQUNkLGVBQWUsR0FDaEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFHM0QsTUFBTSxVQUFVLDhCQUE4QixDQUM1QyxjQUF3RSxFQUN4RSxjQUF3RSxFQUN4RSxRQUFtRSxFQUNuRSxzQ0FBd0YsRUFDeEYscUNBQXNGO0lBRXRGLG1GQUFtRjtJQUNuRixxSEFBcUg7SUFDckgsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUM1QixjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsc0NBQXNDLENBQUMsS0FBSyxDQUFDLEtBQUsseUJBQXlCLENBQUMsRUFDaEgsY0FBYyxDQUFDLEtBQUssRUFBRSxFQUN0QiwwQkFBMEIsQ0FDM0IsQ0FBQztJQUVGLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FDNUIsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLHFDQUFxQyxDQUFDLEtBQUssQ0FBQyxLQUFLLDBCQUEwQixDQUFDLEVBQ2hILGVBQWUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIseUJBQXlCLENBQzFCLENBQUM7SUFFRixNQUFNLGNBQWMsR0FBRyxjQUFjO1NBQ2xDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLHNDQUFzQyxDQUFDLEtBQUssQ0FBQyxHQUFHLHlCQUF5QixDQUFDO1NBQy9GLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUV2QixNQUFNLElBQUksR0FBRyxXQUFXLENBQ3RCLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLEVBQ2pGLFdBQVcsQ0FBQyxLQUFLLEVBQUUsRUFDbkIsOEJBQThCLENBQy9CLENBQUM7SUFFRixPQUFPLElBQUkseUJBQXlCLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNyRSxDQUFDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build_private_kernel_tail_hints.d.ts","sourceRoot":"","sources":["../../../src/kernel_prover/private_inputs_builders/build_private_kernel_tail_hints.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"build_private_kernel_tail_hints.d.ts","sourceRoot":"","sources":["../../../src/kernel_prover/private_inputs_builders/build_private_kernel_tail_hints.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,gCAAgC,EACrC,sBAAsB,EAEvB,MAAM,oBAAoB,CAAC;AAE5B,wBAAgB,2BAA2B,CAAC,YAAY,EAAE,gCAAgC,GAAG,sBAAsB,CAiDlH"}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
import { MAX_ENCRYPTED_LOGS_PER_TX, MAX_NEW_NOTE_HASHES_PER_TX, MAX_NEW_NULLIFIERS_PER_TX, MAX_NOTE_ENCRYPTED_LOGS_PER_TX, MAX_UNENCRYPTED_LOGS_PER_TX, PrivateKernelTailHints, sortByCounterGetSortedHints, } from '@aztec/circuits.js';
|
|
1
|
+
import { MAX_ENCRYPTED_LOGS_PER_TX, MAX_NEW_NOTE_HASHES_PER_TX, MAX_NEW_NULLIFIERS_PER_TX, MAX_NOTE_ENCRYPTED_LOGS_PER_TX, MAX_PUBLIC_CALL_STACK_LENGTH_PER_TX, MAX_UNENCRYPTED_LOGS_PER_TX, PrivateKernelTailHints, sortByCounterGetSortedHints, } from '@aztec/circuits.js';
|
|
2
2
|
export function buildPrivateKernelTailHints(publicInputs) {
|
|
3
3
|
const [sortedNoteHashes, sortedNoteHashesIndexes] = sortByCounterGetSortedHints(publicInputs.end.newNoteHashes, MAX_NEW_NOTE_HASHES_PER_TX);
|
|
4
4
|
const [sortedNullifiers, sortedNullifiersIndexes] = sortByCounterGetSortedHints(publicInputs.end.newNullifiers, MAX_NEW_NULLIFIERS_PER_TX);
|
|
5
5
|
const [sortedNoteEncryptedLogHashes, sortedNoteEncryptedLogHashesIndexes] = sortByCounterGetSortedHints(publicInputs.end.noteEncryptedLogsHashes, MAX_NOTE_ENCRYPTED_LOGS_PER_TX);
|
|
6
6
|
const [sortedEncryptedLogHashes, sortedEncryptedLogHashesIndexes] = sortByCounterGetSortedHints(publicInputs.end.encryptedLogsHashes, MAX_ENCRYPTED_LOGS_PER_TX);
|
|
7
7
|
const [sortedUnencryptedLogHashes, sortedUnencryptedLogHashesIndexes] = sortByCounterGetSortedHints(publicInputs.end.unencryptedLogsHashes, MAX_UNENCRYPTED_LOGS_PER_TX);
|
|
8
|
-
|
|
8
|
+
const [sortedCallRequests, sortedCallRequestsIndexes] = sortByCounterGetSortedHints(publicInputs.end.publicCallStack, MAX_PUBLIC_CALL_STACK_LENGTH_PER_TX, {
|
|
9
|
+
ascending: false,
|
|
10
|
+
hintIndexesBy: 'sorted',
|
|
11
|
+
});
|
|
12
|
+
return new PrivateKernelTailHints(sortedNoteHashes, sortedNoteHashesIndexes, sortedNullifiers, sortedNullifiersIndexes, sortedNoteEncryptedLogHashes, sortedNoteEncryptedLogHashesIndexes, sortedEncryptedLogHashes, sortedEncryptedLogHashesIndexes, sortedUnencryptedLogHashes, sortedUnencryptedLogHashesIndexes, sortedCallRequests, sortedCallRequestsIndexes);
|
|
9
13
|
}
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRfcHJpdmF0ZV9rZXJuZWxfdGFpbF9oaW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9rZXJuZWxfcHJvdmVyL3ByaXZhdGVfaW5wdXRzX2J1aWxkZXJzL2J1aWxkX3ByaXZhdGVfa2VybmVsX3RhaWxfaGludHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHlCQUF5QixFQUN6QiwwQkFBMEIsRUFDMUIseUJBQXlCLEVBQ3pCLDhCQUE4QixFQUM5QixtQ0FBbUMsRUFDbkMsMkJBQTJCLEVBRTNCLHNCQUFzQixFQUN0QiwyQkFBMkIsR0FDNUIsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QixNQUFNLFVBQVUsMkJBQTJCLENBQUMsWUFBOEM7SUFDeEYsTUFBTSxDQUFDLGdCQUFnQixFQUFFLHVCQUF1QixDQUFDLEdBQUcsMkJBQTJCLENBQzdFLFlBQVksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUM5QiwwQkFBMEIsQ0FDM0IsQ0FBQztJQUVGLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSx1QkFBdUIsQ0FBQyxHQUFHLDJCQUEyQixDQUM3RSxZQUFZLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFDOUIseUJBQXlCLENBQzFCLENBQUM7SUFFRixNQUFNLENBQUMsNEJBQTRCLEVBQUUsbUNBQW1DLENBQUMsR0FBRywyQkFBMkIsQ0FDckcsWUFBWSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsRUFDeEMsOEJBQThCLENBQy9CLENBQUM7SUFFRixNQUFNLENBQUMsd0JBQXdCLEVBQUUsK0JBQStCLENBQUMsR0FBRywyQkFBMkIsQ0FDN0YsWUFBWSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsRUFDcEMseUJBQXlCLENBQzFCLENBQUM7SUFFRixNQUFNLENBQUMsMEJBQTBCLEVBQUUsaUNBQWlDLENBQUMsR0FBRywyQkFBMkIsQ0FDakcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsRUFDdEMsMkJBQTJCLENBQzVCLENBQUM7SUFFRixNQUFNLENBQUMsa0JBQWtCLEVBQUUseUJBQXlCLENBQUMsR0FBRywyQkFBMkIsQ0FDakYsWUFBWSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQ2hDLG1DQUFtQyxFQUNuQztRQUNFLFNBQVMsRUFBRSxLQUFLO1FBQ2hCLGFBQWEsRUFBRSxRQUFRO0tBQ3hCLENBQ0YsQ0FBQztJQUVGLE9BQU8sSUFBSSxzQkFBc0IsQ0FDL0IsZ0JBQWdCLEVBQ2hCLHVCQUF1QixFQUN2QixnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLDRCQUE0QixFQUM1QixtQ0FBbUMsRUFDbkMsd0JBQXdCLEVBQ3hCLCtCQUErQixFQUMvQiwwQkFBMEIsRUFDMUIsaUNBQWlDLEVBQ2pDLGtCQUFrQixFQUNsQix5QkFBeUIsQ0FDMUIsQ0FBQztBQUNKLENBQUMifQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type NullifierMembershipWitness } from '@aztec/circuit-types';
|
|
2
|
-
import { type FUNCTION_TREE_HEIGHT, type Fr, type FunctionSelector, type GrumpkinPrivateKey, type
|
|
2
|
+
import { type FUNCTION_TREE_HEIGHT, type Fr, type FunctionSelector, type GrumpkinPrivateKey, type MembershipWitness, type NOTE_HASH_TREE_HEIGHT, type Point, type VK_TREE_HEIGHT, type VerificationKeyAsFields } from '@aztec/circuits.js';
|
|
3
3
|
import { type AztecAddress } from '@aztec/foundation/aztec-address';
|
|
4
4
|
/**
|
|
5
5
|
* Provides functionality to fetch membership witnesses for verification keys,
|
|
@@ -53,13 +53,13 @@ export interface ProvingDataOracle {
|
|
|
53
53
|
*/
|
|
54
54
|
getNoteHashTreeRoot(): Promise<Fr>;
|
|
55
55
|
/**
|
|
56
|
-
* Retrieves the sk_m
|
|
56
|
+
* Retrieves the sk_m corresponding to the pk_m.
|
|
57
57
|
* @throws If the provided public key is not associated with any of the registered accounts.
|
|
58
|
-
* @param
|
|
59
|
-
* @returns A Promise that resolves to sk_m
|
|
58
|
+
* @param pkM - The master public key to get secret key for.
|
|
59
|
+
* @returns A Promise that resolves to sk_m.
|
|
60
60
|
* @dev Used when feeding the sk_m to the kernel circuit for keys verification.
|
|
61
61
|
*/
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
getMasterSecretKey(masterPublicKey: Point): Promise<GrumpkinPrivateKey>;
|
|
63
|
+
getDebugFunctionName(contractAddress: AztecAddress, selector: FunctionSelector): Promise<string | undefined>;
|
|
64
64
|
}
|
|
65
65
|
//# sourceMappingURL=proving_data_oracle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proving_data_oracle.d.ts","sourceRoot":"","sources":["../../src/kernel_prover/proving_data_oracle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,EAAE,EACP,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,
|
|
1
|
+
{"version":3,"file":"proving_data_oracle.d.ts","sourceRoot":"","sources":["../../src/kernel_prover/proving_data_oracle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,EAAE,EACP,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,KAAK,EACV,KAAK,cAAc,EACnB,KAAK,uBAAuB,EAC7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAEpE;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,8FAA8F;IAC9F,0BAA0B,CACxB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC;QAAE,wBAAwB,EAAE,EAAE,CAAC;QAAC,cAAc,EAAE,EAAE,CAAC;QAAC,eAAe,EAAE,EAAE,CAAA;KAAE,CAAC,CAAC;IAEtF,kFAAkF;IAClF,0BAA0B,CACxB,eAAe,EAAE,EAAE,GAClB,OAAO,CAAC;QAAE,YAAY,EAAE,EAAE,CAAC;QAAC,wBAAwB,EAAE,EAAE,CAAC;QAAC,oBAAoB,EAAE,EAAE,CAAA;KAAE,CAAC,CAAC;IAEzF;;;;;;;;OAQG;IACH,4BAA4B,CAC1B,eAAe,EAAE,YAAY,EAC7B,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,iBAAiB,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC;IAE3D;;;;;;;;OAQG;IACH,sBAAsB,CAAC,EAAE,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC;IAEvG;;;;;OAKG;IACH,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,OAAO,qBAAqB,CAAC,CAAC,CAAC;IAE1G,6BAA6B,CAAC,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,0BAA0B,GAAG,SAAS,CAAC,CAAC;IAE9F;;;;OAIG;IACH,mBAAmB,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC;IAEnC;;;;;;OAMG;IACH,kBAAkB,CAAC,eAAe,EAAE,KAAK,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAExE,oBAAoB,CAAC,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAC9G"}
|
|
@@ -1,20 +1,24 @@
|
|
|
1
|
-
import { type AztecNode, type
|
|
1
|
+
import { type AztecNode, type L2Block } from '@aztec/circuit-types';
|
|
2
2
|
import { type NoteProcessorStats } from '@aztec/circuit-types/stats';
|
|
3
|
-
import { type
|
|
3
|
+
import { type AztecAddress } from '@aztec/circuits.js';
|
|
4
|
+
import { type Logger } from '@aztec/foundation/log';
|
|
4
5
|
import { Timer } from '@aztec/foundation/timer';
|
|
5
6
|
import { type KeyStore } from '@aztec/key-store';
|
|
6
|
-
import {
|
|
7
|
+
import { type AcirSimulator } from '@aztec/simulator';
|
|
8
|
+
import { type DeferredNoteDao } from '../database/deferred_note_dao.js';
|
|
9
|
+
import { type IncomingNoteDao } from '../database/incoming_note_dao.js';
|
|
7
10
|
import { type PxeDatabase } from '../database/index.js';
|
|
8
|
-
import { type
|
|
11
|
+
import { type OutgoingNoteDao } from '../database/outgoing_note_dao.js';
|
|
9
12
|
/**
|
|
10
13
|
* NoteProcessor is responsible for decrypting logs and converting them to notes via their originating contracts
|
|
11
14
|
* before storing them against their owner.
|
|
12
15
|
*/
|
|
13
16
|
export declare class NoteProcessor {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
readonly account: AztecAddress;
|
|
18
|
+
/** The public counterpart to the secret key to be used in the decryption of incoming note logs. */
|
|
19
|
+
private readonly ivpkM;
|
|
20
|
+
/** The public counterpart to the secret key to be used in the decryption of outgoing note logs. */
|
|
21
|
+
private readonly ovpkM;
|
|
18
22
|
private keyStore;
|
|
19
23
|
private db;
|
|
20
24
|
private node;
|
|
@@ -25,11 +29,8 @@ export declare class NoteProcessor {
|
|
|
25
29
|
readonly timer: Timer;
|
|
26
30
|
/** Stats accumulated for this processor. */
|
|
27
31
|
readonly stats: NoteProcessorStats;
|
|
28
|
-
constructor(
|
|
29
|
-
|
|
30
|
-
* The public counterpart to the private key to be used in note decryption.
|
|
31
|
-
*/
|
|
32
|
-
masterIncomingViewingPublicKey: PublicKey, keyStore: KeyStore, db: PxeDatabase, node: AztecNode, startingBlock?: number, simulator?: import("@aztec/simulator").AcirSimulator, log?: import("@aztec/foundation/log").Logger);
|
|
32
|
+
private constructor();
|
|
33
|
+
static create(account: AztecAddress, keyStore: KeyStore, db: PxeDatabase, node: AztecNode, startingBlock?: number, simulator?: AcirSimulator, log?: Logger): Promise<NoteProcessor>;
|
|
33
34
|
/**
|
|
34
35
|
* Check if the NoteProcessor is synchronized with the remote block number.
|
|
35
36
|
* The function queries the remote block number from the AztecNode and compares it with the syncedToBlock value in the NoteProcessor.
|
|
@@ -48,12 +49,10 @@ export declare class NoteProcessor {
|
|
|
48
49
|
/**
|
|
49
50
|
* Extracts new user-relevant notes from the information contained in the provided L2 blocks and encrypted logs.
|
|
50
51
|
*
|
|
51
|
-
* @
|
|
52
|
-
* @param l2Blocks - L2 blocks to be processed.
|
|
53
|
-
* @param encryptedL2BlockLogs - Encrypted logs associated with the L2 blocks.
|
|
52
|
+
* @param blocks - L2 blocks to be processed.
|
|
54
53
|
* @returns A promise that resolves once the processing is completed.
|
|
55
54
|
*/
|
|
56
|
-
process(
|
|
55
|
+
process(blocks: L2Block[]): Promise<void>;
|
|
57
56
|
/**
|
|
58
57
|
* Process the given blocks and their associated transaction auxiliary data.
|
|
59
58
|
* This function updates the database with information about new transactions,
|
|
@@ -67,18 +66,22 @@ export declare class NoteProcessor {
|
|
|
67
66
|
/**
|
|
68
67
|
* Store the given deferred notes in the database for later decoding.
|
|
69
68
|
*
|
|
70
|
-
* @param
|
|
69
|
+
* @param deferredIncomingNotes - incoming notes that are intended for us but we couldn't process because the contract was not found.
|
|
70
|
+
* @param deferredOutgoingNotes - outgoing notes that we couldn't process because the contract was not found.
|
|
71
71
|
*/
|
|
72
72
|
private processDeferredNotes;
|
|
73
73
|
/**
|
|
74
74
|
* Retry decoding the given deferred notes because we now have the contract code.
|
|
75
75
|
*
|
|
76
76
|
* @param deferredNoteDaos - notes that we have previously deferred because the contract was not found
|
|
77
|
-
* @returns An
|
|
77
|
+
* @returns An object containing arrays of incoming and outgoing notes that were successfully decoded.
|
|
78
78
|
*
|
|
79
79
|
* @remarks Caller is responsible for making sure that we have the contract for the
|
|
80
80
|
* deferred notes provided: we will not retry notes that fail again.
|
|
81
81
|
*/
|
|
82
|
-
decodeDeferredNotes(deferredNoteDaos: DeferredNoteDao[]): Promise<
|
|
82
|
+
decodeDeferredNotes(deferredNoteDaos: DeferredNoteDao[]): Promise<{
|
|
83
|
+
incomingNotes: IncomingNoteDao[];
|
|
84
|
+
outgoingNotes: OutgoingNoteDao[];
|
|
85
|
+
}>;
|
|
83
86
|
}
|
|
84
87
|
//# sourceMappingURL=note_processor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"note_processor.d.ts","sourceRoot":"","sources":["../../src/note_processor/note_processor.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"note_processor.d.ts","sourceRoot":"","sources":["../../src/note_processor/note_processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAiB,KAAK,OAAO,EAAa,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EACL,KAAK,YAAY,EAIlB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,KAAK,MAAM,EAAqB,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAgBxE;;;GAGG;AACH,qBAAa,aAAa;aAiBN,OAAO,EAAE,YAAY;IACrC,mGAAmG;IACnG,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,mGAAmG;IACnG,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,GAAG;IA1Bb,mEAAmE;IACnE,SAAgB,KAAK,EAAE,KAAK,CAAe;IAE3C,4CAA4C;IAC5C,SAAgB,KAAK,EAAE,kBAAkB,CASvC;IAEF,OAAO;WAca,MAAM,CACxB,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,WAAW,EACf,IAAI,EAAE,SAAS,EACf,aAAa,GAAE,MAA6B,EAC5C,SAAS,gBAAuC,EAChD,GAAG,SAA4C;IAQjD;;;;;;OAMG;IACU,cAAc;IAK3B;;OAEG;IACH,IAAW,MAAM;;MAEhB;IAED,OAAO,CAAC,gBAAgB;IAIxB;;;;;OAKG;IACU,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA+GtD;;;;;;;;OAQG;YACW,qBAAqB;IA8BnC;;;;;OAKG;YACW,oBAAoB;IAuBlC;;;;;;;;OAQG;IACU,mBAAmB,CAAC,gBAAgB,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;QAC7E,aAAa,EAAE,eAAe,EAAE,CAAC;QACjC,aAAa,EAAE,eAAe,EAAE,CAAC;KAClC,CAAC;CAgDH"}
|