@aztec/world-state 0.0.1-commit.a5db02d → 0.0.1-commit.aa0c64f
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/index.d.ts +2 -1
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +1 -0
- package/dest/instrumentation/instrumentation.d.ts +4 -3
- package/dest/instrumentation/instrumentation.d.ts.map +1 -1
- package/dest/instrumentation/instrumentation.js +4 -9
- package/dest/native/index.d.ts +2 -1
- package/dest/native/index.d.ts.map +1 -1
- package/dest/native/index.js +1 -0
- package/dest/native/ipc_world_state_instance.d.ts +61 -22
- package/dest/native/ipc_world_state_instance.d.ts.map +1 -1
- package/dest/native/ipc_world_state_instance.js +530 -495
- package/dest/native/merkle_trees_facade.d.ts +4 -3
- package/dest/native/merkle_trees_facade.d.ts.map +1 -1
- package/dest/native/merkle_trees_facade.js +37 -109
- package/dest/native/message.d.ts +14 -233
- package/dest/native/message.d.ts.map +1 -1
- package/dest/native/message.js +0 -42
- package/dest/native/native_world_state.d.ts +14 -28
- package/dest/native/native_world_state.d.ts.map +1 -1
- package/dest/native/native_world_state.js +105 -99
- package/dest/native/native_world_state_instance.d.ts +56 -43
- package/dest/native/native_world_state_instance.d.ts.map +1 -1
- package/dest/native/native_world_state_instance.js +1 -223
- package/dest/native/world_state_operation.d.ts +7 -0
- package/dest/native/world_state_operation.d.ts.map +1 -0
- package/dest/native/world_state_operation.js +5 -0
- package/dest/synchronizer/factory.d.ts +1 -1
- package/dest/synchronizer/factory.d.ts.map +1 -1
- package/dest/synchronizer/factory.js +1 -1
- package/package.json +11 -10
- package/src/index.ts +1 -0
- package/src/instrumentation/instrumentation.ts +6 -18
- package/src/native/index.ts +1 -0
- package/src/native/ipc_world_state_instance.ts +625 -503
- package/src/native/merkle_trees_facade.ts +59 -104
- package/src/native/message.ts +13 -300
- package/src/native/native_world_state.ts +136 -156
- package/src/native/native_world_state_instance.ts +94 -308
- package/src/native/world_state_operation.ts +33 -0
- package/src/synchronizer/factory.ts +0 -1
- package/dest/native/world_state_ops_queue.d.ts +0 -19
- package/dest/native/world_state_ops_queue.d.ts.map +0 -1
- package/dest/native/world_state_ops_queue.js +0 -146
- package/src/native/world_state_ops_queue.ts +0 -190
|
@@ -5,7 +5,7 @@ import { BlockHash } from '@aztec/stdlib/block';
|
|
|
5
5
|
import type { BatchInsertionResult, IndexedTreeId, MerkleTreeLeafType, MerkleTreeReadOperations, MerkleTreeWriteOperations, SequentialInsertionResult, TreeInfo } from '@aztec/stdlib/interfaces/server';
|
|
6
6
|
import { MerkleTreeId, NullifierLeaf, PublicDataTreeLeaf } from '@aztec/stdlib/trees';
|
|
7
7
|
import { type BlockHeader, StateReference } from '@aztec/stdlib/tx';
|
|
8
|
-
import {
|
|
8
|
+
import type { WorldStateRevision } from '@aztec/stdlib/world-state';
|
|
9
9
|
import { type SerializedLeafValue } from './message.js';
|
|
10
10
|
import type { NativeWorldStateInstance } from './native_world_state_instance.js';
|
|
11
11
|
export declare class MerkleTreesFacade implements MerkleTreeReadOperations {
|
|
@@ -14,7 +14,8 @@ export declare class MerkleTreesFacade implements MerkleTreeReadOperations {
|
|
|
14
14
|
protected readonly revision: WorldStateRevision;
|
|
15
15
|
constructor(instance: NativeWorldStateInstance, initialHeader: BlockHeader, revision: WorldStateRevision);
|
|
16
16
|
getInitialHeader(): BlockHeader;
|
|
17
|
-
getRevision():
|
|
17
|
+
getRevision(): WorldStateRevision;
|
|
18
|
+
getIpcPath(): string;
|
|
18
19
|
findLeafIndices(treeId: MerkleTreeId, values: MerkleTreeLeafType<MerkleTreeId>[]): Promise<(bigint | undefined)[]>;
|
|
19
20
|
findSiblingPaths<N extends number>(treeId: MerkleTreeId, values: MerkleTreeLeafType<MerkleTreeId>[]): Promise<({
|
|
20
21
|
path: SiblingPath<N>;
|
|
@@ -54,4 +55,4 @@ export declare class MerkleTreesForkFacade extends MerkleTreesFacade implements
|
|
|
54
55
|
revertAllCheckpointsTo(depth: number): Promise<void>;
|
|
55
56
|
}
|
|
56
57
|
export declare function serializeLeaf(leaf: Fr | BlockHash | NullifierLeaf | PublicDataTreeLeaf): SerializedLeafValue;
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVya2xlX3RyZWVzX2ZhY2FkZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL25hdGl2ZS9tZXJrbGVfdHJlZXNfZmFjYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFJcEQsT0FBTyxFQUFFLEtBQUssdUJBQXVCLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxFQUNWLG9CQUFvQixFQUNwQixhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLHdCQUF3QixFQUN4Qix5QkFBeUIsRUFDekIseUJBQXlCLEVBQ3pCLFFBQVEsRUFDVCxNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFDTCxZQUFZLEVBQ1osYUFBYSxFQUViLGtCQUFrQixFQUVuQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBeUIsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0YsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUlwRSxPQUFPLEVBRUwsS0FBSyxtQkFBbUIsRUFHekIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVqRixxQkFBYSxpQkFBa0IsWUFBVyx3QkFBd0I7SUFFOUQsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsd0JBQXdCO0lBQ3JELFNBQVMsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLFdBQVc7SUFDN0MsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsa0JBQWtCO0lBSGpELFlBQ3FCLFFBQVEs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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merkle_trees_facade.d.ts","sourceRoot":"","sources":["../../src/native/merkle_trees_facade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAIpD,OAAO,EAAE,KAAK,uBAAuB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EACV,oBAAoB,EACpB,aAAa,EACb,kBAAkB,EAClB,wBAAwB,EACxB,yBAAyB,EACzB,yBAAyB,EACzB,QAAQ,EACT,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,YAAY,EACZ,aAAa,EAEb,kBAAkB,EAEnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,WAAW,EAAyB,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC3F,OAAO,
|
|
1
|
+
{"version":3,"file":"merkle_trees_facade.d.ts","sourceRoot":"","sources":["../../src/native/merkle_trees_facade.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,9 +8,8 @@ import { SiblingPath } from '@aztec/foundation/trees';
|
|
|
8
8
|
import { BlockHash } from '@aztec/stdlib/block';
|
|
9
9
|
import { MerkleTreeId, NullifierLeaf, NullifierLeafPreimage, PublicDataTreeLeaf, PublicDataTreeLeafPreimage } from '@aztec/stdlib/trees';
|
|
10
10
|
import { PartialStateReference, StateReference } from '@aztec/stdlib/tx';
|
|
11
|
-
import { WorldStateRevisionWithHandle } from '@aztec/stdlib/world-state';
|
|
12
11
|
import assert from 'assert';
|
|
13
|
-
import {
|
|
12
|
+
import { blockStateReference, treeStateReferenceToSnapshot } from './message.js';
|
|
14
13
|
export class MerkleTreesFacade {
|
|
15
14
|
instance;
|
|
16
15
|
initialHeader;
|
|
@@ -24,18 +23,17 @@ export class MerkleTreesFacade {
|
|
|
24
23
|
return this.initialHeader;
|
|
25
24
|
}
|
|
26
25
|
getRevision() {
|
|
27
|
-
return
|
|
26
|
+
return this.revision;
|
|
27
|
+
}
|
|
28
|
+
getIpcPath() {
|
|
29
|
+
return this.instance.getIpcPath();
|
|
28
30
|
}
|
|
29
31
|
findLeafIndices(treeId, values) {
|
|
30
32
|
return this.findLeafIndicesAfter(treeId, values, 0n);
|
|
31
33
|
}
|
|
32
34
|
async findSiblingPaths(treeId, values) {
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
revision: this.revision,
|
|
36
|
-
treeId
|
|
37
|
-
});
|
|
38
|
-
return response.paths.map((path)=>{
|
|
35
|
+
const paths = await this.instance.findSiblingPaths(treeId, this.revision, values.map((leaf)=>serializeLeaf(hydrateLeaf(treeId, leaf))));
|
|
36
|
+
return paths.map((path)=>{
|
|
39
37
|
if (!path) {
|
|
40
38
|
return undefined;
|
|
41
39
|
}
|
|
@@ -46,13 +44,8 @@ export class MerkleTreesFacade {
|
|
|
46
44
|
});
|
|
47
45
|
}
|
|
48
46
|
async findLeafIndicesAfter(treeId, leaves, startIndex) {
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
revision: this.revision,
|
|
52
|
-
treeId,
|
|
53
|
-
startIndex
|
|
54
|
-
});
|
|
55
|
-
return response.indices.map((index)=>{
|
|
47
|
+
const indices = await this.instance.findLeafIndices(treeId, this.revision, leaves.map((leaf)=>serializeLeaf(hydrateLeaf(treeId, leaf))), startIndex);
|
|
48
|
+
return indices.map((index)=>{
|
|
56
49
|
if (typeof index === 'number' || typeof index === 'bigint') {
|
|
57
50
|
return BigInt(index);
|
|
58
51
|
} else {
|
|
@@ -61,19 +54,11 @@ export class MerkleTreesFacade {
|
|
|
61
54
|
});
|
|
62
55
|
}
|
|
63
56
|
async getLeafPreimage(treeId, leafIndex) {
|
|
64
|
-
const resp = await this.instance.
|
|
65
|
-
leafIndex,
|
|
66
|
-
revision: this.revision,
|
|
67
|
-
treeId
|
|
68
|
-
});
|
|
57
|
+
const resp = await this.instance.getLeafPreimage(treeId, this.revision, leafIndex);
|
|
69
58
|
return resp ? deserializeIndexedLeaf(resp) : undefined;
|
|
70
59
|
}
|
|
71
60
|
async getLeafValue(treeId, leafIndex) {
|
|
72
|
-
const resp = await this.instance.
|
|
73
|
-
leafIndex,
|
|
74
|
-
revision: this.revision,
|
|
75
|
-
treeId
|
|
76
|
-
});
|
|
61
|
+
const resp = await this.instance.getLeafValue(treeId, this.revision, leafIndex);
|
|
77
62
|
if (!resp) {
|
|
78
63
|
return undefined;
|
|
79
64
|
}
|
|
@@ -85,55 +70,30 @@ export class MerkleTreesFacade {
|
|
|
85
70
|
}
|
|
86
71
|
}
|
|
87
72
|
async getPreviousValueIndex(treeId, value) {
|
|
88
|
-
const resp = await this.instance.
|
|
89
|
-
key: new Fr(value),
|
|
90
|
-
revision: this.revision,
|
|
91
|
-
treeId
|
|
92
|
-
});
|
|
73
|
+
const resp = await this.instance.findLowLeaf(treeId, this.revision, new Fr(value));
|
|
93
74
|
return {
|
|
94
75
|
alreadyPresent: resp.alreadyPresent,
|
|
95
76
|
index: BigInt(resp.index)
|
|
96
77
|
};
|
|
97
78
|
}
|
|
98
79
|
async getSiblingPath(treeId, leafIndex) {
|
|
99
|
-
const siblingPath = await this.instance.
|
|
100
|
-
leafIndex,
|
|
101
|
-
revision: this.revision,
|
|
102
|
-
treeId
|
|
103
|
-
});
|
|
80
|
+
const siblingPath = await this.instance.getSiblingPath(treeId, this.revision, leafIndex);
|
|
104
81
|
return new SiblingPath(siblingPath.length, siblingPath);
|
|
105
82
|
}
|
|
106
83
|
async getStateReference() {
|
|
107
|
-
const
|
|
108
|
-
|
|
109
|
-
});
|
|
110
|
-
return new StateReference(treeStateReferenceToSnapshot(resp.state[MerkleTreeId.L1_TO_L2_MESSAGE_TREE]), new PartialStateReference(treeStateReferenceToSnapshot(resp.state[MerkleTreeId.NOTE_HASH_TREE]), treeStateReferenceToSnapshot(resp.state[MerkleTreeId.NULLIFIER_TREE]), treeStateReferenceToSnapshot(resp.state[MerkleTreeId.PUBLIC_DATA_TREE])));
|
|
84
|
+
const state = await this.instance.getStateReference(this.revision);
|
|
85
|
+
return new StateReference(treeStateReferenceToSnapshot(state[MerkleTreeId.L1_TO_L2_MESSAGE_TREE]), new PartialStateReference(treeStateReferenceToSnapshot(state[MerkleTreeId.NOTE_HASH_TREE]), treeStateReferenceToSnapshot(state[MerkleTreeId.NULLIFIER_TREE]), treeStateReferenceToSnapshot(state[MerkleTreeId.PUBLIC_DATA_TREE])));
|
|
111
86
|
}
|
|
112
87
|
async getInitialStateReference() {
|
|
113
|
-
const
|
|
114
|
-
|
|
115
|
-
});
|
|
116
|
-
return new StateReference(treeStateReferenceToSnapshot(resp.state[MerkleTreeId.L1_TO_L2_MESSAGE_TREE]), new PartialStateReference(treeStateReferenceToSnapshot(resp.state[MerkleTreeId.NOTE_HASH_TREE]), treeStateReferenceToSnapshot(resp.state[MerkleTreeId.NULLIFIER_TREE]), treeStateReferenceToSnapshot(resp.state[MerkleTreeId.PUBLIC_DATA_TREE])));
|
|
88
|
+
const state = await this.instance.getInitialStateReference();
|
|
89
|
+
return new StateReference(treeStateReferenceToSnapshot(state[MerkleTreeId.L1_TO_L2_MESSAGE_TREE]), new PartialStateReference(treeStateReferenceToSnapshot(state[MerkleTreeId.NOTE_HASH_TREE]), treeStateReferenceToSnapshot(state[MerkleTreeId.NULLIFIER_TREE]), treeStateReferenceToSnapshot(state[MerkleTreeId.PUBLIC_DATA_TREE])));
|
|
117
90
|
}
|
|
118
91
|
async getTreeInfo(treeId) {
|
|
119
|
-
|
|
120
|
-
treeId: treeId,
|
|
121
|
-
revision: this.revision
|
|
122
|
-
});
|
|
123
|
-
return {
|
|
124
|
-
depth: resp.depth,
|
|
125
|
-
root: resp.root,
|
|
126
|
-
size: BigInt(resp.size),
|
|
127
|
-
treeId
|
|
128
|
-
};
|
|
92
|
+
return await this.instance.getTreeInfo(treeId, this.revision);
|
|
129
93
|
}
|
|
130
94
|
async getBlockNumbersForLeafIndices(treeId, leafIndices) {
|
|
131
|
-
const
|
|
132
|
-
|
|
133
|
-
revision: this.revision,
|
|
134
|
-
leafIndices
|
|
135
|
-
});
|
|
136
|
-
return response.blockNumbers.map((x)=>x === undefined || x === null ? undefined : BlockNumber(Number(x)));
|
|
95
|
+
const blockNumbers = await this.instance.getBlockNumbersForLeafIndices(treeId, this.revision, leafIndices);
|
|
96
|
+
return blockNumbers.map((x)=>x === undefined || x === null ? undefined : BlockNumber(Number(x)));
|
|
137
97
|
}
|
|
138
98
|
}
|
|
139
99
|
_computedKey = Symbol.asyncDispose;
|
|
@@ -147,32 +107,19 @@ export class MerkleTreesForkFacade extends MerkleTreesFacade {
|
|
|
147
107
|
super(instance, initialHeader, revision), this.opts = opts, this.log = createLogger('world-state:merkle-trees-fork-facade');
|
|
148
108
|
}
|
|
149
109
|
async updateArchive(header) {
|
|
150
|
-
await this.instance.
|
|
151
|
-
forkId: this.revision.forkId,
|
|
152
|
-
blockHeaderHash: (await header.hash()).toBuffer(),
|
|
153
|
-
blockStateRef: blockStateReference(header.state)
|
|
154
|
-
});
|
|
110
|
+
await this.instance.updateArchive(this.revision.forkId, blockStateReference(header.state), (await header.hash()).toBuffer());
|
|
155
111
|
}
|
|
156
112
|
async appendLeaves(treeId, leaves) {
|
|
157
|
-
await this.instance.
|
|
158
|
-
leaves: leaves.map((leaf)=>serializeLeaf(hydrateLeaf(treeId, leaf))),
|
|
159
|
-
forkId: this.revision.forkId,
|
|
160
|
-
treeId
|
|
161
|
-
});
|
|
113
|
+
await this.instance.appendLeaves(treeId, this.revision.forkId, leaves.map((leaf)=>serializeLeaf(hydrateLeaf(treeId, leaf))));
|
|
162
114
|
}
|
|
163
115
|
async batchInsert(treeId, rawLeaves, subtreeHeight) {
|
|
164
116
|
const leaves = rawLeaves.map((leaf)=>hydrateLeaf(treeId, leaf)).map(serializeLeaf);
|
|
165
|
-
const resp = await this.instance.
|
|
166
|
-
leaves,
|
|
167
|
-
treeId,
|
|
168
|
-
forkId: this.revision.forkId,
|
|
169
|
-
subtreeDepth: subtreeHeight
|
|
170
|
-
});
|
|
117
|
+
const resp = await this.instance.batchInsert(treeId, this.revision.forkId, leaves, subtreeHeight);
|
|
171
118
|
return {
|
|
172
|
-
newSubtreeSiblingPath: new SiblingPath(resp.
|
|
173
|
-
sortedNewLeaves: resp.
|
|
174
|
-
sortedNewLeavesIndexes: resp.
|
|
175
|
-
lowLeavesWitnessData: resp.
|
|
119
|
+
newSubtreeSiblingPath: new SiblingPath(resp.subtreePath.length, resp.subtreePath),
|
|
120
|
+
sortedNewLeaves: resp.sortedLeaves.map(([leaf])=>leaf).map(deserializeLeafValue).map(serializeToBuffer),
|
|
121
|
+
sortedNewLeavesIndexes: resp.sortedLeaves.map(([, index])=>index),
|
|
122
|
+
lowLeavesWitnessData: resp.lowLeafWitnessData.map((data)=>({
|
|
176
123
|
index: BigInt(data.index),
|
|
177
124
|
leafPreimage: deserializeIndexedLeaf(data.leaf),
|
|
178
125
|
siblingPath: new SiblingPath(data.path.length, data.path)
|
|
@@ -181,18 +128,14 @@ export class MerkleTreesForkFacade extends MerkleTreesFacade {
|
|
|
181
128
|
}
|
|
182
129
|
async sequentialInsert(treeId, rawLeaves) {
|
|
183
130
|
const leaves = rawLeaves.map((leaf)=>hydrateLeaf(treeId, leaf)).map(serializeLeaf);
|
|
184
|
-
const resp = await this.instance.
|
|
185
|
-
leaves,
|
|
186
|
-
treeId,
|
|
187
|
-
forkId: this.revision.forkId
|
|
188
|
-
});
|
|
131
|
+
const resp = await this.instance.sequentialInsert(treeId, this.revision.forkId, leaves);
|
|
189
132
|
return {
|
|
190
|
-
lowLeavesWitnessData: resp.
|
|
133
|
+
lowLeavesWitnessData: resp.lowLeafWitnessData.map((data)=>({
|
|
191
134
|
index: BigInt(data.index),
|
|
192
135
|
leafPreimage: deserializeIndexedLeaf(data.leaf),
|
|
193
136
|
siblingPath: new SiblingPath(data.path.length, data.path)
|
|
194
137
|
})),
|
|
195
|
-
insertionWitnessData: resp.
|
|
138
|
+
insertionWitnessData: resp.insertionWitnessData.map((data)=>({
|
|
196
139
|
index: BigInt(data.index),
|
|
197
140
|
leafPreimage: deserializeIndexedLeaf(data.leaf),
|
|
198
141
|
siblingPath: new SiblingPath(data.path.length, data.path)
|
|
@@ -210,13 +153,11 @@ export class MerkleTreesForkFacade extends MerkleTreesFacade {
|
|
|
210
153
|
}
|
|
211
154
|
async doClose() {
|
|
212
155
|
try {
|
|
213
|
-
await this.instance.
|
|
214
|
-
forkId: this.revision.forkId
|
|
215
|
-
});
|
|
156
|
+
await this.instance.deleteFork(this.revision.forkId);
|
|
216
157
|
} catch (err) {
|
|
217
158
|
// Ignore errors due to native instance being closed during shutdown.
|
|
218
159
|
// This can happen when validators are still processing block proposals while the node is stopping.
|
|
219
|
-
if (err?.message === 'Native instance is closed') {
|
|
160
|
+
if (err?.message === 'Native instance is closed' || err?.message === 'IPC instance is closed') {
|
|
220
161
|
return;
|
|
221
162
|
}
|
|
222
163
|
// Ignore "Fork not found": the native fork was already destroyed by a pending-chain unwind or a
|
|
@@ -241,36 +182,23 @@ export class MerkleTreesForkFacade extends MerkleTreesFacade {
|
|
|
241
182
|
}
|
|
242
183
|
async createCheckpoint() {
|
|
243
184
|
assert.notEqual(this.revision.forkId, 0, 'Fork ID must be set');
|
|
244
|
-
|
|
245
|
-
forkId: this.revision.forkId
|
|
246
|
-
});
|
|
247
|
-
return resp.depth;
|
|
185
|
+
return await this.instance.createCheckpoint(this.revision.forkId);
|
|
248
186
|
}
|
|
249
187
|
async commitCheckpoint() {
|
|
250
188
|
assert.notEqual(this.revision.forkId, 0, 'Fork ID must be set');
|
|
251
|
-
await this.instance.
|
|
252
|
-
forkId: this.revision.forkId
|
|
253
|
-
});
|
|
189
|
+
await this.instance.commitCheckpoint(this.revision.forkId);
|
|
254
190
|
}
|
|
255
191
|
async revertCheckpoint() {
|
|
256
192
|
assert.notEqual(this.revision.forkId, 0, 'Fork ID must be set');
|
|
257
|
-
await this.instance.
|
|
258
|
-
forkId: this.revision.forkId
|
|
259
|
-
});
|
|
193
|
+
await this.instance.revertCheckpoint(this.revision.forkId);
|
|
260
194
|
}
|
|
261
195
|
async commitAllCheckpointsTo(depth) {
|
|
262
196
|
assert.notEqual(this.revision.forkId, 0, 'Fork ID must be set');
|
|
263
|
-
await this.instance.
|
|
264
|
-
forkId: this.revision.forkId,
|
|
265
|
-
depth
|
|
266
|
-
});
|
|
197
|
+
await this.instance.commitAllCheckpoints(this.revision.forkId, depth);
|
|
267
198
|
}
|
|
268
199
|
async revertAllCheckpointsTo(depth) {
|
|
269
200
|
assert.notEqual(this.revision.forkId, 0, 'Fork ID must be set');
|
|
270
|
-
await this.instance.
|
|
271
|
-
forkId: this.revision.forkId,
|
|
272
|
-
depth
|
|
273
|
-
});
|
|
201
|
+
await this.instance.revertAllCheckpoints(this.revision.forkId, depth);
|
|
274
202
|
}
|
|
275
203
|
}
|
|
276
204
|
function hydrateLeaf(treeId, leaf) {
|
package/dest/native/message.d.ts
CHANGED
|
@@ -1,45 +1,7 @@
|
|
|
1
1
|
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
2
2
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
|
-
import type { Tuple } from '@aztec/foundation/serialize';
|
|
4
3
|
import { AppendOnlyTreeSnapshot, MerkleTreeId } from '@aztec/stdlib/trees';
|
|
5
4
|
import type { StateReference } from '@aztec/stdlib/tx';
|
|
6
|
-
import type { UInt32 } from '@aztec/stdlib/types';
|
|
7
|
-
import type { WorldStateRevision } from '@aztec/stdlib/world-state';
|
|
8
|
-
export declare enum WorldStateMessageType {
|
|
9
|
-
GET_TREE_INFO = 100,
|
|
10
|
-
GET_STATE_REFERENCE = 101,
|
|
11
|
-
GET_INITIAL_STATE_REFERENCE = 102,
|
|
12
|
-
GET_LEAF_VALUE = 103,
|
|
13
|
-
GET_LEAF_PREIMAGE = 104,
|
|
14
|
-
GET_SIBLING_PATH = 105,
|
|
15
|
-
GET_BLOCK_NUMBERS_FOR_LEAF_INDICES = 106,
|
|
16
|
-
FIND_LEAF_INDICES = 107,
|
|
17
|
-
FIND_LOW_LEAF = 108,
|
|
18
|
-
FIND_SIBLING_PATHS = 109,
|
|
19
|
-
APPEND_LEAVES = 110,
|
|
20
|
-
BATCH_INSERT = 111,
|
|
21
|
-
SEQUENTIAL_INSERT = 112,
|
|
22
|
-
UPDATE_ARCHIVE = 113,
|
|
23
|
-
COMMIT = 114,
|
|
24
|
-
ROLLBACK = 115,
|
|
25
|
-
SYNC_BLOCK = 116,
|
|
26
|
-
CREATE_FORK = 117,
|
|
27
|
-
DELETE_FORK = 118,
|
|
28
|
-
FINALIZE_BLOCKS = 119,
|
|
29
|
-
UNWIND_BLOCKS = 120,
|
|
30
|
-
REMOVE_HISTORICAL_BLOCKS = 121,
|
|
31
|
-
GET_STATUS = 122,
|
|
32
|
-
CREATE_CHECKPOINT = 123,
|
|
33
|
-
COMMIT_CHECKPOINT = 124,
|
|
34
|
-
REVERT_CHECKPOINT = 125,
|
|
35
|
-
COMMIT_ALL_CHECKPOINTS = 126,
|
|
36
|
-
REVERT_ALL_CHECKPOINTS = 127,
|
|
37
|
-
COPY_STORES = 128,
|
|
38
|
-
CLOSE = 999
|
|
39
|
-
}
|
|
40
|
-
interface WithTreeId {
|
|
41
|
-
treeId: MerkleTreeId;
|
|
42
|
-
}
|
|
43
5
|
export interface WorldStateStatusSummary {
|
|
44
6
|
/** Last block number that can still be unwound. */
|
|
45
7
|
unfinalizedBlockNumber: BlockNumber;
|
|
@@ -139,26 +101,6 @@ export declare function sanitizeTreeDBStats(stats: TreeDBStats): TreeDBStats;
|
|
|
139
101
|
export declare function sanitizeWorldStateDBStats(stats: WorldStateDBStats): WorldStateDBStats;
|
|
140
102
|
export declare function sanitizeWorldStateTreeMeta(meta: WorldStateMeta): WorldStateMeta;
|
|
141
103
|
export declare function sanitizeFullStatus(status: WorldStateStatusFull): WorldStateStatusFull;
|
|
142
|
-
interface WithForkId {
|
|
143
|
-
forkId: number;
|
|
144
|
-
}
|
|
145
|
-
interface CreateCheckpointResponse {
|
|
146
|
-
depth: number;
|
|
147
|
-
}
|
|
148
|
-
/** Request to commit/revert all checkpoints down to a target depth. The resulting depth after the operation equals the given depth. */
|
|
149
|
-
interface CheckpointDepthRequest extends WithForkId {
|
|
150
|
-
/** The target depth after the operation. All checkpoints above this depth are committed/reverted. */
|
|
151
|
-
depth: number;
|
|
152
|
-
}
|
|
153
|
-
interface WithWorldStateRevision {
|
|
154
|
-
revision: WorldStateRevision;
|
|
155
|
-
}
|
|
156
|
-
interface WithCanonicalForkId {
|
|
157
|
-
canonical: true;
|
|
158
|
-
}
|
|
159
|
-
interface WithLeafIndex {
|
|
160
|
-
leafIndex: bigint;
|
|
161
|
-
}
|
|
162
104
|
export type SerializedLeafValue = Buffer | {
|
|
163
105
|
nullifier: Buffer;
|
|
164
106
|
} | {
|
|
@@ -170,195 +112,34 @@ export type SerializedIndexedLeaf = {
|
|
|
170
112
|
nextIndex: bigint | number;
|
|
171
113
|
nextKey: Buffer;
|
|
172
114
|
};
|
|
173
|
-
interface
|
|
174
|
-
leaves: SerializedLeafValue[];
|
|
175
|
-
}
|
|
176
|
-
interface BlockShiftRequest extends WithCanonicalForkId {
|
|
177
|
-
toBlockNumber: BlockNumber;
|
|
178
|
-
}
|
|
179
|
-
interface WithLeaves {
|
|
180
|
-
leaves: SerializedLeafValue[];
|
|
181
|
-
}
|
|
182
|
-
interface GetTreeInfoRequest extends WithTreeId, WithWorldStateRevision {
|
|
183
|
-
}
|
|
184
|
-
interface GetTreeInfoResponse {
|
|
185
|
-
treeId: MerkleTreeId;
|
|
186
|
-
depth: UInt32;
|
|
187
|
-
size: bigint | number;
|
|
188
|
-
root: Buffer;
|
|
189
|
-
}
|
|
190
|
-
interface GetBlockNumbersForLeafIndicesRequest extends WithTreeId, WithWorldStateRevision {
|
|
191
|
-
leafIndices: bigint[];
|
|
192
|
-
}
|
|
193
|
-
interface GetBlockNumbersForLeafIndicesResponse {
|
|
194
|
-
blockNumbers: bigint[];
|
|
195
|
-
}
|
|
196
|
-
interface GetSiblingPathRequest extends WithTreeId, WithLeafIndex, WithWorldStateRevision {
|
|
197
|
-
}
|
|
198
|
-
type GetSiblingPathResponse = Buffer[];
|
|
199
|
-
interface GetStateReferenceRequest extends WithWorldStateRevision {
|
|
200
|
-
}
|
|
201
|
-
interface GetStateReferenceResponse {
|
|
202
|
-
state: Record<MerkleTreeId, TreeStateReference>;
|
|
203
|
-
}
|
|
204
|
-
interface GetLeafRequest extends WithTreeId, WithWorldStateRevision, WithLeafIndex {
|
|
205
|
-
}
|
|
206
|
-
type GetLeafResponse = SerializedLeafValue | undefined;
|
|
207
|
-
interface GetLeafPreImageRequest extends WithTreeId, WithLeafIndex, WithWorldStateRevision {
|
|
208
|
-
}
|
|
209
|
-
type GetLeafPreImageResponse = SerializedIndexedLeaf | undefined;
|
|
210
|
-
interface FindLeafIndicesRequest extends WithTreeId, WithLeafValues, WithWorldStateRevision {
|
|
211
|
-
startIndex: bigint;
|
|
212
|
-
}
|
|
213
|
-
interface FindLeafIndicesResponse {
|
|
214
|
-
indices: bigint[];
|
|
215
|
-
}
|
|
216
|
-
interface FindSiblingPathsRequest extends WithTreeId, WithLeafValues, WithWorldStateRevision {
|
|
217
|
-
}
|
|
218
|
-
interface SiblingPathAndIndex {
|
|
115
|
+
export interface SerializedSiblingPathAndIndex {
|
|
219
116
|
index: bigint;
|
|
220
117
|
path: Buffer[];
|
|
221
118
|
}
|
|
222
|
-
interface
|
|
223
|
-
|
|
224
|
-
}
|
|
225
|
-
interface FindLowLeafRequest extends WithTreeId, WithWorldStateRevision {
|
|
226
|
-
key: Fr;
|
|
227
|
-
}
|
|
228
|
-
interface FindLowLeafResponse {
|
|
229
|
-
index: bigint | number;
|
|
230
|
-
alreadyPresent: boolean;
|
|
231
|
-
}
|
|
232
|
-
interface AppendLeavesRequest extends WithTreeId, WithForkId, WithLeaves {
|
|
233
|
-
}
|
|
234
|
-
interface BatchInsertRequest extends WithTreeId, WithForkId, WithLeaves {
|
|
235
|
-
subtreeDepth: number;
|
|
236
|
-
}
|
|
237
|
-
interface BatchInsertResponse {
|
|
238
|
-
low_leaf_witness_data: ReadonlyArray<{
|
|
119
|
+
export interface SerializedBatchInsertionResult {
|
|
120
|
+
lowLeafWitnessData: ReadonlyArray<{
|
|
239
121
|
leaf: SerializedIndexedLeaf;
|
|
240
122
|
index: bigint | number;
|
|
241
|
-
path:
|
|
123
|
+
path: Buffer[];
|
|
242
124
|
}>;
|
|
243
|
-
|
|
244
|
-
|
|
125
|
+
sortedLeaves: ReadonlyArray<readonly [SerializedLeafValue, number]>;
|
|
126
|
+
subtreePath: Buffer[];
|
|
245
127
|
}
|
|
246
|
-
interface
|
|
247
|
-
|
|
248
|
-
interface SequentialInsertResponse {
|
|
249
|
-
low_leaf_witness_data: ReadonlyArray<{
|
|
128
|
+
export interface SerializedSequentialInsertionResult {
|
|
129
|
+
lowLeafWitnessData: ReadonlyArray<{
|
|
250
130
|
leaf: SerializedIndexedLeaf;
|
|
251
131
|
index: bigint | number;
|
|
252
|
-
path:
|
|
132
|
+
path: Buffer[];
|
|
253
133
|
}>;
|
|
254
|
-
|
|
134
|
+
insertionWitnessData: ReadonlyArray<{
|
|
255
135
|
leaf: SerializedIndexedLeaf;
|
|
256
136
|
index: bigint | number;
|
|
257
|
-
path:
|
|
137
|
+
path: Buffer[];
|
|
258
138
|
}>;
|
|
259
139
|
}
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
blockHeaderHash: Buffer;
|
|
263
|
-
}
|
|
264
|
-
interface SyncBlockRequest extends WithCanonicalForkId {
|
|
265
|
-
blockNumber: BlockNumber;
|
|
266
|
-
blockStateRef: BlockStateReference;
|
|
267
|
-
blockHeaderHash: Buffer;
|
|
268
|
-
/** Canonical archive root after this block; world state rejects the sync if its computed root differs. */
|
|
269
|
-
expectedArchiveRoot: Buffer;
|
|
270
|
-
/** Canonical archive root before this block (the block's lastArchive); verified against the local root. */
|
|
271
|
-
expectedPreviousArchiveRoot: Buffer;
|
|
272
|
-
paddedNoteHashes: readonly SerializedLeafValue[];
|
|
273
|
-
paddedL1ToL2Messages: readonly SerializedLeafValue[];
|
|
274
|
-
paddedNullifiers: readonly SerializedLeafValue[];
|
|
275
|
-
publicDataWrites: readonly SerializedLeafValue[];
|
|
276
|
-
}
|
|
277
|
-
interface CreateForkRequest extends WithCanonicalForkId {
|
|
278
|
-
latest: boolean;
|
|
279
|
-
blockNumber: BlockNumber;
|
|
280
|
-
}
|
|
281
|
-
interface CreateForkResponse {
|
|
282
|
-
forkId: number;
|
|
283
|
-
}
|
|
284
|
-
interface DeleteForkRequest extends WithForkId {
|
|
285
|
-
}
|
|
286
|
-
interface CopyStoresRequest extends WithCanonicalForkId {
|
|
287
|
-
dstPath: string;
|
|
288
|
-
compact: boolean;
|
|
289
|
-
}
|
|
290
|
-
export type WorldStateRequestCategories = WithForkId | WithWorldStateRevision | WithCanonicalForkId;
|
|
291
|
-
export declare function isWithForkId(body: WorldStateRequestCategories): body is WithForkId;
|
|
292
|
-
export declare function isWithRevision(body: WorldStateRequestCategories): body is WithWorldStateRevision;
|
|
293
|
-
export declare function isWithCanonical(body: WorldStateRequestCategories): body is WithCanonicalForkId;
|
|
294
|
-
export type WorldStateRequest = {
|
|
295
|
-
[WorldStateMessageType.GET_TREE_INFO]: GetTreeInfoRequest;
|
|
296
|
-
[WorldStateMessageType.GET_STATE_REFERENCE]: GetStateReferenceRequest;
|
|
297
|
-
[WorldStateMessageType.GET_INITIAL_STATE_REFERENCE]: WithCanonicalForkId;
|
|
298
|
-
[WorldStateMessageType.GET_LEAF_VALUE]: GetLeafRequest;
|
|
299
|
-
[WorldStateMessageType.GET_LEAF_PREIMAGE]: GetLeafPreImageRequest;
|
|
300
|
-
[WorldStateMessageType.GET_SIBLING_PATH]: GetSiblingPathRequest;
|
|
301
|
-
[WorldStateMessageType.GET_BLOCK_NUMBERS_FOR_LEAF_INDICES]: GetBlockNumbersForLeafIndicesRequest;
|
|
302
|
-
[WorldStateMessageType.FIND_LEAF_INDICES]: FindLeafIndicesRequest;
|
|
303
|
-
[WorldStateMessageType.FIND_LOW_LEAF]: FindLowLeafRequest;
|
|
304
|
-
[WorldStateMessageType.FIND_SIBLING_PATHS]: FindSiblingPathsRequest;
|
|
305
|
-
[WorldStateMessageType.APPEND_LEAVES]: AppendLeavesRequest;
|
|
306
|
-
[WorldStateMessageType.BATCH_INSERT]: BatchInsertRequest;
|
|
307
|
-
[WorldStateMessageType.SEQUENTIAL_INSERT]: SequentialInsertRequest;
|
|
308
|
-
[WorldStateMessageType.UPDATE_ARCHIVE]: UpdateArchiveRequest;
|
|
309
|
-
[WorldStateMessageType.COMMIT]: WithCanonicalForkId;
|
|
310
|
-
[WorldStateMessageType.ROLLBACK]: WithCanonicalForkId;
|
|
311
|
-
[WorldStateMessageType.SYNC_BLOCK]: SyncBlockRequest;
|
|
312
|
-
[WorldStateMessageType.CREATE_FORK]: CreateForkRequest;
|
|
313
|
-
[WorldStateMessageType.DELETE_FORK]: DeleteForkRequest;
|
|
314
|
-
[WorldStateMessageType.REMOVE_HISTORICAL_BLOCKS]: BlockShiftRequest;
|
|
315
|
-
[WorldStateMessageType.UNWIND_BLOCKS]: BlockShiftRequest;
|
|
316
|
-
[WorldStateMessageType.FINALIZE_BLOCKS]: BlockShiftRequest;
|
|
317
|
-
[WorldStateMessageType.GET_STATUS]: WithCanonicalForkId;
|
|
318
|
-
[WorldStateMessageType.CREATE_CHECKPOINT]: WithForkId;
|
|
319
|
-
[WorldStateMessageType.COMMIT_CHECKPOINT]: WithForkId;
|
|
320
|
-
[WorldStateMessageType.REVERT_CHECKPOINT]: WithForkId;
|
|
321
|
-
[WorldStateMessageType.COMMIT_ALL_CHECKPOINTS]: CheckpointDepthRequest;
|
|
322
|
-
[WorldStateMessageType.REVERT_ALL_CHECKPOINTS]: CheckpointDepthRequest;
|
|
323
|
-
[WorldStateMessageType.COPY_STORES]: CopyStoresRequest;
|
|
324
|
-
[WorldStateMessageType.CLOSE]: WithCanonicalForkId;
|
|
325
|
-
};
|
|
326
|
-
export type WorldStateResponse = {
|
|
327
|
-
[WorldStateMessageType.GET_TREE_INFO]: GetTreeInfoResponse;
|
|
328
|
-
[WorldStateMessageType.GET_STATE_REFERENCE]: GetStateReferenceResponse;
|
|
329
|
-
[WorldStateMessageType.GET_INITIAL_STATE_REFERENCE]: GetStateReferenceResponse;
|
|
330
|
-
[WorldStateMessageType.GET_LEAF_VALUE]: GetLeafResponse;
|
|
331
|
-
[WorldStateMessageType.GET_LEAF_PREIMAGE]: GetLeafPreImageResponse;
|
|
332
|
-
[WorldStateMessageType.GET_SIBLING_PATH]: GetSiblingPathResponse;
|
|
333
|
-
[WorldStateMessageType.GET_BLOCK_NUMBERS_FOR_LEAF_INDICES]: GetBlockNumbersForLeafIndicesResponse;
|
|
334
|
-
[WorldStateMessageType.FIND_LEAF_INDICES]: FindLeafIndicesResponse;
|
|
335
|
-
[WorldStateMessageType.FIND_LOW_LEAF]: FindLowLeafResponse;
|
|
336
|
-
[WorldStateMessageType.FIND_SIBLING_PATHS]: FindSiblingPathsResponse;
|
|
337
|
-
[WorldStateMessageType.APPEND_LEAVES]: void;
|
|
338
|
-
[WorldStateMessageType.BATCH_INSERT]: BatchInsertResponse;
|
|
339
|
-
[WorldStateMessageType.SEQUENTIAL_INSERT]: SequentialInsertResponse;
|
|
340
|
-
[WorldStateMessageType.UPDATE_ARCHIVE]: void;
|
|
341
|
-
[WorldStateMessageType.COMMIT]: void;
|
|
342
|
-
[WorldStateMessageType.ROLLBACK]: void;
|
|
343
|
-
[WorldStateMessageType.SYNC_BLOCK]: WorldStateStatusFull;
|
|
344
|
-
[WorldStateMessageType.CREATE_FORK]: CreateForkResponse;
|
|
345
|
-
[WorldStateMessageType.DELETE_FORK]: void;
|
|
346
|
-
[WorldStateMessageType.REMOVE_HISTORICAL_BLOCKS]: WorldStateStatusFull;
|
|
347
|
-
[WorldStateMessageType.UNWIND_BLOCKS]: WorldStateStatusFull;
|
|
348
|
-
[WorldStateMessageType.FINALIZE_BLOCKS]: WorldStateStatusSummary;
|
|
349
|
-
[WorldStateMessageType.GET_STATUS]: WorldStateStatusSummary;
|
|
350
|
-
[WorldStateMessageType.CREATE_CHECKPOINT]: CreateCheckpointResponse;
|
|
351
|
-
[WorldStateMessageType.COMMIT_CHECKPOINT]: void;
|
|
352
|
-
[WorldStateMessageType.REVERT_CHECKPOINT]: void;
|
|
353
|
-
[WorldStateMessageType.COMMIT_ALL_CHECKPOINTS]: void;
|
|
354
|
-
[WorldStateMessageType.REVERT_ALL_CHECKPOINTS]: void;
|
|
355
|
-
[WorldStateMessageType.COPY_STORES]: void;
|
|
356
|
-
[WorldStateMessageType.CLOSE]: void;
|
|
357
|
-
};
|
|
358
|
-
type TreeStateReference = readonly [Buffer, number | bigint];
|
|
359
|
-
type BlockStateReference = Map<Exclude<MerkleTreeId, MerkleTreeId.ARCHIVE>, TreeStateReference>;
|
|
140
|
+
export type TreeStateReference = readonly [Buffer, number | bigint];
|
|
141
|
+
export type BlockStateReference = Map<Exclude<MerkleTreeId, MerkleTreeId.ARCHIVE>, TreeStateReference>;
|
|
360
142
|
export declare function treeStateReferenceToSnapshot([root, size]: TreeStateReference): AppendOnlyTreeSnapshot;
|
|
361
143
|
export declare function treeStateReference(snapshot: AppendOnlyTreeSnapshot): readonly [Buffer<ArrayBufferLike>, bigint];
|
|
362
144
|
export declare function blockStateReference(state: StateReference): BlockStateReference;
|
|
363
|
-
|
|
364
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL25hdGl2ZS9tZXNzYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNFLE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xELE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFcEUsb0JBQVkscUJBQXFCO0lBQy9CLGFBQWEsTUFBTTtJQUNuQixtQkFBbUIsTUFBQTtJQUNuQiwyQkFBMkIsTUFBQTtJQUUzQixjQUFjLE1BQUE7SUFDZCxpQkFBaUIsTUFBQTtJQUNqQixnQkFBZ0IsTUFBQTtJQUNoQixrQ0FBa0MsTUFBQTtJQUVsQyxpQkFBaUIsTUFBQTtJQUNqQixhQUFhLE1BQUE7SUFDYixrQkFBa0IsTUFBQTtJQUVsQixhQUFhLE1BQUE7SUFDYixZQUFZLE1BQUE7SUFDWixpQkFBaUIsTUFBQTtJQUVqQixjQUFjLE1BQUE7SUFFZCxNQUFNLE1BQUE7SUFDTixRQUFRLE1BQUE7SUFFUixVQUFVLE1BQUE7SUFFVixXQUFXLE1BQUE7SUFDWCxXQUFXLE1BQUE7SUFFWCxlQUFlLE1BQUE7SUFDZixhQUFhLE1BQUE7SUFDYix3QkFBd0IsTUFBQTtJQUV4QixVQUFVLE1BQUE7SUFFVixpQkFBaUIsTUFBQTtJQUNqQixpQkFBaUIsTUFBQTtJQUNqQixpQkFBaUIsTUFBQTtJQUNq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
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL25hdGl2ZS9tZXNzYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNFLE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXZELE1BQU0sV0FBVyx1QkFBdUI7SUFDdEMsbURBQW1EO0lBQ25ELHNCQUFzQixFQUFFLFdBQVcsQ0FBQztJQUNwQyxpRUFBaUU7SUFDakUsb0JBQW9CLEVBQUUsV0FBVyxDQUFDO0lBQ2xDLHFFQUFxRTtJQUNyRSxxQkFBcUIsRUFBRSxXQUFXLENBQUM7SUFDbkMsb0RBQW9EO0lBQ3BELGVBQWUsRUFBRSxPQUFPLENBQUM7Q0FDMUI7QUFFRCxNQUFNLFdBQVcsUUFBUTtJQUN2QiwyQkFBMkI7SUFDM0IsSUFBSSxFQUFFLE1BQU0sQ0FBQztJQUNiLDRCQUE0QjtJQUM1QixLQUFLLEVBQUUsTUFBTSxDQUFDO0lBQ2Qsc0RBQXNEO0lBQ3RELElBQUksRUFBRSxNQUFNLENBQUM7SUFDYixxQ0FBcUM7SUFDckMsYUFBYSxFQUFFLE1BQU0sQ0FBQztJQUN0QixtQ0FBbUM7SUFDbkMsSUFBSSxFQUFFLEVBQUUsQ0FBQztJQUNULDhCQUE4QjtJQUM5QixXQUFXLEVBQUUsTUFBTSxDQUFDO0lBQ3BCLHFDQUFxQztJQUNyQyxXQUFXLEVBQUUsRUFBRSxDQUFDO0lBQ2hCLDZEQUE2RDtJQUM3RCxtQkFBbUIsRUFBRSxXQUFXLENBQUM7SUFDakMsdURBQXVEO0lBQ3ZELHNCQUFzQixFQUFFLFdBQVcsQ0FBQztJQUNwQyxxREFBcUQ7SUFDckQsb0JBQW9CLEVBQUUsV0FB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
|