@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
package/README.md ADDED
@@ -0,0 +1,40 @@
1
+ # Polygon ID JS SDK
2
+
3
+ SDK to work with Polygon ID using JavaScript and TypeScript languages.
4
+
5
+ ## Disclaimer
6
+
7
+ Polygon ID JS SDK is in public beta. It may still contain bugs or missing functionality.
8
+ We provide limited support for it and would love to hear your feedback.
9
+
10
+ ## Usage
11
+
12
+ Installation:
13
+
14
+ ```
15
+ npm install @0xpolygonid/js-sdk
16
+ ```
17
+
18
+ See [tests](/tests) for examples on how to use SDK.
19
+
20
+ ## Tests
21
+
22
+ Run unit tests:
23
+ ```
24
+ npm run test
25
+ ```
26
+
27
+ Note: mtp / sig / auth / rhs files contain integration tests!
28
+
29
+ To run them, please set following variables:
30
+ ```
31
+ export WALLET_KEY="...key in hex format"
32
+ export RPC_URL="...url to polygon network rpc node"
33
+ export RHS_URL="..reverse hash service url"
34
+ ```
35
+
36
+ And place actual circuits to `test/proofs/testdata`
37
+
38
+ ## Documentation
39
+
40
+ Documentation can be found here: https://0xpolygonid.github.io/js-sdk-tutorials/
@@ -0,0 +1,179 @@
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.AuthHandler = void 0;
27
+ const index_1 = require("./../iden3comm/utils/index");
28
+ const constants_1 = require("./../iden3comm/constants");
29
+ const constants_2 = require("../iden3comm/constants");
30
+ const js_jwz_1 = require("@iden3/js-jwz");
31
+ const uuid = __importStar(require("uuid"));
32
+ /**
33
+ *
34
+ * Allows to process AuthorizationRequest protocol message and produce JWZ response.
35
+ *
36
+ * @export
37
+ * @beta
38
+
39
+ * @class AuthHandler
40
+ * @implements implements IAuthHandler interface
41
+ */
42
+ class AuthHandler {
43
+ /**
44
+ * Creates an instance of AuthHandler.
45
+ * @param {IPackageManager} _packerMgr - package manager to unpack message envelope
46
+ * @param {IProofService} _proofService - proof service to verify zk proofs
47
+ * @param {ICredentialWallet} _credentialWallet - wallet to search credentials
48
+ *
49
+ */
50
+ constructor(_packerMgr, _proofService, _credentialWallet) {
51
+ this._packerMgr = _packerMgr;
52
+ this._proofService = _proofService;
53
+ this._credentialWallet = _credentialWallet;
54
+ }
55
+ /**
56
+ * Handles only messages with authorization/v1.0/request type
57
+ * Generates all requested proofs and wraps authorization response message to JWZ token
58
+ * works when profiles are not supported
59
+ * @param {DID} did - an identity that will process the request
60
+ * @param {Uint8Array} request - raw request
61
+ * @returns `Promise<{token: string; authRequest: AuthorizationRequestMessage; authResponse: AuthorizationResponseMessage;}>` JWZ token, parsed request and response
62
+ */
63
+ async handleAuthorizationRequestForGenesisDID(did, request) {
64
+ const { unpackedMessage: message } = await this._packerMgr.unpack(request);
65
+ const authRequest = message;
66
+ if (message.type !== constants_2.PROTOCOL_MESSAGE_TYPE.AUTHORIZATION_REQUEST_MESSAGE_TYPE) {
67
+ throw new Error('Invalid media type');
68
+ }
69
+ const authRequestBody = message.body;
70
+ const guid = uuid.v4();
71
+ const authResponse = {
72
+ id: guid,
73
+ typ: constants_1.MediaType.ZKPMessage,
74
+ type: constants_2.PROTOCOL_MESSAGE_TYPE.AUTHORIZATION_RESPONSE_MESSAGE_TYPE,
75
+ thid: message.thid ?? guid,
76
+ body: {
77
+ did_doc: undefined,
78
+ message: authRequestBody.message,
79
+ scope: []
80
+ },
81
+ from: did.toString(),
82
+ to: message.from
83
+ };
84
+ for (const proofReq of authRequestBody.scope) {
85
+ const zkpReq = {
86
+ id: proofReq.id,
87
+ circuitId: proofReq.circuitId,
88
+ query: proofReq.query
89
+ };
90
+ const creds = await this._credentialWallet.findByQuery(proofReq.query);
91
+ const credsForGenesisDID = await this._credentialWallet.filterByCredentialSubject(creds, did);
92
+ if (credsForGenesisDID.length == 0) {
93
+ throw new Error(`no credential were issued on the given id ${did.toString()}`);
94
+ }
95
+ const { proof } = await this._proofService.generateProof(zkpReq, did, credsForGenesisDID[0]);
96
+ const zkpRes = {
97
+ id: zkpReq.id,
98
+ circuitId: zkpReq.circuitId,
99
+ proof: proof.proof,
100
+ pub_signals: proof.pub_signals
101
+ };
102
+ authResponse.body.scope.push(zkpRes);
103
+ }
104
+ const msgBytes = new TextEncoder().encode(JSON.stringify(authResponse));
105
+ const token = index_1.byteDecoder.decode(await this._packerMgr.pack(constants_1.MediaType.ZKPMessage, msgBytes, {
106
+ senderDID: did,
107
+ profileNonce: 0,
108
+ provingMethodAlg: js_jwz_1.proving.provingMethodGroth16AuthV2Instance.methodAlg
109
+ }));
110
+ return { authRequest, authResponse, token };
111
+ }
112
+ /**
113
+ * unpacks authorization request
114
+ * @export
115
+ * @beta
116
+ * @param {Uint8Array} request - raw byte message
117
+ * @returns `Promise<AuthorizationRequestMessage>`
118
+ */
119
+ async parseAuthorizationRequest(request) {
120
+ const { unpackedMessage: message } = await this._packerMgr.unpack(request);
121
+ const authRequest = message;
122
+ if (message.type !== constants_2.PROTOCOL_MESSAGE_TYPE.AUTHORIZATION_REQUEST_MESSAGE_TYPE) {
123
+ throw new Error('Invalid media type');
124
+ }
125
+ return authRequest;
126
+ }
127
+ /**
128
+ * Generates zero-knowledge proofs for given requests and credentials
129
+ * @export
130
+ * @beta
131
+ * @param {DID} userGenesisDID - user genesis identifier for which user holds key pair.
132
+ * @param {number} authProfileNonce - profile nonce that will be used for authorization.
133
+ * @param {AuthorizationRequestMessage} authRequest - authorization request, protocol message.
134
+ * @param {ZKPRequestWithCredential[]} zkpRequestsWithCreds - zero knowledge proof request with chosen credential to use.
135
+ * @returns `Promise<{
136
+ * token: string;
137
+ * authRequest: AuthorizationRequestMessage;
138
+ * authResponse: AuthorizationResponseMessage;
139
+ * }>}`
140
+ */
141
+ async generateAuthorizationResponse(userGenesisDID, authProfileNonce, authRequest, zkpRequestsWithCreds) {
142
+ const guid = uuid.v4();
143
+ const authResponse = {
144
+ id: guid,
145
+ typ: constants_1.MediaType.ZKPMessage,
146
+ type: constants_2.PROTOCOL_MESSAGE_TYPE.AUTHORIZATION_RESPONSE_MESSAGE_TYPE,
147
+ thid: authRequest.thid ?? guid,
148
+ body: {
149
+ message: authRequest.body.message,
150
+ scope: []
151
+ },
152
+ from: userGenesisDID.toString(),
153
+ to: authRequest.from
154
+ };
155
+ for (const r of zkpRequestsWithCreds) {
156
+ const { proof } = await this._proofService.generateProof(r.req, userGenesisDID, r.credential, {
157
+ authProfileNonce: authProfileNonce,
158
+ credentialSubjectProfileNonce: r.credentialSubjectProfileNonce,
159
+ skipRevocation: false
160
+ });
161
+ const zkpRes = {
162
+ id: r.req.id,
163
+ circuitId: r.req.circuitId,
164
+ proof: proof.proof,
165
+ pub_signals: proof.pub_signals
166
+ };
167
+ authResponse.body.scope.push(zkpRes);
168
+ }
169
+ const msgBytes = new TextEncoder().encode(JSON.stringify(authResponse));
170
+ const token = index_1.byteDecoder.decode(await this._packerMgr.pack(constants_1.MediaType.ZKPMessage, msgBytes, {
171
+ senderDID: userGenesisDID,
172
+ profileNonce: authProfileNonce,
173
+ provingMethodAlg: js_jwz_1.proving.provingMethodGroth16AuthV2Instance.methodAlg
174
+ }));
175
+ return { authRequest, authResponse, token };
176
+ }
177
+ }
178
+ exports.AuthHandler = AuthHandler;
179
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/auth/auth.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAAyD;AACzD,wDAAqD;AAGrD,sDAA+D;AAY/D,0CAAwC;AAExC,2CAA6B;AA6E7B;;;;;;;;;GASG;AACH,MAAa,WAAW;IACtB;;;;;;OAMG;IACH,YACmB,UAA2B,EAC3B,aAA4B,EAC5B,iBAAoC;QAFpC,eAAU,GAAV,UAAU,CAAiB;QAC3B,kBAAa,GAAb,aAAa,CAAe;QAC5B,sBAAiB,GAAjB,iBAAiB,CAAmB;IACpD,CAAC;IAEJ;;;;;;;OAOG;IACH,KAAK,CAAC,uCAAuC,CAC3C,GAAQ,EACR,OAAmB;QAMnB,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3E,MAAM,WAAW,GAAG,OAAiD,CAAC;QACtE,IAAI,OAAO,CAAC,IAAI,KAAK,iCAAqB,CAAC,kCAAkC,EAAE;YAC7E,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;SACvC;QACD,MAAM,eAAe,GAAG,OAAO,CAAC,IAAkD,CAAC;QAEnF,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACvB,MAAM,YAAY,GAAiC;YACjD,EAAE,EAAE,IAAI;YACR,GAAG,EAAE,qBAAS,CAAC,UAAU;YACzB,IAAI,EAAE,iCAAqB,CAAC,mCAAmC;YAC/D,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI;YAC1B,IAAI,EAAE;gBACJ,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,eAAe,CAAC,OAAO;gBAChC,KAAK,EAAE,EAAE;aACV;YACD,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE;YACpB,EAAE,EAAE,OAAO,CAAC,IAAI;SACjB,CAAC;QAEF,KAAK,MAAM,QAAQ,IAAI,eAAe,CAAC,KAAK,EAAE;YAC5C,MAAM,MAAM,GAA8B;gBACxC,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,SAAS,EAAE,QAAQ,CAAC,SAAsB;gBAC1C,KAAK,EAAE,QAAQ,CAAC,KAAK;aACtB,CAAC;YAEF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAEvE,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC9F,IAAI,kBAAkB,CAAC,MAAM,IAAI,CAAC,EAAE;gBAClC,MAAM,IAAI,KAAK,CAAC,6CAA6C,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;aAChF;YAED,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;YAE7F,MAAM,MAAM,GAA+B;gBACzC,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,WAAW,EAAE,KAAK,CAAC,WAAW;aAC/B,CAAC;YAEF,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACtC;QACD,MAAM,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;QACxE,MAAM,KAAK,GAAG,mBAAW,CAAC,MAAM,CAC9B,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,qBAAS,CAAC,UAAU,EAAE,QAAQ,EAAE;YACzD,SAAS,EAAE,GAAG;YACd,YAAY,EAAE,CAAC;YACf,gBAAgB,EAAE,gBAAO,CAAC,kCAAkC,CAAC,SAAS;SACpD,CAAC,CACtB,CAAC;QACF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;IAC9C,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,yBAAyB,CAAC,OAAmB;QACjD,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3E,MAAM,WAAW,GAAG,OAAiD,CAAC;QACtE,IAAI,OAAO,CAAC,IAAI,KAAK,iCAAqB,CAAC,kCAAkC,EAAE;YAC7E,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;SACvC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,6BAA6B,CACjC,cAAmB,EACnB,gBAAwB,EACxB,WAAwC,EACxC,oBAAiD;QAMjD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACvB,MAAM,YAAY,GAAiC;YACjD,EAAE,EAAE,IAAI;YACR,GAAG,EAAE,qBAAS,CAAC,UAAU;YACzB,IAAI,EAAE,iCAAqB,CAAC,mCAAmC;YAC/D,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,IAAI;YAC9B,IAAI,EAAE;gBACJ,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO;gBACjC,KAAK,EAAE,EAAE;aACV;YACD,IAAI,EAAE,cAAc,CAAC,QAAQ,EAAE;YAC/B,EAAE,EAAE,WAAW,CAAC,IAAI;SACrB,CAAC;QAEF,KAAK,MAAM,CAAC,IAAI,oBAAoB,EAAE;YACpC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CACtD,CAAC,CAAC,GAAG,EACL,cAAc,EACd,CAAC,CAAC,UAAU,EACZ;gBACE,gBAAgB,EAAE,gBAAgB;gBAClC,6BAA6B,EAAE,CAAC,CAAC,6BAA6B;gBAC9D,cAAc,EAAE,KAAK;aACtB,CACF,CAAC;YAEF,MAAM,MAAM,GAA+B;gBACzC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE;gBACZ,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS;gBAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,WAAW,EAAE,KAAK,CAAC,WAAW;aAC/B,CAAC;YAEF,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACtC;QACD,MAAM,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;QACxE,MAAM,KAAK,GAAG,mBAAW,CAAC,MAAM,CAC9B,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,qBAAS,CAAC,UAAU,EAAE,QAAQ,EAAE;YACzD,SAAS,EAAE,cAAc;YACzB,YAAY,EAAE,gBAAgB;YAC9B,gBAAgB,EAAE,gBAAO,CAAC,kCAAkC,CAAC,SAAS;SACvE,CAAC,CACH,CAAC;QACF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;IAC9C,CAAC;CACF;AA7KD,kCA6KC"}
@@ -0,0 +1,18 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./auth"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/auth/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB"}
@@ -0,0 +1,181 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AtomicQueryMTPV2PubSignals = exports.AtomicQueryMTPV2Inputs = void 0;
4
+ const js_merkletree_1 = require("@iden3/js-merkletree");
5
+ const js_iden3_core_1 = require("@iden3/js-iden3-core");
6
+ const models_1 = require("./models");
7
+ const common_1 = require("./common");
8
+ /**
9
+ * AtomicQueryMTPInputs ZK private inputs for credentialAtomicQueryMTP.circom
10
+ *
11
+ * @export
12
+ * @beta
13
+ * @class AtomicQueryMTPV2Inputs
14
+ * @extends {BaseConfig}
15
+ */
16
+ class AtomicQueryMTPV2Inputs extends common_1.BaseConfig {
17
+ /**
18
+ * Validate AtomicQueryMTPV2 inputs
19
+ *
20
+ */
21
+ validate() {
22
+ if (!this.requestID) {
23
+ throw new Error(models_1.CircuitError.EmptyRequestID);
24
+ }
25
+ }
26
+ /**
27
+ *
28
+ * Inputs marshalling
29
+ * @returns {Uint8Array}
30
+ */
31
+ inputsMarshal() {
32
+ this.validate();
33
+ if (this.query.valueProof) {
34
+ this.query.validate();
35
+ this.query.valueProof.validate();
36
+ }
37
+ const valueProof = this.query.valueProof ?? new models_1.ValueProof();
38
+ const s = {
39
+ requestID: this.requestID.toString(),
40
+ userGenesisID: this.id.bigInt().toString(),
41
+ profileNonce: this.profileNonce.toString(),
42
+ claimSubjectProfileNonce: this.claimSubjectProfileNonce.toString(),
43
+ issuerID: this.claim.issuerID?.bigInt().toString(),
44
+ issuerClaim: this.claim.claim.marshalJson(),
45
+ issuerClaimMtp: (0, common_1.prepareSiblingsStr)(this.claim.incProof.proof, this.getMTLevel()),
46
+ issuerClaimClaimsTreeRoot: this.claim.incProof.treeState?.claimsRoot.bigInt().toString(),
47
+ issuerClaimRevTreeRoot: this.claim.incProof.treeState?.revocationRoot.bigInt().toString(),
48
+ issuerClaimRootsTreeRoot: this.claim.incProof.treeState?.rootOfRoots.bigInt().toString(),
49
+ issuerClaimIdenState: this.claim.incProof.treeState?.state.bigInt().toString(),
50
+ issuerClaimNonRevMtp: (0, common_1.prepareSiblingsStr)(this.claim.nonRevProof.proof, this.getMTLevel()),
51
+ issuerClaimNonRevClaimsTreeRoot: this.claim.nonRevProof.treeState?.claimsRoot
52
+ .bigInt()
53
+ .toString(),
54
+ issuerClaimNonRevRevTreeRoot: this.claim.nonRevProof.treeState?.revocationRoot
55
+ .bigInt()
56
+ .toString(),
57
+ issuerClaimNonRevRootsTreeRoot: this.claim.nonRevProof.treeState?.rootOfRoots
58
+ .bigInt()
59
+ .toString(),
60
+ issuerClaimNonRevState: this.claim.nonRevProof.treeState?.state.bigInt().toString(),
61
+ claimSchema: this.claim.claim.getSchemaHash().bigInt().toString(),
62
+ claimPathMtp: (0, common_1.prepareSiblingsStr)(valueProof.mtp, this.getMTLevelsClaimMerklization()),
63
+ claimPathValue: valueProof.value.toString(),
64
+ operator: this.query.operator,
65
+ slotIndex: this.query.slotIndex,
66
+ timestamp: this.currentTimeStamp
67
+ };
68
+ const nodeAux = (0, common_1.getNodeAuxValue)(this.claim.nonRevProof.proof);
69
+ s.issuerClaimNonRevMtpAuxHi = nodeAux.key.bigInt().toString();
70
+ s.issuerClaimNonRevMtpAuxHv = nodeAux.value.bigInt().toString();
71
+ s.issuerClaimNonRevMtpNoAux = nodeAux.noAux;
72
+ s.claimPathNotExists = (0, common_1.existenceToInt)(valueProof.mtp.existence);
73
+ const nodAuxJSONLD = (0, common_1.getNodeAuxValue)(valueProof.mtp);
74
+ s.claimPathMtpNoAux = nodAuxJSONLD.noAux;
75
+ s.claimPathMtpAuxHi = nodAuxJSONLD.key.bigInt().toString();
76
+ s.claimPathMtpAuxHv = nodAuxJSONLD.value.bigInt().toString();
77
+ s.claimPathKey = valueProof.path.toString();
78
+ if (this.skipClaimRevocationCheck) {
79
+ s.isRevocationChecked = 0;
80
+ }
81
+ else {
82
+ s.isRevocationChecked = 1;
83
+ }
84
+ const values = (0, common_1.prepareCircuitArrayValues)(this.query.values, this.getValueArrSize());
85
+ s.value = (0, common_1.bigIntArrayToStringArray)(values);
86
+ return new TextEncoder().encode(JSON.stringify(s));
87
+ }
88
+ }
89
+ exports.AtomicQueryMTPV2Inputs = AtomicQueryMTPV2Inputs;
90
+ /**
91
+ * Public signals
92
+ *
93
+ * @export
94
+ * @beta
95
+ * @class AtomicQueryMTPV2PubSignals
96
+ * @extends {BaseConfig}
97
+ */
98
+ class AtomicQueryMTPV2PubSignals extends common_1.BaseConfig {
99
+ constructor() {
100
+ super(...arguments);
101
+ this.value = [];
102
+ }
103
+ /**
104
+ * PubSignalsUnmarshal unmarshal credentialAtomicQueryMTP.circom public signals array to AtomicQueryMTPPubSignals
105
+ *
106
+ * @param {Uint8Array} data
107
+ * @returns AtomicQueryMTPV2PubSignals
108
+ */
109
+ pubSignalsUnmarshal(data) {
110
+ // expected order:
111
+ // merklized
112
+ // userID
113
+ // requestID
114
+ // issuerID
115
+ // issuerClaimIdenState
116
+ // issuerClaimNonRevState
117
+ // timestamp
118
+ // claimSchema
119
+ // claimPathNotExists
120
+ // claimPathKey
121
+ // slotIndex
122
+ // operator
123
+ // value
124
+ // 12 is a number of fields in AtomicQueryMTPV2PubSignals before values, values is last element in the proof and
125
+ // it is length could be different base on the circuit configuration. The length could be modified by set value
126
+ // in ValueArraySize
127
+ const fieldLength = 13;
128
+ const sVals = JSON.parse(new TextDecoder().decode(data));
129
+ if (sVals.length !== fieldLength + this.getValueArrSize()) {
130
+ throw new Error(`invalid number of Output values expected ${fieldLength + this.getValueArrSize()} got ${sVals.length}`);
131
+ }
132
+ let fieldIdx = 0;
133
+ // -- merklized
134
+ this.merklized = parseInt(sVals[fieldIdx]);
135
+ fieldIdx++;
136
+ // - userID
137
+ this.userID = js_iden3_core_1.Id.fromBigInt(BigInt(sVals[fieldIdx]));
138
+ fieldIdx++;
139
+ // - requestID
140
+ this.requestID = BigInt(sVals[fieldIdx]);
141
+ fieldIdx++;
142
+ // - issuerID
143
+ this.issuerID = js_iden3_core_1.Id.fromBigInt(BigInt(sVals[fieldIdx]));
144
+ fieldIdx++;
145
+ // - issuerClaimIdenState
146
+ this.issuerClaimIdenState = (0, js_merkletree_1.newHashFromString)(sVals[fieldIdx]);
147
+ fieldIdx++;
148
+ // - isRevocationChecked
149
+ this.isRevocationChecked = parseInt(sVals[fieldIdx]);
150
+ fieldIdx++;
151
+ // - issuerClaimNonRevState
152
+ this.issuerClaimNonRevState = (0, js_merkletree_1.newHashFromString)(sVals[fieldIdx]);
153
+ fieldIdx++;
154
+ // - timestamp
155
+ this.timestamp = parseInt(sVals[fieldIdx]);
156
+ fieldIdx++;
157
+ // - claimSchema
158
+ this.claimSchema = js_iden3_core_1.SchemaHash.newSchemaHashFromInt(BigInt(sVals[fieldIdx]));
159
+ fieldIdx++;
160
+ // - ClaimPathNotExists
161
+ this.claimPathNotExists = parseInt(sVals[fieldIdx]);
162
+ fieldIdx++;
163
+ // - ClaimPathKey
164
+ this.claimPathKey = BigInt(sVals[fieldIdx]);
165
+ fieldIdx++;
166
+ // - slotIndex
167
+ this.slotIndex = parseInt(sVals[fieldIdx]);
168
+ fieldIdx++;
169
+ // - operator
170
+ this.operator = parseInt(sVals[fieldIdx]);
171
+ fieldIdx++;
172
+ // - values
173
+ for (let index = 0; index < this.getValueArrSize(); index++) {
174
+ this.value.push(BigInt(sVals[fieldIdx]));
175
+ fieldIdx++;
176
+ }
177
+ return this;
178
+ }
179
+ }
180
+ exports.AtomicQueryMTPV2PubSignals = AtomicQueryMTPV2PubSignals;
181
+ //# sourceMappingURL=atomic-query-mtp-v2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atomic-query-mtp-v2.js","sourceRoot":"","sources":["../../../src/circuits/atomic-query-mtp-v2.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,219 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AtomicQuerySigV2PubSignals = exports.AtomicQuerySigV2Inputs = void 0;
4
+ const js_merkletree_1 = require("@iden3/js-merkletree");
5
+ const js_iden3_core_1 = require("@iden3/js-iden3-core");
6
+ const models_1 = require("./models");
7
+ const common_1 = require("./common");
8
+ /**
9
+ * AtomicQuerySigV2Inputs representation for credentialAtomicQuerySig.circom
10
+ * Inputs and public signals declaration, marshalling and parsing
11
+ *
12
+ * @export
13
+ * @beta
14
+ * @class AtomicQuerySigV2Inputs
15
+ * @extends {BaseConfig}
16
+ */
17
+ class AtomicQuerySigV2Inputs extends common_1.BaseConfig {
18
+ /**
19
+ * Validate inputs
20
+ *
21
+ */
22
+ validate() {
23
+ if (!this.requestID) {
24
+ throw new Error(models_1.CircuitError.EmptyRequestID);
25
+ }
26
+ if (!this.claim.nonRevProof.proof) {
27
+ throw new Error(models_1.CircuitError.EmptyClaimNonRevProof);
28
+ }
29
+ if (!this.claim.signatureProof.issuerAuthIncProof.proof) {
30
+ throw new Error(models_1.CircuitError.EmptyIssuerAuthClaimProof);
31
+ }
32
+ if (!this.claim.signatureProof.issuerAuthNonRevProof.proof) {
33
+ throw new Error(models_1.CircuitError.EmptyIssuerAuthClaimNonRevProof);
34
+ }
35
+ if (!this.claim.signatureProof.signature) {
36
+ throw new Error(models_1.CircuitError.EmptyClaimSignature);
37
+ }
38
+ if (!this.query.values) {
39
+ throw new Error(models_1.CircuitError.EmptyQueryValue);
40
+ }
41
+ }
42
+ /**
43
+ * marshal inputs
44
+ *
45
+ * @returns Uint8Array
46
+ */
47
+ inputsMarshal() {
48
+ this.validate();
49
+ if (this.query.valueProof) {
50
+ this.query.validate();
51
+ this.query.valueProof.validate();
52
+ }
53
+ const valueProof = this.query.valueProof ?? new models_1.ValueProof();
54
+ const s = {
55
+ requestID: this.requestID.toString(),
56
+ userGenesisID: this.id.bigInt().toString(),
57
+ profileNonce: this.profileNonce.toString(),
58
+ claimSubjectProfileNonce: this.claimSubjectProfileNonce.toString(),
59
+ issuerID: this.claim.issuerID.bigInt().toString(),
60
+ issuerClaim: this.claim.claim.marshalJson(),
61
+ issuerClaimNonRevClaimsTreeRoot: this.claim.nonRevProof.treeState?.claimsRoot
62
+ .bigInt()
63
+ .toString(),
64
+ issuerClaimNonRevRevTreeRoot: this.claim.nonRevProof.treeState?.revocationRoot
65
+ .bigInt()
66
+ .toString(),
67
+ issuerClaimNonRevRootsTreeRoot: this.claim.nonRevProof.treeState?.rootOfRoots
68
+ .bigInt()
69
+ .toString(),
70
+ issuerClaimNonRevState: this.claim.nonRevProof.treeState?.state.bigInt().toString(),
71
+ issuerClaimNonRevMtp: (0, common_1.prepareSiblingsStr)(this.claim.nonRevProof.proof, this.getMTLevel()),
72
+ issuerClaimSignatureR8x: this.claim.signatureProof.signature.R8[0].toString(),
73
+ issuerClaimSignatureR8y: this.claim.signatureProof.signature.R8[1].toString(),
74
+ issuerClaimSignatureS: this.claim.signatureProof.signature.S.toString(),
75
+ issuerAuthClaim: this.claim.signatureProof.issuerAuthClaim?.marshalJson(),
76
+ issuerAuthClaimMtp: (0, common_1.prepareSiblingsStr)(this.claim.signatureProof.issuerAuthIncProof.proof, this.getMTLevel()),
77
+ issuerAuthClaimsTreeRoot: this.claim.signatureProof.issuerAuthIncProof.treeState?.claimsRoot
78
+ .bigInt()
79
+ .toString(),
80
+ issuerAuthRevTreeRoot: this.claim.signatureProof.issuerAuthIncProof.treeState?.revocationRoot
81
+ .bigInt()
82
+ .toString(),
83
+ issuerAuthRootsTreeRoot: this.claim.signatureProof.issuerAuthIncProof.treeState?.rootOfRoots
84
+ .bigInt()
85
+ .toString(),
86
+ issuerAuthClaimNonRevMtp: (0, common_1.prepareSiblingsStr)(this.claim.signatureProof.issuerAuthNonRevProof.proof, this.getMTLevel()),
87
+ claimSchema: this.claim.claim.getSchemaHash().bigInt().toString(),
88
+ claimPathMtp: (0, common_1.prepareSiblingsStr)(valueProof.mtp, this.getMTLevelsClaimMerklization()),
89
+ claimPathValue: valueProof.value.toString(),
90
+ operator: this.query.operator,
91
+ timestamp: this.currentTimeStamp,
92
+ // value in this path in merklized json-ld document
93
+ slotIndex: this.query.slotIndex
94
+ };
95
+ if (this.skipClaimRevocationCheck) {
96
+ s.isRevocationChecked = 0;
97
+ }
98
+ else {
99
+ s.isRevocationChecked = 1;
100
+ }
101
+ const nodeAuxNonRev = (0, common_1.getNodeAuxValue)(this.claim.nonRevProof.proof);
102
+ s.issuerClaimNonRevMtpAuxHi = nodeAuxNonRev.key.bigInt().toString();
103
+ s.issuerClaimNonRevMtpAuxHv = nodeAuxNonRev.value.bigInt().toString();
104
+ s.issuerClaimNonRevMtpNoAux = nodeAuxNonRev.noAux;
105
+ const nodeAuxIssuerAuthNonRev = (0, common_1.getNodeAuxValue)(this.claim.signatureProof.issuerAuthNonRevProof.proof);
106
+ s.issuerAuthClaimNonRevMtpAuxHi = nodeAuxIssuerAuthNonRev.key.bigInt().toString();
107
+ s.issuerAuthClaimNonRevMtpAuxHv = nodeAuxIssuerAuthNonRev.value.bigInt().toString();
108
+ s.issuerAuthClaimNonRevMtpNoAux = nodeAuxIssuerAuthNonRev.noAux;
109
+ s.claimPathNotExists = (0, common_1.existenceToInt)(valueProof.mtp.existence);
110
+ const nodAuxJSONLD = (0, common_1.getNodeAuxValue)(valueProof.mtp);
111
+ s.claimPathMtpNoAux = nodAuxJSONLD.noAux;
112
+ s.claimPathMtpAuxHi = nodAuxJSONLD.key.bigInt().toString();
113
+ s.claimPathMtpAuxHv = nodAuxJSONLD.value.bigInt().toString();
114
+ s.claimPathKey = valueProof.path.toString();
115
+ if (this.skipClaimRevocationCheck) {
116
+ s.isRevocationChecked = 0;
117
+ }
118
+ else {
119
+ s.isRevocationChecked = 1;
120
+ }
121
+ const values = (0, common_1.prepareCircuitArrayValues)(this.query.values, this.getValueArrSize());
122
+ s.value = (0, common_1.bigIntArrayToStringArray)(values);
123
+ return new TextEncoder().encode(JSON.stringify(s));
124
+ }
125
+ }
126
+ exports.AtomicQuerySigV2Inputs = AtomicQuerySigV2Inputs;
127
+ /**
128
+ *
129
+ * public signals
130
+ * @export
131
+ * @beta
132
+ * @class AtomicQuerySigV2PubSignals
133
+ * @extends {BaseConfig}
134
+ */
135
+ class AtomicQuerySigV2PubSignals extends common_1.BaseConfig {
136
+ constructor() {
137
+ super(...arguments);
138
+ this.value = [];
139
+ }
140
+ //
141
+ /**
142
+ *
143
+ * PubSignalsUnmarshal unmarshal credentialAtomicQuerySig.circom public signals array to AtomicQuerySugPubSignals
144
+ * @param {Uint8Array} data
145
+ * @returns AtomicQuerySigV2PubSignals
146
+ */
147
+ pubSignalsUnmarshal(data) {
148
+ // expected order:
149
+ // merklized
150
+ // userID
151
+ // issuerAuthState
152
+ // requestID
153
+ // issuerID
154
+ // issuerClaimNonRevState
155
+ // timestamp
156
+ // claimSchema
157
+ // claimPathNotExists
158
+ // claimPathKey
159
+ // slotIndex
160
+ // operator
161
+ // value
162
+ // 12 is a number of fields in AtomicQuerySigV2PubSignals before values, values is last element in the proof and
163
+ // it is length could be different base on the circuit configuration. The length could be modified by set value
164
+ // in ValueArraySize
165
+ const fieldLength = 13;
166
+ const sVals = JSON.parse(new TextDecoder().decode(data));
167
+ if (sVals.length !== fieldLength + this.getValueArrSize()) {
168
+ throw new Error(`invalid number of Output values expected ${fieldLength + this.getValueArrSize()} got ${sVals.length}`);
169
+ }
170
+ let fieldIdx = 0;
171
+ // -- merklized
172
+ this.merklized = parseInt(sVals[fieldIdx]);
173
+ fieldIdx++;
174
+ // - userID
175
+ this.userID = js_iden3_core_1.Id.fromBigInt(BigInt(sVals[fieldIdx]));
176
+ fieldIdx++;
177
+ // - issuerAuthState
178
+ this.issuerAuthState = (0, js_merkletree_1.newHashFromString)(sVals[fieldIdx]);
179
+ fieldIdx++;
180
+ // - requestID
181
+ this.requestID = BigInt(sVals[fieldIdx]);
182
+ fieldIdx++;
183
+ // - issuerID
184
+ this.issuerID = js_iden3_core_1.Id.fromBigInt(BigInt(sVals[fieldIdx]));
185
+ fieldIdx++;
186
+ // - isRevocationChecked
187
+ this.isRevocationChecked = parseInt(sVals[fieldIdx]);
188
+ fieldIdx++;
189
+ // - issuerClaimNonRevState
190
+ this.issuerClaimNonRevState = (0, js_merkletree_1.newHashFromString)(sVals[fieldIdx]);
191
+ fieldIdx++;
192
+ // - timestamp
193
+ this.timestamp = parseInt(sVals[fieldIdx]);
194
+ fieldIdx++;
195
+ // - claimSchema
196
+ this.claimSchema = js_iden3_core_1.SchemaHash.newSchemaHashFromInt(BigInt(sVals[fieldIdx]));
197
+ fieldIdx++;
198
+ // - ClaimPathNotExists
199
+ this.claimPathNotExists = parseInt(sVals[fieldIdx]);
200
+ fieldIdx++;
201
+ // - ClaimPathKey
202
+ this.claimPathKey = BigInt(sVals[fieldIdx]);
203
+ fieldIdx++;
204
+ // - slotIndex
205
+ this.slotIndex = parseInt(sVals[fieldIdx]);
206
+ fieldIdx++;
207
+ // - operator
208
+ this.operator = parseInt(sVals[fieldIdx]);
209
+ fieldIdx++;
210
+ // - values
211
+ for (let index = 0; index < this.getValueArrSize(); index++) {
212
+ this.value.push(BigInt(sVals[fieldIdx]));
213
+ fieldIdx++;
214
+ }
215
+ return this;
216
+ }
217
+ }
218
+ exports.AtomicQuerySigV2PubSignals = AtomicQuerySigV2PubSignals;
219
+ //# sourceMappingURL=atomic-query-sig-v2.js.map