@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.
- package/README.md +75 -0
- package/dist/browser/esm/index.js +14901 -0
- package/dist/browser/esm/index.js.map +1 -0
- package/dist/browser/umd/index.global.js +678 -0
- package/dist/browser/umd/index.global.js.map +1 -0
- package/dist/node/cjs/index.cjs +15418 -0
- package/dist/node/cjs/index.cjs.map +1 -0
- package/dist/node/esm/index.js +14901 -0
- package/dist/node/esm/index.js.map +1 -0
- package/dist/types/blockchain/index.d.ts +2 -0
- package/dist/types/blockchain/index.d.ts.map +1 -0
- package/dist/types/blockchain/transaction-service.d.ts +81 -0
- package/dist/types/blockchain/transaction-service.d.ts.map +1 -0
- package/dist/types/circuits/atomic-query-mtp-v2-on-chain.d.ts +70 -0
- package/dist/types/circuits/atomic-query-mtp-v2-on-chain.d.ts.map +1 -0
- package/dist/types/circuits/atomic-query-mtp-v2.d.ts +63 -0
- package/dist/types/circuits/atomic-query-mtp-v2.d.ts.map +1 -0
- package/dist/types/circuits/atomic-query-sig-v2-on-chain.d.ts +137 -0
- package/dist/types/circuits/atomic-query-sig-v2-on-chain.d.ts.map +1 -0
- package/dist/types/circuits/atomic-query-sig-v2.d.ts +64 -0
- package/dist/types/circuits/atomic-query-sig-v2.d.ts.map +1 -0
- package/dist/types/circuits/atomic-query-v3-on-chain.d.ts +141 -0
- package/dist/types/circuits/atomic-query-v3-on-chain.d.ts.map +1 -0
- package/dist/types/circuits/atomic-query-v3.d.ts +121 -0
- package/dist/types/circuits/atomic-query-v3.d.ts.map +1 -0
- package/dist/types/circuits/auth-v2.d.ts +46 -0
- package/dist/types/circuits/auth-v2.d.ts.map +1 -0
- package/dist/types/circuits/common.d.ts +153 -0
- package/dist/types/circuits/common.d.ts.map +1 -0
- package/dist/types/circuits/comparer.d.ts +122 -0
- package/dist/types/circuits/comparer.d.ts.map +1 -0
- package/dist/types/circuits/index.d.ts +13 -0
- package/dist/types/circuits/index.d.ts.map +1 -0
- package/dist/types/circuits/linked-multi-query.d.ts +38 -0
- package/dist/types/circuits/linked-multi-query.d.ts.map +1 -0
- package/dist/types/circuits/models.d.ts +189 -0
- package/dist/types/circuits/models.d.ts.map +1 -0
- package/dist/types/circuits/state-transition.d.ts +49 -0
- package/dist/types/circuits/state-transition.d.ts.map +1 -0
- package/dist/types/credentials/credential-wallet.d.ts +200 -0
- package/dist/types/credentials/credential-wallet.d.ts.map +1 -0
- package/dist/types/credentials/index.d.ts +12 -0
- package/dist/types/credentials/index.d.ts.map +1 -0
- package/dist/types/credentials/models.d.ts +84 -0
- package/dist/types/credentials/models.d.ts.map +1 -0
- package/dist/types/credentials/rhs.d.ts +38 -0
- package/dist/types/credentials/rhs.d.ts.map +1 -0
- package/dist/types/credentials/status/agent-revocation.d.ts +20 -0
- package/dist/types/credentials/status/agent-revocation.d.ts.map +1 -0
- package/dist/types/credentials/status/credential-status-publisher.d.ts +73 -0
- package/dist/types/credentials/status/credential-status-publisher.d.ts.map +1 -0
- package/dist/types/credentials/status/did-resolver-revocation.d.ts +8 -0
- package/dist/types/credentials/status/did-resolver-revocation.d.ts.map +1 -0
- package/dist/types/credentials/status/on-chain-revocation.d.ts +58 -0
- package/dist/types/credentials/status/on-chain-revocation.d.ts.map +1 -0
- package/dist/types/credentials/status/resolver.d.ts +69 -0
- package/dist/types/credentials/status/resolver.d.ts.map +1 -0
- package/dist/types/credentials/status/reverse-sparse-merkle-tree.d.ts +126 -0
- package/dist/types/credentials/status/reverse-sparse-merkle-tree.d.ts.map +1 -0
- package/dist/types/credentials/status/sparse-merkle-tree.d.ts +38 -0
- package/dist/types/credentials/status/sparse-merkle-tree.d.ts.map +1 -0
- package/dist/types/credentials/utils.d.ts +15 -0
- package/dist/types/credentials/utils.d.ts.map +1 -0
- package/dist/types/iden3comm/constants.d.ts +61 -0
- package/dist/types/iden3comm/constants.d.ts.map +1 -0
- package/dist/types/iden3comm/errors.d.ts +10 -0
- package/dist/types/iden3comm/errors.d.ts.map +1 -0
- package/dist/types/iden3comm/handlers/auth.d.ts +157 -0
- package/dist/types/iden3comm/handlers/auth.d.ts.map +1 -0
- package/dist/types/iden3comm/handlers/common.d.ts +72 -0
- package/dist/types/iden3comm/handlers/common.d.ts.map +1 -0
- package/dist/types/iden3comm/handlers/contract-request.d.ts +96 -0
- package/dist/types/iden3comm/handlers/contract-request.d.ts.map +1 -0
- package/dist/types/iden3comm/handlers/credential-proposal.d.ts +120 -0
- package/dist/types/iden3comm/handlers/credential-proposal.d.ts.map +1 -0
- package/dist/types/iden3comm/handlers/discovery-protocol.d.ts +101 -0
- package/dist/types/iden3comm/handlers/discovery-protocol.d.ts.map +1 -0
- package/dist/types/iden3comm/handlers/fetch.d.ts +130 -0
- package/dist/types/iden3comm/handlers/fetch.d.ts.map +1 -0
- package/dist/types/iden3comm/handlers/index.d.ts +12 -0
- package/dist/types/iden3comm/handlers/index.d.ts.map +1 -0
- package/dist/types/iden3comm/handlers/message-handler.d.ts +93 -0
- package/dist/types/iden3comm/handlers/message-handler.d.ts.map +1 -0
- package/dist/types/iden3comm/handlers/payment.d.ts +167 -0
- package/dist/types/iden3comm/handlers/payment.d.ts.map +1 -0
- package/dist/types/iden3comm/handlers/problem-report.d.ts +18 -0
- package/dist/types/iden3comm/handlers/problem-report.d.ts.map +1 -0
- package/dist/types/iden3comm/handlers/refresh.d.ts +57 -0
- package/dist/types/iden3comm/handlers/refresh.d.ts.map +1 -0
- package/dist/types/iden3comm/handlers/revocation-status.d.ts +76 -0
- package/dist/types/iden3comm/handlers/revocation-status.d.ts.map +1 -0
- package/dist/types/iden3comm/index.d.ts +9 -0
- package/dist/types/iden3comm/index.d.ts.map +1 -0
- package/dist/types/iden3comm/packageManager.d.ts +47 -0
- package/dist/types/iden3comm/packageManager.d.ts.map +1 -0
- package/dist/types/iden3comm/packers/index.d.ts +4 -0
- package/dist/types/iden3comm/packers/index.d.ts.map +1 -0
- package/dist/types/iden3comm/packers/jws.d.ts +56 -0
- package/dist/types/iden3comm/packers/jws.d.ts.map +1 -0
- package/dist/types/iden3comm/packers/plain.d.ts +47 -0
- package/dist/types/iden3comm/packers/plain.d.ts.map +1 -0
- package/dist/types/iden3comm/packers/zkp.d.ts +98 -0
- package/dist/types/iden3comm/packers/zkp.d.ts.map +1 -0
- package/dist/types/iden3comm/types/index.d.ts +17 -0
- package/dist/types/iden3comm/types/index.d.ts.map +1 -0
- package/dist/types/iden3comm/types/models.d.ts +7 -0
- package/dist/types/iden3comm/types/models.d.ts.map +1 -0
- package/dist/types/iden3comm/types/packageManager.d.ts +100 -0
- package/dist/types/iden3comm/types/packageManager.d.ts.map +1 -0
- package/dist/types/iden3comm/types/packer.d.ts +158 -0
- package/dist/types/iden3comm/types/packer.d.ts.map +1 -0
- package/dist/types/iden3comm/types/protocol/accept-profile.d.ts +8 -0
- package/dist/types/iden3comm/types/protocol/accept-profile.d.ts.map +1 -0
- package/dist/types/iden3comm/types/protocol/attachment.d.ts +11 -0
- package/dist/types/iden3comm/types/protocol/attachment.d.ts.map +1 -0
- package/dist/types/iden3comm/types/protocol/auth.d.ts +90 -0
- package/dist/types/iden3comm/types/protocol/auth.d.ts.map +1 -0
- package/dist/types/iden3comm/types/protocol/common.d.ts +11 -0
- package/dist/types/iden3comm/types/protocol/common.d.ts.map +1 -0
- package/dist/types/iden3comm/types/protocol/contract-request.d.ts +62 -0
- package/dist/types/iden3comm/types/protocol/contract-request.d.ts.map +1 -0
- package/dist/types/iden3comm/types/protocol/credentials.d.ts +82 -0
- package/dist/types/iden3comm/types/protocol/credentials.d.ts.map +1 -0
- package/dist/types/iden3comm/types/protocol/discovery-protocol.d.ts +42 -0
- package/dist/types/iden3comm/types/protocol/discovery-protocol.d.ts.map +1 -0
- package/dist/types/iden3comm/types/protocol/messages.d.ts +12 -0
- package/dist/types/iden3comm/types/protocol/messages.d.ts.map +1 -0
- package/dist/types/iden3comm/types/protocol/payment.d.ts +178 -0
- package/dist/types/iden3comm/types/protocol/payment.d.ts.map +1 -0
- package/dist/types/iden3comm/types/protocol/problem-report.d.ts +17 -0
- package/dist/types/iden3comm/types/protocol/problem-report.d.ts.map +1 -0
- package/dist/types/iden3comm/types/protocol/proof.d.ts +22 -0
- package/dist/types/iden3comm/types/protocol/proof.d.ts.map +1 -0
- package/dist/types/iden3comm/types/protocol/proposal-request.d.ts +33 -0
- package/dist/types/iden3comm/types/protocol/proposal-request.d.ts.map +1 -0
- package/dist/types/iden3comm/types/protocol/revocation.d.ts +20 -0
- package/dist/types/iden3comm/types/protocol/revocation.d.ts.map +1 -0
- package/dist/types/iden3comm/utils/accept-profile.d.ts +4 -0
- package/dist/types/iden3comm/utils/accept-profile.d.ts.map +1 -0
- package/dist/types/iden3comm/utils/did.d.ts +8 -0
- package/dist/types/iden3comm/utils/did.d.ts.map +1 -0
- package/dist/types/iden3comm/utils/envelope.d.ts +32 -0
- package/dist/types/iden3comm/utils/envelope.d.ts.map +1 -0
- package/dist/types/iden3comm/utils/index.d.ts +5 -0
- package/dist/types/iden3comm/utils/index.d.ts.map +1 -0
- package/dist/types/iden3comm/utils/message.d.ts +20 -0
- package/dist/types/iden3comm/utils/message.d.ts.map +1 -0
- package/dist/types/identity/common.d.ts +27 -0
- package/dist/types/identity/common.d.ts.map +1 -0
- package/dist/types/identity/identity-wallet.d.ts +472 -0
- package/dist/types/identity/identity-wallet.d.ts.map +1 -0
- package/dist/types/identity/index.d.ts +3 -0
- package/dist/types/identity/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +17 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/kms/index.d.ts +5 -0
- package/dist/types/kms/index.d.ts.map +1 -0
- package/dist/types/kms/key-providers/bjj-provider.d.ts +54 -0
- package/dist/types/kms/key-providers/bjj-provider.d.ts.map +1 -0
- package/dist/types/kms/key-providers/ed25519-provider.d.ts +61 -0
- package/dist/types/kms/key-providers/ed25519-provider.d.ts.map +1 -0
- package/dist/types/kms/key-providers/index.d.ts +4 -0
- package/dist/types/kms/key-providers/index.d.ts.map +1 -0
- package/dist/types/kms/key-providers/secp256k1-provider.d.ts +62 -0
- package/dist/types/kms/key-providers/secp256k1-provider.d.ts.map +1 -0
- package/dist/types/kms/kms.d.ts +120 -0
- package/dist/types/kms/kms.d.ts.map +1 -0
- package/dist/types/kms/provider-helpers.d.ts +10 -0
- package/dist/types/kms/provider-helpers.d.ts.map +1 -0
- package/dist/types/kms/store/abstract-key-store.d.ts +41 -0
- package/dist/types/kms/store/abstract-key-store.d.ts.map +1 -0
- package/dist/types/kms/store/index.d.ts +6 -0
- package/dist/types/kms/store/index.d.ts.map +1 -0
- package/dist/types/kms/store/indexed-db-key-store.d.ts +44 -0
- package/dist/types/kms/store/indexed-db-key-store.d.ts.map +1 -0
- package/dist/types/kms/store/local-storage-key-store.d.ts +42 -0
- package/dist/types/kms/store/local-storage-key-store.d.ts.map +1 -0
- package/dist/types/kms/store/memory-key-store.d.ts +24 -0
- package/dist/types/kms/store/memory-key-store.d.ts.map +1 -0
- package/dist/types/kms/store/types.d.ts +21 -0
- package/dist/types/kms/store/types.d.ts.map +1 -0
- package/dist/types/proof/common.d.ts +49 -0
- package/dist/types/proof/common.d.ts.map +1 -0
- package/dist/types/proof/index.d.ts +5 -0
- package/dist/types/proof/index.d.ts.map +1 -0
- package/dist/types/proof/proof-service.d.ts +169 -0
- package/dist/types/proof/proof-service.d.ts.map +1 -0
- package/dist/types/proof/provers/index.d.ts +4 -0
- package/dist/types/proof/provers/index.d.ts.map +1 -0
- package/dist/types/proof/provers/inputs-generator.d.ts +57 -0
- package/dist/types/proof/provers/inputs-generator.d.ts.map +1 -0
- package/dist/types/proof/provers/prover.d.ts +56 -0
- package/dist/types/proof/provers/prover.d.ts.map +1 -0
- package/dist/types/proof/provers/witness_calculator.d.ts +17 -0
- package/dist/types/proof/provers/witness_calculator.d.ts.map +1 -0
- package/dist/types/proof/verifiers/index.d.ts +4 -0
- package/dist/types/proof/verifiers/index.d.ts.map +1 -0
- package/dist/types/proof/verifiers/pub-signals-verifier.d.ts +60 -0
- package/dist/types/proof/verifiers/pub-signals-verifier.d.ts.map +1 -0
- package/dist/types/proof/verifiers/query-hash.d.ts +4 -0
- package/dist/types/proof/verifiers/query-hash.d.ts.map +1 -0
- package/dist/types/proof/verifiers/query.d.ts +43 -0
- package/dist/types/proof/verifiers/query.d.ts.map +1 -0
- package/dist/types/schema-processor/index.d.ts +4 -0
- package/dist/types/schema-processor/index.d.ts.map +1 -0
- package/dist/types/schema-processor/json/index.d.ts +3 -0
- package/dist/types/schema-processor/json/index.d.ts.map +1 -0
- package/dist/types/schema-processor/json/parser.d.ts +141 -0
- package/dist/types/schema-processor/json/parser.d.ts.map +1 -0
- package/dist/types/schema-processor/json/validator.d.ts +26 -0
- package/dist/types/schema-processor/json/validator.d.ts.map +1 -0
- package/dist/types/schema-processor/jsonld/cache.d.ts +3 -0
- package/dist/types/schema-processor/jsonld/cache.d.ts.map +1 -0
- package/dist/types/schema-processor/jsonld/index.d.ts +3 -0
- package/dist/types/schema-processor/jsonld/index.d.ts.map +1 -0
- package/dist/types/schema-processor/jsonld/parser.d.ts +30 -0
- package/dist/types/schema-processor/jsonld/parser.d.ts.map +1 -0
- package/dist/types/schema-processor/utils.d.ts +54 -0
- package/dist/types/schema-processor/utils.d.ts.map +1 -0
- package/dist/types/storage/blockchain/common.d.ts +8 -0
- package/dist/types/storage/blockchain/common.d.ts.map +1 -0
- package/dist/types/storage/blockchain/did-resolver-readonly-storage.d.ts +17 -0
- package/dist/types/storage/blockchain/did-resolver-readonly-storage.d.ts.map +1 -0
- package/dist/types/storage/blockchain/erc20-helper.d.ts +20 -0
- package/dist/types/storage/blockchain/erc20-helper.d.ts.map +1 -0
- package/dist/types/storage/blockchain/errors.d.ts +4 -0
- package/dist/types/storage/blockchain/errors.d.ts.map +1 -0
- package/dist/types/storage/blockchain/index.d.ts +8 -0
- package/dist/types/storage/blockchain/index.d.ts.map +1 -0
- package/dist/types/storage/blockchain/onchain-issuer-adapter/non-merklized/version/v0.0.1/onchain-non-merklized-issuer-adapter.d.ts +67 -0
- package/dist/types/storage/blockchain/onchain-issuer-adapter/non-merklized/version/v0.0.1/onchain-non-merklized-issuer-adapter.d.ts.map +1 -0
- package/dist/types/storage/blockchain/onchain-issuer.d.ts +41 -0
- package/dist/types/storage/blockchain/onchain-issuer.d.ts.map +1 -0
- package/dist/types/storage/blockchain/onchain-revocation.d.ts +41 -0
- package/dist/types/storage/blockchain/onchain-revocation.d.ts.map +1 -0
- package/dist/types/storage/blockchain/onchain-zkp-verifier.d.ts +116 -0
- package/dist/types/storage/blockchain/onchain-zkp-verifier.d.ts.map +1 -0
- package/dist/types/storage/blockchain/state.d.ts +127 -0
- package/dist/types/storage/blockchain/state.d.ts.map +1 -0
- package/dist/types/storage/entities/circuitData.d.ts +8 -0
- package/dist/types/storage/entities/circuitData.d.ts.map +1 -0
- package/dist/types/storage/entities/identity.d.ts +17 -0
- package/dist/types/storage/entities/identity.d.ts.map +1 -0
- package/dist/types/storage/entities/index.d.ts +5 -0
- package/dist/types/storage/entities/index.d.ts.map +1 -0
- package/dist/types/storage/entities/mt.d.ts +22 -0
- package/dist/types/storage/entities/mt.d.ts.map +1 -0
- package/dist/types/storage/entities/state.d.ts +92 -0
- package/dist/types/storage/entities/state.d.ts.map +1 -0
- package/dist/types/storage/errors.d.ts +9 -0
- package/dist/types/storage/errors.d.ts.map +1 -0
- package/dist/types/storage/filters/index.d.ts +2 -0
- package/dist/types/storage/filters/index.d.ts.map +1 -0
- package/dist/types/storage/filters/jsonQuery.d.ts +83 -0
- package/dist/types/storage/filters/jsonQuery.d.ts.map +1 -0
- package/dist/types/storage/fs/circuits-storage.d.ts +64 -0
- package/dist/types/storage/fs/circuits-storage.d.ts.map +1 -0
- package/dist/types/storage/fs/index.d.ts +2 -0
- package/dist/types/storage/fs/index.d.ts.map +1 -0
- package/dist/types/storage/index.d.ts +10 -0
- package/dist/types/storage/index.d.ts.map +1 -0
- package/dist/types/storage/indexed-db/data-source.d.ts +44 -0
- package/dist/types/storage/indexed-db/data-source.d.ts.map +1 -0
- package/dist/types/storage/indexed-db/index.d.ts +3 -0
- package/dist/types/storage/indexed-db/index.d.ts.map +1 -0
- package/dist/types/storage/indexed-db/merkletree.d.ts +43 -0
- package/dist/types/storage/indexed-db/merkletree.d.ts.map +1 -0
- package/dist/types/storage/interfaces/circuits.d.ts +26 -0
- package/dist/types/storage/interfaces/circuits.d.ts.map +1 -0
- package/dist/types/storage/interfaces/credentials.d.ts +53 -0
- package/dist/types/storage/interfaces/credentials.d.ts.map +1 -0
- package/dist/types/storage/interfaces/data-source.d.ts +39 -0
- package/dist/types/storage/interfaces/data-source.d.ts.map +1 -0
- package/dist/types/storage/interfaces/data-storage.d.ts +17 -0
- package/dist/types/storage/interfaces/data-storage.d.ts.map +1 -0
- package/dist/types/storage/interfaces/identity.d.ts +70 -0
- package/dist/types/storage/interfaces/identity.d.ts.map +1 -0
- package/dist/types/storage/interfaces/index.d.ts +11 -0
- package/dist/types/storage/interfaces/index.d.ts.map +1 -0
- package/dist/types/storage/interfaces/merkletree.d.ts +44 -0
- package/dist/types/storage/interfaces/merkletree.d.ts.map +1 -0
- package/dist/types/storage/interfaces/onchain-issuer.d.ts +13 -0
- package/dist/types/storage/interfaces/onchain-issuer.d.ts.map +1 -0
- package/dist/types/storage/interfaces/onchain-revocation.d.ts +19 -0
- package/dist/types/storage/interfaces/onchain-revocation.d.ts.map +1 -0
- package/dist/types/storage/interfaces/onchain-zkp-verifier.d.ts +63 -0
- package/dist/types/storage/interfaces/onchain-zkp-verifier.d.ts.map +1 -0
- package/dist/types/storage/interfaces/state.d.ts +74 -0
- package/dist/types/storage/interfaces/state.d.ts.map +1 -0
- package/dist/types/storage/local-storage/data-source.d.ts +41 -0
- package/dist/types/storage/local-storage/data-source.d.ts.map +1 -0
- package/dist/types/storage/local-storage/index.d.ts +3 -0
- package/dist/types/storage/local-storage/index.d.ts.map +1 -0
- package/dist/types/storage/local-storage/merkletree.d.ts +41 -0
- package/dist/types/storage/local-storage/merkletree.d.ts.map +1 -0
- package/dist/types/storage/memory/cache-lru.d.ts +11 -0
- package/dist/types/storage/memory/cache-lru.d.ts.map +1 -0
- package/dist/types/storage/memory/data-source.d.ts +20 -0
- package/dist/types/storage/memory/data-source.d.ts.map +1 -0
- package/dist/types/storage/memory/index.d.ts +4 -0
- package/dist/types/storage/memory/index.d.ts.map +1 -0
- package/dist/types/storage/memory/merkletree.d.ts +48 -0
- package/dist/types/storage/memory/merkletree.d.ts.map +1 -0
- package/dist/types/storage/shared/circuit-storage.d.ts +39 -0
- package/dist/types/storage/shared/circuit-storage.d.ts.map +1 -0
- package/dist/types/storage/shared/credential-storage.d.ts +39 -0
- package/dist/types/storage/shared/credential-storage.d.ts.map +1 -0
- package/dist/types/storage/shared/identity-storage.d.ts +45 -0
- package/dist/types/storage/shared/identity-storage.d.ts.map +1 -0
- package/dist/types/storage/shared/index.d.ts +4 -0
- package/dist/types/storage/shared/index.d.ts.map +1 -0
- package/dist/types/storage/utils.d.ts +4 -0
- package/dist/types/storage/utils.d.ts.map +1 -0
- package/dist/types/utils/compare-func.d.ts +2 -0
- package/dist/types/utils/compare-func.d.ts.map +1 -0
- package/dist/types/utils/did-helper.d.ts +38 -0
- package/dist/types/utils/did-helper.d.ts.map +1 -0
- package/dist/types/utils/encoding.d.ts +25 -0
- package/dist/types/utils/encoding.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +8 -0
- package/dist/types/utils/index.d.ts.map +1 -0
- package/dist/types/utils/message-bus.d.ts +63 -0
- package/dist/types/utils/message-bus.d.ts.map +1 -0
- package/dist/types/utils/object.d.ts +10 -0
- package/dist/types/utils/object.d.ts.map +1 -0
- package/dist/types/utils/payments/evm.d.ts +19 -0
- package/dist/types/utils/payments/evm.d.ts.map +1 -0
- package/dist/types/utils/payments/solana.d.ts +88 -0
- package/dist/types/utils/payments/solana.d.ts.map +1 -0
- package/dist/types/verifiable/constants.d.ts +188 -0
- package/dist/types/verifiable/constants.d.ts.map +1 -0
- package/dist/types/verifiable/core-utils.d.ts +87 -0
- package/dist/types/verifiable/core-utils.d.ts.map +1 -0
- package/dist/types/verifiable/credential.d.ts +150 -0
- package/dist/types/verifiable/credential.d.ts.map +1 -0
- package/dist/types/verifiable/index.d.ts +7 -0
- package/dist/types/verifiable/index.d.ts.map +1 -0
- package/dist/types/verifiable/presentation.d.ts +11 -0
- package/dist/types/verifiable/presentation.d.ts.map +1 -0
- package/dist/types/verifiable/proof.d.ts +211 -0
- package/dist/types/verifiable/proof.d.ts.map +1 -0
- package/dist/types/verifiable/schema.d.ts +3 -0
- package/dist/types/verifiable/schema.d.ts.map +1 -0
- package/package.json +104 -0
- package/src/blockchain/index.ts +1 -0
- package/src/blockchain/transaction-service.ts +121 -0
- package/src/circuits/atomic-query-mtp-v2-on-chain.ts +338 -0
- package/src/circuits/atomic-query-mtp-v2.ts +283 -0
- package/src/circuits/atomic-query-sig-v2-on-chain.ts +411 -0
- package/src/circuits/atomic-query-sig-v2.ts +340 -0
- package/src/circuits/atomic-query-v3-on-chain.ts +531 -0
- package/src/circuits/atomic-query-v3.ts +461 -0
- package/src/circuits/auth-v2.ts +159 -0
- package/src/circuits/common.ts +261 -0
- package/src/circuits/comparer.ts +227 -0
- package/src/circuits/index.ts +12 -0
- package/src/circuits/linked-multi-query.ts +180 -0
- package/src/circuits/models.ts +263 -0
- package/src/circuits/state-transition.ts +139 -0
- package/src/credentials/credential-wallet.ts +353 -0
- package/src/credentials/index.ts +11 -0
- package/src/credentials/models.ts +93 -0
- package/src/credentials/rhs.ts +176 -0
- package/src/credentials/status/agent-revocation.ts +69 -0
- package/src/credentials/status/credential-status-publisher.ts +143 -0
- package/src/credentials/status/did-resolver-revocation.ts +24 -0
- package/src/credentials/status/on-chain-revocation.ts +174 -0
- package/src/credentials/status/resolver.ts +81 -0
- package/src/credentials/status/reverse-sparse-merkle-tree.ts +366 -0
- package/src/credentials/status/sparse-merkle-tree.ts +50 -0
- package/src/credentials/utils.ts +36 -0
- package/src/iden3comm/constants.ts +119 -0
- package/src/iden3comm/errors.ts +14 -0
- package/src/iden3comm/handlers/auth.ts +520 -0
- package/src/iden3comm/handlers/common.ts +324 -0
- package/src/iden3comm/handlers/contract-request.ts +367 -0
- package/src/iden3comm/handlers/credential-proposal.ts +371 -0
- package/src/iden3comm/handlers/discovery-protocol.ts +277 -0
- package/src/iden3comm/handlers/fetch.ts +450 -0
- package/src/iden3comm/handlers/index.ts +11 -0
- package/src/iden3comm/handlers/message-handler.ts +165 -0
- package/src/iden3comm/handlers/payment.ts +698 -0
- package/src/iden3comm/handlers/problem-report.ts +41 -0
- package/src/iden3comm/handlers/refresh.ts +138 -0
- package/src/iden3comm/handlers/revocation-status.ts +228 -0
- package/src/iden3comm/index.ts +9 -0
- package/src/iden3comm/packageManager.ts +143 -0
- package/src/iden3comm/packers/index.ts +3 -0
- package/src/iden3comm/packers/jws.ts +225 -0
- package/src/iden3comm/packers/plain.ts +86 -0
- package/src/iden3comm/packers/zkp.ts +243 -0
- package/src/iden3comm/types/index.ts +17 -0
- package/src/iden3comm/types/models.ts +7 -0
- package/src/iden3comm/types/packageManager.ts +112 -0
- package/src/iden3comm/types/packer.ts +190 -0
- package/src/iden3comm/types/protocol/accept-profile.ts +14 -0
- package/src/iden3comm/types/protocol/attachment.ts +12 -0
- package/src/iden3comm/types/protocol/auth.ts +104 -0
- package/src/iden3comm/types/protocol/common.ts +10 -0
- package/src/iden3comm/types/protocol/contract-request.ts +76 -0
- package/src/iden3comm/types/protocol/credentials.ts +96 -0
- package/src/iden3comm/types/protocol/discovery-protocol.ts +49 -0
- package/src/iden3comm/types/protocol/messages.ts +13 -0
- package/src/iden3comm/types/protocol/payment.ts +231 -0
- package/src/iden3comm/types/protocol/problem-report.ts +18 -0
- package/src/iden3comm/types/protocol/proof.ts +25 -0
- package/src/iden3comm/types/protocol/proposal-request.ts +38 -0
- package/src/iden3comm/types/protocol/revocation.ts +23 -0
- package/src/iden3comm/utils/accept-profile.ts +121 -0
- package/src/iden3comm/utils/did.ts +71 -0
- package/src/iden3comm/utils/envelope.ts +101 -0
- package/src/iden3comm/utils/index.ts +4 -0
- package/src/iden3comm/utils/message.ts +41 -0
- package/src/identity/common.ts +69 -0
- package/src/identity/identity-wallet.ts +1592 -0
- package/src/identity/index.ts +2 -0
- package/src/index.ts +16 -0
- package/src/kms/index.ts +4 -0
- package/src/kms/key-providers/bjj-provider.ts +118 -0
- package/src/kms/key-providers/ed25519-provider.ts +105 -0
- package/src/kms/key-providers/index.ts +3 -0
- package/src/kms/key-providers/secp256k1-provider.ts +125 -0
- package/src/kms/kms.ts +173 -0
- package/src/kms/provider-helpers.ts +13 -0
- package/src/kms/store/abstract-key-store.ts +34 -0
- package/src/kms/store/index.ts +5 -0
- package/src/kms/store/indexed-db-key-store.ts +60 -0
- package/src/kms/store/local-storage-key-store.ts +69 -0
- package/src/kms/store/memory-key-store.ts +29 -0
- package/src/kms/store/types.ts +21 -0
- package/src/proof/common.ts +273 -0
- package/src/proof/index.ts +4 -0
- package/src/proof/proof-service.ts +623 -0
- package/src/proof/provers/index.ts +3 -0
- package/src/proof/provers/inputs-generator.ts +627 -0
- package/src/proof/provers/prover.ts +104 -0
- package/src/proof/provers/witness_calculator.ts +315 -0
- package/src/proof/verifiers/index.ts +3 -0
- package/src/proof/verifiers/pub-signals-verifier.ts +730 -0
- package/src/proof/verifiers/query-hash.ts +57 -0
- package/src/proof/verifiers/query.ts +340 -0
- package/src/schema-processor/index.ts +3 -0
- package/src/schema-processor/json/index.ts +2 -0
- package/src/schema-processor/json/parser.ts +256 -0
- package/src/schema-processor/json/validator.ts +67 -0
- package/src/schema-processor/jsonld/cache.ts +49 -0
- package/src/schema-processor/jsonld/index.ts +2 -0
- package/src/schema-processor/jsonld/parser.ts +93 -0
- package/src/schema-processor/utils.ts +84 -0
- package/src/storage/blockchain/abi/CredentialStatusResolver.json +1 -0
- package/src/storage/blockchain/abi/ERC20.json +1 -0
- package/src/storage/blockchain/abi/ERC20Permit.json +1 -0
- package/src/storage/blockchain/abi/IdentityBase.json +1 -0
- package/src/storage/blockchain/abi/State.json +1 -0
- package/src/storage/blockchain/abi/ZkpVerifier.json +789 -0
- package/src/storage/blockchain/common.ts +20 -0
- package/src/storage/blockchain/did-resolver-readonly-storage.ts +90 -0
- package/src/storage/blockchain/erc20-helper.ts +66 -0
- package/src/storage/blockchain/errors.ts +46 -0
- package/src/storage/blockchain/index.ts +7 -0
- package/src/storage/blockchain/onchain-issuer-adapter/non-merklized/version/v0.0.1/onchain-non-merklized-issuer-adapter.ts +327 -0
- package/src/storage/blockchain/onchain-issuer.ts +104 -0
- package/src/storage/blockchain/onchain-revocation.ts +143 -0
- package/src/storage/blockchain/onchain-zkp-verifier.ts +704 -0
- package/src/storage/blockchain/state.ts +471 -0
- package/src/storage/entities/circuitData.ts +7 -0
- package/src/storage/entities/identity.ts +18 -0
- package/src/storage/entities/index.ts +4 -0
- package/src/storage/entities/mt.ts +25 -0
- package/src/storage/entities/state.ts +97 -0
- package/src/storage/errors.ts +8 -0
- package/src/storage/filters/index.ts +1 -0
- package/src/storage/filters/jsonQuery.ts +368 -0
- package/src/storage/fs/circuits-storage.ts +149 -0
- package/src/storage/fs/index.ts +1 -0
- package/src/storage/index.ts +9 -0
- package/src/storage/indexed-db/data-source.ts +58 -0
- package/src/storage/indexed-db/index.ts +2 -0
- package/src/storage/indexed-db/merkletree.ts +140 -0
- package/src/storage/interfaces/circuits.ts +27 -0
- package/src/storage/interfaces/credentials.ts +53 -0
- package/src/storage/interfaces/data-source.ts +41 -0
- package/src/storage/interfaces/data-storage.ts +17 -0
- package/src/storage/interfaces/identity.ts +73 -0
- package/src/storage/interfaces/index.ts +10 -0
- package/src/storage/interfaces/merkletree.ts +52 -0
- package/src/storage/interfaces/onchain-issuer.ts +13 -0
- package/src/storage/interfaces/onchain-revocation.ts +22 -0
- package/src/storage/interfaces/onchain-zkp-verifier.ts +94 -0
- package/src/storage/interfaces/state.ts +81 -0
- package/src/storage/local-storage/data-source.ts +87 -0
- package/src/storage/local-storage/index.ts +2 -0
- package/src/storage/local-storage/merkletree.ts +137 -0
- package/src/storage/memory/cache-lru.ts +30 -0
- package/src/storage/memory/data-source.ts +45 -0
- package/src/storage/memory/index.ts +3 -0
- package/src/storage/memory/merkletree.ts +116 -0
- package/src/storage/shared/circuit-storage.ts +49 -0
- package/src/storage/shared/credential-storage.ts +70 -0
- package/src/storage/shared/identity-storage.ts +82 -0
- package/src/storage/shared/index.ts +3 -0
- package/src/storage/utils.ts +19 -0
- package/src/utils/compare-func.ts +5 -0
- package/src/utils/did-helper.ts +157 -0
- package/src/utils/encoding.ts +47 -0
- package/src/utils/index.ts +7 -0
- package/src/utils/message-bus.ts +88 -0
- package/src/utils/object.ts +52 -0
- package/src/utils/payments/evm.ts +152 -0
- package/src/utils/payments/solana.ts +360 -0
- package/src/verifiable/constants.ts +239 -0
- package/src/verifiable/core-utils.ts +307 -0
- package/src/verifiable/credential.ts +649 -0
- package/src/verifiable/index.ts +6 -0
- package/src/verifiable/presentation.ts +97 -0
- package/src/verifiable/proof.ts +277 -0
- 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
|
+
}
|