@proto-kit/common 0.1.1-develop.190 → 0.1.1-develop.2024

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 (238) hide show
  1. package/dist/compiling/AtomicCompileHelper.d.ts +13 -0
  2. package/dist/compiling/AtomicCompileHelper.d.ts.map +1 -0
  3. package/dist/compiling/AtomicCompileHelper.js +40 -0
  4. package/dist/compiling/AtomicCompileHelper.js.map +1 -0
  5. package/dist/compiling/CompilableModule.d.ts +6 -0
  6. package/dist/compiling/CompilableModule.d.ts.map +1 -0
  7. package/dist/compiling/CompilableModule.js +2 -0
  8. package/dist/compiling/CompilableModule.js.map +1 -0
  9. package/dist/compiling/CompileRegistry.d.ts +26 -0
  10. package/dist/compiling/CompileRegistry.d.ts.map +1 -0
  11. package/dist/compiling/CompileRegistry.js +67 -0
  12. package/dist/compiling/CompileRegistry.js.map +1 -0
  13. package/dist/compiling/services/ChildVerificationKeyService.d.ts +10 -0
  14. package/dist/compiling/services/ChildVerificationKeyService.d.ts.map +1 -0
  15. package/dist/compiling/services/ChildVerificationKeyService.js +27 -0
  16. package/dist/compiling/services/ChildVerificationKeyService.js.map +1 -0
  17. package/dist/config/ChildContainerCreatable.d.ts +5 -0
  18. package/dist/config/ChildContainerCreatable.d.ts.map +1 -0
  19. package/dist/config/ChildContainerCreatable.js +2 -0
  20. package/dist/config/ChildContainerCreatable.js.map +1 -0
  21. package/dist/config/ChildContainerProvider.d.ts +5 -0
  22. package/dist/config/ChildContainerProvider.d.ts.map +1 -0
  23. package/dist/config/ChildContainerProvider.js +2 -0
  24. package/dist/config/ChildContainerProvider.js.map +1 -0
  25. package/dist/config/ConfigurableModule.d.ts +6 -2
  26. package/dist/config/ConfigurableModule.d.ts.map +1 -1
  27. package/dist/config/ConfigurableModule.js +5 -0
  28. package/dist/config/ConfigurableModule.js.map +1 -0
  29. package/dist/config/ModuleContainer.d.ts +70 -23
  30. package/dist/config/ModuleContainer.d.ts.map +1 -1
  31. package/dist/config/ModuleContainer.js +164 -31
  32. package/dist/config/ModuleContainer.js.map +1 -0
  33. package/dist/config/Startable.d.ts +4 -0
  34. package/dist/config/Startable.d.ts.map +1 -0
  35. package/dist/config/Startable.js +2 -0
  36. package/dist/config/Startable.js.map +1 -0
  37. package/dist/config/injectAlias.d.ts +18 -0
  38. package/dist/config/injectAlias.d.ts.map +1 -0
  39. package/dist/config/injectAlias.js +47 -0
  40. package/dist/config/injectAlias.js.map +1 -0
  41. package/dist/dependencyFactory/DependencyFactory.d.ts +14 -9
  42. package/dist/dependencyFactory/DependencyFactory.d.ts.map +1 -1
  43. package/dist/dependencyFactory/DependencyFactory.js +2 -96
  44. package/dist/dependencyFactory/DependencyFactory.js.map +1 -0
  45. package/dist/dependencyFactory/injectOptional.d.ts +16 -0
  46. package/dist/dependencyFactory/injectOptional.d.ts.map +1 -0
  47. package/dist/dependencyFactory/injectOptional.js +40 -0
  48. package/dist/dependencyFactory/injectOptional.js.map +1 -0
  49. package/dist/dummyVerificationKey.d.ts +3 -0
  50. package/dist/dummyVerificationKey.d.ts.map +1 -0
  51. package/dist/dummyVerificationKey.js +8 -0
  52. package/dist/dummyVerificationKey.js.map +1 -0
  53. package/dist/events/EventEmitter.d.ts +19 -0
  54. package/dist/events/EventEmitter.d.ts.map +1 -0
  55. package/dist/events/EventEmitter.js +35 -0
  56. package/dist/events/EventEmitter.js.map +1 -0
  57. package/dist/events/EventEmitterProxy.d.ts +18 -0
  58. package/dist/events/EventEmitterProxy.d.ts.map +1 -0
  59. package/dist/events/EventEmitterProxy.js +35 -0
  60. package/dist/events/EventEmitterProxy.js.map +1 -0
  61. package/dist/events/EventEmittingComponent.d.ts +9 -0
  62. package/dist/events/EventEmittingComponent.d.ts.map +1 -0
  63. package/dist/events/EventEmittingComponent.js +2 -0
  64. package/dist/events/EventEmittingComponent.js.map +1 -0
  65. package/dist/events/ReplayingSingleUseEventEmitter.d.ts +17 -0
  66. package/dist/events/ReplayingSingleUseEventEmitter.d.ts.map +1 -0
  67. package/dist/events/ReplayingSingleUseEventEmitter.js +34 -0
  68. package/dist/events/ReplayingSingleUseEventEmitter.js.map +1 -0
  69. package/dist/index.d.ts +23 -1
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +24 -2
  72. package/dist/index.js.map +1 -0
  73. package/dist/log.d.ts +37 -0
  74. package/dist/log.d.ts.map +1 -0
  75. package/dist/log.js +117 -0
  76. package/dist/log.js.map +1 -0
  77. package/dist/trees/InMemoryLinkedLeafStore.d.ts +21 -0
  78. package/dist/trees/InMemoryLinkedLeafStore.d.ts.map +1 -0
  79. package/dist/trees/InMemoryLinkedLeafStore.js +26 -0
  80. package/dist/trees/InMemoryLinkedLeafStore.js.map +1 -0
  81. package/dist/trees/InMemoryLinkedMerkleLeafStore.d.ts +7 -0
  82. package/dist/trees/InMemoryLinkedMerkleLeafStore.d.ts.map +1 -0
  83. package/dist/trees/InMemoryLinkedMerkleLeafStore.js +6 -0
  84. package/dist/trees/InMemoryLinkedMerkleLeafStore.js.map +1 -0
  85. package/dist/trees/InMemoryMerkleTreeStorage.d.ts +11 -0
  86. package/dist/trees/InMemoryMerkleTreeStorage.d.ts.map +1 -0
  87. package/dist/trees/InMemoryMerkleTreeStorage.js +13 -0
  88. package/dist/trees/InMemoryMerkleTreeStorage.js.map +1 -0
  89. package/dist/trees/LinkedMerkleTree.d.ts +345 -0
  90. package/dist/trees/LinkedMerkleTree.d.ts.map +1 -0
  91. package/dist/trees/LinkedMerkleTree.js +337 -0
  92. package/dist/trees/LinkedMerkleTree.js.map +1 -0
  93. package/dist/trees/LinkedMerkleTreeStore.d.ts +24 -0
  94. package/dist/trees/LinkedMerkleTreeStore.d.ts.map +1 -0
  95. package/dist/trees/LinkedMerkleTreeStore.js +2 -0
  96. package/dist/trees/LinkedMerkleTreeStore.js.map +1 -0
  97. package/dist/trees/MerkleTreeStore.d.ts +5 -0
  98. package/dist/trees/MerkleTreeStore.d.ts.map +1 -0
  99. package/dist/trees/MerkleTreeStore.js +2 -0
  100. package/dist/trees/MerkleTreeStore.js.map +1 -0
  101. package/dist/trees/MockAsyncMerkleStore.d.ts +9 -0
  102. package/dist/trees/MockAsyncMerkleStore.d.ts.map +1 -0
  103. package/dist/trees/MockAsyncMerkleStore.js +20 -0
  104. package/dist/trees/MockAsyncMerkleStore.js.map +1 -0
  105. package/dist/trees/RollupMerkleTree.d.ts +147 -0
  106. package/dist/trees/RollupMerkleTree.d.ts.map +1 -0
  107. package/dist/trees/RollupMerkleTree.js +218 -0
  108. package/dist/trees/RollupMerkleTree.js.map +1 -0
  109. package/dist/trees/VirtualMerkleTreeStore.d.ts +13 -0
  110. package/dist/trees/VirtualMerkleTreeStore.d.ts.map +1 -0
  111. package/dist/trees/VirtualMerkleTreeStore.js +18 -0
  112. package/dist/trees/VirtualMerkleTreeStore.js.map +1 -0
  113. package/dist/trees/lmt/AbstractLinkedMerkleTree.d.ts +288 -0
  114. package/dist/trees/lmt/AbstractLinkedMerkleTree.d.ts.map +1 -0
  115. package/dist/trees/lmt/AbstractLinkedMerkleTree.js +22 -0
  116. package/dist/trees/lmt/AbstractLinkedMerkleTree.js.map +1 -0
  117. package/dist/trees/lmt/InMemoryLinkedLeafStore.d.ts +21 -0
  118. package/dist/trees/lmt/InMemoryLinkedLeafStore.d.ts.map +1 -0
  119. package/dist/trees/lmt/InMemoryLinkedLeafStore.js +26 -0
  120. package/dist/trees/lmt/InMemoryLinkedLeafStore.js.map +1 -0
  121. package/dist/trees/lmt/InMemoryLinkedMerkleLeafStore.d.ts +7 -0
  122. package/dist/trees/lmt/InMemoryLinkedMerkleLeafStore.d.ts.map +1 -0
  123. package/dist/trees/lmt/InMemoryLinkedMerkleLeafStore.js +6 -0
  124. package/dist/trees/lmt/InMemoryLinkedMerkleLeafStore.js.map +1 -0
  125. package/dist/trees/lmt/LinkedLeafStore.d.ts +16 -0
  126. package/dist/trees/lmt/LinkedLeafStore.d.ts.map +1 -0
  127. package/dist/trees/lmt/LinkedLeafStore.js +2 -0
  128. package/dist/trees/lmt/LinkedLeafStore.js.map +1 -0
  129. package/dist/trees/lmt/LinkedLinkedStore.d.ts +16 -0
  130. package/dist/trees/lmt/LinkedLinkedStore.d.ts.map +1 -0
  131. package/dist/trees/lmt/LinkedLinkedStore.js +2 -0
  132. package/dist/trees/lmt/LinkedLinkedStore.js.map +1 -0
  133. package/dist/trees/lmt/LinkedMerkleTree.d.ts +11 -0
  134. package/dist/trees/lmt/LinkedMerkleTree.d.ts.map +1 -0
  135. package/dist/trees/lmt/LinkedMerkleTree.js +241 -0
  136. package/dist/trees/lmt/LinkedMerkleTree.js.map +1 -0
  137. package/dist/trees/lmt/LinkedMerkleTreeCircuitOps.d.ts +113 -0
  138. package/dist/trees/lmt/LinkedMerkleTreeCircuitOps.d.ts.map +1 -0
  139. package/dist/trees/lmt/LinkedMerkleTreeCircuitOps.js +113 -0
  140. package/dist/trees/lmt/LinkedMerkleTreeCircuitOps.js.map +1 -0
  141. package/dist/trees/lmt/LinkedMerkleTreeDatabase.d.ts +7 -0
  142. package/dist/trees/lmt/LinkedMerkleTreeDatabase.d.ts.map +1 -0
  143. package/dist/trees/lmt/LinkedMerkleTreeDatabase.js +2 -0
  144. package/dist/trees/lmt/LinkedMerkleTreeDatabase.js.map +1 -0
  145. package/dist/trees/lmt/LinkedMerkleTreeStore.d.ts +16 -0
  146. package/dist/trees/lmt/LinkedMerkleTreeStore.d.ts.map +1 -0
  147. package/dist/trees/lmt/LinkedMerkleTreeStore.js +2 -0
  148. package/dist/trees/lmt/LinkedMerkleTreeStore.js.map +1 -0
  149. package/dist/trees/lmt/LinkedMerkleTreeTypes.d.ts +74 -0
  150. package/dist/trees/lmt/LinkedMerkleTreeTypes.d.ts.map +1 -0
  151. package/dist/trees/lmt/LinkedMerkleTreeTypes.js +50 -0
  152. package/dist/trees/lmt/LinkedMerkleTreeTypes.js.map +1 -0
  153. package/dist/trees/sparse/InMemoryMerkleTreeStorage.d.ts +11 -0
  154. package/dist/trees/sparse/InMemoryMerkleTreeStorage.d.ts.map +1 -0
  155. package/dist/trees/sparse/InMemoryMerkleTreeStorage.js +13 -0
  156. package/dist/trees/sparse/InMemoryMerkleTreeStorage.js.map +1 -0
  157. package/dist/trees/sparse/MerkleTreeStore.d.ts +5 -0
  158. package/dist/trees/sparse/MerkleTreeStore.d.ts.map +1 -0
  159. package/dist/trees/sparse/MerkleTreeStore.js +2 -0
  160. package/dist/trees/sparse/MerkleTreeStore.js.map +1 -0
  161. package/dist/trees/sparse/MockAsyncMerkleStore.d.ts +9 -0
  162. package/dist/trees/sparse/MockAsyncMerkleStore.d.ts.map +1 -0
  163. package/dist/trees/sparse/MockAsyncMerkleStore.js +20 -0
  164. package/dist/trees/sparse/MockAsyncMerkleStore.js.map +1 -0
  165. package/dist/trees/sparse/RollupMerkleTree.d.ts +158 -0
  166. package/dist/trees/sparse/RollupMerkleTree.d.ts.map +1 -0
  167. package/dist/trees/sparse/RollupMerkleTree.js +330 -0
  168. package/dist/trees/sparse/RollupMerkleTree.js.map +1 -0
  169. package/dist/types.d.ts +62 -0
  170. package/dist/types.d.ts.map +1 -1
  171. package/dist/types.js +14 -1
  172. package/dist/types.js.map +1 -0
  173. package/dist/union/union.d.ts +177 -0
  174. package/dist/union/union.d.ts.map +1 -0
  175. package/dist/union/union.js +35 -0
  176. package/dist/union/union.js.map +1 -0
  177. package/dist/utils.d.ts +64 -1
  178. package/dist/utils.d.ts.map +1 -1
  179. package/dist/utils.js +165 -3
  180. package/dist/utils.js.map +1 -0
  181. package/dist/zkProgrammable/ProvableMethodExecutionContext.d.ts +4 -3
  182. package/dist/zkProgrammable/ProvableMethodExecutionContext.d.ts.map +1 -1
  183. package/dist/zkProgrammable/ProvableMethodExecutionContext.js +2 -3
  184. package/dist/zkProgrammable/ProvableMethodExecutionContext.js.map +1 -0
  185. package/dist/zkProgrammable/ZkProgrammable.d.ts +23 -9
  186. package/dist/zkProgrammable/ZkProgrammable.d.ts.map +1 -1
  187. package/dist/zkProgrammable/ZkProgrammable.js +34 -15
  188. package/dist/zkProgrammable/ZkProgrammable.js.map +1 -0
  189. package/dist/zkProgrammable/provableMethod.d.ts +8 -5
  190. package/dist/zkProgrammable/provableMethod.d.ts.map +1 -1
  191. package/dist/zkProgrammable/provableMethod.js +30 -15
  192. package/dist/zkProgrammable/provableMethod.js.map +1 -0
  193. package/jest.config.cjs +12 -1
  194. package/package.json +8 -7
  195. package/src/compiling/AtomicCompileHelper.ts +62 -0
  196. package/src/compiling/CompilableModule.ts +6 -0
  197. package/src/compiling/CompileRegistry.ts +74 -0
  198. package/src/compiling/services/ChildVerificationKeyService.ts +26 -0
  199. package/src/config/ChildContainerCreatable.ts +5 -0
  200. package/src/config/ChildContainerProvider.ts +5 -0
  201. package/src/config/ConfigurableModule.ts +15 -2
  202. package/src/config/ModuleContainer.ts +286 -58
  203. package/src/config/Startable.ts +3 -0
  204. package/src/config/injectAlias.ts +70 -0
  205. package/src/dependencyFactory/DependencyFactory.ts +34 -109
  206. package/src/dummyVerificationKey.ts +10 -0
  207. package/src/events/EventEmitter.ts +61 -0
  208. package/src/events/EventEmitterProxy.ts +81 -0
  209. package/src/events/EventEmittingComponent.ts +11 -0
  210. package/src/events/ReplayingSingleUseEventEmitter.ts +42 -0
  211. package/src/index.ts +23 -2
  212. package/src/log.ts +145 -0
  213. package/src/trees/lmt/AbstractLinkedMerkleTree.ts +102 -0
  214. package/src/trees/lmt/InMemoryLinkedLeafStore.ts +42 -0
  215. package/src/trees/lmt/LinkedLeafStore.ts +13 -0
  216. package/src/trees/lmt/LinkedMerkleTree.ts +335 -0
  217. package/src/trees/lmt/LinkedMerkleTreeCircuitOps.ts +188 -0
  218. package/src/trees/lmt/LinkedMerkleTreeTypes.ts +53 -0
  219. package/src/trees/sparse/InMemoryMerkleTreeStorage.ts +17 -0
  220. package/src/trees/sparse/MerkleTreeStore.ts +5 -0
  221. package/src/trees/sparse/MockAsyncMerkleStore.ts +30 -0
  222. package/src/trees/sparse/RollupMerkleTree.ts +512 -0
  223. package/src/types.ts +53 -2
  224. package/src/utils.ts +298 -3
  225. package/src/zkProgrammable/ProvableMethodExecutionContext.ts +6 -6
  226. package/src/zkProgrammable/ZkProgrammable.ts +72 -31
  227. package/src/zkProgrammable/provableMethod.ts +53 -24
  228. package/test/config/ContainerEvents.test.ts +65 -0
  229. package/test/config/ModuleContainer.test.ts +146 -15
  230. package/test/config/injectAlias.test.ts +28 -0
  231. package/test/trees/LinkedMerkleTree.test.ts +124 -0
  232. package/test/trees/LinkedMerkleTreeCircuitOps.test.ts +147 -0
  233. package/test/trees/MerkleTree.test.ts +251 -0
  234. package/test/tsconfig.json +5 -2
  235. package/test/zkProgrammable/ZkProgrammable.test.ts +145 -119
  236. package/tsconfig.json +1 -1
  237. package/LICENSE.md +0 -201
  238. package/tsconfig.test.json +0 -9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RollupMerkleTree.js","sourceRoot":"","sources":["../../../src/trees/sparse/RollupMerkleTree.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,4 +1,6 @@
1
+ import { DynamicProof, Proof, ProofBase, PublicKey, Option } from "o1js";
1
2
  export type TypedClass<Class> = new (...args: any[]) => Class;
3
+ export type UnTypedClass = new (...args: any[]) => unknown;
2
4
  /**
3
5
  * Using simple `keyof Target` would result into the key
4
6
  * being `string | number | symbol`, but we want just a `string`
@@ -8,4 +10,64 @@ export type StringKeyOf<Target extends object> = Extract<keyof Target, string> &
8
10
  * Utility type to infer element type from an array type
9
11
  */
10
12
  export type ArrayElement<ArrayType extends readonly unknown[]> = ArrayType extends readonly (infer ElementType)[] ? ElementType : never;
13
+ /**
14
+ * Transforms X | Y => X & Y
15
+ */
16
+ export type UnionToIntersection<Union> = (Union extends any ? (x: Union) => void : never) extends (x: infer Intersection) => void ? Intersection : never;
17
+ export type MergeObjects<Input extends Record<string, unknown>> = UnionToIntersection<Input[keyof Input]>;
18
+ export type OmitKeys<Record, Keys> = {
19
+ [Key in keyof Record as Key extends Keys ? never : Key]: Record[Key];
20
+ };
21
+ export declare const EMPTY_PUBLICKEY_X: import("o1js/dist/node/lib/provable/field").Field;
22
+ export declare const EMPTY_PUBLICKEY: PublicKey;
23
+ export type OverwriteObjectType<Base, New> = {
24
+ [Key in keyof Base]: Key extends keyof New ? New[Key] : Base[Key];
25
+ } & New;
26
+ export type InferProofBase<ProofType extends Proof<any, any> | DynamicProof<any, any>> = ProofType extends Proof<infer PI, infer PO> ? ProofBase<PI, PO> : ProofType extends DynamicProof<infer PI, infer PO> ? ProofBase<PI, PO> : undefined;
27
+ declare const O1PublicKeyOption_base: Omit<import("o1js/dist/node/lib/provable/types/provable-intf").Provable<Option<PublicKey, {
28
+ x: bigint;
29
+ isOdd: boolean;
30
+ }>, {
31
+ x: bigint;
32
+ isOdd: boolean;
33
+ } | undefined>, "fromFields"> & {
34
+ fromFields: (fields: import("o1js/dist/node/lib/provable/field").Field[]) => Option<PublicKey, {
35
+ x: bigint;
36
+ isOdd: boolean;
37
+ }>;
38
+ } & (new (option: {
39
+ isSome: import("o1js/dist/node/lib/provable/bool").Bool;
40
+ value: PublicKey;
41
+ }) => Option<PublicKey, {
42
+ x: bigint;
43
+ isOdd: boolean;
44
+ }>) & {
45
+ fromValue(value: PublicKey | {
46
+ x: bigint;
47
+ isOdd: boolean;
48
+ } | {
49
+ isSome: boolean | import("o1js/dist/node/lib/provable/bool").Bool;
50
+ value: PublicKey | {
51
+ x: bigint;
52
+ isOdd: boolean;
53
+ };
54
+ } | undefined): Option<PublicKey, {
55
+ x: bigint;
56
+ isOdd: boolean;
57
+ }>;
58
+ from(value?: PublicKey | {
59
+ x: bigint;
60
+ isOdd: boolean;
61
+ } | undefined): Option<PublicKey, {
62
+ x: bigint;
63
+ isOdd: boolean;
64
+ }>;
65
+ none(): Option<PublicKey, {
66
+ x: bigint;
67
+ isOdd: boolean;
68
+ }>;
69
+ };
70
+ export declare class O1PublicKeyOption extends O1PublicKeyOption_base {
71
+ }
72
+ export {};
11
73
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,UAAU,CAAC,KAAK,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,KAAK,CAAC;AAE9D;;;GAGG;AACH,MAAM,MAAM,WAAW,CAAC,MAAM,SAAS,MAAM,IAAI,OAAO,CAAC,MAAM,MAAM,EAAE,MAAM,CAAC,GAC5E,MAAM,CAAC;AAGT;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,SAAS,SAAS,SAAS,OAAO,EAAE,IAE3D,SAAS,SAAS,SAAS,CAAC,MAAM,WAAW,CAAC,EAAE,GAAG,WAAW,GAAG,KAAK,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,YAAY,EAEZ,KAAK,EACL,SAAS,EACT,SAAS,EACT,MAAM,EACP,MAAM,MAAM,CAAC;AAEd,MAAM,MAAM,UAAU,CAAC,KAAK,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,KAAK,CAAC;AAE9D,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC;AAE3D;;;GAGG;AACH,MAAM,MAAM,WAAW,CAAC,MAAM,SAAS,MAAM,IAAI,OAAO,CAAC,MAAM,MAAM,EAAE,MAAM,CAAC,GAC5E,MAAM,CAAC;AAET;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,SAAS,SAAS,SAAS,OAAO,EAAE,IAC3D,SAAS,SAAS,SAAS,CAAC,MAAM,WAAW,CAAC,EAAE,GAAG,WAAW,GAAG,KAAK,CAAC;AAEzE;;GAEG;AACH,MAAM,MAAM,mBAAmB,CAAC,KAAK,IAAI,CACvC,KAAK,SAAS,GAAG,GAAG,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,GAAG,KAAK,CAC/C,SAAS,CAAC,CAAC,EAAE,MAAM,YAAY,KAAK,IAAI,GACrC,YAAY,GACZ,KAAK,CAAC;AAEV,MAAM,MAAM,YAAY,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAC5D,mBAAmB,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;AAE1C,MAAM,MAAM,QAAQ,CAAC,MAAM,EAAE,IAAI,IAAI;KAClC,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,SAAS,IAAI,GAAG,KAAK,GAAG,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;CACrE,CAAC;AAMF,eAAO,MAAM,iBAAiB,mDAAc,CAAC;AAC7C,eAAO,MAAM,eAAe,WAG1B,CAAC;AAEH,MAAM,MAAM,mBAAmB,CAAC,IAAI,EAAE,GAAG,IAAI;KAC1C,GAAG,IAAI,MAAM,IAAI,GAAG,GAAG,SAAS,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;CAClE,GAAG,GAAG,CAAC;AAER,MAAM,MAAM,cAAc,CACxB,SAAS,SAAS,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,IAE1D,SAAS,SAAS,KAAK,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,GACvC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,GACjB,SAAS,SAAS,YAAY,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,GAChD,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,GACjB,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAElB,qBAAa,iBAAkB,SAAQ,sBAAiB;CAAG"}
package/dist/types.js CHANGED
@@ -1 +1,14 @@
1
- export {};
1
+ // allows to reference interfaces as 'classes' rather than instances
2
+ import { Bool, Field, PublicKey, Option, } from "o1js";
3
+ // Because Publickey.empty() is not usable in combination with real
4
+ // cryptographic operations because it's group evaluation isn't defined in Fp,
5
+ // we use some other arbitrary point which we treat as "empty" in our circuits
6
+ // other arbitrary point
7
+ export const EMPTY_PUBLICKEY_X = Field(4600);
8
+ export const EMPTY_PUBLICKEY = PublicKey.fromObject({
9
+ x: EMPTY_PUBLICKEY_X,
10
+ isOdd: Bool(true),
11
+ });
12
+ export class O1PublicKeyOption extends Option(PublicKey) {
13
+ }
14
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,OAAO,EACL,IAAI,EAEJ,KAAK,EAGL,SAAS,EACT,MAAM,GACP,MAAM,MAAM,CAAC;AAmCd,mEAAmE;AACnE,+EAA+E;AAC/E,8EAA8E;AAC9E,wBAAwB;AACxB,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;AAC7C,MAAM,CAAC,MAAM,eAAe,GAAG,SAAS,CAAC,UAAU,CAAC;IAClD,CAAC,EAAE,iBAAiB;IACpB,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC;CAClB,CAAC,CAAC;AAeH,MAAM,OAAO,iBAAkB,SAAQ,MAAM,CAAC,SAAS,CAAC;CAAG"}
@@ -0,0 +1,177 @@
1
+ import { Provable, InferProvable } from "o1js";
2
+ export declare function createQualifiedUnion<T extends (Provable<any> & {
3
+ name: string;
4
+ })[]>(provables: T): {
5
+ new (value: {
6
+ array: import("o1js/dist/node/lib/provable/field").Field[];
7
+ type: import("o1js/dist/node/lib/provable/field").Field;
8
+ }): {
9
+ into<Type extends T[number]>(provable: Type): InferProvable<Type>;
10
+ array: import("o1js/dist/node/lib/provable/field").Field[];
11
+ type: import("o1js/dist/node/lib/provable/field").Field;
12
+ };
13
+ from<Type_1 extends T[number]>(provable: Type_1, value: InferProvable<Type_1>): {
14
+ into<Type extends T[number]>(provable: Type): InferProvable<Type>;
15
+ array: import("o1js/dist/node/lib/provable/field").Field[];
16
+ type: import("o1js/dist/node/lib/provable/field").Field;
17
+ };
18
+ _isStruct: true;
19
+ toFields: (value: {
20
+ array: import("o1js/dist/node/lib/provable/field").Field[];
21
+ type: import("o1js/dist/node/lib/provable/field").Field;
22
+ }) => import("o1js/dist/node/lib/provable/field").Field[];
23
+ toAuxiliary: (value?: {
24
+ array: import("o1js/dist/node/lib/provable/field").Field[];
25
+ type: import("o1js/dist/node/lib/provable/field").Field;
26
+ } | undefined) => any[];
27
+ sizeInFields: () => number;
28
+ check: (value: {
29
+ array: import("o1js/dist/node/lib/provable/field").Field[];
30
+ type: import("o1js/dist/node/lib/provable/field").Field;
31
+ }) => void;
32
+ toValue: (x: {
33
+ array: import("o1js/dist/node/lib/provable/field").Field[];
34
+ type: import("o1js/dist/node/lib/provable/field").Field;
35
+ }) => {
36
+ array: bigint[];
37
+ type: bigint;
38
+ };
39
+ fromValue: ((x: {
40
+ array: import("o1js/dist/node/lib/provable/field").Field[];
41
+ type: import("o1js/dist/node/lib/provable/field").Field;
42
+ } | {
43
+ array: bigint[];
44
+ type: bigint;
45
+ }) => {
46
+ array: import("o1js/dist/node/lib/provable/field").Field[];
47
+ type: import("o1js/dist/node/lib/provable/field").Field;
48
+ }) & ((value: {
49
+ array: import("o1js/dist/node/lib/provable/field").Field[] | bigint[];
50
+ type: string | number | bigint | import("o1js/dist/node/lib/provable/field").Field;
51
+ }) => {
52
+ array: import("o1js/dist/node/lib/provable/field").Field[];
53
+ type: import("o1js/dist/node/lib/provable/field").Field;
54
+ });
55
+ toCanonical?: ((x: {
56
+ array: import("o1js/dist/node/lib/provable/field").Field[];
57
+ type: import("o1js/dist/node/lib/provable/field").Field;
58
+ }) => {
59
+ array: import("o1js/dist/node/lib/provable/field").Field[];
60
+ type: import("o1js/dist/node/lib/provable/field").Field;
61
+ }) | undefined;
62
+ fromFields: (fields: import("o1js/dist/node/lib/provable/field").Field[]) => {
63
+ array: import("o1js/dist/node/lib/provable/field").Field[];
64
+ type: import("o1js/dist/node/lib/provable/field").Field;
65
+ };
66
+ toInput: (x: {
67
+ array: import("o1js/dist/node/lib/provable/field").Field[];
68
+ type: import("o1js/dist/node/lib/provable/field").Field;
69
+ }) => {
70
+ fields?: import("o1js/dist/node/lib/provable/field").Field[] | undefined;
71
+ packed?: [import("o1js/dist/node/lib/provable/field").Field, number][] | undefined;
72
+ };
73
+ toJSON: (x: {
74
+ array: import("o1js/dist/node/lib/provable/field").Field[];
75
+ type: import("o1js/dist/node/lib/provable/field").Field;
76
+ }) => {
77
+ array: string[];
78
+ type: string;
79
+ };
80
+ fromJSON: (x: {
81
+ array: string[];
82
+ type: string;
83
+ }) => {
84
+ array: import("o1js/dist/node/lib/provable/field").Field[];
85
+ type: import("o1js/dist/node/lib/provable/field").Field;
86
+ };
87
+ empty: () => {
88
+ array: import("o1js/dist/node/lib/provable/field").Field[];
89
+ type: import("o1js/dist/node/lib/provable/field").Field;
90
+ };
91
+ };
92
+ export type QualifiedUnionType<T extends (Provable<any> & {
93
+ name: string;
94
+ })[]> = ReturnType<typeof createQualifiedUnion<T>>;
95
+ export declare function createUnknownLengthUnion(length: number): {
96
+ new (value: {
97
+ array: import("o1js/dist/node/lib/provable/field").Field[];
98
+ type: import("o1js/dist/node/lib/provable/field").Field;
99
+ }): {
100
+ array: import("o1js/dist/node/lib/provable/field").Field[];
101
+ type: import("o1js/dist/node/lib/provable/field").Field;
102
+ };
103
+ _isStruct: true;
104
+ toFields: (value: {
105
+ array: import("o1js/dist/node/lib/provable/field").Field[];
106
+ type: import("o1js/dist/node/lib/provable/field").Field;
107
+ }) => import("o1js/dist/node/lib/provable/field").Field[];
108
+ toAuxiliary: (value?: {
109
+ array: import("o1js/dist/node/lib/provable/field").Field[];
110
+ type: import("o1js/dist/node/lib/provable/field").Field;
111
+ } | undefined) => any[];
112
+ sizeInFields: () => number;
113
+ check: (value: {
114
+ array: import("o1js/dist/node/lib/provable/field").Field[];
115
+ type: import("o1js/dist/node/lib/provable/field").Field;
116
+ }) => void;
117
+ toValue: (x: {
118
+ array: import("o1js/dist/node/lib/provable/field").Field[];
119
+ type: import("o1js/dist/node/lib/provable/field").Field;
120
+ }) => {
121
+ array: bigint[];
122
+ type: bigint;
123
+ };
124
+ fromValue: ((x: {
125
+ array: import("o1js/dist/node/lib/provable/field").Field[];
126
+ type: import("o1js/dist/node/lib/provable/field").Field;
127
+ } | {
128
+ array: bigint[];
129
+ type: bigint;
130
+ }) => {
131
+ array: import("o1js/dist/node/lib/provable/field").Field[];
132
+ type: import("o1js/dist/node/lib/provable/field").Field;
133
+ }) & ((value: {
134
+ array: import("o1js/dist/node/lib/provable/field").Field[] | bigint[];
135
+ type: string | number | bigint | import("o1js/dist/node/lib/provable/field").Field;
136
+ }) => {
137
+ array: import("o1js/dist/node/lib/provable/field").Field[];
138
+ type: import("o1js/dist/node/lib/provable/field").Field;
139
+ });
140
+ toCanonical?: ((x: {
141
+ array: import("o1js/dist/node/lib/provable/field").Field[];
142
+ type: import("o1js/dist/node/lib/provable/field").Field;
143
+ }) => {
144
+ array: import("o1js/dist/node/lib/provable/field").Field[];
145
+ type: import("o1js/dist/node/lib/provable/field").Field;
146
+ }) | undefined;
147
+ fromFields: (fields: import("o1js/dist/node/lib/provable/field").Field[]) => {
148
+ array: import("o1js/dist/node/lib/provable/field").Field[];
149
+ type: import("o1js/dist/node/lib/provable/field").Field;
150
+ };
151
+ toInput: (x: {
152
+ array: import("o1js/dist/node/lib/provable/field").Field[];
153
+ type: import("o1js/dist/node/lib/provable/field").Field;
154
+ }) => {
155
+ fields?: import("o1js/dist/node/lib/provable/field").Field[] | undefined;
156
+ packed?: [import("o1js/dist/node/lib/provable/field").Field, number][] | undefined;
157
+ };
158
+ toJSON: (x: {
159
+ array: import("o1js/dist/node/lib/provable/field").Field[];
160
+ type: import("o1js/dist/node/lib/provable/field").Field;
161
+ }) => {
162
+ array: string[];
163
+ type: string;
164
+ };
165
+ fromJSON: (x: {
166
+ array: string[];
167
+ type: string;
168
+ }) => {
169
+ array: import("o1js/dist/node/lib/provable/field").Field[];
170
+ type: import("o1js/dist/node/lib/provable/field").Field;
171
+ };
172
+ empty: () => {
173
+ array: import("o1js/dist/node/lib/provable/field").Field[];
174
+ type: import("o1js/dist/node/lib/provable/field").Field;
175
+ };
176
+ };
177
+ //# sourceMappingURL=union.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"union.d.ts","sourceRoot":"","sources":["../../src/union/union.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAiB,aAAa,EAAiB,MAAM,MAAM,CAAC;AAI7E,wBAAgB,oBAAoB,CAClC,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAAE,EAC9C,SAAS,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsCb;AAED,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAAE,IAC3E,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;AAE7C,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKtD"}
@@ -0,0 +1,35 @@
1
+ import { Provable, Struct, Field } from "o1js";
2
+ import { padArray } from "../utils";
3
+ export function createQualifiedUnion(provables) {
4
+ const maxLength = Math.max(...provables.map((provable) => provable.sizeInFields()));
5
+ const typeMap = Object.fromEntries(provables.map(({ name }, index) => [name, index]));
6
+ class ProvableUnion extends Struct({
7
+ array: Provable.Array(Field, maxLength),
8
+ type: Field,
9
+ }) {
10
+ static from(provable, value) {
11
+ const fields = provable.toFields(value);
12
+ const fullFields = padArray(fields, maxLength, () => Field(0));
13
+ return new ProvableUnion({
14
+ array: fullFields,
15
+ type: Field(typeMap[provable.name]),
16
+ });
17
+ }
18
+ into(provable) {
19
+ const size = provable.sizeInFields();
20
+ const fields = this.array.slice(0, size);
21
+ this.array.slice(size).forEach((field) => field.assertEquals(0));
22
+ this.type.assertEquals(typeMap[provable.name]);
23
+ return provable.fromFields(fields, []);
24
+ }
25
+ }
26
+ return ProvableUnion;
27
+ }
28
+ export function createUnknownLengthUnion(length) {
29
+ return class UnknownLengthUnion extends Struct({
30
+ array: Provable.Array(Field, length),
31
+ type: Field,
32
+ }) {
33
+ };
34
+ }
35
+ //# sourceMappingURL=union.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"union.js","sourceRoot":"","sources":["../../src/union/union.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAgC,MAAM,MAAM,CAAC;AAE7E,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,MAAM,UAAU,oBAAoB,CAElC,SAAY;IACZ,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CACxB,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,CACxD,CAAC;IAEF,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAChC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAClD,CAAC;IAEF,MAAM,aAAc,SAAQ,MAAM,CAAC;QACjC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC;QACvC,IAAI,EAAE,KAAK;KACZ,CAAC;QACO,MAAM,CAAC,IAAI,CAChB,QAAc,EACd,KAA0B;YAE1B,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACxC,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/D,OAAO,IAAI,aAAa,CAAC;gBACvB,KAAK,EAAE,UAAU;gBACjB,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aACpC,CAAC,CAAC;QACL,CAAC;QAEM,IAAI,CAAyB,QAAc;YAChD,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAEzC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YAEjE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YAE/C,OAAO,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACzC,CAAC;KACF;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAKD,MAAM,UAAU,wBAAwB,CAAC,MAAc;IACrD,OAAO,MAAM,kBAAmB,SAAQ,MAAM,CAAC;QAC7C,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC;QACpC,IAAI,EAAE,KAAK;KACZ,CAAC;KAAG,CAAC;AACR,CAAC"}
package/dist/utils.d.ts CHANGED
@@ -1,3 +1,66 @@
1
+ import { Field, FlexibleProvablePure, DynamicProof, Proof } from "o1js";
2
+ import { TypedClass } from "./types";
1
3
  export declare function requireTrue(condition: boolean, errorOrFunction: Error | (() => Error)): void;
2
- export declare function range(startOrEnd: number, end: number | undefined): number[];
4
+ /**
5
+ * Utility function to split an array of type T into a record <K, T[]> based on a
6
+ * function T => K that determines the key of each record
7
+ */
8
+ export declare function splitArray<T, K extends string | number>(arr: T[], split: (t: T) => K): Record<K, T[] | undefined>;
9
+ export declare function range(startOrEnd: number, endOrNothing?: number | undefined): number[];
10
+ export declare function reduceSequential<T, U>(array: T[], callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => Promise<U>, initialValue: U): Promise<U>;
11
+ export declare function yieldSequential<Source, State, Target>(array: Source[], callbackfn: (previousValue: State, currentValue: Source, currentIndex: number, array: Source[]) => Promise<[State, Target]>, initialValue: State): Promise<[State, Target[]]>;
12
+ export declare function mapSequential<T, R>(array: T[], f: (element: T, index: number, array: T[]) => Promise<R>): Promise<R[]>;
13
+ export declare function unzip<A, B>(array: [A, B][]): [A[], B[]];
14
+ export declare function assertSizeOneOrTwo<T>(arr: T[]): asserts arr is [T] | [T, T];
15
+ /**
16
+ * Computes a dummy value for the given value type.
17
+ *
18
+ * @param valueType - Value type to generate the dummy value for
19
+ * @returns Dummy value for the given value type
20
+ */
21
+ export declare function dummyValue<Value>(valueType: FlexibleProvablePure<Value>): Value;
22
+ export declare function noop(): void;
23
+ export interface ToFieldable {
24
+ toFields: () => Field[];
25
+ }
26
+ export interface ToFieldableStatic {
27
+ toFields: (value: unknown) => Field[];
28
+ }
29
+ export interface ToJSONableStatic {
30
+ toJSON: (value: unknown) => any;
31
+ }
32
+ export type ProofTypes = typeof Proof<unknown, unknown> | typeof DynamicProof<unknown, unknown>;
33
+ export declare function sleep(ms: number): Promise<void>;
34
+ export declare function filterNonNull<Type>(value: Type | null): value is Type;
35
+ export declare function filterNonUndefined<Type>(value: Type | undefined): value is Type;
36
+ export declare function prefixToField(prefix: string): Field;
37
+ export declare function hashWithPrefix(prefix: string, input: Field[]): import("o1js/dist/node/lib/provable/field").Field;
38
+ export declare function expectDefined<T>(value: T | undefined): asserts value is T;
39
+ type NonMethodKeys<Type> = {
40
+ [Key in keyof Type]: Type[Key] extends Function ? never : Key;
41
+ }[keyof Type];
42
+ export type NonMethods<Type> = Pick<Type, NonMethodKeys<Type>>;
43
+ export declare const MAX_FIELD: import("o1js/dist/node/lib/provable/field").Field;
44
+ /**
45
+ * Returns a boolean indicating whether a given class is a subclass of another class,
46
+ * indicated by the name parameter.
47
+ */
48
+ export declare function isSubtypeOfName(clas: TypedClass<unknown>, name: string): boolean;
49
+ export declare function safeParseJson<T>(json: string): T;
50
+ export type Nullable<T> = {
51
+ [Key in keyof T]: T[Key] | undefined;
52
+ };
53
+ export declare function isFull<T>(t: Nullable<T>): t is T;
54
+ export declare function padArray<T>(array: T[], batchSize: number, generator: (index: number) => T): T[];
55
+ export declare function batch<T>(arr: T[], batchSize: number, dummy: (index: number) => T): T[][];
56
+ export type Reference<T> = {
57
+ set value(value: T);
58
+ get value(): T;
59
+ };
60
+ export declare function createReference<T>(initial: T): Reference<T>;
61
+ export declare namespace BigIntMath {
62
+ function max(...args: bigint[]): bigint;
63
+ }
64
+ export declare function assertDefined<T>(t: T | undefined, msg?: string): asserts t is T;
65
+ export {};
3
66
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,CACzB,SAAS,EAAE,OAAO,EAClB,eAAe,EAAE,KAAK,GAAG,CAAC,MAAM,KAAK,CAAC,GACrC,IAAI,CAMN;AAED,wBAAgB,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAM3E"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/dist/utils.js CHANGED
@@ -1,3 +1,5 @@
1
+ import { Field, Poseidon, } from "o1js";
2
+ import _ from "lodash";
1
3
  export function requireTrue(condition, errorOrFunction) {
2
4
  if (!condition) {
3
5
  throw typeof errorOrFunction === "function"
@@ -5,10 +7,170 @@ export function requireTrue(condition, errorOrFunction) {
5
7
  : errorOrFunction;
6
8
  }
7
9
  }
8
- export function range(startOrEnd, end) {
10
+ /**
11
+ * Utility function to split an array of type T into a record <K, T[]> based on a
12
+ * function T => K that determines the key of each record
13
+ */
14
+ export function splitArray(arr, split) {
15
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
16
+ const record = {};
17
+ arr.forEach((element) => {
18
+ const k = split(element);
19
+ if (record[k] !== undefined) {
20
+ record[k].push(element);
21
+ }
22
+ else {
23
+ record[k] = [element];
24
+ }
25
+ });
26
+ return record;
27
+ }
28
+ export function range(startOrEnd, endOrNothing) {
29
+ let end = endOrNothing;
30
+ let start = startOrEnd;
9
31
  if (end === undefined) {
10
32
  end = startOrEnd;
11
- startOrEnd = 0;
33
+ start = 0;
34
+ }
35
+ return Array.from({ length: end - start }, (ignored, index) => index + start);
36
+ }
37
+ export function reduceSequential(array, callbackfn, initialValue) {
38
+ return array.reduce(async (previousPromise, current, index, arr) => {
39
+ const previous = await previousPromise;
40
+ return await callbackfn(previous, current, index, arr);
41
+ }, Promise.resolve(initialValue));
42
+ }
43
+ export function yieldSequential(array, callbackfn, initialValue) {
44
+ return reduceSequential(array, async ([state, collectedTargets], curr, index, arr) => {
45
+ const [newState, addition] = await callbackfn(state, curr, index, arr);
46
+ // The reason we wrap this in an array here is for a special case where Target is a tuple
47
+ // or array itself. In this case, js interprets by flattening the Value in the array
48
+ // (which it does when a function (like concat) uses a spread operator and the
49
+ // input is an array)
50
+ return [newState, collectedTargets.concat([addition])];
51
+ }, [initialValue, []]);
52
+ }
53
+ export function mapSequential(array, f) {
54
+ return array.reduce(async (r, element, index, a) => {
55
+ const ret = await r;
56
+ const next = await f(element, index, a);
57
+ ret.push(next);
58
+ return ret;
59
+ }, Promise.resolve([]));
60
+ }
61
+ export function unzip(array) {
62
+ const as = array.map(([a]) => a);
63
+ const bs = array.map(([, b]) => b);
64
+ return [as, bs];
65
+ }
66
+ export function assertSizeOneOrTwo(arr) {
67
+ if (!(arr.length === 1 || arr.length === 2)) {
68
+ throw new Error("Given array not size 1 or 2");
69
+ }
70
+ }
71
+ /**
72
+ * Computes a dummy value for the given value type.
73
+ *
74
+ * @param valueType - Value type to generate the dummy value for
75
+ * @returns Dummy value for the given value type
76
+ */
77
+ export function dummyValue(valueType) {
78
+ const length = valueType.sizeInFields();
79
+ const fields = Array.from({ length }, () => Field(0));
80
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
81
+ return valueType.fromFields(fields);
82
+ }
83
+ export function noop() { }
84
+ export async function sleep(ms) {
85
+ await new Promise((resolve) => {
86
+ setTimeout(resolve, ms);
87
+ });
88
+ }
89
+ export function filterNonNull(value) {
90
+ return value !== null;
91
+ }
92
+ export function filterNonUndefined(value) {
93
+ return value !== undefined;
94
+ }
95
+ const encoder = new TextEncoder();
96
+ // Copied from o1js binable.ts:317
97
+ export function prefixToField(prefix) {
98
+ const fieldSize = Field.sizeInBytes;
99
+ if (prefix.length >= fieldSize)
100
+ throw Error("prefix too long");
101
+ const stringBytes = [...encoder.encode(prefix)];
102
+ return Field.fromBytes(stringBytes.concat(Array(fieldSize - stringBytes.length).fill(0)));
103
+ }
104
+ export function hashWithPrefix(prefix, input) {
105
+ const salt = Poseidon.update([Field(0), Field(0), Field(0)], [prefixToField(prefix)]);
106
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
107
+ return Poseidon.update(salt, input)[0];
108
+ }
109
+ // end copy
110
+ export function expectDefined(value) {
111
+ expect(value).toBeDefined();
112
+ }
113
+ export const MAX_FIELD = Field(Field.ORDER - 1n);
114
+ /**
115
+ * Returns a boolean indicating whether a given class is a subclass of another class,
116
+ * indicated by the name parameter.
117
+ */
118
+ // TODO Change to class reference based comparisons
119
+ export function isSubtypeOfName(clas, name) {
120
+ if (clas === undefined || clas === null) {
121
+ return false;
122
+ }
123
+ if (clas.name === name) {
124
+ return true;
125
+ }
126
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
127
+ return isSubtypeOfName(Object.getPrototypeOf(clas), name);
128
+ }
129
+ // TODO Eventually, replace this by a schema validation library
130
+ export function safeParseJson(json) {
131
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
132
+ return JSON.parse(json);
133
+ }
134
+ export function isFull(t) {
135
+ return Object.values(t).findIndex((v) => v === undefined) === -1;
136
+ }
137
+ // TODO Restructure utils into separate package and multiple files
138
+ export function padArray(array, batchSize, generator) {
139
+ const slice = array.slice();
140
+ const dummies = range(0, batchSize - (array.length % batchSize)).map((i) => generator(i + array.length));
141
+ slice.push(...dummies);
142
+ return slice;
143
+ }
144
+ export function batch(arr, batchSize, dummy) {
145
+ const padded = padArray(arr, batchSize, dummy);
146
+ const partitioned = _.groupBy(padded.map((v, i) => [v, i]), ([v, i]) => Math.floor(i / batchSize));
147
+ const numBatches = Math.ceil(arr.length / batchSize);
148
+ return range(0, numBatches).map((i) => partitioned[i].map((x) => x[0]));
149
+ }
150
+ class ReferenceObject {
151
+ constructor(internalValue) {
152
+ this.internalValue = internalValue;
153
+ }
154
+ get value() {
155
+ return this.internalValue;
156
+ }
157
+ set value(t) {
158
+ this.internalValue = t;
159
+ }
160
+ }
161
+ export function createReference(initial) {
162
+ return new ReferenceObject(initial);
163
+ }
164
+ export var BigIntMath;
165
+ (function (BigIntMath) {
166
+ function max(...args) {
167
+ return args.reduce((m, e) => (e > m ? e : m));
168
+ }
169
+ BigIntMath.max = max;
170
+ })(BigIntMath || (BigIntMath = {}));
171
+ export function assertDefined(t, msg) {
172
+ if (t === undefined) {
173
+ throw new Error(msg ?? "Value is undefined");
12
174
  }
13
- return Array.from({ length: end - startOrEnd }, (ignored, index) => index);
14
175
  }
176
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
- import type { FlexibleProvable, Proof } from "snarkyjs";
1
+ import type { Proof } from "o1js";
2
+ import type { ArgumentTypes } from "./provableMethod";
2
3
  export declare class ProvableMethodExecutionResult {
3
4
  moduleName?: string;
4
5
  methodName?: string;
5
- args?: FlexibleProvable<unknown>[];
6
+ args?: ArgumentTypes;
6
7
  prover?: () => Promise<Proof<unknown, unknown>>;
7
8
  prove<ProofType extends Proof<unknown, unknown>>(): Promise<ProofType>;
8
9
  }
@@ -29,7 +30,7 @@ export declare class ProvableMethodExecutionContext {
29
30
  *
30
31
  * @param methodName - Name of the method being captured in the context
31
32
  */
32
- beforeMethod(moduleName: string, methodName: string, args: FlexibleProvable<unknown>[]): void;
33
+ beforeMethod(moduleName: string, methodName: string, args: ArgumentTypes): void;
33
34
  /**
34
35
  * Removes the latest method from the execution context stack,
35
36
  * keeping track of the amount of 'unfinished' methods. Allowing