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