@proto-kit/common 0.1.1-develop.340 → 0.1.1-develop.456

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.
Files changed (61) hide show
  1. package/dist/config/ConfigurableModule.d.ts +2 -1
  2. package/dist/config/ConfigurableModule.d.ts.map +1 -1
  3. package/dist/config/ModuleContainer.d.ts +35 -11
  4. package/dist/config/ModuleContainer.d.ts.map +1 -1
  5. package/dist/config/ModuleContainer.js +86 -19
  6. package/dist/dependencyFactory/DependencyFactory.d.ts +13 -9
  7. package/dist/dependencyFactory/DependencyFactory.d.ts.map +1 -1
  8. package/dist/dependencyFactory/DependencyFactory.js +1 -97
  9. package/dist/events/EventEmitter.d.ts +14 -0
  10. package/dist/events/EventEmitter.d.ts.map +1 -0
  11. package/dist/events/EventEmitter.js +35 -0
  12. package/dist/events/EventEmitterProxy.d.ts +17 -0
  13. package/dist/events/EventEmitterProxy.d.ts.map +1 -0
  14. package/dist/events/EventEmitterProxy.js +21 -0
  15. package/dist/events/EventEmittingComponent.d.ts +6 -0
  16. package/dist/events/EventEmittingComponent.d.ts.map +1 -0
  17. package/dist/index.d.ts +7 -0
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +7 -0
  20. package/dist/trees/InMemoryMerkleTreeStorage.d.ts +11 -0
  21. package/dist/trees/InMemoryMerkleTreeStorage.d.ts.map +1 -0
  22. package/dist/trees/InMemoryMerkleTreeStorage.js +12 -0
  23. package/dist/trees/MerkleTreeStore.d.ts +5 -0
  24. package/dist/trees/MerkleTreeStore.d.ts.map +1 -0
  25. package/dist/trees/MerkleTreeStore.js +1 -0
  26. package/dist/trees/MockAsyncMerkleStore.d.ts +9 -0
  27. package/dist/trees/MockAsyncMerkleStore.d.ts.map +1 -0
  28. package/dist/trees/MockAsyncMerkleStore.js +19 -0
  29. package/dist/trees/RollupMerkleTree.d.ts +126 -0
  30. package/dist/trees/RollupMerkleTree.d.ts.map +1 -0
  31. package/dist/trees/RollupMerkleTree.js +216 -0
  32. package/dist/types.d.ts +5 -0
  33. package/dist/types.d.ts.map +1 -1
  34. package/dist/zkProgrammable/ZkProgrammable.d.ts +1 -1
  35. package/dist/zkProgrammable/ZkProgrammable.d.ts.map +1 -1
  36. package/dist/zkProgrammable/ZkProgrammable.js +4 -4
  37. package/dist/zkProgrammable/provableMethod.d.ts +1 -1
  38. package/dist/zkProgrammable/provableMethod.d.ts.map +1 -1
  39. package/dist/zkProgrammable/provableMethod.js +2 -2
  40. package/package.json +2 -2
  41. package/src/config/ConfigurableModule.ts +3 -1
  42. package/src/config/ModuleContainer.ts +150 -30
  43. package/src/dependencyFactory/DependencyFactory.ts +25 -114
  44. package/src/events/EventEmitter.ts +58 -0
  45. package/src/events/EventEmitterProxy.ts +57 -0
  46. package/src/events/EventEmittingComponent.ts +7 -0
  47. package/src/index.ts +7 -0
  48. package/src/trees/InMemoryMerkleTreeStorage.ts +17 -0
  49. package/src/trees/MerkleTreeStore.ts +5 -0
  50. package/src/trees/MockAsyncMerkleStore.ts +29 -0
  51. package/src/trees/RollupMerkleTree.ts +354 -0
  52. package/src/trees/VirtualMerkleTreeStore.ts +21 -0
  53. package/src/types.ts +12 -0
  54. package/src/zkProgrammable/ZkProgrammable.ts +5 -4
  55. package/src/zkProgrammable/provableMethod.ts +2 -2
  56. package/test/config/ContainerEvents.test.ts +86 -0
  57. package/test/config/ModuleContainer.test.ts +111 -6
  58. package/test/trees/MerkleTree.test.ts +105 -0
  59. package/dist/config/ChildContainerStartable.d.ts +0 -5
  60. package/dist/config/ChildContainerStartable.d.ts.map +0 -1
  61. /package/dist/{config/ChildContainerStartable.js → events/EventEmittingComponent.js} +0 -0
@@ -0,0 +1,105 @@
1
+ import { beforeEach } from "@jest/globals";
2
+ import { Field, Poseidon } from "o1js";
3
+
4
+ import { createMerkleTree, InMemoryMerkleTreeStorage, log } from "../../src";
5
+
6
+ describe.each([4, 16, 256])("cachedMerkleTree - %s", (height) => {
7
+ class RollupMerkleTree extends createMerkleTree(height) {}
8
+ class RollupMerkleTreeWitness extends RollupMerkleTree.WITNESS {}
9
+
10
+ let store: InMemoryMerkleTreeStorage;
11
+ let tree: RollupMerkleTree;
12
+
13
+ beforeEach(() => {
14
+ log.setLevel("DEBUG");
15
+
16
+ store = new InMemoryMerkleTreeStorage();
17
+ tree = new RollupMerkleTree(store);
18
+ });
19
+
20
+ it("should have the same root when empty", () => {
21
+ expect.assertions(1);
22
+
23
+ expect(tree.getRoot().toBigInt()).toStrictEqual(
24
+ RollupMerkleTree.EMPTY_ROOT
25
+ );
26
+ });
27
+
28
+ it("should have a different root when not empty", () => {
29
+ expect.assertions(1);
30
+
31
+ tree.setLeaf(1n, Field(1));
32
+
33
+ expect(tree.getRoot().toBigInt()).not.toStrictEqual(
34
+ RollupMerkleTree.EMPTY_ROOT
35
+ );
36
+ });
37
+
38
+ it("should have the same root after adding and removing item", () => {
39
+ expect.assertions(1);
40
+
41
+ tree.setLeaf(1n, Field(1));
42
+
43
+ const root = tree.getRoot();
44
+
45
+ tree.setLeaf(5n, Field(5));
46
+ tree.setLeaf(5n, Field(0));
47
+
48
+ expect(tree.getRoot().toBigInt()).toStrictEqual(root.toBigInt());
49
+ });
50
+
51
+ it("should provide correct witnesses", () => {
52
+ expect.assertions(1);
53
+
54
+ tree.setLeaf(1n, Field(1));
55
+ tree.setLeaf(5n, Field(5));
56
+
57
+ const witness = tree.getWitness(5n);
58
+
59
+ expect(witness.calculateRoot(Field(5)).toBigInt()).toStrictEqual(
60
+ tree.getRoot().toBigInt()
61
+ );
62
+ });
63
+
64
+ it("should have invalid witnesses with wrong values", () => {
65
+ expect.assertions(1);
66
+
67
+ tree.setLeaf(1n, Field(1));
68
+ tree.setLeaf(5n, Field(5));
69
+
70
+ const witness = tree.getWitness(5n);
71
+
72
+ expect(witness.calculateRoot(Field(6)).toBigInt()).not.toStrictEqual(
73
+ tree.getRoot().toBigInt()
74
+ );
75
+ });
76
+
77
+ it("should have valid witnesses with changed value on the same leafs", () => {
78
+ expect.assertions(1);
79
+
80
+ tree.setLeaf(1n, Field(1));
81
+ tree.setLeaf(5n, Field(5));
82
+
83
+ const witness = tree.getWitness(5n);
84
+
85
+ tree.setLeaf(5n, Field(10));
86
+
87
+ expect(witness.calculateRoot(Field(10)).toBigInt()).toStrictEqual(
88
+ tree.getRoot().toBigInt()
89
+ );
90
+ });
91
+
92
+ it("should throw for invalid index", () => {
93
+ expect.assertions(2);
94
+
95
+ const index = 2n ** BigInt(height) + 1n;
96
+
97
+ expect(() => {
98
+ tree.setLeaf(index, Field(1));
99
+ }).toThrow("Index greater than maximum leaf number");
100
+
101
+ expect(() => {
102
+ tree.getNode(0, index);
103
+ }).toThrow("Index greater than maximum leaf number");
104
+ });
105
+ });
@@ -1,5 +0,0 @@
1
- import { ChildContainerProvider } from "./ChildContainerProvider";
2
- export interface ChildContainerStartable {
3
- create: (childContainerProvider: ChildContainerProvider) => void;
4
- }
5
- //# sourceMappingURL=ChildContainerStartable.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChildContainerStartable.d.ts","sourceRoot":"","sources":["../../src/config/ChildContainerStartable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,CAAC,sBAAsB,EAAE,sBAAsB,KAAK,IAAI,CAAC;CAClE"}