@0xpolygonid/js-sdk 1.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (469) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +40 -0
  3. package/dist/cjs/auth/auth.js +179 -0
  4. package/dist/cjs/auth/auth.js.map +1 -0
  5. package/dist/cjs/auth/index.js +18 -0
  6. package/dist/cjs/auth/index.js.map +1 -0
  7. package/dist/cjs/circuits/atomic-query-mtp-v2.js +181 -0
  8. package/dist/cjs/circuits/atomic-query-mtp-v2.js.map +1 -0
  9. package/dist/cjs/circuits/atomic-query-sig-v2.js +219 -0
  10. package/dist/cjs/circuits/atomic-query-sig-v2.js.map +1 -0
  11. package/dist/cjs/circuits/auth-v2.js +99 -0
  12. package/dist/cjs/circuits/auth-v2.js.map +1 -0
  13. package/dist/cjs/circuits/common.js +193 -0
  14. package/dist/cjs/circuits/common.js.map +1 -0
  15. package/dist/cjs/circuits/comparer.js +132 -0
  16. package/dist/cjs/circuits/comparer.js.map +1 -0
  17. package/dist/cjs/circuits/index.js +24 -0
  18. package/dist/cjs/circuits/index.js.map +1 -0
  19. package/dist/cjs/circuits/models.js +110 -0
  20. package/dist/cjs/circuits/models.js.map +1 -0
  21. package/dist/cjs/circuits/state-transition.js +94 -0
  22. package/dist/cjs/circuits/state-transition.js.map +1 -0
  23. package/dist/cjs/credentials/credential-wallet.js +264 -0
  24. package/dist/cjs/credentials/credential-wallet.js.map +1 -0
  25. package/dist/cjs/credentials/index.js +18 -0
  26. package/dist/cjs/credentials/index.js.map +1 -0
  27. package/dist/cjs/credentials/revocation.js +290 -0
  28. package/dist/cjs/credentials/revocation.js.map +1 -0
  29. package/dist/cjs/iden3comm/constants.js +45 -0
  30. package/dist/cjs/iden3comm/constants.js.map +1 -0
  31. package/dist/cjs/iden3comm/errors.js +15 -0
  32. package/dist/cjs/iden3comm/errors.js.map +1 -0
  33. package/dist/cjs/iden3comm/index.js +35 -0
  34. package/dist/cjs/iden3comm/index.js.map +1 -0
  35. package/dist/cjs/iden3comm/packageManager.js +78 -0
  36. package/dist/cjs/iden3comm/packageManager.js.map +1 -0
  37. package/dist/cjs/iden3comm/packers/index.js +19 -0
  38. package/dist/cjs/iden3comm/packers/index.js.map +1 -0
  39. package/dist/cjs/iden3comm/packers/plain.js +49 -0
  40. package/dist/cjs/iden3comm/packers/plain.js.map +1 -0
  41. package/dist/cjs/iden3comm/packers/zkp.js +155 -0
  42. package/dist/cjs/iden3comm/packers/zkp.js.map +1 -0
  43. package/dist/cjs/iden3comm/types/index.js +24 -0
  44. package/dist/cjs/iden3comm/types/index.js.map +1 -0
  45. package/dist/cjs/iden3comm/types/packageManager.js +3 -0
  46. package/dist/cjs/iden3comm/types/packageManager.js.map +1 -0
  47. package/dist/cjs/iden3comm/types/packer.js +3 -0
  48. package/dist/cjs/iden3comm/types/packer.js.map +1 -0
  49. package/dist/cjs/iden3comm/types/protocol/auth.js +3 -0
  50. package/dist/cjs/iden3comm/types/protocol/auth.js.map +1 -0
  51. package/dist/cjs/iden3comm/types/protocol/credentials.js +3 -0
  52. package/dist/cjs/iden3comm/types/protocol/credentials.js.map +1 -0
  53. package/dist/cjs/iden3comm/types/protocol/messages.js +3 -0
  54. package/dist/cjs/iden3comm/types/protocol/messages.js.map +1 -0
  55. package/dist/cjs/iden3comm/types/protocol/proof.js +3 -0
  56. package/dist/cjs/iden3comm/types/protocol/proof.js.map +1 -0
  57. package/dist/cjs/iden3comm/types/protocol/revocation.js +3 -0
  58. package/dist/cjs/iden3comm/types/protocol/revocation.js.map +1 -0
  59. package/dist/cjs/iden3comm/utils/bytes.js +20 -0
  60. package/dist/cjs/iden3comm/utils/bytes.js.map +1 -0
  61. package/dist/cjs/iden3comm/utils/envelope.js +99 -0
  62. package/dist/cjs/iden3comm/utils/envelope.js.map +1 -0
  63. package/dist/cjs/iden3comm/utils/index.js +6 -0
  64. package/dist/cjs/iden3comm/utils/index.js.map +1 -0
  65. package/dist/cjs/iden3comm/utils/message.js +43 -0
  66. package/dist/cjs/iden3comm/utils/message.js.map +1 -0
  67. package/dist/cjs/identity/common.js +40 -0
  68. package/dist/cjs/identity/common.js.map +1 -0
  69. package/dist/cjs/identity/identity-wallet.js +422 -0
  70. package/dist/cjs/identity/identity-wallet.js.map +1 -0
  71. package/dist/cjs/identity/index.js +19 -0
  72. package/dist/cjs/identity/index.js.map +1 -0
  73. package/dist/cjs/index.js +42 -0
  74. package/dist/cjs/index.js.map +1 -0
  75. package/dist/cjs/kms/bjj-provider.js +101 -0
  76. package/dist/cjs/kms/bjj-provider.js.map +1 -0
  77. package/dist/cjs/kms/index.js +20 -0
  78. package/dist/cjs/kms/index.js.map +1 -0
  79. package/dist/cjs/kms/kms.js +74 -0
  80. package/dist/cjs/kms/kms.js.map +1 -0
  81. package/dist/cjs/kms/provider-helpers.js +49 -0
  82. package/dist/cjs/kms/provider-helpers.js.map +1 -0
  83. package/dist/cjs/kms/store/abstract-key-store.js +15 -0
  84. package/dist/cjs/kms/store/abstract-key-store.js.map +1 -0
  85. package/dist/cjs/kms/store/index.js +21 -0
  86. package/dist/cjs/kms/store/index.js.map +1 -0
  87. package/dist/cjs/kms/store/local-storage-key-store.js +56 -0
  88. package/dist/cjs/kms/store/local-storage-key-store.js.map +1 -0
  89. package/dist/cjs/kms/store/memory-key-store.js +28 -0
  90. package/dist/cjs/kms/store/memory-key-store.js.map +1 -0
  91. package/dist/cjs/kms/store/types.js +15 -0
  92. package/dist/cjs/kms/store/types.js.map +1 -0
  93. package/dist/cjs/loaders/index.js +19 -0
  94. package/dist/cjs/loaders/index.js.map +1 -0
  95. package/dist/cjs/loaders/key.js +50 -0
  96. package/dist/cjs/loaders/key.js.map +1 -0
  97. package/dist/cjs/loaders/schema.js +110 -0
  98. package/dist/cjs/loaders/schema.js.map +1 -0
  99. package/dist/cjs/proof/common.js +64 -0
  100. package/dist/cjs/proof/common.js.map +1 -0
  101. package/dist/cjs/proof/index.js +20 -0
  102. package/dist/cjs/proof/index.js.map +1 -0
  103. package/dist/cjs/proof/proof-service.js +344 -0
  104. package/dist/cjs/proof/proof-service.js.map +1 -0
  105. package/dist/cjs/proof/prover.js +79 -0
  106. package/dist/cjs/proof/prover.js.map +1 -0
  107. package/dist/cjs/proof/witness_calculator.js +282 -0
  108. package/dist/cjs/proof/witness_calculator.js.map +1 -0
  109. package/dist/cjs/schema-processor/index.js +19 -0
  110. package/dist/cjs/schema-processor/index.js.map +1 -0
  111. package/dist/cjs/schema-processor/json/index.js +19 -0
  112. package/dist/cjs/schema-processor/json/index.js.map +1 -0
  113. package/dist/cjs/schema-processor/json/parser.js +136 -0
  114. package/dist/cjs/schema-processor/json/parser.js.map +1 -0
  115. package/dist/cjs/schema-processor/json/validator.js +42 -0
  116. package/dist/cjs/schema-processor/json/validator.js.map +1 -0
  117. package/dist/cjs/schema-processor/utils.js +98 -0
  118. package/dist/cjs/schema-processor/utils.js.map +1 -0
  119. package/dist/cjs/storage/blockchain/index.js +18 -0
  120. package/dist/cjs/storage/blockchain/index.js.map +1 -0
  121. package/dist/cjs/storage/blockchain/state-abi.json +922 -0
  122. package/dist/cjs/storage/blockchain/state.js +112 -0
  123. package/dist/cjs/storage/blockchain/state.js.map +1 -0
  124. package/dist/cjs/storage/entities/circuitData.js +3 -0
  125. package/dist/cjs/storage/entities/circuitData.js.map +1 -0
  126. package/dist/cjs/storage/entities/identity.js +3 -0
  127. package/dist/cjs/storage/entities/identity.js.map +1 -0
  128. package/dist/cjs/storage/entities/index.js +21 -0
  129. package/dist/cjs/storage/entities/index.js.map +1 -0
  130. package/dist/cjs/storage/entities/mt.js +19 -0
  131. package/dist/cjs/storage/entities/mt.js.map +1 -0
  132. package/dist/cjs/storage/entities/state.js +3 -0
  133. package/dist/cjs/storage/entities/state.js.map +1 -0
  134. package/dist/cjs/storage/errors.js +14 -0
  135. package/dist/cjs/storage/errors.js.map +1 -0
  136. package/dist/cjs/storage/filters/index.js +18 -0
  137. package/dist/cjs/storage/filters/index.js.map +1 -0
  138. package/dist/cjs/storage/filters/jsonQuery.js +141 -0
  139. package/dist/cjs/storage/filters/jsonQuery.js.map +1 -0
  140. package/dist/cjs/storage/index.js +24 -0
  141. package/dist/cjs/storage/index.js.map +1 -0
  142. package/dist/cjs/storage/interfaces/circuits.js +3 -0
  143. package/dist/cjs/storage/interfaces/circuits.js.map +1 -0
  144. package/dist/cjs/storage/interfaces/credentials.js +3 -0
  145. package/dist/cjs/storage/interfaces/credentials.js.map +1 -0
  146. package/dist/cjs/storage/interfaces/data-source.js +3 -0
  147. package/dist/cjs/storage/interfaces/data-source.js.map +1 -0
  148. package/dist/cjs/storage/interfaces/data-storage.js +3 -0
  149. package/dist/cjs/storage/interfaces/data-storage.js.map +1 -0
  150. package/dist/cjs/storage/interfaces/identity.js +3 -0
  151. package/dist/cjs/storage/interfaces/identity.js.map +1 -0
  152. package/dist/cjs/storage/interfaces/index.js +24 -0
  153. package/dist/cjs/storage/interfaces/index.js.map +1 -0
  154. package/dist/cjs/storage/interfaces/merkletree.js +3 -0
  155. package/dist/cjs/storage/interfaces/merkletree.js.map +1 -0
  156. package/dist/cjs/storage/interfaces/state.js +3 -0
  157. package/dist/cjs/storage/interfaces/state.js.map +1 -0
  158. package/dist/cjs/storage/local-storage/data-source.js +89 -0
  159. package/dist/cjs/storage/local-storage/data-source.js.map +1 -0
  160. package/dist/cjs/storage/local-storage/index.js +19 -0
  161. package/dist/cjs/storage/local-storage/index.js.map +1 -0
  162. package/dist/cjs/storage/local-storage/merkletree.js +148 -0
  163. package/dist/cjs/storage/local-storage/merkletree.js.map +1 -0
  164. package/dist/cjs/storage/memory/data-source.js +49 -0
  165. package/dist/cjs/storage/memory/data-source.js.map +1 -0
  166. package/dist/cjs/storage/memory/index.js +19 -0
  167. package/dist/cjs/storage/memory/index.js.map +1 -0
  168. package/dist/cjs/storage/memory/merkletree.js +94 -0
  169. package/dist/cjs/storage/memory/merkletree.js.map +1 -0
  170. package/dist/cjs/storage/shared/circuit-storage.js +46 -0
  171. package/dist/cjs/storage/shared/circuit-storage.js.map +1 -0
  172. package/dist/cjs/storage/shared/credential-storage.js +66 -0
  173. package/dist/cjs/storage/shared/credential-storage.js.map +1 -0
  174. package/dist/cjs/storage/shared/identity-storage.js +71 -0
  175. package/dist/cjs/storage/shared/identity-storage.js.map +1 -0
  176. package/dist/cjs/storage/shared/index.js +20 -0
  177. package/dist/cjs/storage/shared/index.js.map +1 -0
  178. package/dist/cjs/verifiable/constants.js +104 -0
  179. package/dist/cjs/verifiable/constants.js.map +1 -0
  180. package/dist/cjs/verifiable/credential.js +129 -0
  181. package/dist/cjs/verifiable/credential.js.map +1 -0
  182. package/dist/cjs/verifiable/index.js +21 -0
  183. package/dist/cjs/verifiable/index.js.map +1 -0
  184. package/dist/cjs/verifiable/proof.js +70 -0
  185. package/dist/cjs/verifiable/proof.js.map +1 -0
  186. package/dist/cjs/verifiable/schema.js +245 -0
  187. package/dist/cjs/verifiable/schema.js.map +1 -0
  188. package/dist/esm/auth/auth.js +152 -0
  189. package/dist/esm/auth/auth.js.map +1 -0
  190. package/dist/esm/auth/index.js +2 -0
  191. package/dist/esm/auth/index.js.map +1 -0
  192. package/dist/esm/circuits/atomic-query-mtp-v2.js +176 -0
  193. package/dist/esm/circuits/atomic-query-mtp-v2.js.map +1 -0
  194. package/dist/esm/circuits/atomic-query-sig-v2.js +214 -0
  195. package/dist/esm/circuits/atomic-query-sig-v2.js.map +1 -0
  196. package/dist/esm/circuits/auth-v2.js +94 -0
  197. package/dist/esm/circuits/auth-v2.js.map +1 -0
  198. package/dist/esm/circuits/common.js +186 -0
  199. package/dist/esm/circuits/common.js.map +1 -0
  200. package/dist/esm/circuits/comparer.js +126 -0
  201. package/dist/esm/circuits/comparer.js.map +1 -0
  202. package/dist/esm/circuits/index.js +8 -0
  203. package/dist/esm/circuits/index.js.map +1 -0
  204. package/dist/esm/circuits/models.js +104 -0
  205. package/dist/esm/circuits/models.js.map +1 -0
  206. package/dist/esm/circuits/state-transition.js +89 -0
  207. package/dist/esm/circuits/state-transition.js.map +1 -0
  208. package/dist/esm/credentials/credential-wallet.js +232 -0
  209. package/dist/esm/credentials/credential-wallet.js.map +1 -0
  210. package/dist/esm/credentials/index.js +2 -0
  211. package/dist/esm/credentials/index.js.map +1 -0
  212. package/dist/esm/credentials/revocation.js +281 -0
  213. package/dist/esm/credentials/revocation.js.map +1 -0
  214. package/dist/esm/iden3comm/constants.js +42 -0
  215. package/dist/esm/iden3comm/constants.js.map +1 -0
  216. package/dist/esm/iden3comm/errors.js +12 -0
  217. package/dist/esm/iden3comm/errors.js.map +1 -0
  218. package/dist/esm/iden3comm/index.js +6 -0
  219. package/dist/esm/iden3comm/index.js.map +1 -0
  220. package/dist/esm/iden3comm/packageManager.js +74 -0
  221. package/dist/esm/iden3comm/packageManager.js.map +1 -0
  222. package/dist/esm/iden3comm/packers/index.js +3 -0
  223. package/dist/esm/iden3comm/packers/index.js.map +1 -0
  224. package/dist/esm/iden3comm/packers/plain.js +45 -0
  225. package/dist/esm/iden3comm/packers/plain.js.map +1 -0
  226. package/dist/esm/iden3comm/packers/zkp.js +149 -0
  227. package/dist/esm/iden3comm/packers/zkp.js.map +1 -0
  228. package/dist/esm/iden3comm/types/index.js +8 -0
  229. package/dist/esm/iden3comm/types/index.js.map +1 -0
  230. package/dist/esm/iden3comm/types/packageManager.js +2 -0
  231. package/dist/esm/iden3comm/types/packageManager.js.map +1 -0
  232. package/dist/esm/iden3comm/types/packer.js +2 -0
  233. package/dist/esm/iden3comm/types/packer.js.map +1 -0
  234. package/dist/esm/iden3comm/types/protocol/auth.js +2 -0
  235. package/dist/esm/iden3comm/types/protocol/auth.js.map +1 -0
  236. package/dist/esm/iden3comm/types/protocol/credentials.js +2 -0
  237. package/dist/esm/iden3comm/types/protocol/credentials.js.map +1 -0
  238. package/dist/esm/iden3comm/types/protocol/messages.js +2 -0
  239. package/dist/esm/iden3comm/types/protocol/messages.js.map +1 -0
  240. package/dist/esm/iden3comm/types/protocol/proof.js +2 -0
  241. package/dist/esm/iden3comm/types/protocol/proof.js.map +1 -0
  242. package/dist/esm/iden3comm/types/protocol/revocation.js +2 -0
  243. package/dist/esm/iden3comm/types/protocol/revocation.js.map +1 -0
  244. package/dist/esm/iden3comm/utils/bytes.js +20 -0
  245. package/dist/esm/iden3comm/utils/bytes.js.map +1 -0
  246. package/dist/esm/iden3comm/utils/envelope.js +92 -0
  247. package/dist/esm/iden3comm/utils/envelope.js.map +1 -0
  248. package/dist/esm/iden3comm/utils/index.js +3 -0
  249. package/dist/esm/iden3comm/utils/index.js.map +1 -0
  250. package/dist/esm/iden3comm/utils/message.js +37 -0
  251. package/dist/esm/iden3comm/utils/message.js.map +1 -0
  252. package/dist/esm/identity/common.js +35 -0
  253. package/dist/esm/identity/common.js.map +1 -0
  254. package/dist/esm/identity/identity-wallet.js +395 -0
  255. package/dist/esm/identity/identity-wallet.js.map +1 -0
  256. package/dist/esm/identity/index.js +3 -0
  257. package/dist/esm/identity/index.js.map +1 -0
  258. package/dist/esm/index.js +13 -0
  259. package/dist/esm/index.js.map +1 -0
  260. package/dist/esm/kms/bjj-provider.js +74 -0
  261. package/dist/esm/kms/bjj-provider.js.map +1 -0
  262. package/dist/esm/kms/index.js +4 -0
  263. package/dist/esm/kms/index.js.map +1 -0
  264. package/dist/esm/kms/kms.js +70 -0
  265. package/dist/esm/kms/kms.js.map +1 -0
  266. package/dist/esm/kms/provider-helpers.js +44 -0
  267. package/dist/esm/kms/provider-helpers.js.map +1 -0
  268. package/dist/esm/kms/store/abstract-key-store.js +11 -0
  269. package/dist/esm/kms/store/abstract-key-store.js.map +1 -0
  270. package/dist/esm/kms/store/index.js +5 -0
  271. package/dist/esm/kms/store/index.js.map +1 -0
  272. package/dist/esm/kms/store/local-storage-key-store.js +52 -0
  273. package/dist/esm/kms/store/local-storage-key-store.js.map +1 -0
  274. package/dist/esm/kms/store/memory-key-store.js +24 -0
  275. package/dist/esm/kms/store/memory-key-store.js.map +1 -0
  276. package/dist/esm/kms/store/types.js +12 -0
  277. package/dist/esm/kms/store/types.js.map +1 -0
  278. package/dist/esm/loaders/index.js +3 -0
  279. package/dist/esm/loaders/index.js.map +1 -0
  280. package/dist/esm/loaders/key.js +23 -0
  281. package/dist/esm/loaders/key.js.map +1 -0
  282. package/dist/esm/loaders/schema.js +100 -0
  283. package/dist/esm/loaders/schema.js.map +1 -0
  284. package/dist/esm/proof/common.js +59 -0
  285. package/dist/esm/proof/common.js.map +1 -0
  286. package/dist/esm/proof/index.js +4 -0
  287. package/dist/esm/proof/index.js.map +1 -0
  288. package/dist/esm/proof/proof-service.js +339 -0
  289. package/dist/esm/proof/proof-service.js.map +1 -0
  290. package/dist/esm/proof/prover.js +52 -0
  291. package/dist/esm/proof/prover.js.map +1 -0
  292. package/dist/esm/proof/witness_calculator.js +278 -0
  293. package/dist/esm/proof/witness_calculator.js.map +1 -0
  294. package/dist/esm/schema-processor/index.js +3 -0
  295. package/dist/esm/schema-processor/index.js.map +1 -0
  296. package/dist/esm/schema-processor/json/index.js +3 -0
  297. package/dist/esm/schema-processor/json/index.js.map +1 -0
  298. package/dist/esm/schema-processor/json/parser.js +132 -0
  299. package/dist/esm/schema-processor/json/parser.js.map +1 -0
  300. package/dist/esm/schema-processor/json/validator.js +35 -0
  301. package/dist/esm/schema-processor/json/validator.js.map +1 -0
  302. package/dist/esm/schema-processor/utils.js +89 -0
  303. package/dist/esm/schema-processor/utils.js.map +1 -0
  304. package/dist/esm/storage/blockchain/index.js +2 -0
  305. package/dist/esm/storage/blockchain/index.js.map +1 -0
  306. package/dist/esm/storage/blockchain/state-abi.json +922 -0
  307. package/dist/esm/storage/blockchain/state.js +105 -0
  308. package/dist/esm/storage/blockchain/state.js.map +1 -0
  309. package/dist/esm/storage/entities/circuitData.js +2 -0
  310. package/dist/esm/storage/entities/circuitData.js.map +1 -0
  311. package/dist/esm/storage/entities/identity.js +2 -0
  312. package/dist/esm/storage/entities/identity.js.map +1 -0
  313. package/dist/esm/storage/entities/index.js +5 -0
  314. package/dist/esm/storage/entities/index.js.map +1 -0
  315. package/dist/esm/storage/entities/mt.js +16 -0
  316. package/dist/esm/storage/entities/mt.js.map +1 -0
  317. package/dist/esm/storage/entities/state.js +2 -0
  318. package/dist/esm/storage/entities/state.js.map +1 -0
  319. package/dist/esm/storage/errors.js +11 -0
  320. package/dist/esm/storage/errors.js.map +1 -0
  321. package/dist/esm/storage/filters/index.js +2 -0
  322. package/dist/esm/storage/filters/index.js.map +1 -0
  323. package/dist/esm/storage/filters/jsonQuery.js +134 -0
  324. package/dist/esm/storage/filters/jsonQuery.js.map +1 -0
  325. package/dist/esm/storage/index.js +8 -0
  326. package/dist/esm/storage/index.js.map +1 -0
  327. package/dist/esm/storage/interfaces/circuits.js +2 -0
  328. package/dist/esm/storage/interfaces/circuits.js.map +1 -0
  329. package/dist/esm/storage/interfaces/credentials.js +2 -0
  330. package/dist/esm/storage/interfaces/credentials.js.map +1 -0
  331. package/dist/esm/storage/interfaces/data-source.js +2 -0
  332. package/dist/esm/storage/interfaces/data-source.js.map +1 -0
  333. package/dist/esm/storage/interfaces/data-storage.js +2 -0
  334. package/dist/esm/storage/interfaces/data-storage.js.map +1 -0
  335. package/dist/esm/storage/interfaces/identity.js +2 -0
  336. package/dist/esm/storage/interfaces/identity.js.map +1 -0
  337. package/dist/esm/storage/interfaces/index.js +8 -0
  338. package/dist/esm/storage/interfaces/index.js.map +1 -0
  339. package/dist/esm/storage/interfaces/merkletree.js +2 -0
  340. package/dist/esm/storage/interfaces/merkletree.js.map +1 -0
  341. package/dist/esm/storage/interfaces/state.js +2 -0
  342. package/dist/esm/storage/interfaces/state.js.map +1 -0
  343. package/dist/esm/storage/local-storage/data-source.js +85 -0
  344. package/dist/esm/storage/local-storage/data-source.js.map +1 -0
  345. package/dist/esm/storage/local-storage/index.js +3 -0
  346. package/dist/esm/storage/local-storage/index.js.map +1 -0
  347. package/dist/esm/storage/local-storage/merkletree.js +121 -0
  348. package/dist/esm/storage/local-storage/merkletree.js.map +1 -0
  349. package/dist/esm/storage/memory/data-source.js +45 -0
  350. package/dist/esm/storage/memory/data-source.js.map +1 -0
  351. package/dist/esm/storage/memory/index.js +3 -0
  352. package/dist/esm/storage/memory/index.js.map +1 -0
  353. package/dist/esm/storage/memory/merkletree.js +67 -0
  354. package/dist/esm/storage/memory/merkletree.js.map +1 -0
  355. package/dist/esm/storage/shared/circuit-storage.js +42 -0
  356. package/dist/esm/storage/shared/circuit-storage.js.map +1 -0
  357. package/dist/esm/storage/shared/credential-storage.js +62 -0
  358. package/dist/esm/storage/shared/credential-storage.js.map +1 -0
  359. package/dist/esm/storage/shared/identity-storage.js +67 -0
  360. package/dist/esm/storage/shared/identity-storage.js.map +1 -0
  361. package/dist/esm/storage/shared/index.js +4 -0
  362. package/dist/esm/storage/shared/index.js.map +1 -0
  363. package/dist/esm/verifiable/constants.js +101 -0
  364. package/dist/esm/verifiable/constants.js.map +1 -0
  365. package/dist/esm/verifiable/credential.js +124 -0
  366. package/dist/esm/verifiable/credential.js.map +1 -0
  367. package/dist/esm/verifiable/index.js +5 -0
  368. package/dist/esm/verifiable/index.js.map +1 -0
  369. package/dist/esm/verifiable/proof.js +64 -0
  370. package/dist/esm/verifiable/proof.js.map +1 -0
  371. package/dist/esm/verifiable/schema.js +242 -0
  372. package/dist/esm/verifiable/schema.js.map +1 -0
  373. package/dist/esm_esbuild/index.js +128087 -0
  374. package/dist/esm_esbuild/index.js.map +7 -0
  375. package/dist/types/auth/auth.d.ts +131 -0
  376. package/dist/types/auth/index.d.ts +1 -0
  377. package/dist/types/circuits/atomic-query-mtp-v2.d.ts +64 -0
  378. package/dist/types/circuits/atomic-query-sig-v2.d.ts +65 -0
  379. package/dist/types/circuits/auth-v2.d.ts +46 -0
  380. package/dist/types/circuits/common.d.ts +124 -0
  381. package/dist/types/circuits/comparer.d.ts +87 -0
  382. package/dist/types/circuits/index.d.ts +7 -0
  383. package/dist/types/circuits/models.d.ts +181 -0
  384. package/dist/types/circuits/state-transition.d.ts +50 -0
  385. package/dist/types/credentials/credential-wallet.d.ts +248 -0
  386. package/dist/types/credentials/index.d.ts +1 -0
  387. package/dist/types/credentials/revocation.d.ts +97 -0
  388. package/dist/types/iden3comm/constants.d.ts +27 -0
  389. package/dist/types/iden3comm/errors.d.ts +8 -0
  390. package/dist/types/iden3comm/index.d.ts +5 -0
  391. package/dist/types/iden3comm/packageManager.d.ts +31 -0
  392. package/dist/types/iden3comm/packers/index.d.ts +2 -0
  393. package/dist/types/iden3comm/packers/plain.d.ts +34 -0
  394. package/dist/types/iden3comm/packers/zkp.d.ts +86 -0
  395. package/dist/types/iden3comm/types/index.d.ts +15 -0
  396. package/dist/types/iden3comm/types/packageManager.d.ts +80 -0
  397. package/dist/types/iden3comm/types/packer.d.ts +59 -0
  398. package/dist/types/iden3comm/types/protocol/auth.d.ts +49 -0
  399. package/dist/types/iden3comm/types/protocol/credentials.d.ts +74 -0
  400. package/dist/types/iden3comm/types/protocol/messages.d.ts +16 -0
  401. package/dist/types/iden3comm/types/protocol/proof.d.ts +31 -0
  402. package/dist/types/iden3comm/types/protocol/revocation.d.ts +28 -0
  403. package/dist/types/iden3comm/utils/bytes.d.ts +8 -0
  404. package/dist/types/iden3comm/utils/envelope.d.ts +31 -0
  405. package/dist/types/iden3comm/utils/index.d.ts +2 -0
  406. package/dist/types/iden3comm/utils/message.d.ts +19 -0
  407. package/dist/types/identity/common.d.ts +18 -0
  408. package/dist/types/identity/identity-wallet.d.ts +248 -0
  409. package/dist/types/identity/index.d.ts +2 -0
  410. package/dist/types/index.d.ts +12 -0
  411. package/dist/types/kms/bjj-provider.d.ts +47 -0
  412. package/dist/types/kms/index.d.ts +3 -0
  413. package/dist/types/kms/kms.d.ts +80 -0
  414. package/dist/types/kms/provider-helpers.d.ts +18 -0
  415. package/dist/types/kms/store/abstract-key-store.d.ts +31 -0
  416. package/dist/types/kms/store/index.d.ts +4 -0
  417. package/dist/types/kms/store/local-storage-key-store.d.ts +32 -0
  418. package/dist/types/kms/store/memory-key-store.d.ts +20 -0
  419. package/dist/types/kms/store/types.d.ts +21 -0
  420. package/dist/types/loaders/index.d.ts +2 -0
  421. package/dist/types/loaders/key.d.ts +29 -0
  422. package/dist/types/loaders/schema.d.ts +85 -0
  423. package/dist/types/proof/common.d.ts +17 -0
  424. package/dist/types/proof/index.d.ts +3 -0
  425. package/dist/types/proof/proof-service.d.ts +121 -0
  426. package/dist/types/proof/prover.d.ts +11 -0
  427. package/dist/types/proof/witness_calculator.d.ts +16 -0
  428. package/dist/types/schema-processor/index.d.ts +2 -0
  429. package/dist/types/schema-processor/json/index.d.ts +2 -0
  430. package/dist/types/schema-processor/json/parser.d.ts +103 -0
  431. package/dist/types/schema-processor/json/validator.d.ts +22 -0
  432. package/dist/types/schema-processor/utils.d.ts +49 -0
  433. package/dist/types/storage/blockchain/index.d.ts +1 -0
  434. package/dist/types/storage/blockchain/state.d.ts +52 -0
  435. package/dist/types/storage/entities/circuitData.d.ts +7 -0
  436. package/dist/types/storage/entities/identity.d.ts +15 -0
  437. package/dist/types/storage/entities/index.d.ts +4 -0
  438. package/dist/types/storage/entities/mt.d.ts +23 -0
  439. package/dist/types/storage/entities/state.d.ts +48 -0
  440. package/dist/types/storage/errors.d.ts +9 -0
  441. package/dist/types/storage/filters/index.d.ts +1 -0
  442. package/dist/types/storage/filters/jsonQuery.d.ts +82 -0
  443. package/dist/types/storage/index.d.ts +7 -0
  444. package/dist/types/storage/interfaces/circuits.d.ts +26 -0
  445. package/dist/types/storage/interfaces/credentials.d.ts +53 -0
  446. package/dist/types/storage/interfaces/data-source.d.ts +39 -0
  447. package/dist/types/storage/interfaces/data-storage.d.ts +17 -0
  448. package/dist/types/storage/interfaces/identity.d.ts +63 -0
  449. package/dist/types/storage/interfaces/index.d.ts +7 -0
  450. package/dist/types/storage/interfaces/merkletree.d.ts +44 -0
  451. package/dist/types/storage/interfaces/state.d.ts +41 -0
  452. package/dist/types/storage/local-storage/data-source.d.ts +47 -0
  453. package/dist/types/storage/local-storage/index.d.ts +2 -0
  454. package/dist/types/storage/local-storage/merkletree.d.ts +46 -0
  455. package/dist/types/storage/memory/data-source.d.ts +22 -0
  456. package/dist/types/storage/memory/index.d.ts +2 -0
  457. package/dist/types/storage/memory/merkletree.d.ts +49 -0
  458. package/dist/types/storage/shared/circuit-storage.d.ts +35 -0
  459. package/dist/types/storage/shared/credential-storage.d.ts +39 -0
  460. package/dist/types/storage/shared/identity-storage.d.ts +40 -0
  461. package/dist/types/storage/shared/index.d.ts +3 -0
  462. package/dist/types/verifiable/constants.d.ts +78 -0
  463. package/dist/types/verifiable/credential.d.ts +123 -0
  464. package/dist/types/verifiable/index.d.ts +4 -0
  465. package/dist/types/verifiable/proof.d.ts +123 -0
  466. package/dist/types/verifiable/schema.d.ts +2 -0
  467. package/dist/umd/index.js +462 -0
  468. package/dist/umd/index.js.map +7 -0
  469. package/package.json +95 -0
@@ -0,0 +1,344 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.bJJSignatureFromHexString = exports.ProofService = void 0;
4
+ const js_merkletree_1 = require("@iden3/js-merkletree");
5
+ const models_1 = require("./../circuits/models");
6
+ const constants_1 = require("../verifiable/constants");
7
+ /* eslint-disable no-console */
8
+ const js_iden3_core_1 = require("@iden3/js-iden3-core");
9
+ const circuits_1 = require("../circuits");
10
+ const common_1 = require("./common");
11
+ const prover_1 = require("./prover");
12
+ const js_crypto_1 = require("@iden3/js-crypto");
13
+ const loaders_1 = require("../loaders");
14
+ const schema_processor_1 = require("../schema-processor");
15
+ const js_jsonld_merklization_1 = require("@iden3/js-jsonld-merklization");
16
+ /**
17
+ * Proof service is an implementation of IProofService
18
+ * that works with a native groth16 prover
19
+ *
20
+ * @export
21
+ * @beta
22
+ * @class ProofService
23
+ * @implements implements IProofService interface
24
+ */
25
+ class ProofService {
26
+ /**
27
+ * Creates an instance of ProofService.
28
+ * @param {IIdentityWallet} _identityWallet - identity wallet
29
+ * @param {ICredentialWallet} _credentialWallet - credential wallet
30
+ * @param {ICircuitStorage} _circuitStorage - circuit storage to load proving / verification files
31
+ * @param {IStateStorage} _stateStorage - state storage to get GIST proof / publish state
32
+ */
33
+ constructor(_identityWallet, _credentialWallet, _circuitStorage, _stateStorage) {
34
+ this._identityWallet = _identityWallet;
35
+ this._credentialWallet = _credentialWallet;
36
+ this._circuitStorage = _circuitStorage;
37
+ this._stateStorage = _stateStorage;
38
+ this._prover = new prover_1.NativeProver(_circuitStorage);
39
+ }
40
+ /** {@inheritdoc IProofService.verifyProof} */
41
+ async verifyProof(zkp, circuitId) {
42
+ return this._prover.verify(zkp, circuitId);
43
+ }
44
+ /** {@inheritdoc IProofService.generateProof} */
45
+ async generateProof(proofReq, identifier, credential, opts) {
46
+ if (!opts) {
47
+ opts = {
48
+ authProfileNonce: 0,
49
+ credentialSubjectProfileNonce: 0,
50
+ skipRevocation: false
51
+ };
52
+ }
53
+ const preparedCredential = await this.getPreparedCredential(credential);
54
+ const inputs = await this.generateInputs(preparedCredential, identifier, proofReq, opts);
55
+ const proof = await this._prover.generate(inputs, proofReq.circuitId);
56
+ return { proof, credential: preparedCredential.credential };
57
+ }
58
+ /** {@inheritdoc IProofService.transitState} */
59
+ async transitState(did, oldTreeState, isOldStateGenesis, stateStorage, ethSigner) {
60
+ const authInfo = await this.prepareAuthBJJCredential(did, oldTreeState);
61
+ const newTreeModel = await this._identityWallet.getDIDTreeModel(did);
62
+ const newTreeState = {
63
+ revocationRoot: newTreeModel.revocationTree.root,
64
+ claimsRoot: newTreeModel.claimsTree.root,
65
+ state: newTreeModel.state,
66
+ rootOfRoots: newTreeModel.rootsTree.root
67
+ };
68
+ const challenge = js_crypto_1.Poseidon.hash([oldTreeState.state.bigInt(), newTreeState.state.bigInt()]);
69
+ const signature = await this._identityWallet.signChallenge(challenge, authInfo.authCredential);
70
+ const circuitInputs = new circuits_1.StateTransitionInputs();
71
+ circuitInputs.id = did.id;
72
+ circuitInputs.signature = signature;
73
+ circuitInputs.isOldStateGenesis = isOldStateGenesis;
74
+ const authClaimIncProofNewState = await this._identityWallet.generateCredentialMtp(did, authInfo.authCredential, newTreeState);
75
+ circuitInputs.newTreeState = authClaimIncProofNewState.treeState;
76
+ circuitInputs.authClaimNewStateIncProof = authClaimIncProofNewState.proof;
77
+ circuitInputs.oldTreeState = oldTreeState;
78
+ circuitInputs.authClaim = {
79
+ claim: authInfo.authCoreClaim,
80
+ incProof: authInfo.incProof,
81
+ nonRevProof: authInfo.nonRevProof
82
+ };
83
+ const inputs = circuitInputs.inputsMarshal();
84
+ const proof = await this._prover.generate(inputs, circuits_1.CircuitId.StateTransition);
85
+ const txId = await stateStorage.publishState(proof, ethSigner);
86
+ return txId;
87
+ }
88
+ async getPreparedCredential(credential) {
89
+ const { cred: nonRevokedCred, revStatus } = await this._credentialWallet.findNonRevokedCredential([credential]);
90
+ const credCoreClaim = await this._identityWallet.getCoreClaimFromCredential(nonRevokedCred);
91
+ return { credential: nonRevokedCred, revStatus, credentialCoreClaim: credCoreClaim };
92
+ }
93
+ async prepareAuthBJJCredential(did, treeStateInfo) {
94
+ const authCredential = await this._credentialWallet.getAuthBJJCredential(did);
95
+ const incProof = await this._identityWallet.generateCredentialMtp(did, authCredential, treeStateInfo);
96
+ const nonRevProof = await this._identityWallet.generateNonRevocationMtp(did, authCredential, treeStateInfo);
97
+ const authCoreClaim = authCredential.getCoreClaimFromProof(constants_1.ProofType.Iden3SparseMerkleTreeProof);
98
+ if (!authCoreClaim) {
99
+ throw new Error('auth core claim is not defined for auth bjj credential');
100
+ }
101
+ return { authCredential, incProof, nonRevProof, authCoreClaim };
102
+ }
103
+ async generateInputs(preparedCredential, identifier, proofReq, opts) {
104
+ let inputs;
105
+ if (proofReq.circuitId === circuits_1.CircuitId.AtomicQueryMTPV2) {
106
+ const circuitClaimData = await this.newCircuitClaimData(preparedCredential.credential, preparedCredential.credentialCoreClaim);
107
+ circuitClaimData.nonRevProof = {
108
+ treeState: {
109
+ state: (0, circuits_1.strMTHex)(preparedCredential.revStatus.issuer.state),
110
+ claimsRoot: (0, circuits_1.strMTHex)(preparedCredential.revStatus.issuer.claimsTreeRoot),
111
+ revocationRoot: (0, circuits_1.strMTHex)(preparedCredential.revStatus.issuer.revocationTreeRoot),
112
+ rootOfRoots: (0, circuits_1.strMTHex)(preparedCredential.revStatus.issuer.rootOfRoots)
113
+ },
114
+ proof: preparedCredential.revStatus.mtp
115
+ };
116
+ const circuitInputs = new circuits_1.AtomicQueryMTPV2Inputs();
117
+ circuitInputs.id = identifier.id;
118
+ circuitInputs.requestID = BigInt(proofReq.id);
119
+ circuitInputs.query = await this.toCircuitsQuery(proofReq.query, preparedCredential.credential, preparedCredential.credentialCoreClaim);
120
+ circuitInputs.claim = {
121
+ issuerID: circuitClaimData.issuerId,
122
+ claim: circuitClaimData.claim,
123
+ incProof: { proof: circuitClaimData.proof, treeState: circuitClaimData.treeState },
124
+ nonRevProof: circuitClaimData.nonRevProof
125
+ };
126
+ circuitInputs.currentTimeStamp = (0, js_iden3_core_1.getUnixTimestamp)(new Date());
127
+ circuitInputs.claimSubjectProfileNonce = BigInt(opts.credentialSubjectProfileNonce);
128
+ circuitInputs.profileNonce = BigInt(opts.authProfileNonce);
129
+ circuitInputs.skipClaimRevocationCheck = opts.skipRevocation;
130
+ inputs = circuitInputs.inputsMarshal();
131
+ }
132
+ else if (proofReq.circuitId === circuits_1.CircuitId.AtomicQuerySigV2) {
133
+ const circuitClaimData = await this.newCircuitClaimData(preparedCredential.credential, preparedCredential.credentialCoreClaim);
134
+ const issuerAuthClaimNonRevProof = (0, common_1.toClaimNonRevStatus)(preparedCredential.revStatus);
135
+ circuitClaimData.signatureProof.issuerAuthNonRevProof = issuerAuthClaimNonRevProof;
136
+ const circuitInputs = new circuits_1.AtomicQuerySigV2Inputs();
137
+ circuitInputs.id = identifier.id;
138
+ circuitInputs.claim = {
139
+ issuerID: circuitClaimData.issuerId,
140
+ signatureProof: circuitClaimData.signatureProof,
141
+ claim: circuitClaimData.claim,
142
+ nonRevProof: issuerAuthClaimNonRevProof
143
+ };
144
+ circuitInputs.requestID = BigInt(proofReq.id);
145
+ circuitInputs.claimSubjectProfileNonce = BigInt(opts.credentialSubjectProfileNonce);
146
+ circuitInputs.profileNonce = BigInt(opts.authProfileNonce);
147
+ circuitInputs.skipClaimRevocationCheck = opts.skipRevocation;
148
+ circuitInputs.query = await this.toCircuitsQuery(proofReq.query, preparedCredential.credential, preparedCredential.credentialCoreClaim);
149
+ circuitInputs.currentTimeStamp = (0, js_iden3_core_1.getUnixTimestamp)(new Date());
150
+ inputs = circuitInputs.inputsMarshal();
151
+ }
152
+ else {
153
+ throw new Error(`circuit with id ${proofReq.circuitId} is not supported by issuer`);
154
+ }
155
+ return inputs;
156
+ }
157
+ // NewCircuitClaimData generates circuits claim structure
158
+ async newCircuitClaimData(credential, coreClaim) {
159
+ const smtProof = credential.getIden3SparseMerkleTreeProof();
160
+ const circuitClaim = new circuits_1.CircuitClaim();
161
+ circuitClaim.claim = coreClaim;
162
+ circuitClaim.issuerId = js_iden3_core_1.DID.parse(credential.issuer).id;
163
+ if (smtProof) {
164
+ circuitClaim.proof = smtProof.mtp;
165
+ circuitClaim.treeState = {
166
+ state: (0, circuits_1.strMTHex)(smtProof.issuerData.state?.value),
167
+ claimsRoot: (0, circuits_1.strMTHex)(smtProof.issuerData.state?.claimsTreeRoot),
168
+ revocationRoot: (0, circuits_1.strMTHex)(smtProof.issuerData.state?.revocationTreeRoot),
169
+ rootOfRoots: (0, circuits_1.strMTHex)(smtProof.issuerData.state?.rootOfRoots)
170
+ };
171
+ }
172
+ const sigProof = credential.getBJJSignature2021Proof();
173
+ if (sigProof) {
174
+ const signature = await (0, exports.bJJSignatureFromHexString)(sigProof.signature);
175
+ const rs = await this._credentialWallet.getRevocationStatus(sigProof.issuerData.credentialStatus, js_iden3_core_1.DID.parse(sigProof.issuerData.id), sigProof.issuerData);
176
+ //todo: check if this is correct
177
+ const issuerAuthNonRevProof = {
178
+ treeState: {
179
+ state: (0, circuits_1.strMTHex)(rs.issuer.state),
180
+ claimsRoot: (0, circuits_1.strMTHex)(rs.issuer.claimsTreeRoot),
181
+ revocationRoot: (0, circuits_1.strMTHex)(rs.issuer.revocationTreeRoot),
182
+ rootOfRoots: (0, circuits_1.strMTHex)(rs.issuer.rootOfRoots)
183
+ },
184
+ proof: rs.mtp
185
+ };
186
+ if (!sigProof.issuerData.mtp) {
187
+ throw new Error('issuer auth credential must have a mtp proof');
188
+ }
189
+ if (!sigProof.issuerData.authCoreClaim) {
190
+ throw new Error('issuer auth credential must have a core claim proof');
191
+ }
192
+ circuitClaim.signatureProof = {
193
+ signature,
194
+ issuerAuthIncProof: {
195
+ proof: sigProof.issuerData.mtp,
196
+ treeState: {
197
+ state: (0, circuits_1.strMTHex)(sigProof.issuerData.state?.value),
198
+ claimsRoot: (0, circuits_1.strMTHex)(sigProof.issuerData.state?.claimsTreeRoot),
199
+ revocationRoot: (0, circuits_1.strMTHex)(sigProof.issuerData.state?.revocationTreeRoot),
200
+ rootOfRoots: (0, circuits_1.strMTHex)(sigProof.issuerData.state?.rootOfRoots)
201
+ }
202
+ },
203
+ issuerAuthClaim: new js_iden3_core_1.Claim().fromHex(sigProof.issuerData.authCoreClaim),
204
+ issuerAuthNonRevProof
205
+ };
206
+ }
207
+ return circuitClaim;
208
+ }
209
+ async toCircuitsQuery(query, credential, coreClaim) {
210
+ const mtPosition = coreClaim.getMerklizedPosition();
211
+ if (mtPosition === js_iden3_core_1.MerklizedRootPosition.None) {
212
+ return this.prepareNonMerklizedQuery(query, credential);
213
+ }
214
+ return this.prepareMerklizedQuery(query, credential, mtPosition);
215
+ }
216
+ async prepareMerklizedQuery(query, credential, merklizedPosition) {
217
+ const parsedQuery = await this.parseRequest(query.credentialSubject);
218
+ const loader = new loaders_1.UniversalSchemaLoader('ipfs.io');
219
+ const schema = await loader.load(credential['@context'][2]);
220
+ const path = await js_jsonld_merklization_1.Path.getContextPathKey(new TextDecoder().decode(schema), credential.type[1], parsedQuery.fieldName);
221
+ path.prepend(['https://www.w3.org/2018/credentials#credentialSubject']);
222
+ const mk = await credential.merklize();
223
+ const { proof, value: mtValue } = await mk.proof(path);
224
+ const pathKey = await path.mtEntry();
225
+ parsedQuery.query.valueProof = new models_1.ValueProof();
226
+ parsedQuery.query.valueProof.mtp = proof;
227
+ parsedQuery.query.valueProof.path = pathKey;
228
+ parsedQuery.query.valueProof.mtp = proof;
229
+ parsedQuery.query.valueProof.value = BigInt(mtValue.value.toString());
230
+ if (merklizedPosition == js_iden3_core_1.MerklizedRootPosition.Index) {
231
+ parsedQuery.query.slotIndex = 2; // value data slot a
232
+ }
233
+ else {
234
+ parsedQuery.query.slotIndex = 5; // value data slot b
235
+ }
236
+ return parsedQuery.query;
237
+ }
238
+ async prepareNonMerklizedQuery(query, credential) {
239
+ const loader = new loaders_1.UniversalSchemaLoader('ipfs.io');
240
+ const schema = await loader.load(credential.credentialSchema.id);
241
+ if (query.credentialSubject && Object.keys(query.credentialSubject).length > 1) {
242
+ throw new Error('multiple requests are not supported');
243
+ }
244
+ const parsedQuery = await this.parseRequest(query.credentialSubject);
245
+ parsedQuery.query.slotIndex = new schema_processor_1.Parser().getFieldSlotIndex(parsedQuery.fieldName, schema);
246
+ return parsedQuery.query;
247
+ }
248
+ async parseRequest(req) {
249
+ if (!req) {
250
+ const query = new circuits_1.Query();
251
+ query.operator = circuits_1.QueryOperators.$noop;
252
+ return { query, fieldName: '' };
253
+ }
254
+ let fieldName = '';
255
+ let fieldReq = new Map();
256
+ if (Object.keys(req).length > 1) {
257
+ throw new Error(`multiple requests not supported`);
258
+ }
259
+ for (const [key, value] of Object.entries(req)) {
260
+ fieldName = key;
261
+ fieldReq = value;
262
+ if (Object.keys(fieldReq).length > 1) {
263
+ throw new Error(`multiple predicates for one field not supported`);
264
+ }
265
+ break;
266
+ }
267
+ let operator = 0;
268
+ const values = new Array(64).fill(BigInt(0));
269
+ for (const [key, value] of Object.entries(fieldReq)) {
270
+ if (!circuits_1.QueryOperators[key]) {
271
+ throw new Error(`operator is not supported by lib`);
272
+ }
273
+ operator = circuits_1.QueryOperators[key];
274
+ if (Array.isArray(value)) {
275
+ for (let index = 0; index < value.length; index++) {
276
+ values[index] = BigInt(value[index]);
277
+ }
278
+ }
279
+ else {
280
+ values[0] = BigInt(value);
281
+ }
282
+ break;
283
+ }
284
+ const query = new circuits_1.Query();
285
+ query.operator = operator;
286
+ query.values = values;
287
+ return { query, fieldName };
288
+ }
289
+ /** {@inheritdoc IProofService.generateAuthV2Inputs} */
290
+ async generateAuthV2Inputs(hash, did, profileNonce, circuitId) {
291
+ if (circuitId !== circuits_1.CircuitId.AuthV2) {
292
+ throw new Error('CircuitId is not supported');
293
+ }
294
+ // todo: check if bigint is correct
295
+ const challenge = js_iden3_core_1.BytesHelper.bytesToInt(hash.reverse());
296
+ const authPrepared = await this.prepareAuthBJJCredential(did);
297
+ const authClaimData = await this.newCircuitClaimData(authPrepared.authCredential, authPrepared.authCoreClaim);
298
+ const signature = await this._identityWallet.signChallenge(challenge, authPrepared.authCredential);
299
+ const id = did.id;
300
+ const stateProof = await this._stateStorage.getGISTProof(id.bigInt());
301
+ const gistProof = (0, common_1.toGISTProof)(stateProof);
302
+ const authInputs = new circuits_1.AuthV2Inputs();
303
+ authInputs.genesisID = id;
304
+ authInputs.profileNonce = BigInt(profileNonce);
305
+ authInputs.authClaim = authClaimData.claim;
306
+ authInputs.authClaimIncMtp = authClaimData.proof;
307
+ authInputs.authClaimNonRevMtp = authPrepared.nonRevProof.proof;
308
+ authInputs.treeState = authClaimData.treeState;
309
+ authInputs.signature = signature;
310
+ authInputs.challenge = challenge;
311
+ authInputs.gistProof = gistProof;
312
+ return authInputs.inputsMarshal();
313
+ }
314
+ async verifyState(circuitId, pubSignals) {
315
+ if (circuitId !== circuits_1.CircuitId.AuthV2) {
316
+ throw new Error(`CircuitId is not supported ${circuitId}`);
317
+ }
318
+ const gistRoot = (0, js_merkletree_1.newHashFromString)(pubSignals[2]).bigInt();
319
+ const globalStateInfo = await this._stateStorage.getGISTRootInfo(gistRoot);
320
+ if (globalStateInfo.createdAtTimestamp === 0n) {
321
+ throw new Error(`gist state doesn't exists in contract`);
322
+ }
323
+ if (globalStateInfo.root !== gistRoot) {
324
+ throw new Error(`gist info contains invalid state`);
325
+ }
326
+ if (globalStateInfo.replacedByRoot !== 0n) {
327
+ if (globalStateInfo.replacedAtTimestamp === 0n) {
328
+ throw new Error(`state was replaced, but replaced time unknown`);
329
+ }
330
+ return false;
331
+ }
332
+ return true;
333
+ }
334
+ }
335
+ exports.ProofService = ProofService;
336
+ // BJJSignatureFromHexString converts hex to babyjub.Signature
337
+ const bJJSignatureFromHexString = async (sigHex) => {
338
+ const signatureBytes = js_crypto_1.Hex.decodeString(sigHex);
339
+ const compressedSig = Uint8Array.from(signatureBytes).slice(0, 64);
340
+ const bjjSig = js_crypto_1.Signature.newFromCompressed(compressedSig);
341
+ return bjjSig;
342
+ };
343
+ exports.bJJSignatureFromHexString = bJJSignatureFromHexString;
344
+ //# sourceMappingURL=proof-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proof-service.js","sourceRoot":"","sources":["../../../src/proof/proof-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.NativeProver = void 0;
27
+ const snarkjs = __importStar(require("snarkjs"));
28
+ const witness_calculator_1 = require("./witness_calculator");
29
+ const ffjavascript_1 = require("ffjavascript");
30
+ /* eslint-disable no-console */
31
+ // NativeProver service responsible for zk generation groth16 algorithm with bn128 curve
32
+ class NativeProver {
33
+ constructor(_circuitStorage) {
34
+ this._circuitStorage = _circuitStorage;
35
+ }
36
+ async verify(zkp, circuitName) {
37
+ try {
38
+ const verKey = (await this._circuitStorage.loadCircuitData(circuitName))
39
+ .verificationKey;
40
+ await snarkjs.groth16.verify(JSON.parse(new TextDecoder().decode(verKey)), zkp.pub_signals, zkp.proof);
41
+ // we need to terminate curve manually
42
+ await this.terminateCurve();
43
+ return true;
44
+ }
45
+ catch (e) {
46
+ console.log(e);
47
+ return false;
48
+ }
49
+ }
50
+ // Generate calls prover-server for proof generation
51
+ async generate(inputs, circuitId) {
52
+ try {
53
+ const circuitData = await this._circuitStorage.loadCircuitData(circuitId);
54
+ const wasm = circuitData.wasm;
55
+ const witnessCalculator = await (0, witness_calculator_1.witnessBuilder)(wasm);
56
+ const parsedData = JSON.parse(new TextDecoder().decode(inputs));
57
+ const wtnsBytes = await witnessCalculator.calculateWTNSBin(parsedData, 0);
58
+ const provingKey = circuitData.provingKey;
59
+ const { proof, publicSignals } = await snarkjs.groth16.prove(provingKey, wtnsBytes);
60
+ // we need to terminate curve manually
61
+ await this.terminateCurve();
62
+ return {
63
+ proof: proof,
64
+ pub_signals: publicSignals
65
+ };
66
+ }
67
+ catch (e) {
68
+ console.log(e);
69
+ throw e;
70
+ }
71
+ }
72
+ async terminateCurve() {
73
+ const curve = await (0, ffjavascript_1.getCurveFromName)(NativeProver.curveName);
74
+ curve.terminate();
75
+ }
76
+ }
77
+ exports.NativeProver = NativeProver;
78
+ NativeProver.curveName = 'bn128';
79
+ //# sourceMappingURL=prover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prover.js","sourceRoot":"","sources":["../../../src/proof/prover.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,iDAAmC;AAGnC,6DAAsD;AACtD,+CAAgD;AAEhD,+BAA+B;AAE/B,wFAAwF;AACxF,MAAa,YAAY;IAEvB,YAA6B,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;IAAG,CAAC;IAEjE,KAAK,CAAC,MAAM,CAAC,GAAY,EAAE,WAAsB;QAC/C,IAAI;YACF,MAAM,MAAM,GAAe,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;iBACjF,eAAe,CAAC;YAEnB,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,CAC1B,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAC5C,GAAG,CAAC,WAAW,EACf,GAAG,CAAC,KAAK,CACV,CAAC;YAEF,sCAAsC;YACtC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;SACb;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACf,OAAO,KAAK,CAAC;SACd;IACH,CAAC;IAED,oDAAoD;IACpD,KAAK,CAAC,QAAQ,CAAC,MAAkB,EAAE,SAAoB;QACrD,IAAI;YACF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YAC1E,MAAM,IAAI,GAAe,WAAW,CAAC,IAAI,CAAC;YAE1C,MAAM,iBAAiB,GAAG,MAAM,IAAA,mCAAc,EAAC,IAAI,CAAC,CAAC;YAErD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAEhE,MAAM,SAAS,GAAe,MAAM,iBAAiB,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YAEtF,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC;YAE1C,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YAEpF,sCAAsC;YACtC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5B,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,WAAW,EAAE,aAAa;aAC3B,CAAC;SACH;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACf,MAAM,CAAC,CAAC;SACT;IACH,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,MAAM,KAAK,GAAG,MAAM,IAAA,+BAAgB,EAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC7D,KAAK,CAAC,SAAS,EAAE,CAAC;IACpB,CAAC;;AAxDH,oCAyDC;AAxDyB,sBAAS,GAAG,OAAO,CAAC"}