@proto-kit/common 0.1.1-develop.211 → 0.1.1-develop.2137
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/dist/cache/CacheManifest.d.ts +11 -0
- package/dist/cache/CacheManifest.d.ts.map +1 -0
- package/dist/cache/CacheManifest.js +56 -0
- package/dist/cache/CacheManifest.js.map +1 -0
- package/dist/cache/ProxyCache.d.ts +13 -0
- package/dist/cache/ProxyCache.d.ts.map +1 -0
- package/dist/cache/ProxyCache.js +24 -0
- package/dist/cache/ProxyCache.js.map +1 -0
- package/dist/cache/RemoteCache.d.ts +8 -0
- package/dist/cache/RemoteCache.d.ts.map +1 -0
- package/dist/cache/RemoteCache.js +2 -0
- package/dist/cache/RemoteCache.js.map +1 -0
- package/dist/cache/RemoteCacheCompiler.d.ts +16 -0
- package/dist/cache/RemoteCacheCompiler.d.ts.map +1 -0
- package/dist/cache/RemoteCacheCompiler.js +104 -0
- package/dist/cache/RemoteCacheCompiler.js.map +1 -0
- package/dist/compiling/AtomicCompileHelper.d.ts +15 -0
- package/dist/compiling/AtomicCompileHelper.d.ts.map +1 -0
- package/dist/compiling/AtomicCompileHelper.js +61 -0
- package/dist/compiling/AtomicCompileHelper.js.map +1 -0
- package/dist/compiling/CompilableModule.d.ts +6 -0
- package/dist/compiling/CompilableModule.d.ts.map +1 -0
- package/dist/compiling/CompilableModule.js +2 -0
- package/dist/compiling/CompilableModule.js.map +1 -0
- package/dist/compiling/CompileRegistry.d.ts +25 -0
- package/dist/compiling/CompileRegistry.d.ts.map +1 -0
- package/dist/compiling/CompileRegistry.js +62 -0
- package/dist/compiling/CompileRegistry.js.map +1 -0
- package/dist/compiling/services/ChildVerificationKeyService.d.ts +10 -0
- package/dist/compiling/services/ChildVerificationKeyService.d.ts.map +1 -0
- package/dist/compiling/services/ChildVerificationKeyService.js +27 -0
- package/dist/compiling/services/ChildVerificationKeyService.js.map +1 -0
- package/dist/config/ChildContainerCreatable.d.ts +5 -0
- package/dist/config/ChildContainerCreatable.d.ts.map +1 -0
- package/dist/config/ChildContainerCreatable.js +2 -0
- package/dist/config/ChildContainerCreatable.js.map +1 -0
- package/dist/config/ChildContainerProvider.d.ts +5 -0
- package/dist/config/ChildContainerProvider.d.ts.map +1 -0
- package/dist/config/ChildContainerProvider.js +2 -0
- package/dist/config/ChildContainerProvider.js.map +1 -0
- package/dist/config/ConfigurableModule.d.ts +6 -2
- package/dist/config/ConfigurableModule.d.ts.map +1 -1
- package/dist/config/ConfigurableModule.js +5 -0
- package/dist/config/ConfigurableModule.js.map +1 -0
- package/dist/config/ModuleContainer.d.ts +70 -23
- package/dist/config/ModuleContainer.d.ts.map +1 -1
- package/dist/config/ModuleContainer.js +164 -31
- package/dist/config/ModuleContainer.js.map +1 -0
- package/dist/config/Startable.d.ts +4 -0
- package/dist/config/Startable.d.ts.map +1 -0
- package/dist/config/Startable.js +2 -0
- package/dist/config/Startable.js.map +1 -0
- package/dist/config/injectAlias.d.ts +18 -0
- package/dist/config/injectAlias.d.ts.map +1 -0
- package/dist/config/injectAlias.js +47 -0
- package/dist/config/injectAlias.js.map +1 -0
- package/dist/dependencyFactory/DependencyFactory.d.ts +14 -9
- package/dist/dependencyFactory/DependencyFactory.d.ts.map +1 -1
- package/dist/dependencyFactory/DependencyFactory.js +2 -96
- package/dist/dependencyFactory/DependencyFactory.js.map +1 -0
- package/dist/dependencyFactory/injectOptional.d.ts +16 -0
- package/dist/dependencyFactory/injectOptional.d.ts.map +1 -0
- package/dist/dependencyFactory/injectOptional.js +40 -0
- package/dist/dependencyFactory/injectOptional.js.map +1 -0
- package/dist/dummyVerificationKey.d.ts +3 -0
- package/dist/dummyVerificationKey.d.ts.map +1 -0
- package/dist/dummyVerificationKey.js +8 -0
- package/dist/dummyVerificationKey.js.map +1 -0
- package/dist/events/EventEmitter.d.ts +19 -0
- package/dist/events/EventEmitter.d.ts.map +1 -0
- package/dist/events/EventEmitter.js +35 -0
- package/dist/events/EventEmitter.js.map +1 -0
- package/dist/events/EventEmitterProxy.d.ts +18 -0
- package/dist/events/EventEmitterProxy.d.ts.map +1 -0
- package/dist/events/EventEmitterProxy.js +35 -0
- package/dist/events/EventEmitterProxy.js.map +1 -0
- package/dist/events/EventEmittingComponent.d.ts +9 -0
- package/dist/events/EventEmittingComponent.d.ts.map +1 -0
- package/dist/events/EventEmittingComponent.js +2 -0
- package/dist/events/EventEmittingComponent.js.map +1 -0
- package/dist/events/ReplayingSingleUseEventEmitter.d.ts +17 -0
- package/dist/events/ReplayingSingleUseEventEmitter.d.ts.map +1 -0
- package/dist/events/ReplayingSingleUseEventEmitter.js +34 -0
- package/dist/events/ReplayingSingleUseEventEmitter.js.map +1 -0
- package/dist/index.d.ts +27 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +28 -2
- package/dist/index.js.map +1 -0
- package/dist/log.d.ts +37 -0
- package/dist/log.d.ts.map +1 -0
- package/dist/log.js +117 -0
- package/dist/log.js.map +1 -0
- package/dist/trees/InMemoryLinkedLeafStore.d.ts +21 -0
- package/dist/trees/InMemoryLinkedLeafStore.d.ts.map +1 -0
- package/dist/trees/InMemoryLinkedLeafStore.js +26 -0
- package/dist/trees/InMemoryLinkedLeafStore.js.map +1 -0
- package/dist/trees/InMemoryLinkedMerkleLeafStore.d.ts +7 -0
- package/dist/trees/InMemoryLinkedMerkleLeafStore.d.ts.map +1 -0
- package/dist/trees/InMemoryLinkedMerkleLeafStore.js +6 -0
- package/dist/trees/InMemoryLinkedMerkleLeafStore.js.map +1 -0
- package/dist/trees/InMemoryMerkleTreeStorage.d.ts +11 -0
- package/dist/trees/InMemoryMerkleTreeStorage.d.ts.map +1 -0
- package/dist/trees/InMemoryMerkleTreeStorage.js +13 -0
- package/dist/trees/InMemoryMerkleTreeStorage.js.map +1 -0
- package/dist/trees/LinkedMerkleTree.d.ts +345 -0
- package/dist/trees/LinkedMerkleTree.d.ts.map +1 -0
- package/dist/trees/LinkedMerkleTree.js +337 -0
- package/dist/trees/LinkedMerkleTree.js.map +1 -0
- package/dist/trees/LinkedMerkleTreeStore.d.ts +24 -0
- package/dist/trees/LinkedMerkleTreeStore.d.ts.map +1 -0
- package/dist/trees/LinkedMerkleTreeStore.js +2 -0
- package/dist/trees/LinkedMerkleTreeStore.js.map +1 -0
- package/dist/trees/MerkleTreeStore.d.ts +5 -0
- package/dist/trees/MerkleTreeStore.d.ts.map +1 -0
- package/dist/trees/MerkleTreeStore.js +2 -0
- package/dist/trees/MerkleTreeStore.js.map +1 -0
- package/dist/trees/MockAsyncMerkleStore.d.ts +9 -0
- package/dist/trees/MockAsyncMerkleStore.d.ts.map +1 -0
- package/dist/trees/MockAsyncMerkleStore.js +20 -0
- package/dist/trees/MockAsyncMerkleStore.js.map +1 -0
- package/dist/trees/RollupMerkleTree.d.ts +147 -0
- package/dist/trees/RollupMerkleTree.d.ts.map +1 -0
- package/dist/trees/RollupMerkleTree.js +218 -0
- package/dist/trees/RollupMerkleTree.js.map +1 -0
- package/dist/trees/VirtualMerkleTreeStore.d.ts +13 -0
- package/dist/trees/VirtualMerkleTreeStore.d.ts.map +1 -0
- package/dist/trees/VirtualMerkleTreeStore.js +18 -0
- package/dist/trees/VirtualMerkleTreeStore.js.map +1 -0
- package/dist/trees/lmt/AbstractLinkedMerkleTree.d.ts +288 -0
- package/dist/trees/lmt/AbstractLinkedMerkleTree.d.ts.map +1 -0
- package/dist/trees/lmt/AbstractLinkedMerkleTree.js +22 -0
- package/dist/trees/lmt/AbstractLinkedMerkleTree.js.map +1 -0
- package/dist/trees/lmt/InMemoryLinkedLeafStore.d.ts +21 -0
- package/dist/trees/lmt/InMemoryLinkedLeafStore.d.ts.map +1 -0
- package/dist/trees/lmt/InMemoryLinkedLeafStore.js +26 -0
- package/dist/trees/lmt/InMemoryLinkedLeafStore.js.map +1 -0
- package/dist/trees/lmt/InMemoryLinkedMerkleLeafStore.d.ts +7 -0
- package/dist/trees/lmt/InMemoryLinkedMerkleLeafStore.d.ts.map +1 -0
- package/dist/trees/lmt/InMemoryLinkedMerkleLeafStore.js +6 -0
- package/dist/trees/lmt/InMemoryLinkedMerkleLeafStore.js.map +1 -0
- package/dist/trees/lmt/LinkedLeafStore.d.ts +16 -0
- package/dist/trees/lmt/LinkedLeafStore.d.ts.map +1 -0
- package/dist/trees/lmt/LinkedLeafStore.js +2 -0
- package/dist/trees/lmt/LinkedLeafStore.js.map +1 -0
- package/dist/trees/lmt/LinkedLinkedStore.d.ts +16 -0
- package/dist/trees/lmt/LinkedLinkedStore.d.ts.map +1 -0
- package/dist/trees/lmt/LinkedLinkedStore.js +2 -0
- package/dist/trees/lmt/LinkedLinkedStore.js.map +1 -0
- package/dist/trees/lmt/LinkedMerkleTree.d.ts +11 -0
- package/dist/trees/lmt/LinkedMerkleTree.d.ts.map +1 -0
- package/dist/trees/lmt/LinkedMerkleTree.js +241 -0
- package/dist/trees/lmt/LinkedMerkleTree.js.map +1 -0
- package/dist/trees/lmt/LinkedMerkleTreeCircuitOps.d.ts +113 -0
- package/dist/trees/lmt/LinkedMerkleTreeCircuitOps.d.ts.map +1 -0
- package/dist/trees/lmt/LinkedMerkleTreeCircuitOps.js +113 -0
- package/dist/trees/lmt/LinkedMerkleTreeCircuitOps.js.map +1 -0
- package/dist/trees/lmt/LinkedMerkleTreeDatabase.d.ts +7 -0
- package/dist/trees/lmt/LinkedMerkleTreeDatabase.d.ts.map +1 -0
- package/dist/trees/lmt/LinkedMerkleTreeDatabase.js +2 -0
- package/dist/trees/lmt/LinkedMerkleTreeDatabase.js.map +1 -0
- package/dist/trees/lmt/LinkedMerkleTreeStore.d.ts +16 -0
- package/dist/trees/lmt/LinkedMerkleTreeStore.d.ts.map +1 -0
- package/dist/trees/lmt/LinkedMerkleTreeStore.js +2 -0
- package/dist/trees/lmt/LinkedMerkleTreeStore.js.map +1 -0
- package/dist/trees/lmt/LinkedMerkleTreeTypes.d.ts +74 -0
- package/dist/trees/lmt/LinkedMerkleTreeTypes.d.ts.map +1 -0
- package/dist/trees/lmt/LinkedMerkleTreeTypes.js +50 -0
- package/dist/trees/lmt/LinkedMerkleTreeTypes.js.map +1 -0
- package/dist/trees/sparse/InMemoryMerkleTreeStorage.d.ts +11 -0
- package/dist/trees/sparse/InMemoryMerkleTreeStorage.d.ts.map +1 -0
- package/dist/trees/sparse/InMemoryMerkleTreeStorage.js +13 -0
- package/dist/trees/sparse/InMemoryMerkleTreeStorage.js.map +1 -0
- package/dist/trees/sparse/MerkleTreeStore.d.ts +5 -0
- package/dist/trees/sparse/MerkleTreeStore.d.ts.map +1 -0
- package/dist/trees/sparse/MerkleTreeStore.js +2 -0
- package/dist/trees/sparse/MerkleTreeStore.js.map +1 -0
- package/dist/trees/sparse/MockAsyncMerkleStore.d.ts +9 -0
- package/dist/trees/sparse/MockAsyncMerkleStore.d.ts.map +1 -0
- package/dist/trees/sparse/MockAsyncMerkleStore.js +20 -0
- package/dist/trees/sparse/MockAsyncMerkleStore.js.map +1 -0
- package/dist/trees/sparse/RollupMerkleTree.d.ts +158 -0
- package/dist/trees/sparse/RollupMerkleTree.d.ts.map +1 -0
- package/dist/trees/sparse/RollupMerkleTree.js +330 -0
- package/dist/trees/sparse/RollupMerkleTree.js.map +1 -0
- package/dist/types.d.ts +62 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +14 -1
- package/dist/types.js.map +1 -0
- package/dist/union/union.d.ts +177 -0
- package/dist/union/union.d.ts.map +1 -0
- package/dist/union/union.js +35 -0
- package/dist/union/union.js.map +1 -0
- package/dist/utils.d.ts +57 -2
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +153 -4
- package/dist/utils.js.map +1 -0
- package/dist/zkProgrammable/ProvableMethodExecutionContext.d.ts +4 -3
- package/dist/zkProgrammable/ProvableMethodExecutionContext.d.ts.map +1 -1
- package/dist/zkProgrammable/ProvableMethodExecutionContext.js +2 -3
- package/dist/zkProgrammable/ProvableMethodExecutionContext.js.map +1 -0
- package/dist/zkProgrammable/ZkProgrammable.d.ts +32 -11
- package/dist/zkProgrammable/ZkProgrammable.d.ts.map +1 -1
- package/dist/zkProgrammable/ZkProgrammable.js +36 -17
- package/dist/zkProgrammable/ZkProgrammable.js.map +1 -0
- package/dist/zkProgrammable/provableMethod.d.ts +7 -4
- package/dist/zkProgrammable/provableMethod.d.ts.map +1 -1
- package/dist/zkProgrammable/provableMethod.js +30 -14
- package/dist/zkProgrammable/provableMethod.js.map +1 -0
- package/jest.config.cjs +12 -1
- package/package.json +9 -7
- package/src/cache/CacheManifest.ts +57 -0
- package/src/cache/ProxyCache.ts +30 -0
- package/src/cache/RemoteCache.ts +9 -0
- package/src/cache/RemoteCacheCompiler.ts +131 -0
- package/src/compiling/AtomicCompileHelper.ts +71 -0
- package/src/compiling/CompilableModule.ts +6 -0
- package/src/compiling/CompileRegistry.ts +64 -0
- package/src/compiling/services/ChildVerificationKeyService.ts +26 -0
- package/src/config/ChildContainerCreatable.ts +5 -0
- package/src/config/ChildContainerProvider.ts +5 -0
- package/src/config/ConfigurableModule.ts +15 -2
- package/src/config/ModuleContainer.ts +286 -58
- package/src/config/Startable.ts +3 -0
- package/src/config/injectAlias.ts +70 -0
- package/src/dependencyFactory/DependencyFactory.ts +34 -109
- package/src/dummyVerificationKey.ts +10 -0
- package/src/events/EventEmitter.ts +61 -0
- package/src/events/EventEmitterProxy.ts +81 -0
- package/src/events/EventEmittingComponent.ts +11 -0
- package/src/events/ReplayingSingleUseEventEmitter.ts +42 -0
- package/src/index.ts +27 -2
- package/src/log.ts +145 -0
- package/src/trees/lmt/AbstractLinkedMerkleTree.ts +102 -0
- package/src/trees/lmt/InMemoryLinkedLeafStore.ts +42 -0
- package/src/trees/lmt/LinkedLeafStore.ts +13 -0
- package/src/trees/lmt/LinkedMerkleTree.ts +335 -0
- package/src/trees/lmt/LinkedMerkleTreeCircuitOps.ts +188 -0
- package/src/trees/lmt/LinkedMerkleTreeTypes.ts +53 -0
- package/src/trees/sparse/InMemoryMerkleTreeStorage.ts +17 -0
- package/src/trees/sparse/MerkleTreeStore.ts +5 -0
- package/src/trees/sparse/MockAsyncMerkleStore.ts +30 -0
- package/src/trees/sparse/RollupMerkleTree.ts +512 -0
- package/src/types.ts +53 -2
- package/src/utils.ts +281 -5
- package/src/zkProgrammable/ProvableMethodExecutionContext.ts +6 -6
- package/src/zkProgrammable/ZkProgrammable.ts +90 -35
- package/src/zkProgrammable/provableMethod.ts +50 -23
- package/test/config/ContainerEvents.test.ts +65 -0
- package/test/config/ModuleContainer.test.ts +146 -15
- package/test/config/injectAlias.test.ts +28 -0
- package/test/trees/LinkedMerkleTree.test.ts +124 -0
- package/test/trees/LinkedMerkleTreeCircuitOps.test.ts +147 -0
- package/test/trees/MerkleTree.test.ts +251 -0
- package/test/tsconfig.json +5 -2
- package/test/zkProgrammable/ZkProgrammable.test.ts +145 -119
- package/tsconfig.json +1 -1
- package/LICENSE.md +0 -201
- package/tsconfig.test.json +0 -9
package/dist/log.js
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import loglevel from "loglevel";
|
|
2
|
+
import { Provable } from "o1js";
|
|
3
|
+
/* eslint-disable @typescript-eslint/no-unsafe-argument */
|
|
4
|
+
function logProvable(logFunction, ...args) {
|
|
5
|
+
Provable.asProver(() => {
|
|
6
|
+
const prettyArguments = [];
|
|
7
|
+
args.forEach((argument) => {
|
|
8
|
+
if (argument?.toPretty !== undefined) {
|
|
9
|
+
prettyArguments.push(argument.toPretty());
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
try {
|
|
13
|
+
prettyArguments.push(JSON.parse(JSON.stringify(argument)));
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
prettyArguments.push(argument);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
logFunction(...prettyArguments);
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
/* eslint-enable */
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/strict-boolean-expressions
|
|
25
|
+
if (process.env?.IN_CI ?? false) {
|
|
26
|
+
loglevel.setLevel("ERROR");
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
loglevel.setLevel("INFO");
|
|
30
|
+
}
|
|
31
|
+
const timeMap = {};
|
|
32
|
+
function time(label = "time") {
|
|
33
|
+
timeMap[label] = Date.now();
|
|
34
|
+
}
|
|
35
|
+
function timeLog(label = "time") {
|
|
36
|
+
const prev = timeMap[label];
|
|
37
|
+
if (prev === undefined) {
|
|
38
|
+
return "Label not found";
|
|
39
|
+
}
|
|
40
|
+
return `${label} took ${Date.now() - prev}ms`;
|
|
41
|
+
}
|
|
42
|
+
function timeEnd(label = "time") {
|
|
43
|
+
const str = timeLog(label);
|
|
44
|
+
delete timeMap[label];
|
|
45
|
+
return str;
|
|
46
|
+
}
|
|
47
|
+
export const log = {
|
|
48
|
+
provable: {
|
|
49
|
+
info: (...args) => {
|
|
50
|
+
logProvable(loglevel.info, ...args);
|
|
51
|
+
},
|
|
52
|
+
debug: (...args) => {
|
|
53
|
+
logProvable(loglevel.debug, ...args);
|
|
54
|
+
},
|
|
55
|
+
error: (...args) => {
|
|
56
|
+
logProvable(loglevel.error, ...args);
|
|
57
|
+
},
|
|
58
|
+
trace: (...args) => {
|
|
59
|
+
logProvable(log.trace, ...args);
|
|
60
|
+
},
|
|
61
|
+
warn: (...args) => {
|
|
62
|
+
logProvable(loglevel.warn, ...args);
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
time,
|
|
66
|
+
timeLog: {
|
|
67
|
+
info: (label) => loglevel.info(timeLog(label)),
|
|
68
|
+
debug: (label) => loglevel.debug(timeLog(label)),
|
|
69
|
+
error: (label) => loglevel.error(timeLog(label)),
|
|
70
|
+
trace: (label) => loglevel.trace(timeLog(label)),
|
|
71
|
+
warn: (label) => loglevel.warn(timeLog(label)),
|
|
72
|
+
},
|
|
73
|
+
timeEnd: {
|
|
74
|
+
info: (label) => loglevel.info(timeEnd(label)),
|
|
75
|
+
debug: (label) => loglevel.debug(timeEnd(label)),
|
|
76
|
+
error: (label) => loglevel.error(timeEnd(label)),
|
|
77
|
+
trace: (label) => loglevel.trace(timeEnd(label)),
|
|
78
|
+
warn: (label) => loglevel.warn(timeEnd(label)),
|
|
79
|
+
},
|
|
80
|
+
info: (...args) => {
|
|
81
|
+
loglevel.info(...args);
|
|
82
|
+
},
|
|
83
|
+
debug: (...args) => {
|
|
84
|
+
loglevel.debug(...args);
|
|
85
|
+
},
|
|
86
|
+
error: (...args) => {
|
|
87
|
+
loglevel.error(...args);
|
|
88
|
+
},
|
|
89
|
+
trace: (...args) => {
|
|
90
|
+
// Loglevel prints the stack trace by default. To still be able to use trace
|
|
91
|
+
// inside out application, we use the level, but call debug() under the hood
|
|
92
|
+
if (loglevel.getLevel() <= loglevel.levels.TRACE) {
|
|
93
|
+
loglevel.debug(...args);
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
warn: (...args) => {
|
|
97
|
+
loglevel.warn(...args);
|
|
98
|
+
},
|
|
99
|
+
setLevel: (level) => {
|
|
100
|
+
// eslint-disable-next-line @typescript-eslint/strict-boolean-expressions
|
|
101
|
+
if (!(process.env?.IN_CI ?? false)) {
|
|
102
|
+
loglevel.setLevel(level);
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
get levels() {
|
|
106
|
+
return loglevel.levels;
|
|
107
|
+
},
|
|
108
|
+
getLevel: () => loglevel.getLevel(),
|
|
109
|
+
};
|
|
110
|
+
const validLogLevels = ["TRACE", "DEBUG", "INFO", "WARN", "ERROR", "SILENT"];
|
|
111
|
+
export function assertValidTextLogLevel(level) {
|
|
112
|
+
if (typeof level === "number" ||
|
|
113
|
+
!validLogLevels.includes(level.toUpperCase())) {
|
|
114
|
+
throw new Error(`${level} is not a valid loglevel`);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=log.js.map
|
package/dist/log.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.js","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { LinkedLeafStore, LinkedLeaf } from "./LinkedMerkleTreeStore";
|
|
2
|
+
export declare class InMemoryLinkedLeafStore implements LinkedLeafStore {
|
|
3
|
+
leaves: {
|
|
4
|
+
[key: string]: {
|
|
5
|
+
leaf: LinkedLeaf;
|
|
6
|
+
index: bigint;
|
|
7
|
+
};
|
|
8
|
+
};
|
|
9
|
+
maximumIndex?: bigint;
|
|
10
|
+
getLeaf(path: bigint): {
|
|
11
|
+
leaf: LinkedLeaf;
|
|
12
|
+
index: bigint;
|
|
13
|
+
} | undefined;
|
|
14
|
+
setLeaf(index: bigint, value: LinkedLeaf): void;
|
|
15
|
+
getMaximumIndex(): bigint | undefined;
|
|
16
|
+
getLeafLessOrEqual(path: bigint): {
|
|
17
|
+
leaf: LinkedLeaf;
|
|
18
|
+
index: bigint;
|
|
19
|
+
} | undefined;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=InMemoryLinkedLeafStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InMemoryLinkedLeafStore.d.ts","sourceRoot":"","sources":["../../src/trees/InMemoryLinkedLeafStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAEtE,qBAAa,uBAAwB,YAAW,eAAe;IACtD,MAAM,EAAE;QACb,CAAC,GAAG,EAAE,MAAM,GAAG;YAAE,IAAI,EAAE,UAAU,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;KACpD,CAAM;IAEA,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,OAAO,CACZ,IAAI,EAAE,MAAM,GACX;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS;IAI3C,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAW/C,eAAe,IAAI,MAAM,GAAG,SAAS;IAKrC,kBAAkB,CACvB,IAAI,EAAE,MAAM,GACX;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS;CAMnD"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export class InMemoryLinkedLeafStore {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.leaves = {};
|
|
4
|
+
}
|
|
5
|
+
getLeaf(path) {
|
|
6
|
+
return this.leaves[path.toString()];
|
|
7
|
+
}
|
|
8
|
+
setLeaf(index, value) {
|
|
9
|
+
const leaf = this.getLeaf(value.path);
|
|
10
|
+
if (leaf !== undefined && leaf?.index !== index) {
|
|
11
|
+
throw new Error("Cannot change index of existing leaf");
|
|
12
|
+
}
|
|
13
|
+
this.leaves[value.path.toString()] = { leaf: value, index: index };
|
|
14
|
+
if (this.maximumIndex === undefined || index > this.maximumIndex) {
|
|
15
|
+
this.maximumIndex = index;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
getMaximumIndex() {
|
|
19
|
+
return this.maximumIndex;
|
|
20
|
+
}
|
|
21
|
+
// This gets the leaf with the closest path.
|
|
22
|
+
getLeafLessOrEqual(path) {
|
|
23
|
+
return Object.values(this.leaves).find((storedLeaf) => storedLeaf.leaf.nextPath > path && storedLeaf.leaf.path <= path);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=InMemoryLinkedLeafStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InMemoryLinkedLeafStore.js","sourceRoot":"","sources":["../../src/trees/InMemoryLinkedLeafStore.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,uBAAuB;IAApC;QACS,WAAM,GAET,EAAE,CAAC;IAkCT,CAAC;IA9BQ,OAAO,CACZ,IAAY;QAEZ,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtC,CAAC;IAEM,OAAO,CAAC,KAAa,EAAE,KAAiB;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,EAAE,KAAK,KAAK,KAAK,EAAE;YAC/C,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;SACzD;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QACnE,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE;YAChE,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;SAC3B;IACH,CAAC;IAEM,eAAe;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,4CAA4C;IACrC,kBAAkB,CACvB,IAAY;QAEZ,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CACpC,CAAC,UAAU,EAAE,EAAE,CACb,UAAU,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAClE,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { InMemoryLinkedLeafStore } from "./InMemoryLinkedLeafStore";
|
|
2
|
+
import { InMemoryMerkleTreeStorage } from "./InMemoryMerkleTreeStorage";
|
|
3
|
+
declare const InMemoryLinkedMerkleLeafStore_base: import("ts-mixer/dist/types/types").Class<any[], InMemoryLinkedLeafStore & InMemoryMerkleTreeStorage, typeof InMemoryLinkedLeafStore & typeof InMemoryMerkleTreeStorage>;
|
|
4
|
+
export declare class InMemoryLinkedMerkleLeafStore extends InMemoryLinkedMerkleLeafStore_base {
|
|
5
|
+
}
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=InMemoryLinkedMerkleLeafStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InMemoryLinkedMerkleLeafStore.d.ts","sourceRoot":"","sources":["../../src/trees/InMemoryLinkedMerkleLeafStore.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;;AAExE,qBAAa,6BAA8B,SAAQ,kCAGlD;CAAG"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Mixin } from "ts-mixer";
|
|
2
|
+
import { InMemoryLinkedLeafStore } from "./InMemoryLinkedLeafStore";
|
|
3
|
+
import { InMemoryMerkleTreeStorage } from "./InMemoryMerkleTreeStorage";
|
|
4
|
+
export class InMemoryLinkedMerkleLeafStore extends Mixin(InMemoryLinkedLeafStore, InMemoryMerkleTreeStorage) {
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=InMemoryLinkedMerkleLeafStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InMemoryLinkedMerkleLeafStore.js","sourceRoot":"","sources":["../../src/trees/InMemoryLinkedMerkleLeafStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAExE,MAAM,OAAO,6BAA8B,SAAQ,KAAK,CACtD,uBAAuB,EACvB,yBAAyB,CAC1B;CAAG"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { MerkleTreeStore } from "./MerkleTreeStore";
|
|
2
|
+
export declare class InMemoryMerkleTreeStorage implements MerkleTreeStore {
|
|
3
|
+
protected nodes: {
|
|
4
|
+
[key: number]: {
|
|
5
|
+
[key: string]: bigint;
|
|
6
|
+
};
|
|
7
|
+
};
|
|
8
|
+
getNode(key: bigint, level: number): bigint | undefined;
|
|
9
|
+
setNode(key: bigint, level: number, value: bigint): void;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=InMemoryMerkleTreeStorage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InMemoryMerkleTreeStorage.d.ts","sourceRoot":"","sources":["../../src/trees/InMemoryMerkleTreeStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,qBAAa,yBAA0B,YAAW,eAAe;IAC/D,SAAS,CAAC,KAAK,EAAE;QACf,CAAC,GAAG,EAAE,MAAM,GAAG;YACb,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;SACvB,CAAC;KACH,CAAM;IAEA,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIvD,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;CAGhE"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export class InMemoryMerkleTreeStorage {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.nodes = {};
|
|
4
|
+
}
|
|
5
|
+
getNode(key, level) {
|
|
6
|
+
return this.nodes[level]?.[key.toString()];
|
|
7
|
+
}
|
|
8
|
+
setNode(key, level, value) {
|
|
9
|
+
var _a;
|
|
10
|
+
((_a = this.nodes)[level] ?? (_a[level] = {}))[key.toString()] = value;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=InMemoryMerkleTreeStorage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InMemoryMerkleTreeStorage.js","sourceRoot":"","sources":["../../src/trees/InMemoryMerkleTreeStorage.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,yBAAyB;IAAtC;QACY,UAAK,GAIX,EAAE,CAAC;IAST,CAAC;IAPQ,OAAO,CAAC,GAAW,EAAE,KAAa;QACvC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7C,CAAC;IAEM,OAAO,CAAC,GAAW,EAAE,KAAa,EAAE,KAAa;;QACtD,OAAC,IAAI,CAAC,KAAK,EAAC,KAAK,SAAL,KAAK,IAAM,EAAE,EAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,KAAK,CAAC;IACrD,CAAC;CACF"}
|
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
import { Field } from "o1js";
|
|
2
|
+
import { TypedClass } from "../types";
|
|
3
|
+
import { LinkedMerkleTreeStore } from "./LinkedMerkleTreeStore";
|
|
4
|
+
import { AbstractMerkleWitness } from "./RollupMerkleTree";
|
|
5
|
+
declare const LinkedLeafStruct_base: (new (value: {
|
|
6
|
+
value: import("o1js/dist/node/lib/provable/field").Field;
|
|
7
|
+
path: import("o1js/dist/node/lib/provable/field").Field;
|
|
8
|
+
nextPath: import("o1js/dist/node/lib/provable/field").Field;
|
|
9
|
+
}) => {
|
|
10
|
+
value: import("o1js/dist/node/lib/provable/field").Field;
|
|
11
|
+
path: import("o1js/dist/node/lib/provable/field").Field;
|
|
12
|
+
nextPath: import("o1js/dist/node/lib/provable/field").Field;
|
|
13
|
+
}) & {
|
|
14
|
+
_isStruct: true;
|
|
15
|
+
} & Omit<import("o1js/dist/node/lib/provable/types/provable-intf").Provable<{
|
|
16
|
+
value: import("o1js/dist/node/lib/provable/field").Field;
|
|
17
|
+
path: import("o1js/dist/node/lib/provable/field").Field;
|
|
18
|
+
nextPath: import("o1js/dist/node/lib/provable/field").Field;
|
|
19
|
+
}, {
|
|
20
|
+
value: bigint;
|
|
21
|
+
path: bigint;
|
|
22
|
+
nextPath: bigint;
|
|
23
|
+
}>, "fromFields"> & {
|
|
24
|
+
fromFields: (fields: import("o1js/dist/node/lib/provable/field").Field[]) => {
|
|
25
|
+
value: import("o1js/dist/node/lib/provable/field").Field;
|
|
26
|
+
path: import("o1js/dist/node/lib/provable/field").Field;
|
|
27
|
+
nextPath: import("o1js/dist/node/lib/provable/field").Field;
|
|
28
|
+
};
|
|
29
|
+
} & {
|
|
30
|
+
fromValue: (value: {
|
|
31
|
+
value: string | number | bigint | import("o1js/dist/node/lib/provable/field").Field;
|
|
32
|
+
path: string | number | bigint | import("o1js/dist/node/lib/provable/field").Field;
|
|
33
|
+
nextPath: string | number | bigint | import("o1js/dist/node/lib/provable/field").Field;
|
|
34
|
+
}) => {
|
|
35
|
+
value: import("o1js/dist/node/lib/provable/field").Field;
|
|
36
|
+
path: import("o1js/dist/node/lib/provable/field").Field;
|
|
37
|
+
nextPath: import("o1js/dist/node/lib/provable/field").Field;
|
|
38
|
+
};
|
|
39
|
+
toInput: (x: {
|
|
40
|
+
value: import("o1js/dist/node/lib/provable/field").Field;
|
|
41
|
+
path: import("o1js/dist/node/lib/provable/field").Field;
|
|
42
|
+
nextPath: import("o1js/dist/node/lib/provable/field").Field;
|
|
43
|
+
}) => {
|
|
44
|
+
fields?: import("o1js/dist/node/lib/provable/field").Field[] | undefined;
|
|
45
|
+
packed?: [import("o1js/dist/node/lib/provable/field").Field, number][] | undefined;
|
|
46
|
+
};
|
|
47
|
+
toJSON: (x: {
|
|
48
|
+
value: import("o1js/dist/node/lib/provable/field").Field;
|
|
49
|
+
path: import("o1js/dist/node/lib/provable/field").Field;
|
|
50
|
+
nextPath: import("o1js/dist/node/lib/provable/field").Field;
|
|
51
|
+
}) => {
|
|
52
|
+
value: string;
|
|
53
|
+
path: string;
|
|
54
|
+
nextPath: string;
|
|
55
|
+
};
|
|
56
|
+
fromJSON: (x: {
|
|
57
|
+
value: string;
|
|
58
|
+
path: string;
|
|
59
|
+
nextPath: string;
|
|
60
|
+
}) => {
|
|
61
|
+
value: import("o1js/dist/node/lib/provable/field").Field;
|
|
62
|
+
path: import("o1js/dist/node/lib/provable/field").Field;
|
|
63
|
+
nextPath: import("o1js/dist/node/lib/provable/field").Field;
|
|
64
|
+
};
|
|
65
|
+
empty: () => {
|
|
66
|
+
value: import("o1js/dist/node/lib/provable/field").Field;
|
|
67
|
+
path: import("o1js/dist/node/lib/provable/field").Field;
|
|
68
|
+
nextPath: import("o1js/dist/node/lib/provable/field").Field;
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
export declare class LinkedLeafStruct extends LinkedLeafStruct_base {
|
|
72
|
+
hash(): Field;
|
|
73
|
+
}
|
|
74
|
+
declare const LinkedLeafAndMerkleWitness_base: (new (value: {
|
|
75
|
+
leaf: LinkedLeafStruct;
|
|
76
|
+
merkleWitness: AbstractMerkleWitness & import("./RollupMerkleTree").StructTemplate;
|
|
77
|
+
}) => {
|
|
78
|
+
leaf: LinkedLeafStruct;
|
|
79
|
+
merkleWitness: AbstractMerkleWitness & import("./RollupMerkleTree").StructTemplate;
|
|
80
|
+
}) & {
|
|
81
|
+
_isStruct: true;
|
|
82
|
+
} & Omit<import("o1js/dist/node/lib/provable/types/provable-intf").Provable<{
|
|
83
|
+
leaf: LinkedLeafStruct;
|
|
84
|
+
merkleWitness: AbstractMerkleWitness & import("./RollupMerkleTree").StructTemplate;
|
|
85
|
+
}, {
|
|
86
|
+
leaf: {
|
|
87
|
+
value: bigint;
|
|
88
|
+
path: bigint;
|
|
89
|
+
nextPath: bigint;
|
|
90
|
+
};
|
|
91
|
+
merkleWitness: {
|
|
92
|
+
path: bigint[];
|
|
93
|
+
isLeft: boolean[];
|
|
94
|
+
};
|
|
95
|
+
}>, "fromFields"> & {
|
|
96
|
+
fromFields: (fields: import("o1js/dist/node/lib/provable/field").Field[]) => {
|
|
97
|
+
leaf: LinkedLeafStruct;
|
|
98
|
+
merkleWitness: AbstractMerkleWitness & import("./RollupMerkleTree").StructTemplate;
|
|
99
|
+
};
|
|
100
|
+
} & {
|
|
101
|
+
fromValue: (value: {
|
|
102
|
+
leaf: LinkedLeafStruct | {
|
|
103
|
+
value: string | number | bigint | import("o1js/dist/node/lib/provable/field").Field;
|
|
104
|
+
path: string | number | bigint | import("o1js/dist/node/lib/provable/field").Field;
|
|
105
|
+
nextPath: string | number | bigint | import("o1js/dist/node/lib/provable/field").Field;
|
|
106
|
+
};
|
|
107
|
+
merkleWitness: {
|
|
108
|
+
path: import("o1js/dist/node/lib/provable/field").Field[] | bigint[];
|
|
109
|
+
isLeft: import("o1js/dist/node/lib/provable/bool").Bool[] | boolean[];
|
|
110
|
+
} | (AbstractMerkleWitness & import("./RollupMerkleTree").StructTemplate);
|
|
111
|
+
}) => {
|
|
112
|
+
leaf: LinkedLeafStruct;
|
|
113
|
+
merkleWitness: AbstractMerkleWitness & import("./RollupMerkleTree").StructTemplate;
|
|
114
|
+
};
|
|
115
|
+
toInput: (x: {
|
|
116
|
+
leaf: LinkedLeafStruct;
|
|
117
|
+
merkleWitness: AbstractMerkleWitness & import("./RollupMerkleTree").StructTemplate;
|
|
118
|
+
}) => {
|
|
119
|
+
fields?: import("o1js/dist/node/lib/provable/field").Field[] | undefined;
|
|
120
|
+
packed?: [import("o1js/dist/node/lib/provable/field").Field, number][] | undefined;
|
|
121
|
+
};
|
|
122
|
+
toJSON: (x: {
|
|
123
|
+
leaf: LinkedLeafStruct;
|
|
124
|
+
merkleWitness: AbstractMerkleWitness & import("./RollupMerkleTree").StructTemplate;
|
|
125
|
+
}) => {
|
|
126
|
+
leaf: {
|
|
127
|
+
value: string;
|
|
128
|
+
path: string;
|
|
129
|
+
nextPath: string;
|
|
130
|
+
};
|
|
131
|
+
merkleWitness: {
|
|
132
|
+
path: string[];
|
|
133
|
+
isLeft: boolean[];
|
|
134
|
+
};
|
|
135
|
+
};
|
|
136
|
+
fromJSON: (x: {
|
|
137
|
+
leaf: {
|
|
138
|
+
value: string;
|
|
139
|
+
path: string;
|
|
140
|
+
nextPath: string;
|
|
141
|
+
};
|
|
142
|
+
merkleWitness: {
|
|
143
|
+
path: string[];
|
|
144
|
+
isLeft: boolean[];
|
|
145
|
+
};
|
|
146
|
+
}) => {
|
|
147
|
+
leaf: LinkedLeafStruct;
|
|
148
|
+
merkleWitness: AbstractMerkleWitness & import("./RollupMerkleTree").StructTemplate;
|
|
149
|
+
};
|
|
150
|
+
empty: () => {
|
|
151
|
+
leaf: LinkedLeafStruct;
|
|
152
|
+
merkleWitness: AbstractMerkleWitness & import("./RollupMerkleTree").StructTemplate;
|
|
153
|
+
};
|
|
154
|
+
};
|
|
155
|
+
export declare class LinkedLeafAndMerkleWitness extends LinkedLeafAndMerkleWitness_base {
|
|
156
|
+
}
|
|
157
|
+
declare const LinkedStructTemplate_base: (new (value: {
|
|
158
|
+
leafPrevious: LinkedLeafAndMerkleWitness;
|
|
159
|
+
leafCurrent: LinkedLeafAndMerkleWitness;
|
|
160
|
+
}) => {
|
|
161
|
+
leafPrevious: LinkedLeafAndMerkleWitness;
|
|
162
|
+
leafCurrent: LinkedLeafAndMerkleWitness;
|
|
163
|
+
}) & {
|
|
164
|
+
_isStruct: true;
|
|
165
|
+
} & Omit<import("o1js/dist/node/lib/provable/types/provable-intf").Provable<{
|
|
166
|
+
leafPrevious: LinkedLeafAndMerkleWitness;
|
|
167
|
+
leafCurrent: LinkedLeafAndMerkleWitness;
|
|
168
|
+
}, {
|
|
169
|
+
leafPrevious: {
|
|
170
|
+
leaf: {
|
|
171
|
+
value: bigint;
|
|
172
|
+
path: bigint;
|
|
173
|
+
nextPath: bigint;
|
|
174
|
+
};
|
|
175
|
+
merkleWitness: {
|
|
176
|
+
path: bigint[];
|
|
177
|
+
isLeft: boolean[];
|
|
178
|
+
};
|
|
179
|
+
};
|
|
180
|
+
leafCurrent: {
|
|
181
|
+
leaf: {
|
|
182
|
+
value: bigint;
|
|
183
|
+
path: bigint;
|
|
184
|
+
nextPath: bigint;
|
|
185
|
+
};
|
|
186
|
+
merkleWitness: {
|
|
187
|
+
path: bigint[];
|
|
188
|
+
isLeft: boolean[];
|
|
189
|
+
};
|
|
190
|
+
};
|
|
191
|
+
}>, "fromFields"> & {
|
|
192
|
+
fromFields: (fields: import("o1js/dist/node/lib/provable/field").Field[]) => {
|
|
193
|
+
leafPrevious: LinkedLeafAndMerkleWitness;
|
|
194
|
+
leafCurrent: LinkedLeafAndMerkleWitness;
|
|
195
|
+
};
|
|
196
|
+
} & {
|
|
197
|
+
fromValue: (value: {
|
|
198
|
+
leafPrevious: LinkedLeafAndMerkleWitness | {
|
|
199
|
+
leaf: LinkedLeafStruct | {
|
|
200
|
+
value: string | number | bigint | import("o1js/dist/node/lib/provable/field").Field;
|
|
201
|
+
path: string | number | bigint | import("o1js/dist/node/lib/provable/field").Field;
|
|
202
|
+
nextPath: string | number | bigint | import("o1js/dist/node/lib/provable/field").Field;
|
|
203
|
+
};
|
|
204
|
+
merkleWitness: {
|
|
205
|
+
path: import("o1js/dist/node/lib/provable/field").Field[] | bigint[];
|
|
206
|
+
isLeft: import("o1js/dist/node/lib/provable/bool").Bool[] | boolean[];
|
|
207
|
+
} | (AbstractMerkleWitness & import("./RollupMerkleTree").StructTemplate);
|
|
208
|
+
};
|
|
209
|
+
leafCurrent: LinkedLeafAndMerkleWitness | {
|
|
210
|
+
leaf: LinkedLeafStruct | {
|
|
211
|
+
value: string | number | bigint | import("o1js/dist/node/lib/provable/field").Field;
|
|
212
|
+
path: string | number | bigint | import("o1js/dist/node/lib/provable/field").Field;
|
|
213
|
+
nextPath: string | number | bigint | import("o1js/dist/node/lib/provable/field").Field;
|
|
214
|
+
};
|
|
215
|
+
merkleWitness: {
|
|
216
|
+
path: import("o1js/dist/node/lib/provable/field").Field[] | bigint[];
|
|
217
|
+
isLeft: import("o1js/dist/node/lib/provable/bool").Bool[] | boolean[];
|
|
218
|
+
} | (AbstractMerkleWitness & import("./RollupMerkleTree").StructTemplate);
|
|
219
|
+
};
|
|
220
|
+
}) => {
|
|
221
|
+
leafPrevious: LinkedLeafAndMerkleWitness;
|
|
222
|
+
leafCurrent: LinkedLeafAndMerkleWitness;
|
|
223
|
+
};
|
|
224
|
+
toInput: (x: {
|
|
225
|
+
leafPrevious: LinkedLeafAndMerkleWitness;
|
|
226
|
+
leafCurrent: LinkedLeafAndMerkleWitness;
|
|
227
|
+
}) => {
|
|
228
|
+
fields?: import("o1js/dist/node/lib/provable/field").Field[] | undefined;
|
|
229
|
+
packed?: [import("o1js/dist/node/lib/provable/field").Field, number][] | undefined;
|
|
230
|
+
};
|
|
231
|
+
toJSON: (x: {
|
|
232
|
+
leafPrevious: LinkedLeafAndMerkleWitness;
|
|
233
|
+
leafCurrent: LinkedLeafAndMerkleWitness;
|
|
234
|
+
}) => {
|
|
235
|
+
leafPrevious: {
|
|
236
|
+
leaf: {
|
|
237
|
+
value: string;
|
|
238
|
+
path: string;
|
|
239
|
+
nextPath: string;
|
|
240
|
+
};
|
|
241
|
+
merkleWitness: {
|
|
242
|
+
path: string[];
|
|
243
|
+
isLeft: boolean[];
|
|
244
|
+
};
|
|
245
|
+
};
|
|
246
|
+
leafCurrent: {
|
|
247
|
+
leaf: {
|
|
248
|
+
value: string;
|
|
249
|
+
path: string;
|
|
250
|
+
nextPath: string;
|
|
251
|
+
};
|
|
252
|
+
merkleWitness: {
|
|
253
|
+
path: string[];
|
|
254
|
+
isLeft: boolean[];
|
|
255
|
+
};
|
|
256
|
+
};
|
|
257
|
+
};
|
|
258
|
+
fromJSON: (x: {
|
|
259
|
+
leafPrevious: {
|
|
260
|
+
leaf: {
|
|
261
|
+
value: string;
|
|
262
|
+
path: string;
|
|
263
|
+
nextPath: string;
|
|
264
|
+
};
|
|
265
|
+
merkleWitness: {
|
|
266
|
+
path: string[];
|
|
267
|
+
isLeft: boolean[];
|
|
268
|
+
};
|
|
269
|
+
};
|
|
270
|
+
leafCurrent: {
|
|
271
|
+
leaf: {
|
|
272
|
+
value: string;
|
|
273
|
+
path: string;
|
|
274
|
+
nextPath: string;
|
|
275
|
+
};
|
|
276
|
+
merkleWitness: {
|
|
277
|
+
path: string[];
|
|
278
|
+
isLeft: boolean[];
|
|
279
|
+
};
|
|
280
|
+
};
|
|
281
|
+
}) => {
|
|
282
|
+
leafPrevious: LinkedLeafAndMerkleWitness;
|
|
283
|
+
leafCurrent: LinkedLeafAndMerkleWitness;
|
|
284
|
+
};
|
|
285
|
+
empty: () => {
|
|
286
|
+
leafPrevious: LinkedLeafAndMerkleWitness;
|
|
287
|
+
leafCurrent: LinkedLeafAndMerkleWitness;
|
|
288
|
+
};
|
|
289
|
+
};
|
|
290
|
+
declare class LinkedStructTemplate extends LinkedStructTemplate_base {
|
|
291
|
+
}
|
|
292
|
+
export interface AbstractLinkedMerkleWitness extends LinkedStructTemplate {
|
|
293
|
+
}
|
|
294
|
+
export interface AbstractLinkedMerkleTree {
|
|
295
|
+
store: LinkedMerkleTreeStore;
|
|
296
|
+
/**
|
|
297
|
+
* Returns a node which lives at a given index and level.
|
|
298
|
+
* @param level Level of the node.
|
|
299
|
+
* @param index Index of the node.
|
|
300
|
+
* @returns The data of the node.
|
|
301
|
+
*/
|
|
302
|
+
getNode(level: number, index: bigint): Field;
|
|
303
|
+
/**
|
|
304
|
+
* Returns the root of the [Merkle Tree](https://en.wikipedia.org/wiki/Merkle_tree).
|
|
305
|
+
* @returns The root of the Merkle Tree.
|
|
306
|
+
*/
|
|
307
|
+
getRoot(): Field;
|
|
308
|
+
/**
|
|
309
|
+
* Sets the value of a leaf node at a given index to a given value.
|
|
310
|
+
* @param path of the leaf node.
|
|
311
|
+
* @param value New value.
|
|
312
|
+
*/
|
|
313
|
+
setLeaf(path: bigint, value?: bigint): LinkedMerkleTreeWitness;
|
|
314
|
+
/**
|
|
315
|
+
* Returns a leaf which lives at a given path.
|
|
316
|
+
* Errors otherwise.
|
|
317
|
+
* @param path Index of the node.
|
|
318
|
+
* @returns The data of the leaf.
|
|
319
|
+
*/
|
|
320
|
+
getLeaf(path: bigint): LinkedLeafStruct | undefined;
|
|
321
|
+
/**
|
|
322
|
+
* Returns the witness (also known as
|
|
323
|
+
* [Merkle Proof or Merkle Witness](https://computersciencewiki.org/index.php/Merkle_proof))
|
|
324
|
+
* for the leaf at the given path.
|
|
325
|
+
* @param path Position of the leaf node.
|
|
326
|
+
* @returns The witness that belongs to the leaf.
|
|
327
|
+
*/
|
|
328
|
+
getWitness(path: bigint): LinkedLeafAndMerkleWitness;
|
|
329
|
+
dummyWitness(): LinkedMerkleTreeWitness;
|
|
330
|
+
dummy(): LinkedLeafAndMerkleWitness;
|
|
331
|
+
}
|
|
332
|
+
export interface AbstractLinkedMerkleTreeClass {
|
|
333
|
+
new (store: LinkedMerkleTreeStore): AbstractLinkedMerkleTree;
|
|
334
|
+
WITNESS: TypedClass<AbstractLinkedMerkleWitness> & typeof LinkedStructTemplate;
|
|
335
|
+
HEIGHT: number;
|
|
336
|
+
EMPTY_ROOT: bigint;
|
|
337
|
+
}
|
|
338
|
+
export declare function createLinkedMerkleTree(height: number): AbstractLinkedMerkleTreeClass;
|
|
339
|
+
declare const LinkedMerkleTree_base: AbstractLinkedMerkleTreeClass;
|
|
340
|
+
export declare class LinkedMerkleTree extends LinkedMerkleTree_base {
|
|
341
|
+
}
|
|
342
|
+
export declare class LinkedMerkleTreeWitness extends LinkedMerkleTree.WITNESS {
|
|
343
|
+
}
|
|
344
|
+
export {};
|
|
345
|
+
//# sourceMappingURL=LinkedMerkleTree.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinkedMerkleTree.d.ts","sourceRoot":"","sources":["../../src/trees/LinkedMerkleTree.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,KAAK,EAA8B,MAAM,MAAM,CAAC;AAE/D,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EACL,qBAAqB,EAGtB,MAAM,oBAAoB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAI5B,qBAAa,gBAAiB,SAAQ,qBAIpC;IACO,IAAI,IAAI,KAAK;CAGrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAID,qBAAa,0BAA2B,SAAQ,+BAG9C;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEL,cAAM,oBAAqB,SAAQ,yBAGjC;CAAG;AAEL,MAAM,WAAW,2BAA4B,SAAQ,oBAAoB;CAAG;AAE5E,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,qBAAqB,CAAC;IAC7B;;;;;OAKG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC;IAE7C;;;OAGG;IACH,OAAO,IAAI,KAAK,CAAC;IAEjB;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,uBAAuB,CAAC;IAE/D;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAAC;IAEpD;;;;;;OAMG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,0BAA0B,CAAC;IAErD,YAAY,IAAI,uBAAuB,CAAC;IAExC,KAAK,IAAI,0BAA0B,CAAC;CACrC;AAED,MAAM,WAAW,6BAA6B;IAC5C,KAAK,KAAK,EAAE,qBAAqB,GAAG,wBAAwB,CAAC;IAE7D,OAAO,EAAE,UAAU,CAAC,2BAA2B,CAAC,GAC9C,OAAO,oBAAoB,CAAC;IAE9B,MAAM,EAAE,MAAM,CAAC;IAEf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,GACb,6BAA6B,CAyX/B;;AAED,qBAAa,gBAAiB,SAAQ,qBAA0B;CAAG;AACnE,qBAAa,uBAAwB,SAAQ,gBAAgB,CAAC,OAAO;CAAG"}
|