@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,94 @@
1
+ import { newHashFromString } from '@iden3/js-merkletree';
2
+ import { Id } from '@iden3/js-iden3-core';
3
+ import { CircuitError } from './models';
4
+ import { BaseConfig, getNodeAuxValue, prepareSiblingsStr } from './common';
5
+ /**
6
+ * Auth v2 circuit representation
7
+ * Inputs and public signals declaration, marshalling and parsing
8
+ *
9
+ * @export
10
+ * @beta
11
+ * @class AuthV2Inputs
12
+ * @extends {BaseConfig}
13
+ */
14
+ export class AuthV2Inputs extends BaseConfig {
15
+ validate() {
16
+ if (!this.genesisID) {
17
+ throw new Error(CircuitError.EmptyId);
18
+ }
19
+ if (!this.authClaimIncMtp) {
20
+ throw new Error(CircuitError.EmptyAuthClaimProof);
21
+ }
22
+ if (!this.authClaimNonRevMtp) {
23
+ throw new Error(CircuitError.EmptyAuthClaimNonRevProof);
24
+ }
25
+ if (!this.gistProof?.proof) {
26
+ throw new Error(CircuitError.EmptyGlobalProof);
27
+ }
28
+ if (!this.signature) {
29
+ throw new Error(CircuitError.EmptyChallengeSignature);
30
+ }
31
+ if (!this.challenge) {
32
+ throw new Error(CircuitError.EmptyChallenge);
33
+ }
34
+ }
35
+ // InputsMarshal returns Circom private inputs for auth.circom
36
+ inputsMarshal() {
37
+ this.validate();
38
+ const s = {
39
+ genesisID: this.genesisID?.bigInt().toString(),
40
+ profileNonce: this.profileNonce?.toString(),
41
+ authClaim: this.authClaim?.marshalJson(),
42
+ authClaimIncMtp: prepareSiblingsStr(this.authClaimIncMtp, this.getMTLevel()),
43
+ authClaimNonRevMtp: prepareSiblingsStr(this.authClaimNonRevMtp, this.getMTLevel()),
44
+ challenge: this.challenge?.toString(),
45
+ challengeSignatureR8x: this.signature?.R8[0].toString(),
46
+ challengeSignatureR8y: this.signature?.R8[1].toString(),
47
+ challengeSignatureS: this.signature?.S.toString(),
48
+ claimsTreeRoot: this.treeState?.claimsRoot.bigInt().toString(),
49
+ revTreeRoot: this.treeState?.revocationRoot.bigInt().toString(),
50
+ rootsTreeRoot: this.treeState?.rootOfRoots.bigInt().toString(),
51
+ state: this.treeState?.state.bigInt().toString(),
52
+ gistRoot: this.gistProof.root.bigInt().toString(),
53
+ gistMtp: prepareSiblingsStr(this.gistProof.proof, this.getMTLevelOnChain())
54
+ };
55
+ const nodeAuxAuth = getNodeAuxValue(this.authClaimNonRevMtp);
56
+ s.authClaimNonRevMtpAuxHi = nodeAuxAuth.key.bigInt().toString();
57
+ s.authClaimNonRevMtpAuxHv = nodeAuxAuth.value.bigInt().toString();
58
+ s.authClaimNonRevMtpNoAux = nodeAuxAuth.noAux;
59
+ const globalNodeAux = getNodeAuxValue(this.gistProof.proof);
60
+ s.gistMtpAuxHi = globalNodeAux.key.bigInt().toString();
61
+ s.gistMtpAuxHv = globalNodeAux.value.bigInt().toString();
62
+ s.gistMtpNoAux = globalNodeAux.noAux;
63
+ return new TextEncoder().encode(JSON.stringify(s));
64
+ }
65
+ }
66
+ // AuthV2PubSignals auth.circom public signals
67
+ /**
68
+ * public signals
69
+ *
70
+ * @export
71
+ * @beta
72
+ * @class AuthV2PubSignals
73
+ */
74
+ export class AuthV2PubSignals {
75
+ //
76
+ /**
77
+ * PubSignalsUnmarshal unmarshal auth.circom public inputs to AuthPubSignals
78
+ *
79
+ * @param {Uint8Array} data
80
+ * @returns AuthV2PubSignals
81
+ */
82
+ pubSignalsUnmarshal(data) {
83
+ const len = 3;
84
+ const sVals = JSON.parse(new TextDecoder().decode(data));
85
+ if (sVals.length !== len) {
86
+ throw new Error(`invalid number of Output values expected ${len} got ${sVals.length}`);
87
+ }
88
+ this.userID = Id.fromBigInt(BigInt(sVals[0]));
89
+ this.challenge = BigInt(sVals[1]);
90
+ this.GISTRoot = newHashFromString(sVals[2]);
91
+ return this;
92
+ }
93
+ }
94
+ //# sourceMappingURL=auth-v2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-v2.js","sourceRoot":"","sources":["../../../src/circuits/auth-v2.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,186 @@
1
+ import { Hex } from '@iden3/js-crypto';
2
+ import { Hash, ZERO_HASH, Proof, swapEndianness } from '@iden3/js-merkletree';
3
+ export const defaultMTLevels = 40; // max MT levels, default value for identity circuits
4
+ export const defaultValueArraySize = 64; // max value array size, default value for identity circuits
5
+ export const defaultMTLevelsOnChain = 64; // max MT levels on chain, default value for identity circuits
6
+ export const defaultMTLevelsClaimsMerklization = 32; // max MT levels of JSON-LD merklization on claim
7
+ export const ErrorEmptyAuthClaimProof = 'empty auth claim mtp proof';
8
+ export const ErrorEmptyAuthClaimNonRevProof = 'empty auth claim non-revocation mtp proof';
9
+ export const ErrorEmptyChallengeSignature = 'empty challenge signature';
10
+ export const ErrorEmptyClaimSignature = 'empty claim signature';
11
+ export const ErrorEmptyClaimProof = 'empty claim mtp proof';
12
+ export const ErrorEmptyClaimNonRevProof = 'empty claim non-revocation mtp proof';
13
+ export const ErrorUserStateInRelayClaimProof = 'empty user state in relay claim non-revocation mtp proof';
14
+ export const ErrorEmptyIssuerAuthClaimProof = 'empty issuer auth claim mtp proof';
15
+ export const ErrorEmptyIssuerAuthClaimNonRevProof = 'empty issuer auth claim non-revocation mtp proof';
16
+ /**
17
+ * base config for circuit inputs
18
+ *
19
+ * @export
20
+ * @beta
21
+ * @class BaseConfig
22
+ */
23
+ export class BaseConfig {
24
+ /**
25
+ * getMTLevel max circuit MT levels
26
+ *
27
+ * @returns number
28
+ */
29
+ getMTLevel() {
30
+ return this.mtLevel ? this.mtLevel : defaultMTLevels;
31
+ }
32
+ /**
33
+ * getMTLevel max circuit MT levels
34
+ *
35
+ * @returns number
36
+ */
37
+ getMTLevelsClaimMerklization() {
38
+ return this.mtLevelClaimsMerklization
39
+ ? this.mtLevelClaimsMerklization
40
+ : defaultMTLevelsClaimsMerklization;
41
+ }
42
+ /**
43
+ * GetValueArrSize return size of circuits value array size
44
+ *
45
+ * @returns number
46
+ */
47
+ getValueArrSize() {
48
+ return this.valueArraySize ? this.valueArraySize : defaultValueArraySize;
49
+ }
50
+ /**
51
+ * getMTLevelOnChain return level on chain for given circuit
52
+ *
53
+ * @returns number
54
+ */
55
+ getMTLevelOnChain() {
56
+ return this.mtLevelOnChain ? this.mtLevelOnChain : defaultMTLevelsOnChain;
57
+ }
58
+ }
59
+ /**
60
+ * converts hex to Hash
61
+ *
62
+ * @param {(string | undefined)} s - string hex
63
+ * @returns Hash
64
+ */
65
+ export const strMTHex = (s) => {
66
+ if (!s) {
67
+ return ZERO_HASH;
68
+ }
69
+ const h = new Hash();
70
+ h.value = swapEndianness(Hex.decodeString(s));
71
+ return h;
72
+ };
73
+ /**
74
+ * converts hexes of tree roots to Hashes
75
+ *
76
+ * @param {(string | undefined)} state - state of tree hex
77
+ * @param {(string | undefined)} claimsTreeRoot - claims tree root hex
78
+ * @param {(string | undefined)} revocationTreeRoot - revocation tree root hex
79
+ * @param {(string | undefined)} rootOfRoots - root of roots tree root hex
80
+ * @returns TreeState
81
+ */
82
+ export const buildTreeState = (state, claimsTreeRoot, revocationTreeRoot, rootOfRoots) => ({
83
+ state: strMTHex(state),
84
+ claimsRoot: strMTHex(claimsTreeRoot),
85
+ revocationRoot: strMTHex(revocationTreeRoot),
86
+ rootOfRoots: strMTHex(rootOfRoots)
87
+ });
88
+ /**
89
+ * siblings as string array
90
+ *
91
+ * @param {Proof} proof - proof with siblings
92
+ * @param {number} levels - levels number
93
+ * @returns string[]
94
+ */
95
+ export const prepareSiblingsStr = (proof, levels) => {
96
+ const siblings = Object.assign(new Proof(), proof).allSiblings();
97
+ // Add the rest of empty levels to the siblings
98
+ for (let i = siblings.length; i < levels; i++) {
99
+ siblings.push(ZERO_HASH);
100
+ }
101
+ return siblings.map((s) => s.bigInt().toString());
102
+ };
103
+ /**
104
+ * PrepareCircuitArrayValues padding values to size.
105
+ * Validate array size and throw an exception if array is bigger than size
106
+ * if array is bigger, circuit cannot compile because number of inputs does not match
107
+ *
108
+ *
109
+ * @param {bigint[]} arr - given values
110
+ * @param {number} size - size to pad
111
+ * @returns bigint[]
112
+ */
113
+ export const prepareCircuitArrayValues = (arr, size) => {
114
+ if (arr.length > size) {
115
+ throw new Error(`array size ${arr.length} is bigger max expected size ${size}`);
116
+ }
117
+ // Add the empty values
118
+ for (let i = arr.length; i < size; i++) {
119
+ arr.push(BigInt(0));
120
+ }
121
+ return arr;
122
+ };
123
+ /**
124
+ * converts each big integer in array to string
125
+ *
126
+ * @param {bigint[]} arr - array of big numbers
127
+ * @returns string[]
128
+ */
129
+ export const bigIntArrayToStringArray = (arr) => {
130
+ return arr.map((a) => a.toString());
131
+ };
132
+ export /**
133
+ * gets auxiliary node from proof
134
+ *
135
+ * @param {(Proof | undefined)} p - mtp
136
+ * @returns NodeAuxValue
137
+ */ const getNodeAuxValue = (p) => {
138
+ // proof of inclusion
139
+ if (p?.existence) {
140
+ return {
141
+ key: ZERO_HASH,
142
+ value: ZERO_HASH,
143
+ noAux: '0'
144
+ };
145
+ }
146
+ // proof of non-inclusion (NodeAux exists)
147
+ if (p?.nodeAux?.value && p?.nodeAux?.key) {
148
+ return {
149
+ key: p.nodeAux.key,
150
+ value: p.nodeAux.value,
151
+ noAux: '0'
152
+ };
153
+ }
154
+ // proof of non-inclusion (NodeAux does not exist)
155
+ return {
156
+ key: ZERO_HASH,
157
+ value: ZERO_HASH,
158
+ noAux: '1'
159
+ };
160
+ };
161
+ /**
162
+ * converts boolean existence param to integer
163
+ * if true - 1, else - 0
164
+ *
165
+ * @param {boolean} b - existence
166
+ * @returns number
167
+ */
168
+ export const existenceToInt = (b) => (b ? 0 : 1);
169
+ /**
170
+ * return object properties
171
+ *
172
+ * @export
173
+ * @param {object} obj
174
+ * @returns object
175
+ */
176
+ export function getProperties(obj) {
177
+ const result = {};
178
+ for (const property in obj) {
179
+ // eslint-disable-next-line no-prototype-builtins
180
+ if (obj.hasOwnProperty(property) && !property.startsWith('_')) {
181
+ result[property] = obj[property];
182
+ }
183
+ }
184
+ return result;
185
+ }
186
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/circuits/common.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,126 @@
1
+ /**
2
+ * List of available operators.
3
+ *
4
+ * @export
5
+ * @enum {number}
6
+ */
7
+ export var Operators;
8
+ (function (Operators) {
9
+ Operators[Operators["NOOP"] = 0] = "NOOP";
10
+ Operators[Operators["EQ"] = 1] = "EQ";
11
+ Operators[Operators["LT"] = 2] = "LT";
12
+ Operators[Operators["GT"] = 3] = "GT";
13
+ Operators[Operators["IN"] = 4] = "IN";
14
+ Operators[Operators["NIN"] = 5] = "NIN";
15
+ Operators[Operators["NE"] = 6] = "NE";
16
+ })(Operators || (Operators = {}));
17
+ /** QueryOperators represents operators for atomic circuits */
18
+ export const QueryOperators = {
19
+ $noop: Operators.NOOP,
20
+ $eq: Operators.EQ,
21
+ $lt: Operators.LT,
22
+ $gt: Operators.GT,
23
+ $in: Operators.IN,
24
+ $nin: Operators.NIN,
25
+ $ne: Operators.NE
26
+ };
27
+ /**
28
+ * Scalar is used to compare two scalar value.
29
+ *
30
+ * @export
31
+ * @beta
32
+ * @class Scalar
33
+ * @implements implements IComparer interface
34
+ */
35
+ export class Scalar {
36
+ /**
37
+ * Creates an instance of Scalar.
38
+ * @param {bigint} x - val x
39
+ * @param {bigint} y - val y
40
+ */
41
+ constructor(x, y) {
42
+ this.x = x;
43
+ this.y = y;
44
+ }
45
+ /**
46
+ * compares two scalar values
47
+ *
48
+ * @param {Operators} operator - EQ / LT / GT
49
+ * @returns boolean
50
+ */
51
+ compare(operator) {
52
+ switch (operator) {
53
+ case Operators.EQ:
54
+ return this.x === this.y;
55
+ case Operators.LT:
56
+ return this.x < this.y;
57
+ case Operators.GT:
58
+ return this.x > this.y;
59
+ case Operators.NE:
60
+ return this.x !== this.y;
61
+ default:
62
+ throw new Error('unknown compare type for scalar');
63
+ }
64
+ }
65
+ }
66
+ /**
67
+ * Vector uses for find/not find x scalar type in y vector type.
68
+ *
69
+ * @export
70
+ * @beta
71
+ * @class Vector
72
+ * @implements implements IComparer interface
73
+ */
74
+ export class Vector {
75
+ /**
76
+ * Creates an instance of Vector.
77
+ * @param {bigint} x - val x
78
+ * @param {bigint[]} y - array values y
79
+ */
80
+ constructor(x, y) {
81
+ this.x = x;
82
+ this.y = y;
83
+ }
84
+ /**
85
+ *
86
+ *
87
+ * @param {Operators} operator - IN / NIN
88
+ * @returns boolean
89
+ */
90
+ compare(operator) {
91
+ switch (operator) {
92
+ case Operators.IN:
93
+ return this.y.includes(this.x);
94
+ case Operators.NIN:
95
+ return !this.y.includes(this.x);
96
+ default:
97
+ throw new Error('unknown compare type for vector');
98
+ }
99
+ }
100
+ }
101
+ /**
102
+ * FactoryComparer depends on input data will return right comparer.
103
+ *
104
+ * @param {bigint} x - val x
105
+ * @param {bigint[]} y - array of values y
106
+ * @param {Operators} operator - EQ / LT / GT / IN / NIN
107
+ * @returns IComparer
108
+ */
109
+ export const factoryComparer = (x, y, operator) => {
110
+ switch (operator) {
111
+ case Operators.EQ:
112
+ case Operators.LT:
113
+ case Operators.GT:
114
+ case Operators.NE:
115
+ if (y.length !== 1) {
116
+ throw new Error('currently we support only one value for scalar comparison');
117
+ }
118
+ return new Scalar(x, y[0]);
119
+ case Operators.IN:
120
+ case Operators.NIN:
121
+ return new Vector(x, y);
122
+ default:
123
+ throw new Error('unknown compare type');
124
+ }
125
+ };
126
+ //# sourceMappingURL=comparer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comparer.js","sourceRoot":"","sources":["../../../src/circuits/comparer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export * from './common';
2
+ export * from './models';
3
+ export * from './comparer';
4
+ export * from './atomic-query-mtp-v2';
5
+ export * from './atomic-query-sig-v2';
6
+ export * from './auth-v2';
7
+ export * from './state-transition';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/circuits/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,104 @@
1
+ import { Proof } from '@iden3/js-merkletree';
2
+ /**
3
+ * Query represents basic request to claim slot verification
4
+ *
5
+ * @export
6
+ * @beta
7
+ * @class Query
8
+ */
9
+ export class Query {
10
+ /**
11
+ * Validates Query instance
12
+ *
13
+ */
14
+ validate() {
15
+ if (this.values.some((v) => typeof v !== 'bigint'))
16
+ throw new Error(CircuitError.EmptyQueryValue);
17
+ }
18
+ }
19
+ /**
20
+ * CircuitID is alias for circuit identifier
21
+ *
22
+ * @export
23
+ * @enum {number}
24
+ */
25
+ export var CircuitId;
26
+ (function (CircuitId) {
27
+ // Auth is a type that must be used for authV2.circom
28
+ CircuitId["AuthV2"] = "authV2";
29
+ // StateTransition is a type that must be used for stateTransition.circom
30
+ CircuitId["StateTransition"] = "stateTransition";
31
+ // AtomicQueryMTPV2 is a type for credentialAtomicQueryMTPV2.circom
32
+ CircuitId["AtomicQueryMTPV2"] = "credentialAtomicQueryMTPV2";
33
+ // AtomicQuerySig is a type for credentialAttrQuerySig.circom
34
+ CircuitId["AtomicQuerySigV2"] = "credentialAtomicQuerySigV2";
35
+ })(CircuitId || (CircuitId = {}));
36
+ /**
37
+ * Claim structure for circuit inputs
38
+ *
39
+ * @export
40
+ * @beta
41
+ * @class CircuitClaim
42
+ */
43
+ export class CircuitClaim {
44
+ }
45
+ /**
46
+ * List of errors of circuit inputs processing
47
+ *
48
+ * @export
49
+ * @enum {number}
50
+ */
51
+ export var CircuitError;
52
+ (function (CircuitError) {
53
+ CircuitError["EmptyAuthClaimProof"] = "empty auth claim mtp proof";
54
+ CircuitError["EmptyAuthClaimProofInTheNewState"] = "empty auth claim mtp proof in the new state";
55
+ CircuitError["EmptyAuthClaimNonRevProof"] = "empty auth claim non-revocation mtp proof";
56
+ CircuitError["EmptyChallengeSignature"] = "empty challenge signature";
57
+ CircuitError["EmptyClaimSignature"] = "empty claim signature";
58
+ CircuitError["EmptyClaimProof"] = "empty claim mtp proof";
59
+ CircuitError["EmptyClaimNonRevProof"] = "empty claim non-revocation mtp proof";
60
+ CircuitError["EmptyIssuerAuthClaimProof"] = "empty issuer auth claim mtp proof";
61
+ CircuitError["EmptyIssuerAuthClaimNonRevProof"] = "empty issuer auth claim non-revocation mtp proof";
62
+ CircuitError["EmptyJsonLDQueryProof"] = "empty JSON-LD query mtp proof";
63
+ CircuitError["EmptyJsonLDQueryValue"] = "empty JSON-LD query value";
64
+ CircuitError["EmptyJsonLDQueryPath"] = "empty JSON-LD query path";
65
+ CircuitError["EmptyQueryValue"] = "empty query value";
66
+ CircuitError["EmptyJsonLDQueryValues"] = "empty JSON-LD query values";
67
+ CircuitError["EmptyId"] = "empty Id";
68
+ CircuitError["EmptyChallenge"] = "empty challenge";
69
+ CircuitError["EmptyGlobalProof"] = "empty global identity mtp proof";
70
+ CircuitError["EmptyRequestID"] = "empty request ID";
71
+ })(CircuitError || (CircuitError = {}));
72
+ /**
73
+ * ValueProof represents a Merkle Proof for a value stored as MT
74
+ *
75
+ * @export
76
+ * @beta
77
+ * @class ValueProof
78
+ */
79
+ export class ValueProof {
80
+ /**
81
+ * Creates an instance of ValueProof.
82
+ */
83
+ constructor() {
84
+ this.path = BigInt(0);
85
+ this.value = BigInt(0);
86
+ this.mtp = new Proof();
87
+ }
88
+ /**
89
+ * validates instance of ValueProof
90
+ *
91
+ */
92
+ validate() {
93
+ if (!this.path) {
94
+ throw new Error(CircuitError.EmptyJsonLDQueryPath);
95
+ }
96
+ if (!this.value) {
97
+ throw new Error(CircuitError.EmptyJsonLDQueryValue);
98
+ }
99
+ if (!this.mtp) {
100
+ throw new Error(CircuitError.EmptyJsonLDQueryProof);
101
+ }
102
+ }
103
+ }
104
+ //# sourceMappingURL=models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/circuits/models.ts"],"names":[],"mappings":"AAEA,OAAO,EAAQ,KAAK,EAAE,MAAM,sBAAsB,CAAC;AA4BnD;;;;;;GAMG;AACH,MAAM,OAAO,KAAK;IAMhB;;;OAGG;IACH,QAAQ;QACN,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;IAClD,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,CAAN,IAAY,SASX;AATD,WAAY,SAAS;IACnB,qDAAqD;IACrD,8BAAiB,CAAA;IACjB,yEAAyE;IACzE,gDAAmC,CAAA;IACnC,mEAAmE;IACnE,4DAA+C,CAAA;IAC/C,6DAA6D;IAC7D,4DAA+C,CAAA;AACjD,CAAC,EATW,SAAS,KAAT,SAAS,QASpB;AAED;;;;;;GAMG;AACH,MAAM,OAAO,YAAY;CAOxB;AAmED;;;;;GAKG;AACH,MAAM,CAAN,IAAY,YAmBX;AAnBD,WAAY,YAAY;IACtB,kEAAkD,CAAA;IAClD,gGAAgF,CAAA;IAChF,uFAAuE,CAAA;IACvE,qEAAqD,CAAA;IACrD,6DAA6C,CAAA;IAC7C,yDAAyC,CAAA;IACzC,8EAA8D,CAAA;IAC9D,+EAA+D,CAAA;IAC/D,oGAAoF,CAAA;IACpF,uEAAuD,CAAA;IACvD,mEAAmD,CAAA;IACnD,iEAAiD,CAAA;IACjD,qDAAqC,CAAA;IACrC,qEAAqD,CAAA;IACrD,oCAAoB,CAAA;IACpB,kDAAkC,CAAA;IAClC,oEAAoD,CAAA;IACpD,mDAAmC,CAAA;AACrC,CAAC,EAnBW,YAAY,KAAZ,YAAY,QAmBvB;AAED;;;;;;GAMG;AACH,MAAM,OAAO,UAAU;IAKrB;;OAEG;IACH;QACE,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,QAAQ;QACN,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC;SACpD;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC;SACrD;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC;SACrD;IACH,CAAC;CACF"}
@@ -0,0 +1,89 @@
1
+ import { Id } from '@iden3/js-iden3-core';
2
+ import { newHashFromString } from '@iden3/js-merkletree';
3
+ import { BaseConfig, getNodeAuxValue, prepareSiblingsStr } from './common';
4
+ import { CircuitError } from './models';
5
+ /**
6
+ * StateTransition circuit representation
7
+ * Inputs and public signals declaration, marshalling and parsing
8
+ *
9
+ * @export
10
+ * @beta
11
+ * @class StateTransitionInputs
12
+ * @extends {BaseConfig}
13
+ */
14
+ export class StateTransitionInputs extends BaseConfig {
15
+ /**
16
+ * CircuitInputMarshal returns Circom private inputs for stateTransition.circom
17
+ *
18
+ * @returns Uint8Array
19
+ */
20
+ inputsMarshal() {
21
+ if (!this.authClaim.incProof.proof) {
22
+ throw new Error(CircuitError.EmptyAuthClaimProof);
23
+ }
24
+ if (!this.authClaimNewStateIncProof) {
25
+ throw new Error(CircuitError.EmptyAuthClaimProofInTheNewState);
26
+ }
27
+ if (!this.authClaim.nonRevProof.proof) {
28
+ throw new Error(CircuitError.EmptyAuthClaimNonRevProof);
29
+ }
30
+ const s = {
31
+ authClaim: this.authClaim.claim.marshalJson(),
32
+ authClaimMtp: prepareSiblingsStr(this.authClaim.incProof.proof, this.getMTLevel()),
33
+ authClaimNonRevMtp: prepareSiblingsStr(this.authClaim.nonRevProof.proof, this.getMTLevel()),
34
+ newAuthClaimMtp: prepareSiblingsStr(this.authClaimNewStateIncProof, this.getMTLevel()),
35
+ userID: this.id.bigInt().toString(),
36
+ newUserState: this.newTreeState.state.bigInt().toString(),
37
+ claimsTreeRoot: this.oldTreeState.claimsRoot.bigInt().toString(),
38
+ oldUserState: this.oldTreeState.state.bigInt().toString(),
39
+ revTreeRoot: this.oldTreeState.revocationRoot.bigInt().toString(),
40
+ rootsTreeRoot: this.oldTreeState.rootOfRoots.bigInt().toString(),
41
+ signatureR8x: this.signature.R8[0].toString(),
42
+ signatureR8y: this.signature.R8[1].toString(),
43
+ signatureS: this.signature.S.toString(),
44
+ newClaimsTreeRoot: this.newTreeState.claimsRoot.bigInt().toString(),
45
+ newRootsTreeRoot: this.newTreeState.rootOfRoots.bigInt().toString(),
46
+ newRevTreeRoot: this.newTreeState.revocationRoot.bigInt().toString()
47
+ };
48
+ if (this.isOldStateGenesis) {
49
+ s.isOldStateGenesis = '1';
50
+ }
51
+ else {
52
+ s.isOldStateGenesis = '0';
53
+ }
54
+ const nodeAuxAuth = getNodeAuxValue(this.authClaim.nonRevProof.proof);
55
+ s.authClaimNonRevMtpAuxHi = nodeAuxAuth.key.bigInt().toString();
56
+ s.authClaimNonRevMtpAuxHv = nodeAuxAuth.value.bigInt().toString();
57
+ s.authClaimNonRevMtpNoAux = nodeAuxAuth.noAux;
58
+ return new TextEncoder().encode(JSON.stringify(s));
59
+ }
60
+ }
61
+ /**
62
+ * Public signals of StateTransition circuit
63
+ *
64
+ * @export
65
+ * @beta
66
+ * @class StateTransitionPubSignals
67
+ */
68
+ export class StateTransitionPubSignals {
69
+ /**
70
+ *
71
+ *
72
+ * PubSignalsUnmarshal unmarshal stateTransition.circom public signal
73
+ * @param {Uint8Array} data
74
+ * @returns StateTransitionPubSignals
75
+ */
76
+ pubSignalsUnmarshal(data) {
77
+ const sVals = JSON.parse(new TextDecoder().decode(data));
78
+ const fieldLength = 4;
79
+ if (sVals.length !== fieldLength) {
80
+ throw new Error(`invalid number of Output values expected ${fieldLength} got ${sVals.length}`);
81
+ }
82
+ this.userId = Id.fromBigInt(BigInt(sVals[0]));
83
+ this.oldUserState = newHashFromString(sVals[1]);
84
+ this.newUserState = newHashFromString(sVals[2]);
85
+ this.isOldStateGenesis = BigInt(sVals[3]) === BigInt(1);
86
+ return this;
87
+ }
88
+ }
89
+ //# sourceMappingURL=state-transition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-transition.js","sourceRoot":"","sources":["../../../src/circuits/state-transition.ts"],"names":[],"mappings":"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"}