@mocanetwork/privado-js-sdk 1.0.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 (517) hide show
  1. package/README.md +75 -0
  2. package/dist/browser/esm/index.js +14901 -0
  3. package/dist/browser/esm/index.js.map +1 -0
  4. package/dist/browser/umd/index.global.js +678 -0
  5. package/dist/browser/umd/index.global.js.map +1 -0
  6. package/dist/node/cjs/index.cjs +15418 -0
  7. package/dist/node/cjs/index.cjs.map +1 -0
  8. package/dist/node/esm/index.js +14901 -0
  9. package/dist/node/esm/index.js.map +1 -0
  10. package/dist/types/blockchain/index.d.ts +2 -0
  11. package/dist/types/blockchain/index.d.ts.map +1 -0
  12. package/dist/types/blockchain/transaction-service.d.ts +81 -0
  13. package/dist/types/blockchain/transaction-service.d.ts.map +1 -0
  14. package/dist/types/circuits/atomic-query-mtp-v2-on-chain.d.ts +70 -0
  15. package/dist/types/circuits/atomic-query-mtp-v2-on-chain.d.ts.map +1 -0
  16. package/dist/types/circuits/atomic-query-mtp-v2.d.ts +63 -0
  17. package/dist/types/circuits/atomic-query-mtp-v2.d.ts.map +1 -0
  18. package/dist/types/circuits/atomic-query-sig-v2-on-chain.d.ts +137 -0
  19. package/dist/types/circuits/atomic-query-sig-v2-on-chain.d.ts.map +1 -0
  20. package/dist/types/circuits/atomic-query-sig-v2.d.ts +64 -0
  21. package/dist/types/circuits/atomic-query-sig-v2.d.ts.map +1 -0
  22. package/dist/types/circuits/atomic-query-v3-on-chain.d.ts +141 -0
  23. package/dist/types/circuits/atomic-query-v3-on-chain.d.ts.map +1 -0
  24. package/dist/types/circuits/atomic-query-v3.d.ts +121 -0
  25. package/dist/types/circuits/atomic-query-v3.d.ts.map +1 -0
  26. package/dist/types/circuits/auth-v2.d.ts +46 -0
  27. package/dist/types/circuits/auth-v2.d.ts.map +1 -0
  28. package/dist/types/circuits/common.d.ts +153 -0
  29. package/dist/types/circuits/common.d.ts.map +1 -0
  30. package/dist/types/circuits/comparer.d.ts +122 -0
  31. package/dist/types/circuits/comparer.d.ts.map +1 -0
  32. package/dist/types/circuits/index.d.ts +13 -0
  33. package/dist/types/circuits/index.d.ts.map +1 -0
  34. package/dist/types/circuits/linked-multi-query.d.ts +38 -0
  35. package/dist/types/circuits/linked-multi-query.d.ts.map +1 -0
  36. package/dist/types/circuits/models.d.ts +189 -0
  37. package/dist/types/circuits/models.d.ts.map +1 -0
  38. package/dist/types/circuits/state-transition.d.ts +49 -0
  39. package/dist/types/circuits/state-transition.d.ts.map +1 -0
  40. package/dist/types/credentials/credential-wallet.d.ts +200 -0
  41. package/dist/types/credentials/credential-wallet.d.ts.map +1 -0
  42. package/dist/types/credentials/index.d.ts +12 -0
  43. package/dist/types/credentials/index.d.ts.map +1 -0
  44. package/dist/types/credentials/models.d.ts +84 -0
  45. package/dist/types/credentials/models.d.ts.map +1 -0
  46. package/dist/types/credentials/rhs.d.ts +38 -0
  47. package/dist/types/credentials/rhs.d.ts.map +1 -0
  48. package/dist/types/credentials/status/agent-revocation.d.ts +20 -0
  49. package/dist/types/credentials/status/agent-revocation.d.ts.map +1 -0
  50. package/dist/types/credentials/status/credential-status-publisher.d.ts +73 -0
  51. package/dist/types/credentials/status/credential-status-publisher.d.ts.map +1 -0
  52. package/dist/types/credentials/status/did-resolver-revocation.d.ts +8 -0
  53. package/dist/types/credentials/status/did-resolver-revocation.d.ts.map +1 -0
  54. package/dist/types/credentials/status/on-chain-revocation.d.ts +58 -0
  55. package/dist/types/credentials/status/on-chain-revocation.d.ts.map +1 -0
  56. package/dist/types/credentials/status/resolver.d.ts +69 -0
  57. package/dist/types/credentials/status/resolver.d.ts.map +1 -0
  58. package/dist/types/credentials/status/reverse-sparse-merkle-tree.d.ts +126 -0
  59. package/dist/types/credentials/status/reverse-sparse-merkle-tree.d.ts.map +1 -0
  60. package/dist/types/credentials/status/sparse-merkle-tree.d.ts +38 -0
  61. package/dist/types/credentials/status/sparse-merkle-tree.d.ts.map +1 -0
  62. package/dist/types/credentials/utils.d.ts +15 -0
  63. package/dist/types/credentials/utils.d.ts.map +1 -0
  64. package/dist/types/iden3comm/constants.d.ts +61 -0
  65. package/dist/types/iden3comm/constants.d.ts.map +1 -0
  66. package/dist/types/iden3comm/errors.d.ts +10 -0
  67. package/dist/types/iden3comm/errors.d.ts.map +1 -0
  68. package/dist/types/iden3comm/handlers/auth.d.ts +157 -0
  69. package/dist/types/iden3comm/handlers/auth.d.ts.map +1 -0
  70. package/dist/types/iden3comm/handlers/common.d.ts +72 -0
  71. package/dist/types/iden3comm/handlers/common.d.ts.map +1 -0
  72. package/dist/types/iden3comm/handlers/contract-request.d.ts +96 -0
  73. package/dist/types/iden3comm/handlers/contract-request.d.ts.map +1 -0
  74. package/dist/types/iden3comm/handlers/credential-proposal.d.ts +120 -0
  75. package/dist/types/iden3comm/handlers/credential-proposal.d.ts.map +1 -0
  76. package/dist/types/iden3comm/handlers/discovery-protocol.d.ts +101 -0
  77. package/dist/types/iden3comm/handlers/discovery-protocol.d.ts.map +1 -0
  78. package/dist/types/iden3comm/handlers/fetch.d.ts +130 -0
  79. package/dist/types/iden3comm/handlers/fetch.d.ts.map +1 -0
  80. package/dist/types/iden3comm/handlers/index.d.ts +12 -0
  81. package/dist/types/iden3comm/handlers/index.d.ts.map +1 -0
  82. package/dist/types/iden3comm/handlers/message-handler.d.ts +93 -0
  83. package/dist/types/iden3comm/handlers/message-handler.d.ts.map +1 -0
  84. package/dist/types/iden3comm/handlers/payment.d.ts +167 -0
  85. package/dist/types/iden3comm/handlers/payment.d.ts.map +1 -0
  86. package/dist/types/iden3comm/handlers/problem-report.d.ts +18 -0
  87. package/dist/types/iden3comm/handlers/problem-report.d.ts.map +1 -0
  88. package/dist/types/iden3comm/handlers/refresh.d.ts +57 -0
  89. package/dist/types/iden3comm/handlers/refresh.d.ts.map +1 -0
  90. package/dist/types/iden3comm/handlers/revocation-status.d.ts +76 -0
  91. package/dist/types/iden3comm/handlers/revocation-status.d.ts.map +1 -0
  92. package/dist/types/iden3comm/index.d.ts +9 -0
  93. package/dist/types/iden3comm/index.d.ts.map +1 -0
  94. package/dist/types/iden3comm/packageManager.d.ts +47 -0
  95. package/dist/types/iden3comm/packageManager.d.ts.map +1 -0
  96. package/dist/types/iden3comm/packers/index.d.ts +4 -0
  97. package/dist/types/iden3comm/packers/index.d.ts.map +1 -0
  98. package/dist/types/iden3comm/packers/jws.d.ts +56 -0
  99. package/dist/types/iden3comm/packers/jws.d.ts.map +1 -0
  100. package/dist/types/iden3comm/packers/plain.d.ts +47 -0
  101. package/dist/types/iden3comm/packers/plain.d.ts.map +1 -0
  102. package/dist/types/iden3comm/packers/zkp.d.ts +98 -0
  103. package/dist/types/iden3comm/packers/zkp.d.ts.map +1 -0
  104. package/dist/types/iden3comm/types/index.d.ts +17 -0
  105. package/dist/types/iden3comm/types/index.d.ts.map +1 -0
  106. package/dist/types/iden3comm/types/models.d.ts +7 -0
  107. package/dist/types/iden3comm/types/models.d.ts.map +1 -0
  108. package/dist/types/iden3comm/types/packageManager.d.ts +100 -0
  109. package/dist/types/iden3comm/types/packageManager.d.ts.map +1 -0
  110. package/dist/types/iden3comm/types/packer.d.ts +158 -0
  111. package/dist/types/iden3comm/types/packer.d.ts.map +1 -0
  112. package/dist/types/iden3comm/types/protocol/accept-profile.d.ts +8 -0
  113. package/dist/types/iden3comm/types/protocol/accept-profile.d.ts.map +1 -0
  114. package/dist/types/iden3comm/types/protocol/attachment.d.ts +11 -0
  115. package/dist/types/iden3comm/types/protocol/attachment.d.ts.map +1 -0
  116. package/dist/types/iden3comm/types/protocol/auth.d.ts +90 -0
  117. package/dist/types/iden3comm/types/protocol/auth.d.ts.map +1 -0
  118. package/dist/types/iden3comm/types/protocol/common.d.ts +11 -0
  119. package/dist/types/iden3comm/types/protocol/common.d.ts.map +1 -0
  120. package/dist/types/iden3comm/types/protocol/contract-request.d.ts +62 -0
  121. package/dist/types/iden3comm/types/protocol/contract-request.d.ts.map +1 -0
  122. package/dist/types/iden3comm/types/protocol/credentials.d.ts +82 -0
  123. package/dist/types/iden3comm/types/protocol/credentials.d.ts.map +1 -0
  124. package/dist/types/iden3comm/types/protocol/discovery-protocol.d.ts +42 -0
  125. package/dist/types/iden3comm/types/protocol/discovery-protocol.d.ts.map +1 -0
  126. package/dist/types/iden3comm/types/protocol/messages.d.ts +12 -0
  127. package/dist/types/iden3comm/types/protocol/messages.d.ts.map +1 -0
  128. package/dist/types/iden3comm/types/protocol/payment.d.ts +178 -0
  129. package/dist/types/iden3comm/types/protocol/payment.d.ts.map +1 -0
  130. package/dist/types/iden3comm/types/protocol/problem-report.d.ts +17 -0
  131. package/dist/types/iden3comm/types/protocol/problem-report.d.ts.map +1 -0
  132. package/dist/types/iden3comm/types/protocol/proof.d.ts +22 -0
  133. package/dist/types/iden3comm/types/protocol/proof.d.ts.map +1 -0
  134. package/dist/types/iden3comm/types/protocol/proposal-request.d.ts +33 -0
  135. package/dist/types/iden3comm/types/protocol/proposal-request.d.ts.map +1 -0
  136. package/dist/types/iden3comm/types/protocol/revocation.d.ts +20 -0
  137. package/dist/types/iden3comm/types/protocol/revocation.d.ts.map +1 -0
  138. package/dist/types/iden3comm/utils/accept-profile.d.ts +4 -0
  139. package/dist/types/iden3comm/utils/accept-profile.d.ts.map +1 -0
  140. package/dist/types/iden3comm/utils/did.d.ts +8 -0
  141. package/dist/types/iden3comm/utils/did.d.ts.map +1 -0
  142. package/dist/types/iden3comm/utils/envelope.d.ts +32 -0
  143. package/dist/types/iden3comm/utils/envelope.d.ts.map +1 -0
  144. package/dist/types/iden3comm/utils/index.d.ts +5 -0
  145. package/dist/types/iden3comm/utils/index.d.ts.map +1 -0
  146. package/dist/types/iden3comm/utils/message.d.ts +20 -0
  147. package/dist/types/iden3comm/utils/message.d.ts.map +1 -0
  148. package/dist/types/identity/common.d.ts +27 -0
  149. package/dist/types/identity/common.d.ts.map +1 -0
  150. package/dist/types/identity/identity-wallet.d.ts +472 -0
  151. package/dist/types/identity/identity-wallet.d.ts.map +1 -0
  152. package/dist/types/identity/index.d.ts +3 -0
  153. package/dist/types/identity/index.d.ts.map +1 -0
  154. package/dist/types/index.d.ts +17 -0
  155. package/dist/types/index.d.ts.map +1 -0
  156. package/dist/types/kms/index.d.ts +5 -0
  157. package/dist/types/kms/index.d.ts.map +1 -0
  158. package/dist/types/kms/key-providers/bjj-provider.d.ts +54 -0
  159. package/dist/types/kms/key-providers/bjj-provider.d.ts.map +1 -0
  160. package/dist/types/kms/key-providers/ed25519-provider.d.ts +61 -0
  161. package/dist/types/kms/key-providers/ed25519-provider.d.ts.map +1 -0
  162. package/dist/types/kms/key-providers/index.d.ts +4 -0
  163. package/dist/types/kms/key-providers/index.d.ts.map +1 -0
  164. package/dist/types/kms/key-providers/secp256k1-provider.d.ts +62 -0
  165. package/dist/types/kms/key-providers/secp256k1-provider.d.ts.map +1 -0
  166. package/dist/types/kms/kms.d.ts +120 -0
  167. package/dist/types/kms/kms.d.ts.map +1 -0
  168. package/dist/types/kms/provider-helpers.d.ts +10 -0
  169. package/dist/types/kms/provider-helpers.d.ts.map +1 -0
  170. package/dist/types/kms/store/abstract-key-store.d.ts +41 -0
  171. package/dist/types/kms/store/abstract-key-store.d.ts.map +1 -0
  172. package/dist/types/kms/store/index.d.ts +6 -0
  173. package/dist/types/kms/store/index.d.ts.map +1 -0
  174. package/dist/types/kms/store/indexed-db-key-store.d.ts +44 -0
  175. package/dist/types/kms/store/indexed-db-key-store.d.ts.map +1 -0
  176. package/dist/types/kms/store/local-storage-key-store.d.ts +42 -0
  177. package/dist/types/kms/store/local-storage-key-store.d.ts.map +1 -0
  178. package/dist/types/kms/store/memory-key-store.d.ts +24 -0
  179. package/dist/types/kms/store/memory-key-store.d.ts.map +1 -0
  180. package/dist/types/kms/store/types.d.ts +21 -0
  181. package/dist/types/kms/store/types.d.ts.map +1 -0
  182. package/dist/types/proof/common.d.ts +49 -0
  183. package/dist/types/proof/common.d.ts.map +1 -0
  184. package/dist/types/proof/index.d.ts +5 -0
  185. package/dist/types/proof/index.d.ts.map +1 -0
  186. package/dist/types/proof/proof-service.d.ts +169 -0
  187. package/dist/types/proof/proof-service.d.ts.map +1 -0
  188. package/dist/types/proof/provers/index.d.ts +4 -0
  189. package/dist/types/proof/provers/index.d.ts.map +1 -0
  190. package/dist/types/proof/provers/inputs-generator.d.ts +57 -0
  191. package/dist/types/proof/provers/inputs-generator.d.ts.map +1 -0
  192. package/dist/types/proof/provers/prover.d.ts +56 -0
  193. package/dist/types/proof/provers/prover.d.ts.map +1 -0
  194. package/dist/types/proof/provers/witness_calculator.d.ts +17 -0
  195. package/dist/types/proof/provers/witness_calculator.d.ts.map +1 -0
  196. package/dist/types/proof/verifiers/index.d.ts +4 -0
  197. package/dist/types/proof/verifiers/index.d.ts.map +1 -0
  198. package/dist/types/proof/verifiers/pub-signals-verifier.d.ts +60 -0
  199. package/dist/types/proof/verifiers/pub-signals-verifier.d.ts.map +1 -0
  200. package/dist/types/proof/verifiers/query-hash.d.ts +4 -0
  201. package/dist/types/proof/verifiers/query-hash.d.ts.map +1 -0
  202. package/dist/types/proof/verifiers/query.d.ts +43 -0
  203. package/dist/types/proof/verifiers/query.d.ts.map +1 -0
  204. package/dist/types/schema-processor/index.d.ts +4 -0
  205. package/dist/types/schema-processor/index.d.ts.map +1 -0
  206. package/dist/types/schema-processor/json/index.d.ts +3 -0
  207. package/dist/types/schema-processor/json/index.d.ts.map +1 -0
  208. package/dist/types/schema-processor/json/parser.d.ts +141 -0
  209. package/dist/types/schema-processor/json/parser.d.ts.map +1 -0
  210. package/dist/types/schema-processor/json/validator.d.ts +26 -0
  211. package/dist/types/schema-processor/json/validator.d.ts.map +1 -0
  212. package/dist/types/schema-processor/jsonld/cache.d.ts +3 -0
  213. package/dist/types/schema-processor/jsonld/cache.d.ts.map +1 -0
  214. package/dist/types/schema-processor/jsonld/index.d.ts +3 -0
  215. package/dist/types/schema-processor/jsonld/index.d.ts.map +1 -0
  216. package/dist/types/schema-processor/jsonld/parser.d.ts +30 -0
  217. package/dist/types/schema-processor/jsonld/parser.d.ts.map +1 -0
  218. package/dist/types/schema-processor/utils.d.ts +54 -0
  219. package/dist/types/schema-processor/utils.d.ts.map +1 -0
  220. package/dist/types/storage/blockchain/common.d.ts +8 -0
  221. package/dist/types/storage/blockchain/common.d.ts.map +1 -0
  222. package/dist/types/storage/blockchain/did-resolver-readonly-storage.d.ts +17 -0
  223. package/dist/types/storage/blockchain/did-resolver-readonly-storage.d.ts.map +1 -0
  224. package/dist/types/storage/blockchain/erc20-helper.d.ts +20 -0
  225. package/dist/types/storage/blockchain/erc20-helper.d.ts.map +1 -0
  226. package/dist/types/storage/blockchain/errors.d.ts +4 -0
  227. package/dist/types/storage/blockchain/errors.d.ts.map +1 -0
  228. package/dist/types/storage/blockchain/index.d.ts +8 -0
  229. package/dist/types/storage/blockchain/index.d.ts.map +1 -0
  230. package/dist/types/storage/blockchain/onchain-issuer-adapter/non-merklized/version/v0.0.1/onchain-non-merklized-issuer-adapter.d.ts +67 -0
  231. package/dist/types/storage/blockchain/onchain-issuer-adapter/non-merklized/version/v0.0.1/onchain-non-merklized-issuer-adapter.d.ts.map +1 -0
  232. package/dist/types/storage/blockchain/onchain-issuer.d.ts +41 -0
  233. package/dist/types/storage/blockchain/onchain-issuer.d.ts.map +1 -0
  234. package/dist/types/storage/blockchain/onchain-revocation.d.ts +41 -0
  235. package/dist/types/storage/blockchain/onchain-revocation.d.ts.map +1 -0
  236. package/dist/types/storage/blockchain/onchain-zkp-verifier.d.ts +116 -0
  237. package/dist/types/storage/blockchain/onchain-zkp-verifier.d.ts.map +1 -0
  238. package/dist/types/storage/blockchain/state.d.ts +127 -0
  239. package/dist/types/storage/blockchain/state.d.ts.map +1 -0
  240. package/dist/types/storage/entities/circuitData.d.ts +8 -0
  241. package/dist/types/storage/entities/circuitData.d.ts.map +1 -0
  242. package/dist/types/storage/entities/identity.d.ts +17 -0
  243. package/dist/types/storage/entities/identity.d.ts.map +1 -0
  244. package/dist/types/storage/entities/index.d.ts +5 -0
  245. package/dist/types/storage/entities/index.d.ts.map +1 -0
  246. package/dist/types/storage/entities/mt.d.ts +22 -0
  247. package/dist/types/storage/entities/mt.d.ts.map +1 -0
  248. package/dist/types/storage/entities/state.d.ts +92 -0
  249. package/dist/types/storage/entities/state.d.ts.map +1 -0
  250. package/dist/types/storage/errors.d.ts +9 -0
  251. package/dist/types/storage/errors.d.ts.map +1 -0
  252. package/dist/types/storage/filters/index.d.ts +2 -0
  253. package/dist/types/storage/filters/index.d.ts.map +1 -0
  254. package/dist/types/storage/filters/jsonQuery.d.ts +83 -0
  255. package/dist/types/storage/filters/jsonQuery.d.ts.map +1 -0
  256. package/dist/types/storage/fs/circuits-storage.d.ts +64 -0
  257. package/dist/types/storage/fs/circuits-storage.d.ts.map +1 -0
  258. package/dist/types/storage/fs/index.d.ts +2 -0
  259. package/dist/types/storage/fs/index.d.ts.map +1 -0
  260. package/dist/types/storage/index.d.ts +10 -0
  261. package/dist/types/storage/index.d.ts.map +1 -0
  262. package/dist/types/storage/indexed-db/data-source.d.ts +44 -0
  263. package/dist/types/storage/indexed-db/data-source.d.ts.map +1 -0
  264. package/dist/types/storage/indexed-db/index.d.ts +3 -0
  265. package/dist/types/storage/indexed-db/index.d.ts.map +1 -0
  266. package/dist/types/storage/indexed-db/merkletree.d.ts +43 -0
  267. package/dist/types/storage/indexed-db/merkletree.d.ts.map +1 -0
  268. package/dist/types/storage/interfaces/circuits.d.ts +26 -0
  269. package/dist/types/storage/interfaces/circuits.d.ts.map +1 -0
  270. package/dist/types/storage/interfaces/credentials.d.ts +53 -0
  271. package/dist/types/storage/interfaces/credentials.d.ts.map +1 -0
  272. package/dist/types/storage/interfaces/data-source.d.ts +39 -0
  273. package/dist/types/storage/interfaces/data-source.d.ts.map +1 -0
  274. package/dist/types/storage/interfaces/data-storage.d.ts +17 -0
  275. package/dist/types/storage/interfaces/data-storage.d.ts.map +1 -0
  276. package/dist/types/storage/interfaces/identity.d.ts +70 -0
  277. package/dist/types/storage/interfaces/identity.d.ts.map +1 -0
  278. package/dist/types/storage/interfaces/index.d.ts +11 -0
  279. package/dist/types/storage/interfaces/index.d.ts.map +1 -0
  280. package/dist/types/storage/interfaces/merkletree.d.ts +44 -0
  281. package/dist/types/storage/interfaces/merkletree.d.ts.map +1 -0
  282. package/dist/types/storage/interfaces/onchain-issuer.d.ts +13 -0
  283. package/dist/types/storage/interfaces/onchain-issuer.d.ts.map +1 -0
  284. package/dist/types/storage/interfaces/onchain-revocation.d.ts +19 -0
  285. package/dist/types/storage/interfaces/onchain-revocation.d.ts.map +1 -0
  286. package/dist/types/storage/interfaces/onchain-zkp-verifier.d.ts +63 -0
  287. package/dist/types/storage/interfaces/onchain-zkp-verifier.d.ts.map +1 -0
  288. package/dist/types/storage/interfaces/state.d.ts +74 -0
  289. package/dist/types/storage/interfaces/state.d.ts.map +1 -0
  290. package/dist/types/storage/local-storage/data-source.d.ts +41 -0
  291. package/dist/types/storage/local-storage/data-source.d.ts.map +1 -0
  292. package/dist/types/storage/local-storage/index.d.ts +3 -0
  293. package/dist/types/storage/local-storage/index.d.ts.map +1 -0
  294. package/dist/types/storage/local-storage/merkletree.d.ts +41 -0
  295. package/dist/types/storage/local-storage/merkletree.d.ts.map +1 -0
  296. package/dist/types/storage/memory/cache-lru.d.ts +11 -0
  297. package/dist/types/storage/memory/cache-lru.d.ts.map +1 -0
  298. package/dist/types/storage/memory/data-source.d.ts +20 -0
  299. package/dist/types/storage/memory/data-source.d.ts.map +1 -0
  300. package/dist/types/storage/memory/index.d.ts +4 -0
  301. package/dist/types/storage/memory/index.d.ts.map +1 -0
  302. package/dist/types/storage/memory/merkletree.d.ts +48 -0
  303. package/dist/types/storage/memory/merkletree.d.ts.map +1 -0
  304. package/dist/types/storage/shared/circuit-storage.d.ts +39 -0
  305. package/dist/types/storage/shared/circuit-storage.d.ts.map +1 -0
  306. package/dist/types/storage/shared/credential-storage.d.ts +39 -0
  307. package/dist/types/storage/shared/credential-storage.d.ts.map +1 -0
  308. package/dist/types/storage/shared/identity-storage.d.ts +45 -0
  309. package/dist/types/storage/shared/identity-storage.d.ts.map +1 -0
  310. package/dist/types/storage/shared/index.d.ts +4 -0
  311. package/dist/types/storage/shared/index.d.ts.map +1 -0
  312. package/dist/types/storage/utils.d.ts +4 -0
  313. package/dist/types/storage/utils.d.ts.map +1 -0
  314. package/dist/types/utils/compare-func.d.ts +2 -0
  315. package/dist/types/utils/compare-func.d.ts.map +1 -0
  316. package/dist/types/utils/did-helper.d.ts +38 -0
  317. package/dist/types/utils/did-helper.d.ts.map +1 -0
  318. package/dist/types/utils/encoding.d.ts +25 -0
  319. package/dist/types/utils/encoding.d.ts.map +1 -0
  320. package/dist/types/utils/index.d.ts +8 -0
  321. package/dist/types/utils/index.d.ts.map +1 -0
  322. package/dist/types/utils/message-bus.d.ts +63 -0
  323. package/dist/types/utils/message-bus.d.ts.map +1 -0
  324. package/dist/types/utils/object.d.ts +10 -0
  325. package/dist/types/utils/object.d.ts.map +1 -0
  326. package/dist/types/utils/payments/evm.d.ts +19 -0
  327. package/dist/types/utils/payments/evm.d.ts.map +1 -0
  328. package/dist/types/utils/payments/solana.d.ts +88 -0
  329. package/dist/types/utils/payments/solana.d.ts.map +1 -0
  330. package/dist/types/verifiable/constants.d.ts +188 -0
  331. package/dist/types/verifiable/constants.d.ts.map +1 -0
  332. package/dist/types/verifiable/core-utils.d.ts +87 -0
  333. package/dist/types/verifiable/core-utils.d.ts.map +1 -0
  334. package/dist/types/verifiable/credential.d.ts +150 -0
  335. package/dist/types/verifiable/credential.d.ts.map +1 -0
  336. package/dist/types/verifiable/index.d.ts +7 -0
  337. package/dist/types/verifiable/index.d.ts.map +1 -0
  338. package/dist/types/verifiable/presentation.d.ts +11 -0
  339. package/dist/types/verifiable/presentation.d.ts.map +1 -0
  340. package/dist/types/verifiable/proof.d.ts +211 -0
  341. package/dist/types/verifiable/proof.d.ts.map +1 -0
  342. package/dist/types/verifiable/schema.d.ts +3 -0
  343. package/dist/types/verifiable/schema.d.ts.map +1 -0
  344. package/package.json +104 -0
  345. package/src/blockchain/index.ts +1 -0
  346. package/src/blockchain/transaction-service.ts +121 -0
  347. package/src/circuits/atomic-query-mtp-v2-on-chain.ts +338 -0
  348. package/src/circuits/atomic-query-mtp-v2.ts +283 -0
  349. package/src/circuits/atomic-query-sig-v2-on-chain.ts +411 -0
  350. package/src/circuits/atomic-query-sig-v2.ts +340 -0
  351. package/src/circuits/atomic-query-v3-on-chain.ts +531 -0
  352. package/src/circuits/atomic-query-v3.ts +461 -0
  353. package/src/circuits/auth-v2.ts +159 -0
  354. package/src/circuits/common.ts +261 -0
  355. package/src/circuits/comparer.ts +227 -0
  356. package/src/circuits/index.ts +12 -0
  357. package/src/circuits/linked-multi-query.ts +180 -0
  358. package/src/circuits/models.ts +263 -0
  359. package/src/circuits/state-transition.ts +139 -0
  360. package/src/credentials/credential-wallet.ts +353 -0
  361. package/src/credentials/index.ts +11 -0
  362. package/src/credentials/models.ts +93 -0
  363. package/src/credentials/rhs.ts +176 -0
  364. package/src/credentials/status/agent-revocation.ts +69 -0
  365. package/src/credentials/status/credential-status-publisher.ts +143 -0
  366. package/src/credentials/status/did-resolver-revocation.ts +24 -0
  367. package/src/credentials/status/on-chain-revocation.ts +174 -0
  368. package/src/credentials/status/resolver.ts +81 -0
  369. package/src/credentials/status/reverse-sparse-merkle-tree.ts +366 -0
  370. package/src/credentials/status/sparse-merkle-tree.ts +50 -0
  371. package/src/credentials/utils.ts +36 -0
  372. package/src/iden3comm/constants.ts +119 -0
  373. package/src/iden3comm/errors.ts +14 -0
  374. package/src/iden3comm/handlers/auth.ts +520 -0
  375. package/src/iden3comm/handlers/common.ts +324 -0
  376. package/src/iden3comm/handlers/contract-request.ts +367 -0
  377. package/src/iden3comm/handlers/credential-proposal.ts +371 -0
  378. package/src/iden3comm/handlers/discovery-protocol.ts +277 -0
  379. package/src/iden3comm/handlers/fetch.ts +450 -0
  380. package/src/iden3comm/handlers/index.ts +11 -0
  381. package/src/iden3comm/handlers/message-handler.ts +165 -0
  382. package/src/iden3comm/handlers/payment.ts +698 -0
  383. package/src/iden3comm/handlers/problem-report.ts +41 -0
  384. package/src/iden3comm/handlers/refresh.ts +138 -0
  385. package/src/iden3comm/handlers/revocation-status.ts +228 -0
  386. package/src/iden3comm/index.ts +9 -0
  387. package/src/iden3comm/packageManager.ts +143 -0
  388. package/src/iden3comm/packers/index.ts +3 -0
  389. package/src/iden3comm/packers/jws.ts +225 -0
  390. package/src/iden3comm/packers/plain.ts +86 -0
  391. package/src/iden3comm/packers/zkp.ts +243 -0
  392. package/src/iden3comm/types/index.ts +17 -0
  393. package/src/iden3comm/types/models.ts +7 -0
  394. package/src/iden3comm/types/packageManager.ts +112 -0
  395. package/src/iden3comm/types/packer.ts +190 -0
  396. package/src/iden3comm/types/protocol/accept-profile.ts +14 -0
  397. package/src/iden3comm/types/protocol/attachment.ts +12 -0
  398. package/src/iden3comm/types/protocol/auth.ts +104 -0
  399. package/src/iden3comm/types/protocol/common.ts +10 -0
  400. package/src/iden3comm/types/protocol/contract-request.ts +76 -0
  401. package/src/iden3comm/types/protocol/credentials.ts +96 -0
  402. package/src/iden3comm/types/protocol/discovery-protocol.ts +49 -0
  403. package/src/iden3comm/types/protocol/messages.ts +13 -0
  404. package/src/iden3comm/types/protocol/payment.ts +231 -0
  405. package/src/iden3comm/types/protocol/problem-report.ts +18 -0
  406. package/src/iden3comm/types/protocol/proof.ts +25 -0
  407. package/src/iden3comm/types/protocol/proposal-request.ts +38 -0
  408. package/src/iden3comm/types/protocol/revocation.ts +23 -0
  409. package/src/iden3comm/utils/accept-profile.ts +121 -0
  410. package/src/iden3comm/utils/did.ts +71 -0
  411. package/src/iden3comm/utils/envelope.ts +101 -0
  412. package/src/iden3comm/utils/index.ts +4 -0
  413. package/src/iden3comm/utils/message.ts +41 -0
  414. package/src/identity/common.ts +69 -0
  415. package/src/identity/identity-wallet.ts +1592 -0
  416. package/src/identity/index.ts +2 -0
  417. package/src/index.ts +16 -0
  418. package/src/kms/index.ts +4 -0
  419. package/src/kms/key-providers/bjj-provider.ts +118 -0
  420. package/src/kms/key-providers/ed25519-provider.ts +105 -0
  421. package/src/kms/key-providers/index.ts +3 -0
  422. package/src/kms/key-providers/secp256k1-provider.ts +125 -0
  423. package/src/kms/kms.ts +173 -0
  424. package/src/kms/provider-helpers.ts +13 -0
  425. package/src/kms/store/abstract-key-store.ts +34 -0
  426. package/src/kms/store/index.ts +5 -0
  427. package/src/kms/store/indexed-db-key-store.ts +60 -0
  428. package/src/kms/store/local-storage-key-store.ts +69 -0
  429. package/src/kms/store/memory-key-store.ts +29 -0
  430. package/src/kms/store/types.ts +21 -0
  431. package/src/proof/common.ts +273 -0
  432. package/src/proof/index.ts +4 -0
  433. package/src/proof/proof-service.ts +623 -0
  434. package/src/proof/provers/index.ts +3 -0
  435. package/src/proof/provers/inputs-generator.ts +627 -0
  436. package/src/proof/provers/prover.ts +104 -0
  437. package/src/proof/provers/witness_calculator.ts +315 -0
  438. package/src/proof/verifiers/index.ts +3 -0
  439. package/src/proof/verifiers/pub-signals-verifier.ts +730 -0
  440. package/src/proof/verifiers/query-hash.ts +57 -0
  441. package/src/proof/verifiers/query.ts +340 -0
  442. package/src/schema-processor/index.ts +3 -0
  443. package/src/schema-processor/json/index.ts +2 -0
  444. package/src/schema-processor/json/parser.ts +256 -0
  445. package/src/schema-processor/json/validator.ts +67 -0
  446. package/src/schema-processor/jsonld/cache.ts +49 -0
  447. package/src/schema-processor/jsonld/index.ts +2 -0
  448. package/src/schema-processor/jsonld/parser.ts +93 -0
  449. package/src/schema-processor/utils.ts +84 -0
  450. package/src/storage/blockchain/abi/CredentialStatusResolver.json +1 -0
  451. package/src/storage/blockchain/abi/ERC20.json +1 -0
  452. package/src/storage/blockchain/abi/ERC20Permit.json +1 -0
  453. package/src/storage/blockchain/abi/IdentityBase.json +1 -0
  454. package/src/storage/blockchain/abi/State.json +1 -0
  455. package/src/storage/blockchain/abi/ZkpVerifier.json +789 -0
  456. package/src/storage/blockchain/common.ts +20 -0
  457. package/src/storage/blockchain/did-resolver-readonly-storage.ts +90 -0
  458. package/src/storage/blockchain/erc20-helper.ts +66 -0
  459. package/src/storage/blockchain/errors.ts +46 -0
  460. package/src/storage/blockchain/index.ts +7 -0
  461. package/src/storage/blockchain/onchain-issuer-adapter/non-merklized/version/v0.0.1/onchain-non-merklized-issuer-adapter.ts +327 -0
  462. package/src/storage/blockchain/onchain-issuer.ts +104 -0
  463. package/src/storage/blockchain/onchain-revocation.ts +143 -0
  464. package/src/storage/blockchain/onchain-zkp-verifier.ts +704 -0
  465. package/src/storage/blockchain/state.ts +471 -0
  466. package/src/storage/entities/circuitData.ts +7 -0
  467. package/src/storage/entities/identity.ts +18 -0
  468. package/src/storage/entities/index.ts +4 -0
  469. package/src/storage/entities/mt.ts +25 -0
  470. package/src/storage/entities/state.ts +97 -0
  471. package/src/storage/errors.ts +8 -0
  472. package/src/storage/filters/index.ts +1 -0
  473. package/src/storage/filters/jsonQuery.ts +368 -0
  474. package/src/storage/fs/circuits-storage.ts +149 -0
  475. package/src/storage/fs/index.ts +1 -0
  476. package/src/storage/index.ts +9 -0
  477. package/src/storage/indexed-db/data-source.ts +58 -0
  478. package/src/storage/indexed-db/index.ts +2 -0
  479. package/src/storage/indexed-db/merkletree.ts +140 -0
  480. package/src/storage/interfaces/circuits.ts +27 -0
  481. package/src/storage/interfaces/credentials.ts +53 -0
  482. package/src/storage/interfaces/data-source.ts +41 -0
  483. package/src/storage/interfaces/data-storage.ts +17 -0
  484. package/src/storage/interfaces/identity.ts +73 -0
  485. package/src/storage/interfaces/index.ts +10 -0
  486. package/src/storage/interfaces/merkletree.ts +52 -0
  487. package/src/storage/interfaces/onchain-issuer.ts +13 -0
  488. package/src/storage/interfaces/onchain-revocation.ts +22 -0
  489. package/src/storage/interfaces/onchain-zkp-verifier.ts +94 -0
  490. package/src/storage/interfaces/state.ts +81 -0
  491. package/src/storage/local-storage/data-source.ts +87 -0
  492. package/src/storage/local-storage/index.ts +2 -0
  493. package/src/storage/local-storage/merkletree.ts +137 -0
  494. package/src/storage/memory/cache-lru.ts +30 -0
  495. package/src/storage/memory/data-source.ts +45 -0
  496. package/src/storage/memory/index.ts +3 -0
  497. package/src/storage/memory/merkletree.ts +116 -0
  498. package/src/storage/shared/circuit-storage.ts +49 -0
  499. package/src/storage/shared/credential-storage.ts +70 -0
  500. package/src/storage/shared/identity-storage.ts +82 -0
  501. package/src/storage/shared/index.ts +3 -0
  502. package/src/storage/utils.ts +19 -0
  503. package/src/utils/compare-func.ts +5 -0
  504. package/src/utils/did-helper.ts +157 -0
  505. package/src/utils/encoding.ts +47 -0
  506. package/src/utils/index.ts +7 -0
  507. package/src/utils/message-bus.ts +88 -0
  508. package/src/utils/object.ts +52 -0
  509. package/src/utils/payments/evm.ts +152 -0
  510. package/src/utils/payments/solana.ts +360 -0
  511. package/src/verifiable/constants.ts +239 -0
  512. package/src/verifiable/core-utils.ts +307 -0
  513. package/src/verifiable/credential.ts +649 -0
  514. package/src/verifiable/index.ts +6 -0
  515. package/src/verifiable/presentation.ts +97 -0
  516. package/src/verifiable/proof.ts +277 -0
  517. package/src/verifiable/schema.ts +241 -0
@@ -0,0 +1,261 @@
1
+ import { Hex } from '@iden3/js-crypto';
2
+ import { Hash, ZERO_HASH, Proof, swapEndianness } from '@iden3/js-merkletree';
3
+ import { TreeState } from './models';
4
+ import { Id } from '@mocanetwork/moca-iden3';
5
+
6
+ export const defaultMTLevels = 40; // max MT levels, default value for identity circuits
7
+ export const defaultValueArraySize = 64; // max value array size, default value for identity circuits
8
+ export const defaultMTLevelsOnChain = 64; // max MT levels on chain, default value for identity circuits
9
+ export const defaultMTLevelsClaim = 32; // max MT levels of JSON-LD merklization on claim
10
+
11
+ export const ErrorEmptyAuthClaimProof = 'empty auth claim mtp proof';
12
+ export const ErrorEmptyAuthClaimNonRevProof = 'empty auth claim non-revocation mtp proof';
13
+ export const ErrorEmptyChallengeSignature = 'empty challenge signature';
14
+ export const ErrorEmptyClaimSignature = 'empty claim signature';
15
+ export const ErrorEmptyClaimProof = 'empty claim mtp proof';
16
+ export const ErrorEmptyClaimNonRevProof = 'empty claim non-revocation mtp proof';
17
+ export const ErrorUserStateInRelayClaimProof =
18
+ 'empty user state in relay claim non-revocation mtp proof';
19
+ export const ErrorEmptyIssuerAuthClaimProof = 'empty issuer auth claim mtp proof';
20
+ export const ErrorEmptyIssuerAuthClaimNonRevProof =
21
+ 'empty issuer auth claim non-revocation mtp proof';
22
+
23
+ /**
24
+ * base config for circuit inputs
25
+ *
26
+ * @public
27
+ * @class BaseConfig
28
+ */
29
+ export class BaseConfig {
30
+ mtLevel!: number; // Max levels of MT
31
+ maxValueArraySize!: number; // Size if( value array in identity circuit)s
32
+ mtLevelOnChain!: number;
33
+ mtLevelClaim!: number; // Max level of JSONLD claim
34
+
35
+ /**
36
+ * getMTLevel max circuit MT levels
37
+ *
38
+ * @returns number
39
+ */
40
+ getMTLevel(): number {
41
+ return this.mtLevel ? this.mtLevel : defaultMTLevels;
42
+ }
43
+ /**
44
+ * GetMTLevelsClaim max jsonld Claim levels
45
+ *
46
+ * @returns number
47
+ */
48
+ getMTLevelsClaim(): number {
49
+ return this.mtLevelClaim ? this.mtLevelClaim : defaultMTLevelsClaim;
50
+ }
51
+
52
+ /**
53
+ * GetValueArrSize return size of circuits value array size
54
+ *
55
+ * @returns number
56
+ */
57
+ getValueArrSize(): number {
58
+ return this.maxValueArraySize ? this.maxValueArraySize : defaultValueArraySize;
59
+ }
60
+
61
+ /**
62
+ * getMTLevelOnChain return level on chain for given circuit
63
+ *
64
+ * @returns number
65
+ */
66
+ getMTLevelOnChain(): number {
67
+ return this.mtLevelOnChain ? this.mtLevelOnChain : defaultMTLevelsOnChain;
68
+ }
69
+ }
70
+
71
+ /**
72
+ * @deprecated The method should not be used and will be removed in the next major version,
73
+ * please use Hash.fromHex instead
74
+ * @param {(string | undefined)} s - string hex
75
+ * @returns Hash
76
+ */
77
+ export const strMTHex = (s: string | undefined): Hash => {
78
+ if (!s) {
79
+ return ZERO_HASH;
80
+ }
81
+ const h = new Hash();
82
+ h.value = swapEndianness(Hex.decodeString(s));
83
+ return h;
84
+ };
85
+
86
+ /**
87
+ * converts hexes of tree roots to Hashes
88
+ *
89
+ * @param {(string | undefined)} state - state of tree hex
90
+ * @param {(string | undefined)} claimsTreeRoot - claims tree root hex
91
+ * @param {(string | undefined)} revocationTreeRoot - revocation tree root hex
92
+ * @param {(string | undefined)} rootOfRoots - root of roots tree root hex
93
+ * @returns TreeState
94
+ */
95
+ export const buildTreeState = (
96
+ state: string | undefined,
97
+ claimsTreeRoot: string | undefined,
98
+ revocationTreeRoot: string | undefined,
99
+ rootOfRoots: string | undefined
100
+ ): TreeState => ({
101
+ state: Hash.fromHex(state),
102
+ claimsRoot: Hash.fromHex(claimsTreeRoot),
103
+ revocationRoot: Hash.fromHex(revocationTreeRoot),
104
+ rootOfRoots: Hash.fromHex(rootOfRoots)
105
+ });
106
+
107
+ /**
108
+ * siblings as string array
109
+ *
110
+ * @param {Proof} proof - proof with siblings
111
+ * @param {number} levels - levels number
112
+ * @returns string[]
113
+ */
114
+ export const prepareSiblingsStr = (proof: Proof, levels: number): string[] => {
115
+ const siblings = proof.allSiblings();
116
+
117
+ // Add the rest of empty levels to the siblings
118
+ for (let i = siblings.length; i < levels; i++) {
119
+ siblings.push(ZERO_HASH);
120
+ }
121
+ return siblings.map((s: Hash) => s.bigInt().toString());
122
+ };
123
+
124
+ /**
125
+ * PrepareCircuitArrayValues padding values to size.
126
+ * Validate array size and throw an exception if array is bigger than size
127
+ * if array is bigger, circuit cannot compile because number of inputs does not match
128
+ *
129
+ *
130
+ * @param {bigint[]} arr - given values
131
+ * @param {number} size - size to pad
132
+ * @returns bigint[]
133
+ */
134
+ export const prepareCircuitArrayValues = (arr: bigint[], size: number): bigint[] => {
135
+ if (!arr) {
136
+ arr = [];
137
+ }
138
+ if (arr.length > size) {
139
+ throw new Error(`array size ${arr.length} is bigger max expected size ${size}`);
140
+ }
141
+
142
+ // Add the empty values
143
+ for (let i = arr.length; i < size; i++) {
144
+ arr.push(BigInt(0));
145
+ }
146
+
147
+ return arr;
148
+ };
149
+
150
+ /**
151
+ * converts each big integer in array to string
152
+ *
153
+ * @param {bigint[]} arr - array of big numbers
154
+ * @returns string[]
155
+ */
156
+ export const bigIntArrayToStringArray = (arr: bigint[]): string[] => {
157
+ return arr.map((a) => a.toString());
158
+ };
159
+
160
+ /**
161
+ * auxiliary node
162
+ *
163
+ * @public
164
+ * @interface NodeAuxValue
165
+ */
166
+ export interface NodeAuxValue {
167
+ key: Hash;
168
+ value: Hash;
169
+ noAux: string;
170
+ }
171
+
172
+ export /**
173
+ * gets auxiliary node from proof
174
+ *
175
+ * @param {(Proof | undefined)} p - mtp
176
+ * @returns NodeAuxValue
177
+ */
178
+ const getNodeAuxValue = (p: Proof | undefined): NodeAuxValue => {
179
+ // proof of inclusion
180
+ if (p?.existence) {
181
+ return {
182
+ key: ZERO_HASH,
183
+ value: ZERO_HASH,
184
+ noAux: '0'
185
+ };
186
+ }
187
+
188
+ // proof of non-inclusion (NodeAux exists)
189
+ if (p?.nodeAux?.value !== undefined && p?.nodeAux?.key !== undefined) {
190
+ return {
191
+ key: p.nodeAux.key,
192
+ value: p.nodeAux.value,
193
+ noAux: '0'
194
+ };
195
+ }
196
+ // proof of non-inclusion (NodeAux does not exist)
197
+ return {
198
+ key: ZERO_HASH,
199
+ value: ZERO_HASH,
200
+ noAux: '1'
201
+ };
202
+ };
203
+
204
+ /**
205
+ * converts boolean existence param to integer
206
+ * if true - 1, else - 0
207
+ *
208
+ * @param {boolean} b - existence
209
+ * @returns number
210
+ */
211
+ export const existenceToInt = (b: boolean): number => (b ? 0 : 1);
212
+
213
+ /**
214
+ * return object properties
215
+ *
216
+ * @param {object} obj
217
+ * @returns object
218
+ */
219
+ export function getProperties(obj: object): object {
220
+ const result: { [key: string]: unknown } = {};
221
+
222
+ for (const property in obj) {
223
+ // eslint-disable-next-line no-prototype-builtins
224
+ if (obj.hasOwnProperty(property) && !property.startsWith('_')) {
225
+ result[property] = obj[property as keyof typeof obj];
226
+ }
227
+ }
228
+ return result;
229
+ }
230
+
231
+ /**
232
+ * states info from pub signals
233
+ *
234
+ * @public
235
+ * @type StatesInfo
236
+ */
237
+ export type StatesInfo = {
238
+ states: {
239
+ id: Id;
240
+ state: Hash;
241
+ }[];
242
+ gists: {
243
+ id: Id;
244
+ root: Hash;
245
+ }[];
246
+ };
247
+
248
+ /**
249
+ * state pub signals
250
+ *
251
+ * @public
252
+ * @interface IStatePubSignals
253
+ */
254
+ export interface IStateInfoPubSignals {
255
+ /**
256
+ * return object with state params
257
+ *
258
+ * @returns {OnChainStateInfo}
259
+ */
260
+ getStatesInfo(): StatesInfo;
261
+ }
@@ -0,0 +1,227 @@
1
+ /**
2
+ * Represents the XSD namespace and its corresponding data types.
3
+ */
4
+
5
+ export enum XSDNS {
6
+ Boolean = 'http://www.w3.org/2001/XMLSchema#boolean',
7
+ Integer = 'http://www.w3.org/2001/XMLSchema#integer',
8
+ NonNegativeInteger = 'http://www.w3.org/2001/XMLSchema#nonNegativeInteger',
9
+ NonPositiveInteger = 'http://www.w3.org/2001/XMLSchema#nonPositiveInteger',
10
+ NegativeInteger = 'http://www.w3.org/2001/XMLSchema#negativeInteger',
11
+ PositiveInteger = 'http://www.w3.org/2001/XMLSchema#positiveInteger',
12
+ DateTime = 'http://www.w3.org/2001/XMLSchema#dateTime',
13
+ Double = 'http://www.w3.org/2001/XMLSchema#double',
14
+ String = 'http://www.w3.org/2001/XMLSchema#string'
15
+ }
16
+
17
+ /**
18
+ * List of available operators.
19
+ *
20
+ * @enum {number}
21
+ */
22
+ export enum Operators {
23
+ NOOP = 0, // No operation, skip query verification in circuit
24
+ EQ = 1,
25
+ LT = 2,
26
+ GT = 3,
27
+ IN = 4,
28
+ NIN = 5,
29
+ NE = 6,
30
+ LTE = 7,
31
+ GTE = 8,
32
+ BETWEEN = 9,
33
+ NONBETWEEN = 10,
34
+ EXISTS = 11,
35
+ SD = 16,
36
+ NULLIFY = 17
37
+ }
38
+
39
+ /** QueryOperators represents operators for atomic circuits */
40
+ export const QueryOperators = {
41
+ $noop: Operators.NOOP,
42
+ $eq: Operators.EQ,
43
+ $lt: Operators.LT,
44
+ $gt: Operators.GT,
45
+ $in: Operators.IN,
46
+ $nin: Operators.NIN,
47
+ $ne: Operators.NE,
48
+ $lte: Operators.LTE,
49
+ $gte: Operators.GTE,
50
+ $between: Operators.BETWEEN,
51
+ $nonbetween: Operators.NONBETWEEN,
52
+ $exists: Operators.EXISTS,
53
+ $sd: Operators.SD,
54
+ $nullify: Operators.NULLIFY
55
+ };
56
+
57
+ export const getOperatorNameByValue = (operator: number): string => {
58
+ const ops = Object.entries(QueryOperators).find(([, queryOp]) => queryOp === operator);
59
+ return ops ? ops[0] : 'unknown';
60
+ };
61
+
62
+ const allOperations = Object.values(QueryOperators);
63
+
64
+ export const availableTypesOperators: Map<string, Operators[]> = new Map([
65
+ [
66
+ XSDNS.Boolean,
67
+ [QueryOperators.$eq, QueryOperators.$ne, QueryOperators.$sd, QueryOperators.$exists]
68
+ ],
69
+ [XSDNS.Integer, allOperations],
70
+ [XSDNS.NonNegativeInteger, allOperations],
71
+ [XSDNS.PositiveInteger, allOperations],
72
+ [
73
+ XSDNS.Double,
74
+ [
75
+ QueryOperators.$eq,
76
+ QueryOperators.$ne,
77
+ QueryOperators.$in,
78
+ QueryOperators.$nin,
79
+ QueryOperators.$sd,
80
+ QueryOperators.$exists
81
+ ]
82
+ ],
83
+ [
84
+ XSDNS.String,
85
+ [
86
+ QueryOperators.$eq,
87
+ QueryOperators.$ne,
88
+ QueryOperators.$in,
89
+ QueryOperators.$nin,
90
+ QueryOperators.$sd,
91
+ QueryOperators.$exists
92
+ ]
93
+ ],
94
+ [XSDNS.DateTime, allOperations]
95
+ ]);
96
+
97
+ /**
98
+ * Checks if the given operation is valid for the specified datatype.
99
+ * @param datatype - The datatype to check the operation for.
100
+ * @param op - The operation to check.
101
+ * @returns True if the operation is valid, false otherwise.
102
+ */
103
+ export const isValidOperation = (datatype: string, op: number): boolean => {
104
+ if (op === Operators.NOOP) {
105
+ return true;
106
+ }
107
+
108
+ if (!availableTypesOperators.has(datatype)) {
109
+ return false;
110
+ }
111
+ const ops = availableTypesOperators.get(datatype);
112
+ if (!ops) {
113
+ return false;
114
+ }
115
+ return ops.includes(op);
116
+ };
117
+
118
+ // Comparer value.
119
+ export interface IComparer {
120
+ compare(int: number): boolean;
121
+ }
122
+
123
+ /**
124
+ * Scalar is used to compare two scalar value.
125
+ *
126
+ * @public
127
+ * @class Scalar
128
+ * @implements implements IComparer interface
129
+ */
130
+ export class Scalar implements IComparer {
131
+ /**
132
+ * Creates an instance of Scalar.
133
+ * @param {bigint} x - val x
134
+ * @param {bigint} y - val y
135
+ */
136
+ constructor(private x: bigint, private y: bigint) {}
137
+ /**
138
+ * compares two scalar values
139
+ *
140
+ * @param {Operators} operator - EQ / LT / GT
141
+ * @returns boolean
142
+ */
143
+ compare(operator: Operators): boolean {
144
+ switch (operator) {
145
+ case Operators.EQ:
146
+ return this.x === this.y;
147
+ case Operators.LT:
148
+ return this.x < this.y;
149
+ case Operators.GT:
150
+ return this.x > this.y;
151
+ case Operators.NE:
152
+ return this.x !== this.y;
153
+ default:
154
+ throw new Error('unknown compare type for scalar');
155
+ }
156
+ }
157
+ }
158
+
159
+ /**
160
+ * Vector uses for find/not find x scalar type in y vector type.
161
+ *
162
+ * @public
163
+ * @class Vector
164
+ * @implements implements IComparer interface
165
+ */
166
+ export class Vector implements IComparer {
167
+ /**
168
+ * Creates an instance of Vector.
169
+ * @param {bigint} x - val x
170
+ * @param {bigint[]} y - array values y
171
+ */
172
+ constructor(private x: bigint, private y: bigint[]) {}
173
+ /**
174
+ *
175
+ *
176
+ * @param {Operators} operator - IN / NIN
177
+ * @returns boolean
178
+ */
179
+ compare(operator: Operators): boolean {
180
+ switch (operator) {
181
+ case Operators.IN:
182
+ return this.y.includes(this.x);
183
+ case Operators.NIN:
184
+ return !this.y.includes(this.x);
185
+ case Operators.BETWEEN:
186
+ if (this.y.length !== 2) {
187
+ return false;
188
+ }
189
+ return this.x >= this.y[0] && this.x <= this.y[1];
190
+ case Operators.NONBETWEEN:
191
+ if (this.y.length !== 2) {
192
+ return false;
193
+ }
194
+ return this.x < this.y[0] || this.x > this.y[1];
195
+ default:
196
+ throw new Error('unknown compare type for vector');
197
+ }
198
+ }
199
+ }
200
+
201
+ /**
202
+ * FactoryComparer depends on input data will return right comparer.
203
+ *
204
+ * @param {bigint} x - val x
205
+ * @param {bigint[]} y - array of values y
206
+ * @param {Operators} operator - EQ / LT / GT / IN / NIN
207
+ * @returns IComparer
208
+ */
209
+ export const factoryComparer = (x: bigint, y: bigint[], operator: Operators): IComparer => {
210
+ switch (operator) {
211
+ case Operators.EQ:
212
+ case Operators.LT:
213
+ case Operators.GT:
214
+ case Operators.NE:
215
+ if (y.length !== 1) {
216
+ throw new Error('currently we support only one value for scalar comparison');
217
+ }
218
+ return new Scalar(x, y[0]);
219
+ case Operators.IN:
220
+ case Operators.NIN:
221
+ case Operators.BETWEEN:
222
+ case Operators.NONBETWEEN:
223
+ return new Vector(x, y);
224
+ default:
225
+ throw new Error('unknown compare type');
226
+ }
227
+ };
@@ -0,0 +1,12 @@
1
+ export * from './common';
2
+ export * from './models';
3
+ export * from './comparer';
4
+ export * from './atomic-query-mtp-v2';
5
+ export * from './atomic-query-mtp-v2-on-chain';
6
+ export * from './atomic-query-sig-v2';
7
+ export * from './atomic-query-v3';
8
+ export * from './atomic-query-v3-on-chain';
9
+ export * from './atomic-query-sig-v2-on-chain';
10
+ export * from './auth-v2';
11
+ export * from './state-transition';
12
+ export * from './linked-multi-query';
@@ -0,0 +1,180 @@
1
+ import { Claim } from '@mocanetwork/moca-iden3';
2
+ import { Proof } from '@iden3/js-merkletree';
3
+ import { byteDecoder, byteEncoder } from '../utils';
4
+ import {
5
+ BaseConfig,
6
+ bigIntArrayToStringArray,
7
+ getNodeAuxValue,
8
+ prepareCircuitArrayValues,
9
+ prepareSiblingsStr
10
+ } from './common';
11
+ import { Query, ValueProof } from './models';
12
+
13
+ /**
14
+ * LinkedMultiQuery circuit representation
15
+ * Inputs and public signals declaration, marshalling and parsing
16
+ *
17
+ * @beta
18
+ * @class LinkedMultiQueryInputs
19
+ */
20
+ export class LinkedMultiQueryInputs extends BaseConfig {
21
+ static queryCount = 10;
22
+ linkNonce!: bigint;
23
+ claim!: Claim;
24
+ query!: Query[];
25
+
26
+ // InputsMarshal returns Circom private inputs for linkedMultiQueryInputs.circom
27
+ inputsMarshal(): Uint8Array {
28
+ const claimPathMtp: string[][] = [];
29
+ const claimPathMtpNoAux: string[] = [];
30
+ const claimPathMtpAuxHi: string[] = [];
31
+ const claimPathMtpAuxHv: string[] = [];
32
+ const claimPathKey: string[] = [];
33
+ const claimPathValue: string[] = [];
34
+ const slotIndex: number[] = [];
35
+ const operator: number[] = [];
36
+ const value: string[][] = [];
37
+ const valueArraySize: number[] = [];
38
+
39
+ for (let i = 0; i < LinkedMultiQueryInputs.queryCount; i++) {
40
+ if (!this.query[i]) {
41
+ claimPathMtp.push(new Array(this.getMTLevelsClaim()).fill('0'));
42
+
43
+ claimPathMtpNoAux.push('0');
44
+ claimPathMtpAuxHi.push('0');
45
+ claimPathMtpAuxHv.push('0');
46
+
47
+ claimPathKey.push('0');
48
+
49
+ claimPathValue.push('0');
50
+
51
+ slotIndex.push(0);
52
+ operator.push(0);
53
+
54
+ const valuesArr = prepareCircuitArrayValues([], this.getValueArrSize());
55
+ value.push(bigIntArrayToStringArray(valuesArr));
56
+ valueArraySize.push(0);
57
+ continue;
58
+ }
59
+ let valueProof = this.query[i].valueProof;
60
+ if (!valueProof) {
61
+ valueProof = new ValueProof();
62
+ valueProof.path = 0n;
63
+ valueProof.value = 0n;
64
+ valueProof.mtp = new Proof();
65
+ }
66
+ claimPathMtp.push(prepareSiblingsStr(valueProof.mtp, this.getMTLevelsClaim()));
67
+
68
+ const nodAuxJSONLD = getNodeAuxValue(valueProof.mtp);
69
+
70
+ claimPathMtpNoAux.push(nodAuxJSONLD.noAux);
71
+ claimPathMtpAuxHi.push(nodAuxJSONLD.key.bigInt().toString());
72
+ claimPathMtpAuxHv.push(nodAuxJSONLD.value.bigInt().toString());
73
+
74
+ claimPathKey.push(valueProof.path.toString());
75
+
76
+ claimPathValue.push(valueProof.value.toString());
77
+
78
+ slotIndex.push(this.query[i].slotIndex);
79
+ operator.push(this.query[i].operator);
80
+
81
+ valueArraySize.push(this.query[i].values.length);
82
+ const valuesArr = prepareCircuitArrayValues(this.query[i].values, this.getValueArrSize());
83
+ value.push(bigIntArrayToStringArray(valuesArr));
84
+ }
85
+
86
+ const s: Partial<LinkedMultiQueryCircuitInputs> = {
87
+ linkNonce: this.linkNonce.toString(),
88
+ issuerClaim: this.claim.marshalJson(),
89
+ claimSchema: this.claim.getSchemaHash().bigInt().toString(),
90
+ claimPathMtp,
91
+ claimPathMtpNoAux,
92
+ claimPathMtpAuxHi,
93
+ claimPathMtpAuxHv,
94
+ claimPathKey,
95
+ claimPathValue,
96
+ slotIndex,
97
+ operator,
98
+ value,
99
+ valueArraySize
100
+ };
101
+
102
+ return byteEncoder.encode(JSON.stringify(s));
103
+ }
104
+ }
105
+
106
+ /**
107
+ * @beta
108
+ */
109
+ interface LinkedMultiQueryCircuitInputs {
110
+ linkNonce: string;
111
+ issuerClaim: string[];
112
+ claimSchema: string;
113
+ claimPathMtp: string[][];
114
+ claimPathMtpNoAux: string[];
115
+ claimPathMtpAuxHi: string[];
116
+ claimPathMtpAuxHv: string[];
117
+ claimPathKey: string[];
118
+ claimPathValue: string[];
119
+ slotIndex: number[];
120
+ operator: number[];
121
+ value: string[][];
122
+ valueArraySize: number[];
123
+ }
124
+
125
+ // LinkedMultiQueryPubSignals linkedMultiQuery10.circom public signals
126
+ /**
127
+ * public signals
128
+ *
129
+ * @beta
130
+ * @class LinkedMultiQueryPubSignals
131
+ */
132
+ export class LinkedMultiQueryPubSignals {
133
+ linkID!: bigint;
134
+ merklized!: number;
135
+ operatorOutput!: bigint[];
136
+ circuitQueryHash!: bigint[];
137
+
138
+ /**
139
+ * PubSignalsUnmarshal unmarshal linkedMultiQuery10.circom public inputs to LinkedMultiQueryPubSignals
140
+ *
141
+ * @beta
142
+ * @param {Uint8Array} data
143
+ * @returns LinkedMultiQueryPubSignals
144
+ */
145
+ pubSignalsUnmarshal(data: Uint8Array): LinkedMultiQueryPubSignals {
146
+ const len = 22;
147
+ const queryLength = LinkedMultiQueryInputs.queryCount;
148
+ const sVals: string[] = JSON.parse(byteDecoder.decode(data));
149
+
150
+ if (sVals.length !== len) {
151
+ throw new Error(`invalid number of Output values expected ${len} got ${sVals.length}`);
152
+ }
153
+
154
+ let fieldIdx = 0;
155
+
156
+ // -- linkID
157
+ this.linkID = BigInt(sVals[fieldIdx]);
158
+ fieldIdx++;
159
+
160
+ // -- merklized
161
+ this.merklized = parseInt(sVals[fieldIdx]);
162
+ fieldIdx++;
163
+
164
+ // - operatorOutput
165
+ this.operatorOutput = [];
166
+ for (let i = 0; i < queryLength; i++) {
167
+ this.operatorOutput.push(BigInt(sVals[fieldIdx]));
168
+ fieldIdx++;
169
+ }
170
+
171
+ // - circuitQueryHash
172
+ this.circuitQueryHash = [];
173
+ for (let i = 0; i < queryLength; i++) {
174
+ this.circuitQueryHash.push(BigInt(sVals[fieldIdx]));
175
+ fieldIdx++;
176
+ }
177
+
178
+ return this;
179
+ }
180
+ }