@docknetwork/wallet-sdk-wasm 0.4.19
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/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/crypto.d.ts +8 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/crypto.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/crypto.js +24 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/crypto.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/format-utils.d.ts +31 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/format-utils.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/format-utils.js +67 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/format-utils.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/logger.d.ts +3 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/logger.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/logger.js +7 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/logger.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/polkadot-utils.d.ts +10 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/polkadot-utils.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/polkadot-utils.js +65 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/polkadot-utils.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/storage.d.ts +8 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/storage.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/storage.js +8 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/storage.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/validation.d.ts +9 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/validation.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/validation.js +33 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/validation.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/errors.d.ts +7 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/errors.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/errors.js +11 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/errors.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/logger.d.ts +5 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/logger.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/logger.js +14 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/logger.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/account.d.ts +60 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/account.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/account.js +86 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/account.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/accounts.d.ts +49 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/accounts.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/accounts.js +181 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/accounts.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/data-migration.d.ts +7 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/data-migration.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/data-migration.js +66 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/data-migration.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/event-manager.d.ts +13 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/event-manager.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/event-manager.js +35 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/event-manager.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/network-manager.d.ts +49 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/network-manager.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/network-manager.js +64 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/network-manager.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/wallet-backup.d.ts +12 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/wallet-backup.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/wallet-backup.js +52 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/wallet-backup.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/wallet.d.ts +134 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/wallet.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/wallet.js +340 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/wallet.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/rpc-client.d.ts +4 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/rpc-client.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/rpc-client.js +56 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/rpc-client.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/rpc-util.d.ts +11 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/rpc-util.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/rpc-util.js +70 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/rpc-util.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/bbs-revocation.d.ts +10 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/bbs-revocation.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/bbs-revocation.js +42 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/bbs-revocation.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/bound-check.d.ts +65 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/bound-check.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/bound-check.js +57 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/bound-check.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/bound-check.test.d.ts +2 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/bound-check.test.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/bound-check.test.js +280 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/bound-check.test.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/config.d.ts +10 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/config.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/config.js +42 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/config.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/index.d.ts +24 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/index.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/index.js +5 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/index.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/pex-helpers.d.ts +9 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/pex-helpers.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/pex-helpers.js +138 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/pex-helpers.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/pex-to-bounds.d.ts +8 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/pex-to-bounds.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/pex-to-bounds.js +106 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/pex-to-bounds.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/proof-request.json +37 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/range-proof-2.d.ts +2 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/range-proof-2.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/range-proof-2.js +116 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/range-proof-2.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/range-proof-credential.json +64 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/range-proof.d.ts +15 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/range-proof.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/range-proof.js +51 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/range-proof.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/range-proof.test.d.ts +2 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/range-proof.test.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/range-proof.test.js +8 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/range-proof.test.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/range-proofs-example.d.ts +2 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/range-proofs-example.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/range-proofs-example.js +101 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/range-proofs-example.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/service.d.ts +34 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/service.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/service.js +242 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/service.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/utils.d.ts +2 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/utils.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/utils.js +39 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/utils.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dids/config.d.ts +19 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dids/config.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dids/config.js +21 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dids/config.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dids/service-rpc.d.ts +11 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dids/service-rpc.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dids/service-rpc.js +23 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dids/service-rpc.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dids/service.d.ts +25 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dids/service.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dids/service.js +77 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dids/service.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dock/configs.d.ts +7 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dock/configs.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dock/configs.js +8 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dock/configs.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dock/index.d.ts +2 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dock/index.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dock/index.js +2 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dock/index.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dock/service.d.ts +44 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dock/service.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dock/service.js +123 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dock/service.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/example/configs.d.ts +9 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/example/configs.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/example/configs.js +9 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/example/configs.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/example/service.d.ts +8 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/example/service.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/example/service.js +12 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/example/service.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/keyring/configs.d.ts +33 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/keyring/configs.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/keyring/configs.js +45 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/keyring/configs.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/keyring/index.d.ts +2 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/keyring/index.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/keyring/index.js +2 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/keyring/index.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/keyring/service.js +63 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/keyring/service.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/pex/config.d.ts +15 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/pex/config.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/pex/config.js +14 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/pex/config.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/pex/service.d.ts +19 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/pex/service.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/pex/service.js +44 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/pex/service.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/polkadot/configs.d.ts +8 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/polkadot/configs.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/polkadot/configs.js +8 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/polkadot/configs.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/polkadot/index.d.ts +2 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/polkadot/index.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/polkadot/index.js +2 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/polkadot/index.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/polkadot/service.d.ts +8 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/polkadot/service.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/polkadot/service.js +17 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/polkadot/service.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/relay-service/configs.d.ts +30 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/relay-service/configs.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/relay-service/configs.js +29 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/relay-service/configs.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/relay-service/service-rpc.d.ts +11 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/relay-service/service-rpc.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/relay-service/service-rpc.js +28 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/relay-service/service-rpc.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/relay-service/service.d.ts +18 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/relay-service/service.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/relay-service/service.js +41 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/relay-service/service.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/rpc-service-client.d.ts +7 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/rpc-service-client.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/rpc-service-client.js +16 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/rpc-service-client.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/storage/configs.d.ts +2 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/storage/configs.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/storage/configs.js +2 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/storage/configs.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/storage/index.d.ts +2 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/storage/index.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/storage/index.js +2 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/storage/index.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/storage/service.d.ts +9 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/storage/service.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/storage/service.js +22 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/storage/service.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/substrate/api-utils.d.ts +14 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/substrate/api-utils.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/substrate/api-utils.js +54 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/substrate/api-utils.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/substrate/configs.d.ts +16 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/substrate/configs.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/substrate/configs.js +17 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/substrate/configs.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/substrate/index.d.ts +2 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/substrate/index.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/substrate/index.js +2 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/substrate/index.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/substrate/service.d.ts +13 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/substrate/service.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/substrate/service.js +80 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/substrate/service.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/trust-registry/configs.d.ts +6 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/trust-registry/configs.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/trust-registry/configs.js +14 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/trust-registry/configs.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/trust-registry/service.d.ts +25 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/trust-registry/service.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/trust-registry/service.js +59 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/trust-registry/service.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/util-crypto/configs.d.ts +7 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/util-crypto/configs.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/util-crypto/configs.js +20 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/util-crypto/configs.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/util-crypto/index.d.ts +2 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/util-crypto/index.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/util-crypto/index.js +2 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/util-crypto/index.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/util-crypto/service.d.ts +14 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/util-crypto/service.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/util-crypto/service.js +82 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/util-crypto/service.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/wallet/configs.js +82 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/wallet/configs.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/wallet/index.d.ts +2 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/wallet/index.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/wallet/index.js +2 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/wallet/index.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/wallet/service.d.ts +56 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/wallet/service.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/wallet/service.js +254 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/wallet/service.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/test/fixtures/legacy-wallet-schema.json +129 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/types.d.ts +12 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/types.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/types.js +2 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/types.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/wallet/memory-storage-interface.d.ts +31 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/wallet/memory-storage-interface.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/wallet/memory-storage-interface.js +80 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/wallet/memory-storage-interface.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/wallet/memory-storage-wallet.d.ts +6 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/wallet/memory-storage-wallet.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/wallet/memory-storage-wallet.js +18 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/wallet/memory-storage-wallet.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/wallet/rpc-storage-interface.d.ts +32 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/wallet/rpc-storage-interface.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/wallet/rpc-storage-interface.js +100 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/wallet/rpc-storage-interface.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/wallet/rpc-storage-wallet.d.ts +6 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/wallet/rpc-storage-wallet.d.ts.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/wallet/rpc-storage-wallet.js +20 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/wallet/rpc-storage-wallet.js.map +1 -0
- package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/tsconfig.tsbuildinfo +1 -0
- package/.watchmanconfig +5 -0
- package/babel.config.js +12 -0
- package/jsdoc.conf.json +8 -0
- package/lib/account-22dc214b.js +774 -0
- package/lib/account-df68209b.js +764 -0
- package/lib/core/crypto.js +45 -0
- package/lib/core/crypto.mjs +33 -0
- package/lib/core/format-utils.js +79 -0
- package/lib/core/format-utils.mjs +65 -0
- package/lib/core/keychain.js +61 -0
- package/lib/core/keychain.mjs +37 -0
- package/lib/core/logger.js +13 -0
- package/lib/core/logger.mjs +9 -0
- package/lib/core/polkadot-utils.js +105 -0
- package/lib/core/polkadot-utils.mjs +81 -0
- package/lib/core/realm-schemas.js +50 -0
- package/lib/core/realm-schemas.mjs +44 -0
- package/lib/core/storage.js +14 -0
- package/lib/core/storage.mjs +9 -0
- package/lib/core/subscan.js +75 -0
- package/lib/core/subscan.mjs +65 -0
- package/lib/core/validation.js +52 -0
- package/lib/core/validation.mjs +35 -0
- package/lib/core/webview-logger.js +49 -0
- package/lib/core/webview-logger.mjs +41 -0
- package/lib/errors.js +17 -0
- package/lib/errors.mjs +12 -0
- package/lib/events.js +18 -0
- package/lib/events.mjs +13 -0
- package/lib/fixtures.js +56 -0
- package/lib/fixtures.mjs +52 -0
- package/lib/index.js +146 -0
- package/lib/index.mjs +144 -0
- package/lib/logger.js +22 -0
- package/lib/logger.mjs +17 -0
- package/lib/modules/account.js +50 -0
- package/lib/modules/account.mjs +42 -0
- package/lib/modules/accounts.js +51 -0
- package/lib/modules/accounts.mjs +42 -0
- package/lib/modules/data-migration.js +72 -0
- package/lib/modules/data-migration.mjs +68 -0
- package/lib/modules/event-manager.js +46 -0
- package/lib/modules/event-manager.mjs +37 -0
- package/lib/modules/network-manager.js +75 -0
- package/lib/modules/network-manager.mjs +66 -0
- package/lib/modules/wallet-backup.js +82 -0
- package/lib/modules/wallet-backup.mjs +71 -0
- package/lib/modules/wallet.js +51 -0
- package/lib/modules/wallet.mjs +42 -0
- package/lib/mrklt.js +2 -0
- package/lib/mrklt.mjs +1 -0
- package/lib/rpc-client.js +83 -0
- package/lib/rpc-client.mjs +73 -0
- package/lib/rpc-server.js +95 -0
- package/lib/rpc-server.mjs +93 -0
- package/lib/rpc-util.js +99 -0
- package/lib/rpc-util.mjs +89 -0
- package/lib/sandbox-rpc-server.js +28 -0
- package/lib/sandbox-rpc-server.mjs +26 -0
- package/lib/sandbox.js +102 -0
- package/lib/sandbox.mjs +100 -0
- package/lib/services/credential/bbs-revocation.js +47 -0
- package/lib/services/credential/bbs-revocation.mjs +38 -0
- package/lib/services/credential/bound-check.js +77 -0
- package/lib/services/credential/bound-check.mjs +60 -0
- package/lib/services/credential/config.js +53 -0
- package/lib/services/credential/config.mjs +44 -0
- package/lib/services/credential/index.android.js +19 -0
- package/lib/services/credential/index.android.mjs +15 -0
- package/lib/services/credential/index.ios.js +19 -0
- package/lib/services/credential/index.ios.mjs +15 -0
- package/lib/services/credential/index.js +41 -0
- package/lib/services/credential/index.mjs +37 -0
- package/lib/services/credential/pex-helpers.js +186 -0
- package/lib/services/credential/pex-helpers.mjs +175 -0
- package/lib/services/credential/range-proof-2.js +122 -0
- package/lib/services/credential/range-proof-2.mjs +118 -0
- package/lib/services/credential/range-proof.js +207 -0
- package/lib/services/credential/range-proof.mjs +202 -0
- package/lib/services/credential/range-proofs-example.js +107 -0
- package/lib/services/credential/range-proofs-example.mjs +103 -0
- package/lib/services/credential/service-rpc.js +46 -0
- package/lib/services/credential/service-rpc.mjs +42 -0
- package/lib/services/credential/service.js +271 -0
- package/lib/services/credential/service.mjs +259 -0
- package/lib/services/credential/utils.js +78 -0
- package/lib/services/credential/utils.mjs +51 -0
- package/lib/services/dids/config.js +32 -0
- package/lib/services/dids/config.mjs +23 -0
- package/lib/services/dids/index.android.js +19 -0
- package/lib/services/dids/index.android.mjs +15 -0
- package/lib/services/dids/index.ios.js +19 -0
- package/lib/services/dids/index.ios.mjs +15 -0
- package/lib/services/dids/index.js +37 -0
- package/lib/services/dids/index.mjs +33 -0
- package/lib/services/dids/service-rpc.js +37 -0
- package/lib/services/dids/service-rpc.mjs +33 -0
- package/lib/services/dids/service.js +104 -0
- package/lib/services/dids/service.mjs +96 -0
- package/lib/services/dock/configs.js +18 -0
- package/lib/services/dock/configs.mjs +10 -0
- package/lib/services/dock/index.android.js +19 -0
- package/lib/services/dock/index.android.mjs +15 -0
- package/lib/services/dock/index.ios.js +19 -0
- package/lib/services/dock/index.ios.mjs +15 -0
- package/lib/services/dock/index.js +17 -0
- package/lib/services/dock/index.mjs +9 -0
- package/lib/services/dock/service-rpc.js +58 -0
- package/lib/services/dock/service-rpc.mjs +54 -0
- package/lib/services/dock/service.js +138 -0
- package/lib/services/dock/service.mjs +126 -0
- package/lib/services/example/configs.js +21 -0
- package/lib/services/example/configs.mjs +13 -0
- package/lib/services/example/index.js +18 -0
- package/lib/services/example/index.mjs +14 -0
- package/lib/services/example/service-rpc.js +25 -0
- package/lib/services/example/service-rpc.mjs +21 -0
- package/lib/services/example/service.js +23 -0
- package/lib/services/example/service.mjs +18 -0
- package/lib/services/index.js +92 -0
- package/lib/services/index.mjs +90 -0
- package/lib/services/keyring/configs.js +58 -0
- package/lib/services/keyring/configs.mjs +49 -0
- package/lib/services/keyring/index.android.js +22 -0
- package/lib/services/keyring/index.android.mjs +18 -0
- package/lib/services/keyring/index.ios.js +22 -0
- package/lib/services/keyring/index.ios.mjs +18 -0
- package/lib/services/keyring/index.js +16 -0
- package/lib/services/keyring/index.mjs +8 -0
- package/lib/services/keyring/service-rpc.js +65 -0
- package/lib/services/keyring/service-rpc.mjs +61 -0
- package/lib/services/keyring/service.js +79 -0
- package/lib/services/keyring/service.mjs +69 -0
- package/lib/services/pex/config.js +25 -0
- package/lib/services/pex/config.mjs +16 -0
- package/lib/services/pex/index.android.js +19 -0
- package/lib/services/pex/index.android.mjs +15 -0
- package/lib/services/pex/index.ios.js +19 -0
- package/lib/services/pex/index.ios.mjs +15 -0
- package/lib/services/pex/index.js +12 -0
- package/lib/services/pex/index.mjs +4 -0
- package/lib/services/pex/service-rpc.js +31 -0
- package/lib/services/pex/service-rpc.mjs +27 -0
- package/lib/services/pex/service.js +52 -0
- package/lib/services/pex/service.mjs +47 -0
- package/lib/services/pex/tests/jest.config.js +25 -0
- package/lib/services/pex/tests/jest.config.mjs +23 -0
- package/lib/services/polkadot/configs.js +17 -0
- package/lib/services/polkadot/configs.mjs +13 -0
- package/lib/services/polkadot/index.android.js +22 -0
- package/lib/services/polkadot/index.android.mjs +18 -0
- package/lib/services/polkadot/index.ios.js +22 -0
- package/lib/services/polkadot/index.ios.mjs +18 -0
- package/lib/services/polkadot/index.js +15 -0
- package/lib/services/polkadot/index.mjs +7 -0
- package/lib/services/polkadot/service-rpc.js +30 -0
- package/lib/services/polkadot/service-rpc.mjs +26 -0
- package/lib/services/polkadot/service.js +28 -0
- package/lib/services/polkadot/service.mjs +23 -0
- package/lib/services/relay-service/configs.js +42 -0
- package/lib/services/relay-service/configs.mjs +33 -0
- package/lib/services/relay-service/index.android.js +22 -0
- package/lib/services/relay-service/index.android.mjs +18 -0
- package/lib/services/relay-service/index.ios.js +22 -0
- package/lib/services/relay-service/index.ios.mjs +18 -0
- package/lib/services/relay-service/index.js +15 -0
- package/lib/services/relay-service/index.mjs +7 -0
- package/lib/services/relay-service/service-rpc.js +45 -0
- package/lib/services/relay-service/service-rpc.mjs +41 -0
- package/lib/services/relay-service/service.js +55 -0
- package/lib/services/relay-service/service.mjs +47 -0
- package/lib/services/rpc-service-client.js +39 -0
- package/lib/services/rpc-service-client.mjs +31 -0
- package/lib/services/sandbox.js +10 -0
- package/lib/services/sandbox.mjs +8 -0
- package/lib/services/storage/configs.js +7 -0
- package/lib/services/storage/configs.mjs +3 -0
- package/lib/services/storage/index.android.js +18 -0
- package/lib/services/storage/index.android.mjs +14 -0
- package/lib/services/storage/index.ios.js +18 -0
- package/lib/services/storage/index.ios.mjs +14 -0
- package/lib/services/storage/index.js +9 -0
- package/lib/services/storage/index.mjs +1 -0
- package/lib/services/storage/service-rpc.js +33 -0
- package/lib/services/storage/service-rpc.mjs +29 -0
- package/lib/services/storage/service.js +28 -0
- package/lib/services/storage/service.mjs +23 -0
- package/lib/services/substrate/api-utils.js +72 -0
- package/lib/services/substrate/api-utils.mjs +61 -0
- package/lib/services/substrate/configs.js +30 -0
- package/lib/services/substrate/configs.mjs +21 -0
- package/lib/services/substrate/index.android.js +22 -0
- package/lib/services/substrate/index.android.mjs +18 -0
- package/lib/services/substrate/index.ios.js +22 -0
- package/lib/services/substrate/index.ios.mjs +18 -0
- package/lib/services/substrate/index.js +29 -0
- package/lib/services/substrate/index.mjs +21 -0
- package/lib/services/substrate/service-rpc.js +37 -0
- package/lib/services/substrate/service-rpc.mjs +33 -0
- package/lib/services/substrate/service.js +107 -0
- package/lib/services/substrate/service.mjs +94 -0
- package/lib/services/test-utils.js +327 -0
- package/lib/services/test-utils.mjs +307 -0
- package/lib/services/trust-registry/configs.js +25 -0
- package/lib/services/trust-registry/configs.mjs +16 -0
- package/lib/services/trust-registry/index.android.js +19 -0
- package/lib/services/trust-registry/index.android.mjs +15 -0
- package/lib/services/trust-registry/index.ios.js +19 -0
- package/lib/services/trust-registry/index.ios.mjs +15 -0
- package/lib/services/trust-registry/index.js +21 -0
- package/lib/services/trust-registry/index.mjs +13 -0
- package/lib/services/trust-registry/service-rpc.js +29 -0
- package/lib/services/trust-registry/service-rpc.mjs +25 -0
- package/lib/services/trust-registry/service.js +72 -0
- package/lib/services/trust-registry/service.mjs +68 -0
- package/lib/services/util-crypto/configs.js +32 -0
- package/lib/services/util-crypto/configs.mjs +24 -0
- package/lib/services/util-crypto/index.android.js +22 -0
- package/lib/services/util-crypto/index.android.mjs +18 -0
- package/lib/services/util-crypto/index.ios.js +22 -0
- package/lib/services/util-crypto/index.ios.mjs +18 -0
- package/lib/services/util-crypto/index.js +17 -0
- package/lib/services/util-crypto/index.mjs +9 -0
- package/lib/services/util-crypto/service-rpc.js +64 -0
- package/lib/services/util-crypto/service-rpc.mjs +60 -0
- package/lib/services/util-crypto/service.js +96 -0
- package/lib/services/util-crypto/service.mjs +87 -0
- package/lib/services/wallet/configs.js +95 -0
- package/lib/services/wallet/configs.mjs +86 -0
- package/lib/services/wallet/index.android.js +22 -0
- package/lib/services/wallet/index.android.mjs +18 -0
- package/lib/services/wallet/index.ios.js +22 -0
- package/lib/services/wallet/index.ios.mjs +18 -0
- package/lib/services/wallet/index.js +27 -0
- package/lib/services/wallet/index.mjs +19 -0
- package/lib/services/wallet/service-rpc.js +110 -0
- package/lib/services/wallet/service-rpc.mjs +106 -0
- package/lib/services/wallet/service.js +276 -0
- package/lib/services/wallet/service.mjs +267 -0
- package/lib/setup-nodejs.js +93 -0
- package/lib/setup-nodejs.mjs +91 -0
- package/lib/setup-tests.js +92 -0
- package/lib/setup-tests.mjs +90 -0
- package/lib/src/core/crypto.d.ts +8 -0
- package/lib/src/core/crypto.d.ts.map +1 -0
- package/lib/src/core/format-utils.d.ts +31 -0
- package/lib/src/core/format-utils.d.ts.map +1 -0
- package/lib/src/core/logger.d.ts +3 -0
- package/lib/src/core/logger.d.ts.map +1 -0
- package/lib/src/core/polkadot-utils.d.ts +10 -0
- package/lib/src/core/polkadot-utils.d.ts.map +1 -0
- package/lib/src/core/storage.d.ts +8 -0
- package/lib/src/core/storage.d.ts.map +1 -0
- package/lib/src/core/validation.d.ts +9 -0
- package/lib/src/core/validation.d.ts.map +1 -0
- package/lib/src/errors.d.ts +7 -0
- package/lib/src/errors.d.ts.map +1 -0
- package/lib/src/logger.d.ts +5 -0
- package/lib/src/logger.d.ts.map +1 -0
- package/lib/src/modules/account.d.ts +60 -0
- package/lib/src/modules/account.d.ts.map +1 -0
- package/lib/src/modules/accounts.d.ts +49 -0
- package/lib/src/modules/accounts.d.ts.map +1 -0
- package/lib/src/modules/data-migration.d.ts +7 -0
- package/lib/src/modules/data-migration.d.ts.map +1 -0
- package/lib/src/modules/event-manager.d.ts +13 -0
- package/lib/src/modules/event-manager.d.ts.map +1 -0
- package/lib/src/modules/network-manager.d.ts +49 -0
- package/lib/src/modules/network-manager.d.ts.map +1 -0
- package/lib/src/modules/wallet-backup.d.ts +12 -0
- package/lib/src/modules/wallet-backup.d.ts.map +1 -0
- package/lib/src/modules/wallet.d.ts +134 -0
- package/lib/src/modules/wallet.d.ts.map +1 -0
- package/lib/src/rpc-client.d.ts +4 -0
- package/lib/src/rpc-client.d.ts.map +1 -0
- package/lib/src/rpc-util.d.ts +11 -0
- package/lib/src/rpc-util.d.ts.map +1 -0
- package/lib/src/services/credential/bbs-revocation.d.ts +10 -0
- package/lib/src/services/credential/bbs-revocation.d.ts.map +1 -0
- package/lib/src/services/credential/bound-check.d.ts +65 -0
- package/lib/src/services/credential/bound-check.d.ts.map +1 -0
- package/lib/src/services/credential/bound-check.test.d.ts +2 -0
- package/lib/src/services/credential/bound-check.test.d.ts.map +1 -0
- package/lib/src/services/credential/config.d.ts +10 -0
- package/lib/src/services/credential/config.d.ts.map +1 -0
- package/lib/src/services/credential/index.d.ts +24 -0
- package/lib/src/services/credential/index.d.ts.map +1 -0
- package/lib/src/services/credential/pex-helpers.d.ts +9 -0
- package/lib/src/services/credential/pex-helpers.d.ts.map +1 -0
- package/lib/src/services/credential/range-proof-2.d.ts +2 -0
- package/lib/src/services/credential/range-proof-2.d.ts.map +1 -0
- package/lib/src/services/credential/range-proof.d.ts +15 -0
- package/lib/src/services/credential/range-proof.d.ts.map +1 -0
- package/lib/src/services/credential/range-proof.test.d.ts +2 -0
- package/lib/src/services/credential/range-proof.test.d.ts.map +1 -0
- package/lib/src/services/credential/range-proofs-example.d.ts +2 -0
- package/lib/src/services/credential/range-proofs-example.d.ts.map +1 -0
- package/lib/src/services/credential/service.d.ts +34 -0
- package/lib/src/services/credential/service.d.ts.map +1 -0
- package/lib/src/services/credential/utils.d.ts +2 -0
- package/lib/src/services/credential/utils.d.ts.map +1 -0
- package/lib/src/services/dids/config.d.ts +19 -0
- package/lib/src/services/dids/config.d.ts.map +1 -0
- package/lib/src/services/dids/service-rpc.d.ts +11 -0
- package/lib/src/services/dids/service-rpc.d.ts.map +1 -0
- package/lib/src/services/dids/service.d.ts +25 -0
- package/lib/src/services/dids/service.d.ts.map +1 -0
- package/lib/src/services/dock/configs.d.ts +7 -0
- package/lib/src/services/dock/configs.d.ts.map +1 -0
- package/lib/src/services/dock/index.d.ts +2 -0
- package/lib/src/services/dock/index.d.ts.map +1 -0
- package/lib/src/services/dock/service.d.ts +44 -0
- package/lib/src/services/dock/service.d.ts.map +1 -0
- package/lib/src/services/example/configs.d.ts +9 -0
- package/lib/src/services/example/configs.d.ts.map +1 -0
- package/lib/src/services/example/service.d.ts +8 -0
- package/lib/src/services/example/service.d.ts.map +1 -0
- package/lib/src/services/keyring/configs.d.ts +33 -0
- package/lib/src/services/keyring/configs.d.ts.map +1 -0
- package/lib/src/services/keyring/index.d.ts +2 -0
- package/lib/src/services/keyring/index.d.ts.map +1 -0
- package/lib/src/services/pex/config.d.ts +15 -0
- package/lib/src/services/pex/config.d.ts.map +1 -0
- package/lib/src/services/pex/service.d.ts +19 -0
- package/lib/src/services/pex/service.d.ts.map +1 -0
- package/lib/src/services/polkadot/configs.d.ts +8 -0
- package/lib/src/services/polkadot/configs.d.ts.map +1 -0
- package/lib/src/services/polkadot/index.d.ts +2 -0
- package/lib/src/services/polkadot/index.d.ts.map +1 -0
- package/lib/src/services/polkadot/service.d.ts +8 -0
- package/lib/src/services/polkadot/service.d.ts.map +1 -0
- package/lib/src/services/relay-service/configs.d.ts +30 -0
- package/lib/src/services/relay-service/configs.d.ts.map +1 -0
- package/lib/src/services/relay-service/service-rpc.d.ts +11 -0
- package/lib/src/services/relay-service/service-rpc.d.ts.map +1 -0
- package/lib/src/services/relay-service/service.d.ts +18 -0
- package/lib/src/services/relay-service/service.d.ts.map +1 -0
- package/lib/src/services/rpc-service-client.d.ts +7 -0
- package/lib/src/services/rpc-service-client.d.ts.map +1 -0
- package/lib/src/services/storage/configs.d.ts +2 -0
- package/lib/src/services/storage/configs.d.ts.map +1 -0
- package/lib/src/services/storage/index.d.ts +2 -0
- package/lib/src/services/storage/index.d.ts.map +1 -0
- package/lib/src/services/storage/service.d.ts +9 -0
- package/lib/src/services/storage/service.d.ts.map +1 -0
- package/lib/src/services/substrate/api-utils.d.ts +14 -0
- package/lib/src/services/substrate/api-utils.d.ts.map +1 -0
- package/lib/src/services/substrate/configs.d.ts +16 -0
- package/lib/src/services/substrate/configs.d.ts.map +1 -0
- package/lib/src/services/substrate/index.d.ts +2 -0
- package/lib/src/services/substrate/index.d.ts.map +1 -0
- package/lib/src/services/substrate/service.d.ts +13 -0
- package/lib/src/services/substrate/service.d.ts.map +1 -0
- package/lib/src/services/trust-registry/configs.d.ts +6 -0
- package/lib/src/services/trust-registry/configs.d.ts.map +1 -0
- package/lib/src/services/trust-registry/service.d.ts +25 -0
- package/lib/src/services/trust-registry/service.d.ts.map +1 -0
- package/lib/src/services/util-crypto/configs.d.ts +7 -0
- package/lib/src/services/util-crypto/configs.d.ts.map +1 -0
- package/lib/src/services/util-crypto/index.d.ts +2 -0
- package/lib/src/services/util-crypto/index.d.ts.map +1 -0
- package/lib/src/services/util-crypto/service.d.ts +14 -0
- package/lib/src/services/util-crypto/service.d.ts.map +1 -0
- package/lib/src/services/wallet/index.d.ts +2 -0
- package/lib/src/services/wallet/index.d.ts.map +1 -0
- package/lib/src/services/wallet/service.d.ts +56 -0
- package/lib/src/services/wallet/service.d.ts.map +1 -0
- package/lib/src/types.d.ts +12 -0
- package/lib/src/types.d.ts.map +1 -0
- package/lib/src/wallet/memory-storage-interface.d.ts +31 -0
- package/lib/src/wallet/memory-storage-interface.d.ts.map +1 -0
- package/lib/src/wallet/memory-storage-wallet.d.ts +6 -0
- package/lib/src/wallet/memory-storage-wallet.d.ts.map +1 -0
- package/lib/src/wallet/rpc-storage-interface.d.ts +32 -0
- package/lib/src/wallet/rpc-storage-interface.d.ts.map +1 -0
- package/lib/src/wallet/rpc-storage-wallet.d.ts +6 -0
- package/lib/src/wallet/rpc-storage-wallet.d.ts.map +1 -0
- package/lib/test/axiosMocks.js +432 -0
- package/lib/test/axiosMocks.mjs +421 -0
- package/lib/test/setup-test-state.js +88 -0
- package/lib/test/setup-test-state.mjs +80 -0
- package/lib/test-utils.js +50 -0
- package/lib/test-utils.mjs +41 -0
- package/lib/tsconfig.tsbuildinfo +1 -0
- package/lib/types.js +7 -0
- package/lib/types.mjs +3 -0
- package/lib/wallet/memory-storage-interface.js +101 -0
- package/lib/wallet/memory-storage-interface.mjs +95 -0
- package/lib/wallet/memory-storage-wallet.js +30 -0
- package/lib/wallet/memory-storage-wallet.mjs +24 -0
- package/lib/wallet/rpc-storage-interface.js +124 -0
- package/lib/wallet/rpc-storage-interface.mjs +118 -0
- package/lib/wallet/rpc-storage-wallet.js +36 -0
- package/lib/wallet/rpc-storage-wallet.mjs +30 -0
- package/package.json +58 -0
- package/readme.md +61 -0
- package/rollup.config.mjs +35 -0
- package/src/core/crypto.js +31 -0
- package/src/core/format-utils.test.js +44 -0
- package/src/core/format-utils.ts +91 -0
- package/src/core/keychain.js +35 -0
- package/src/core/logger.js +7 -0
- package/src/core/polkadot-utils.js +88 -0
- package/src/core/realm-schemas.js +42 -0
- package/src/core/storage.ts +16 -0
- package/src/core/subscan.js +63 -0
- package/src/core/subscan.test.js +56 -0
- package/src/core/validation.test.js +41 -0
- package/src/core/validation.ts +45 -0
- package/src/core/webview-logger.js +39 -0
- package/src/errors.ts +11 -0
- package/src/events.js +11 -0
- package/src/fixtures.js +43 -0
- package/src/index.js +67 -0
- package/src/logger.js +15 -0
- package/src/modules/account.test.js +56 -0
- package/src/modules/account.ts +128 -0
- package/src/modules/accounts.test.js +88 -0
- package/src/modules/accounts.ts +264 -0
- package/src/modules/data-migration.test.js +72 -0
- package/src/modules/data-migration.ts +86 -0
- package/src/modules/event-manager.ts +41 -0
- package/src/modules/network-manager.ts +82 -0
- package/src/modules/wallet-backup.test.js +24 -0
- package/src/modules/wallet-backup.ts +68 -0
- package/src/modules/wallet.test.js +227 -0
- package/src/modules/wallet.ts +424 -0
- package/src/mrklt.js +2 -0
- package/src/rpc-client.js +70 -0
- package/src/rpc-server.js +17 -0
- package/src/rpc-server.test.js +15 -0
- package/src/rpc-util.js +86 -0
- package/src/sandbox-rpc-server.js +17 -0
- package/src/sandbox.js +90 -0
- package/src/sandbox.testjs +19 -0
- package/src/services/credential/bbs-revocation.ts +83 -0
- package/src/services/credential/bound-check.test.ts +385 -0
- package/src/services/credential/bound-check.ts +143 -0
- package/src/services/credential/config.ts +49 -0
- package/src/services/credential/index.android.js +3 -0
- package/src/services/credential/index.ios.js +3 -0
- package/src/services/credential/index.test.js +408 -0
- package/src/services/credential/index.ts +5 -0
- package/src/services/credential/pex-helpers.js +173 -0
- package/src/services/credential/pex-helpers.test.js +80 -0
- package/src/services/credential/proof-request.json +37 -0
- package/src/services/credential/range-proof-2.ts +248 -0
- package/src/services/credential/range-proof-credential.json +64 -0
- package/src/services/credential/range-proof.test.ts +8 -0
- package/src/services/credential/range-proof.ts +95 -0
- package/src/services/credential/range-proofs-example.ts +216 -0
- package/src/services/credential/service-rpc.js +32 -0
- package/src/services/credential/service.ts +309 -0
- package/src/services/credential/utils.js +48 -0
- package/src/services/dids/config.ts +41 -0
- package/src/services/dids/index.android.js +3 -0
- package/src/services/dids/index.ios.js +3 -0
- package/src/services/dids/index.js +3 -0
- package/src/services/dids/index.test.js +163 -0
- package/src/services/dids/service-rpc.ts +27 -0
- package/src/services/dids/service.ts +97 -0
- package/src/services/dock/configs.ts +12 -0
- package/src/services/dock/index.android.js +3 -0
- package/src/services/dock/index.ios.js +3 -0
- package/src/services/dock/index.js +1 -0
- package/src/services/dock/index.test.js +48 -0
- package/src/services/dock/service-rpc.js +44 -0
- package/src/services/dock/service.ts +154 -0
- package/src/services/example/configs.js +14 -0
- package/src/services/example/index.js +3 -0
- package/src/services/example/index.test.js +28 -0
- package/src/services/example/service-rpc.js +11 -0
- package/src/services/example/service.ts +16 -0
- package/src/services/index.js +26 -0
- package/src/services/keyring/configs.ts +89 -0
- package/src/services/keyring/index.android.js +3 -0
- package/src/services/keyring/index.ios.js +3 -0
- package/src/services/keyring/index.js +1 -0
- package/src/services/keyring/index.test.js +48 -0
- package/src/services/keyring/service-rpc.js +56 -0
- package/src/services/keyring/service.ts +98 -0
- package/src/services/pex/config.ts +25 -0
- package/src/services/pex/index.android.js +2 -0
- package/src/services/pex/index.ios.js +2 -0
- package/src/services/pex/index.js +1 -0
- package/src/services/pex/service-rpc.js +22 -0
- package/src/services/pex/service.ts +68 -0
- package/src/services/pex/tests/jest.config.js +21 -0
- package/src/services/pex/tests/pex-service.test.js +444 -0
- package/src/services/polkadot/configs.ts +13 -0
- package/src/services/polkadot/index.android.js +3 -0
- package/src/services/polkadot/index.ios.js +3 -0
- package/src/services/polkadot/index.js +1 -0
- package/src/services/polkadot/index.test.js +52 -0
- package/src/services/polkadot/service-rpc.js +13 -0
- package/src/services/polkadot/service.ts +21 -0
- package/src/services/relay-service/configs.ts +61 -0
- package/src/services/relay-service/index.android.js +3 -0
- package/src/services/relay-service/index.ios.js +3 -0
- package/src/services/relay-service/index.js +1 -0
- package/src/services/relay-service/index.test.js +67 -0
- package/src/services/relay-service/service-rpc.ts +40 -0
- package/src/services/relay-service/service.ts +58 -0
- package/src/services/rpc-service-client.js +23 -0
- package/src/services/sandbox.js +3 -0
- package/src/services/storage/configs.ts +1 -0
- package/src/services/storage/index.android.js +3 -0
- package/src/services/storage/index.ios.js +3 -0
- package/src/services/storage/index.js +1 -0
- package/src/services/storage/index.test.js +26 -0
- package/src/services/storage/service-rpc.js +19 -0
- package/src/services/storage/service.ts +26 -0
- package/src/services/substrate/api-utils.test.js +73 -0
- package/src/services/substrate/api-utils.ts +66 -0
- package/src/services/substrate/configs.ts +34 -0
- package/src/services/substrate/index.android.js +3 -0
- package/src/services/substrate/index.ios.js +3 -0
- package/src/services/substrate/index.js +1 -0
- package/src/services/substrate/index.test.js +116 -0
- package/src/services/substrate/service-rpc.js +24 -0
- package/src/services/substrate/service.ts +117 -0
- package/src/services/test-utils.js +284 -0
- package/src/services/trust-registry/configs.ts +14 -0
- package/src/services/trust-registry/index.android.js +3 -0
- package/src/services/trust-registry/index.ios.js +3 -0
- package/src/services/trust-registry/index.js +1 -0
- package/src/services/trust-registry/index.test.js +65 -0
- package/src/services/trust-registry/service-rpc.js +15 -0
- package/src/services/trust-registry/service.ts +88 -0
- package/src/services/util-crypto/configs.ts +23 -0
- package/src/services/util-crypto/index.android.js +3 -0
- package/src/services/util-crypto/index.ios.js +3 -0
- package/src/services/util-crypto/index.js +1 -0
- package/src/services/util-crypto/index.test.js +110 -0
- package/src/services/util-crypto/service-rpc.js +47 -0
- package/src/services/util-crypto/service.ts +110 -0
- package/src/services/wallet/configs.ts +152 -0
- package/src/services/wallet/index.android.js +3 -0
- package/src/services/wallet/index.ios.js +3 -0
- package/src/services/wallet/index.js +1 -0
- package/src/services/wallet/index.test.js +360 -0
- package/src/services/wallet/service-rpc.js +104 -0
- package/src/services/wallet/service.ts +329 -0
- package/src/setup-nodejs.js +13 -0
- package/src/setup-tests.js +12 -0
- package/src/test/axiosMocks.js +25 -0
- package/src/test/fixtures/backup-files/empty-json.json +1 -0
- package/src/test/fixtures/backup-files/empty-wallet-backup.json +35 -0
- package/src/test/fixtures/legacy-wallet-schema.json +129 -0
- package/src/test/fixtures/subscan-failure.json +5 -0
- package/src/test/fixtures/subscan-success.json +370 -0
- package/src/test/fixtures/subscan-too-many-requests.json +9 -0
- package/src/test/fixtures/wallet-backup.json +35 -0
- package/src/test/fixtures/wallet-schema-v0.2.json +43 -0
- package/src/test/setup-test-state.js +37 -0
- package/src/test/subscan-mock.test.js +54 -0
- package/src/test/test-wallet.test.js +15 -0
- package/src/test-utils.js +42 -0
- package/src/types.ts +24 -0
- package/src/wallet/memory-storage-interface.js +95 -0
- package/src/wallet/memory-storage-wallet.js +23 -0
- package/src/wallet/rpc-storage-interface.js +118 -0
- package/src/wallet/rpc-storage-wallet.js +26 -0
- package/tsconfig.json +31 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"range-proof-2.d.ts","sourceRoot":"","sources":["../../../../src/services/credential/range-proof-2.ts"],"names":[],"mappings":"AAyDA,wBAAsB,4BAA4B,qBA+HjD"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { BBSSignature, BBSSignatureParams, WitnessEqualityMetaStatement, Witnesses, MetaStatements, QuasiProofSpecG1, MetaStatement, CompositeProofG1, Statements, Witness, Statement, SetupParam, BBSKeypair, } from '@docknetwork/crypto-wasm-ts/lib';
|
|
2
|
+
import { BoundCheckSnarkSetup } from '@docknetwork/crypto-wasm-ts/lib/bound-check';
|
|
3
|
+
import { initializeWasm } from '@docknetwork/crypto-wasm-ts/lib/index';
|
|
4
|
+
// Use presentation builder instead of low level implementation
|
|
5
|
+
// https://github.com/docknetwork/crypto-wasm-ts/blob/master/src/anonymous-credentials/presentation-builder.ts#L240.
|
|
6
|
+
// https://github.com/docknetwork/crypto-wasm-ts/blob/master/tests/anonymous-credentials/presentation.spec.ts#L932
|
|
7
|
+
// Low level implementation testing, we don't need to use it
|
|
8
|
+
const stringToBytes = (string) => Uint8Array.from(Buffer.from(string, 'utf-8'));
|
|
9
|
+
function getRevealedUnrevealed(messages, revealedIndices) {
|
|
10
|
+
const revealedMsgs = new Map();
|
|
11
|
+
const unrevealedMsgs = new Map();
|
|
12
|
+
for (let i = 0; i < messages.length; i++) {
|
|
13
|
+
if (revealedIndices.has(i)) {
|
|
14
|
+
revealedMsgs.set(i, messages[i]);
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
unrevealedMsgs.set(i, messages[i]);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return [revealedMsgs, unrevealedMsgs];
|
|
21
|
+
}
|
|
22
|
+
const earliestIssuance = 642709800000; // Timestamp of the earliest acceptable issuance, used as lower bound
|
|
23
|
+
const latestIssuance = 1588271400000; // Timestamp of the latest acceptable issuance, used as upper bound
|
|
24
|
+
const bornAfter = 642709800000; // Timestamp of the latest acceptable birth date, used as lower bound
|
|
25
|
+
const now = 1620585000000; // Timestamp as of now, i.e proof generation
|
|
26
|
+
const someDistantFuture = 1777746600000; // Timestamp from future
|
|
27
|
+
export async function createRangeProofPresentation() {
|
|
28
|
+
await initializeWasm();
|
|
29
|
+
const provingKey = BoundCheckSnarkSetup();
|
|
30
|
+
const snarkProvingKey = provingKey.decompress();
|
|
31
|
+
const attributes = [];
|
|
32
|
+
attributes.push(BBSSignature.encodeMessageForSigning(stringToBytes('John Smith'))); // Name
|
|
33
|
+
attributes.push(BBSSignature.encodeMessageForSigning(stringToBytes('123-456789-0'))); // SSN
|
|
34
|
+
attributes.push(BBSSignature.encodePositiveNumberForSigning(bornAfter + 100000)); // Birth date as no. of milliseconds since epoch
|
|
35
|
+
attributes.push(BBSSignature.encodePositiveNumberForSigning(earliestIssuance + 100000)); // Issuance date as no. of milliseconds since epoch
|
|
36
|
+
attributes.push(BBSSignature.encodePositiveNumberForSigning(now + 2000000)); // Expiration date as no. of milliseconds since epoch
|
|
37
|
+
const messageCount = attributes.length;
|
|
38
|
+
const sigParams = BBSSignatureParams.generate(messageCount);
|
|
39
|
+
const sigKeypair1 = BBSKeypair.generate(sigParams);
|
|
40
|
+
const sigSecretKey = sigKeypair1.secretKey;
|
|
41
|
+
const sigPublicKey = sigKeypair1.publicKey;
|
|
42
|
+
// Signer creates the signature and shares with prover
|
|
43
|
+
const sig = BBSSignature.generate(attributes, sigSecretKey, sigParams, false);
|
|
44
|
+
const proverSetupParams = [];
|
|
45
|
+
proverSetupParams.push(SetupParam.legosnarkProvingKeyUncompressed(snarkProvingKey));
|
|
46
|
+
const revealedIndices = new Set();
|
|
47
|
+
revealedIndices.add(0);
|
|
48
|
+
const [revealedAttrs, unrevealedAttrs] = getRevealedUnrevealed(attributes, revealedIndices);
|
|
49
|
+
const statement1 = Statement.bbsSignature(sigParams, sigPublicKey, revealedAttrs, false);
|
|
50
|
+
const statement2 = Statement.boundCheckProverFromSetupParamRefs(bornAfter, now, 0);
|
|
51
|
+
// For proving issuance date was between `earliestIssuance` and `latestIssuance`
|
|
52
|
+
const statement3 = Statement.boundCheckProverFromSetupParamRefs(earliestIssuance, latestIssuance, 0);
|
|
53
|
+
// For proving expiration date was between `now` and `someDistantFuture`, i.e. its not expired as of now.
|
|
54
|
+
const statement4 = Statement.boundCheckProverFromSetupParamRefs(now, someDistantFuture, 0);
|
|
55
|
+
const proverStatements = new Statements(statement1);
|
|
56
|
+
proverStatements.add(statement2);
|
|
57
|
+
proverStatements.add(statement3);
|
|
58
|
+
proverStatements.add(statement4);
|
|
59
|
+
// For birth date attribute
|
|
60
|
+
const witnessEq1 = new WitnessEqualityMetaStatement();
|
|
61
|
+
witnessEq1.addWitnessRef(0, 2);
|
|
62
|
+
witnessEq1.addWitnessRef(1, 0);
|
|
63
|
+
// For issuance date attribute
|
|
64
|
+
const witnessEq2 = new WitnessEqualityMetaStatement();
|
|
65
|
+
witnessEq2.addWitnessRef(0, 3);
|
|
66
|
+
witnessEq2.addWitnessRef(2, 0);
|
|
67
|
+
// For expiration date attribute
|
|
68
|
+
const witnessEq3 = new WitnessEqualityMetaStatement();
|
|
69
|
+
witnessEq3.addWitnessRef(0, 4);
|
|
70
|
+
witnessEq3.addWitnessRef(3, 0);
|
|
71
|
+
const metaStatements = new MetaStatements();
|
|
72
|
+
metaStatements.add(MetaStatement.witnessEquality(witnessEq1));
|
|
73
|
+
metaStatements.add(MetaStatement.witnessEquality(witnessEq2));
|
|
74
|
+
metaStatements.add(MetaStatement.witnessEquality(witnessEq3));
|
|
75
|
+
const witnesses = new Witnesses();
|
|
76
|
+
witnesses.add(Witness.bbsSignature(sig, unrevealedAttrs, false));
|
|
77
|
+
witnesses.add(Witness.boundCheckLegoGroth16(attributes[2]));
|
|
78
|
+
witnesses.add(Witness.boundCheckLegoGroth16(attributes[3]));
|
|
79
|
+
witnesses.add(Witness.boundCheckLegoGroth16(attributes[4]));
|
|
80
|
+
const proverProofSpec = new QuasiProofSpecG1(proverStatements, metaStatements, proverSetupParams);
|
|
81
|
+
const nonce = stringToBytes('a nonce');
|
|
82
|
+
const proof = CompositeProofG1.generateUsingQuasiProofSpec(proverProofSpec, witnesses, nonce);
|
|
83
|
+
console.log(proof);
|
|
84
|
+
verifyRangeProof({
|
|
85
|
+
nonce,
|
|
86
|
+
proof,
|
|
87
|
+
provingKey,
|
|
88
|
+
statement1,
|
|
89
|
+
metaStatements: metaStatements.values,
|
|
90
|
+
});
|
|
91
|
+
return true;
|
|
92
|
+
}
|
|
93
|
+
function verifyRangeProof({ nonce, proof, provingKey, statement1, metaStatements, }) {
|
|
94
|
+
const snarkVerifyingKey = provingKey.getVerifyingKeyUncompressed();
|
|
95
|
+
const verifierSetupParams = [];
|
|
96
|
+
verifierSetupParams.push(SetupParam.legosnarkVerifyingKeyUncompressed(snarkVerifyingKey));
|
|
97
|
+
// For verifying birth date was after `bornAfter`
|
|
98
|
+
const statement5 = Statement.boundCheckVerifierFromSetupParamRefs(bornAfter, now, 0);
|
|
99
|
+
// For verifying issuance date was between `earliestIssuance` and `latestIssuance`
|
|
100
|
+
const statement6 = Statement.boundCheckVerifierFromSetupParamRefs(earliestIssuance, latestIssuance, 0);
|
|
101
|
+
// For verifying expiration date was between `now` and `someDistantFuture`, i.e. its not expired as of now.
|
|
102
|
+
const statement7 = Statement.boundCheckVerifierFromSetupParamRefs(now, someDistantFuture, 0);
|
|
103
|
+
const verifierStatements = new Statements();
|
|
104
|
+
verifierStatements.add(statement1);
|
|
105
|
+
verifierStatements.add(statement5);
|
|
106
|
+
verifierStatements.add(statement6);
|
|
107
|
+
verifierStatements.add(statement7);
|
|
108
|
+
const _metaStatements = new MetaStatements();
|
|
109
|
+
metaStatements.forEach(metaStatement => {
|
|
110
|
+
_metaStatements.add(metaStatement);
|
|
111
|
+
});
|
|
112
|
+
const verifierProofSpec = new QuasiProofSpecG1(verifierStatements, _metaStatements, verifierSetupParams);
|
|
113
|
+
const result = proof.verifyUsingQuasiProofSpec(verifierProofSpec, nonce);
|
|
114
|
+
console.log(result);
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=range-proof-2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"range-proof-2.js","sourceRoot":"","sources":["../../../../src/services/credential/range-proof-2.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"@context": [
|
|
3
|
+
"https://www.w3.org/2018/credentials/v1",
|
|
4
|
+
{
|
|
5
|
+
"dk": "https://ld.dock.io/credentials#",
|
|
6
|
+
"UniversityDegree": "dk:UniversityDegree",
|
|
7
|
+
"dateEarned": "dk:dateEarned",
|
|
8
|
+
"name": "dk:name",
|
|
9
|
+
"dateOfBirth": "dk:dateOfBirth",
|
|
10
|
+
"degreeType": "dk:degreeType",
|
|
11
|
+
"degreeName": "dk:degreeName",
|
|
12
|
+
"description": "dk:description",
|
|
13
|
+
"logo": "dk:logo"
|
|
14
|
+
},
|
|
15
|
+
"https://ld.dock.io/credentials/prettyvc"
|
|
16
|
+
],
|
|
17
|
+
"id": "https://creds-staging.dock.io/63744e217f8c81bf2d07740d42f5a7d591d88ddd25cc26bfadbf69d57f2b913c",
|
|
18
|
+
"type": [
|
|
19
|
+
"VerifiableCredential",
|
|
20
|
+
"UniversityDegree",
|
|
21
|
+
"PrettyVerifiableCredential"
|
|
22
|
+
],
|
|
23
|
+
"credentialSubject": {
|
|
24
|
+
"id": "test",
|
|
25
|
+
"dateEarned": "2023-03-02",
|
|
26
|
+
"name": "Maycon Mellos",
|
|
27
|
+
"dateOfBirth": "2023-09-14",
|
|
28
|
+
"degreeType": "Test",
|
|
29
|
+
"degreeName": "Test"
|
|
30
|
+
},
|
|
31
|
+
"issuanceDate": "2023-09-06T19:08:51.100Z",
|
|
32
|
+
"issuer": {
|
|
33
|
+
"name": "Profile bbs",
|
|
34
|
+
"description": "",
|
|
35
|
+
"logo": "",
|
|
36
|
+
"type": "dock",
|
|
37
|
+
"id": "did:dock:5CDpZeS2fAas4Du87f2VyTj1BospmvQ5BZwZrKFtb3GeAppq"
|
|
38
|
+
},
|
|
39
|
+
"name": "University Degree",
|
|
40
|
+
"prettyVC": {
|
|
41
|
+
"type": "liquid",
|
|
42
|
+
"orientation": "landscape",
|
|
43
|
+
"size": "a4",
|
|
44
|
+
"proof": "<div style=\"color:rgb(255, 255, 255);font-family:Arial, sans-serif;font-weight:400;text-align:left;font-size:2.5em;overflow-wrap:break-word;width:100%;height:100%;background-color:rgb(255, 255, 255);background-image:url("data:image/png;base64,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");background-position:left top;background-size:contain;background-repeat:no-repeat;position:absolute;left:0px;top:0px;z-index:0\"></div><div style=\"display:none\"></div><div style=\"display:none\"></div><div style=\"position:absolute;left:22.375%;top:5.48036%;width:65.592%;opacity:1\"><div style=\"position:relative;user-select:auto;width:auto;height:auto;min-width:20px;min-height:20px;box-sizing:border-box;flex-shrink:0\"><div style=\"color:rgb(0, 0, 0);font-family:Arial, sans-serif;font-weight:400;text-align:left;font-size:4.5em;overflow-wrap:break-word;width:100%;height:100%\"><b>Certificate Title</b></div><div></div></div></div><div style=\"position:absolute;left:22.375%;top:31.6447%;width:75.592%;opacity:1\"><div style=\"position:relative;user-select:auto;width:auto;height:auto;min-width:20px;min-height:20px;box-sizing:border-box;flex-shrink:0\"><div style=\"color:rgb(0, 99, 247);font-family:Verdana, sans-serif;font-weight:400;text-align:left;font-size:5.5em;overflow-wrap:break-word;width:100%;height:100%\"><b>{{subject.name}}</b></div><div></div></div></div><div style=\"position:absolute;left:22.375%;top:22.6286%;width:65.592%;opacity:1\"><div style=\"position:relative;user-select:auto;width:auto;height:auto;min-width:20px;min-height:20px;box-sizing:border-box;flex-shrink:0\"><div style=\"color:rgb(0, 0, 0);font-family:Verdana, sans-serif;font-weight:400;text-align:left;font-size:1.75em;overflow-wrap:break-word;width:100%;height:100%\">Presented to</div><div></div></div></div><div style=\"position:absolute;left:22.375%;top:91.3983%;width:25.012%;opacity:1\"><div style=\"position:relative;user-select:auto;width:auto;height:auto;min-width:20px;min-height:20px;box-sizing:border-box;flex-shrink:0\"><div style=\"color:rgb(150, 150, 150);font-family:Verdana, sans-serif;font-weight:400;text-align:left;font-size:1.75em;overflow-wrap:break-word;width:100%;height:100%\">Issued by: {{issuer.name}}</div><div></div></div></div><div style=\"position:absolute;left:22.375%;top:52.859%;width:65.592%;opacity:1\"><div style=\"position:relative;user-select:auto;width:auto;height:auto;min-width:20px;min-height:20px;box-sizing:border-box;flex-shrink:0\"><div style=\"color:rgb(0, 0, 0);font-family:Verdana, sans-serif;font-weight:400;text-align:left;font-size:1.75em;overflow-wrap:break-word;width:100%;height:100%\">for completing the {{credential.name}}</div><div></div></div></div><div style=\"position:absolute;left:22.375%;top:58.1625%;width:65.592%;opacity:1\"><div style=\"position:relative;user-select:auto;width:auto;height:auto;min-width:20px;min-height:20px;box-sizing:border-box;flex-shrink:0\"><div style=\"color:rgb(0, 0, 0);font-family:Verdana, sans-serif;font-weight:400;text-align:left;font-size:1.75em;overflow-wrap:break-word;width:100%;height:100%\">Issued on {{credential.issuanceDate | date: \"%B %d, %Y\"}}</div><div></div></div></div><div style=\"position:absolute;left:75%;top:64.35%;width:22.5%;height:32.7054%;opacity:1\"><div style=\"position:relative;user-select:auto;width:auto;height:auto;min-width:20px;min-height:20px;box-sizing:border-box;flex-shrink:0\"><div style=\"width:100%;height:100%;background:rgb(255, 255, 255);padding:0.5em\"><img src=\"{{qrImage}}\" alt=\"Scan QR\" style=\"width:100%\" /></div><div></div></div></div>"
|
|
45
|
+
},
|
|
46
|
+
"proof": {
|
|
47
|
+
"@context": [
|
|
48
|
+
{
|
|
49
|
+
"sec": "https://w3id.org/security#",
|
|
50
|
+
"proof": {
|
|
51
|
+
"@id": "sec:proof",
|
|
52
|
+
"@type": "@id",
|
|
53
|
+
"@container": "@graph"
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"https://ld.dock.io/security/bbs/v1"
|
|
57
|
+
],
|
|
58
|
+
"type": "Bls12381BBS+SignatureDock2022",
|
|
59
|
+
"created": "2023-09-06T19:09:42Z",
|
|
60
|
+
"verificationMethod": "did:dock:5CDpZeS2fAas4Du87f2VyTj1BospmvQ5BZwZrKFtb3GeAppq#keys-2",
|
|
61
|
+
"proofPurpose": "assertionMethod",
|
|
62
|
+
"proofValue": "zYhtvqUBhmVfBNeyRh7SRftvzZxcbNX44wh1sBHM7jpWXCsvwtRU3qshY6MkxZ2gYfWPnFZsXg7wGkGWvuQPfGjWfroAd611Wo7M4ioKVFSxnLQ91oiWEouchyr7GYWUTM1N9amENcfSm5w924X5LqUida"
|
|
63
|
+
}
|
|
64
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare function createRangeProofPresentation(): Promise<boolean>;
|
|
2
|
+
export declare const stringToBytes: (string: string) => Uint8Array;
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
* @returns
|
|
6
|
+
*
|
|
7
|
+
* TODO
|
|
8
|
+
* [x] - get bbs credential for testing
|
|
9
|
+
* [] - generate presentation using the builder
|
|
10
|
+
* [] - verify the presentation
|
|
11
|
+
* [] - use range proofs
|
|
12
|
+
* [] - verify range proofs presentation
|
|
13
|
+
* [] - create logic to convert proof request into builder params
|
|
14
|
+
*/
|
|
15
|
+
//# sourceMappingURL=range-proof.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"range-proof.d.ts","sourceRoot":"","sources":["../../../../src/services/credential/range-proof.ts"],"names":[],"mappings":"AAgCA,wBAAsB,4BAA4B,qBAsCjD;AAED,eAAO,MAAM,aAAa,WAAY,MAAM,KAAG,UACA,CAAC;AAEhD;;;;;;;;;;;GAWG"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { initializeWasm, } from '@docknetwork/crypto-wasm-ts/lib';
|
|
2
|
+
import { credentialService } from './service';
|
|
3
|
+
import credential from './range-proof-credential.json';
|
|
4
|
+
import { dockService } from '../dock';
|
|
5
|
+
import proofRequest from './proof-request.json';
|
|
6
|
+
export async function createRangeProofPresentation() {
|
|
7
|
+
console.log('initialize dock');
|
|
8
|
+
await dockService.init({
|
|
9
|
+
address: 'wss://knox-1.dock.io',
|
|
10
|
+
});
|
|
11
|
+
console.log('initialize wasm');
|
|
12
|
+
await initializeWasm();
|
|
13
|
+
console.log('wasm initialized');
|
|
14
|
+
// const cred = VerifiableCredential.fromJSON(credential);
|
|
15
|
+
// const provingKey = BoundCheckSnarkSetup();
|
|
16
|
+
// const provingKeyBytes: Uint8Array = provingKey.bytes;
|
|
17
|
+
// const base64Data = Buffer.from(provingKeyBytes).toString('base64');
|
|
18
|
+
// fs.writeFileSync('provingKey.data', base64Data);
|
|
19
|
+
// console.log(provingKeyBytes);
|
|
20
|
+
// provingKey.hex = stringToBytes(provingKey.hex);
|
|
21
|
+
const [_credential] = await credentialService.deriveVCFromBBSPresentation({
|
|
22
|
+
proofRequest,
|
|
23
|
+
credentials: [
|
|
24
|
+
{
|
|
25
|
+
credential,
|
|
26
|
+
attributesToReveal: ['id'],
|
|
27
|
+
},
|
|
28
|
+
],
|
|
29
|
+
});
|
|
30
|
+
console.log(_credential);
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
33
|
+
export const stringToBytes = (string) => Uint8Array.from(Buffer.from(string, 'utf-8'));
|
|
34
|
+
/**
|
|
35
|
+
*
|
|
36
|
+
* @returns
|
|
37
|
+
*
|
|
38
|
+
* TODO
|
|
39
|
+
* [x] - get bbs credential for testing
|
|
40
|
+
* [] - generate presentation using the builder
|
|
41
|
+
* [] - verify the presentation
|
|
42
|
+
* [] - use range proofs
|
|
43
|
+
* [] - verify range proofs presentation
|
|
44
|
+
* [] - create logic to convert proof request into builder params
|
|
45
|
+
*/
|
|
46
|
+
// const snarkProvingKey: LegoProvingKeyUncompressed = provingKey.decompress();
|
|
47
|
+
// const builder = new PresentationBuilder();
|
|
48
|
+
// builder.addCredential(bbsCredential, keypair.pk);
|
|
49
|
+
//
|
|
50
|
+
// console.log(presentation)
|
|
51
|
+
//# sourceMappingURL=range-proof.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"range-proof.js","sourceRoot":"","sources":["../../../../src/services/credential/range-proof.ts"],"names":[],"mappings":"AAKA,OAAO,EAaL,cAAc,GAEf,MAAM,iCAAiC,CAAC;AAIzC,OAAO,EAAC,iBAAiB,EAAC,MAAM,WAAW,CAAC;AAC5C,OAAO,UAAU,MAAM,+BAA+B,CAAC;AACvD,OAAO,EAAC,WAAW,EAAC,MAAM,SAAS,CAAC;AAEpC,OAAO,YAAY,MAAM,sBAAsB,CAAC;AAIhD,MAAM,CAAC,KAAK,UAAU,4BAA4B;IAChD,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC/B,MAAM,WAAW,CAAC,IAAI,CAAC;QACrB,OAAO,EAAE,sBAAsB;KAChC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC/B,MAAM,cAAc,EAAE,CAAC;IAEvB,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAEhC,0DAA0D;IAE1D,6CAA6C;IAE7C,wDAAwD;IAExD,sEAAsE;IAEtE,mDAAmD;IAEnD,gCAAgC;IAGhC,kDAAkD;IAClD,MAAM,CAAC,WAAW,CAAC,GAAG,MAAM,iBAAiB,CAAC,2BAA2B,CAAC;QACxE,YAAY;QACZ,WAAW,EAAE;YACX;gBACE,UAAU;gBACV,kBAAkB,EAAE,CAAC,IAAI,CAAC;aAC3B;SACF;KACF,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAEzB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAc,EAAc,EAAE,CAC1D,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAEhD;;;;;;;;;;;GAWG;AAEH,+EAA+E;AAC/E,6CAA6C;AAE7C,oDAAoD;AAEpD,EAAE;AACF,4BAA4B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"range-proof.test.d.ts","sourceRoot":"","sources":["../../../../src/services/credential/range-proof.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { createRangeProofPresentation } from "./range-proof";
|
|
2
|
+
describe('Test range proofs', () => {
|
|
3
|
+
it('expect presentation to be created', async () => {
|
|
4
|
+
const result = await createRangeProofPresentation();
|
|
5
|
+
expect(result).toBe(true);
|
|
6
|
+
});
|
|
7
|
+
});
|
|
8
|
+
//# sourceMappingURL=range-proof.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"range-proof.test.js","sourceRoot":"","sources":["../../../../src/services/credential/range-proof.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,4BAA4B,EAAC,MAAM,eAAe,CAAC;AAE3D,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,MAAM,GAAG,MAAM,4BAA4B,EAAE,CAAC;QACpD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"range-proofs-example.d.ts","sourceRoot":"","sources":["../../../../src/services/credential/range-proofs-example.ts"],"names":[],"mappings":"AA6CA,wBAAsB,iBAAiB,qBAwKtC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { BBSSignature, BBSSignatureParams, WitnessEqualityMetaStatement, Witnesses, MetaStatements, QuasiProofSpecG1, MetaStatement, CompositeProofG1, Statements, Witness, Statement, SetupParam, BBSKeypair, } from '@docknetwork/crypto-wasm-ts/lib';
|
|
2
|
+
import { BoundCheckSnarkSetup } from '@docknetwork/crypto-wasm-ts/lib/bound-check';
|
|
3
|
+
import { initializeWasm } from '@docknetwork/crypto-wasm-ts/lib/index';
|
|
4
|
+
const stringToBytes = (string) => Uint8Array.from(Buffer.from(string, 'utf-8'));
|
|
5
|
+
function getRevealedUnrevealed(messages, revealedIndices) {
|
|
6
|
+
const revealedMsgs = new Map();
|
|
7
|
+
const unrevealedMsgs = new Map();
|
|
8
|
+
for (let i = 0; i < messages.length; i++) {
|
|
9
|
+
if (revealedIndices.has(i)) {
|
|
10
|
+
revealedMsgs.set(i, messages[i]);
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
unrevealedMsgs.set(i, messages[i]);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return [revealedMsgs, unrevealedMsgs];
|
|
17
|
+
}
|
|
18
|
+
export async function rangeProofExample() {
|
|
19
|
+
await initializeWasm();
|
|
20
|
+
const pk = BoundCheckSnarkSetup();
|
|
21
|
+
const snarkProvingKey = pk.decompress();
|
|
22
|
+
const snarkVerifyingKey = pk.getVerifyingKeyUncompressed();
|
|
23
|
+
const earliestIssuance = 642709800000; // Timestamp of the earliest acceptable issuance, used as lower bound
|
|
24
|
+
const latestIssuance = 1588271400000; // Timestamp of the latest acceptable issuance, used as upper bound
|
|
25
|
+
const bornAfter = 642709800000; // Timestamp of the latest acceptable birth date, used as lower bound
|
|
26
|
+
const now = 1620585000000; // Timestamp as of now, i.e proof generation
|
|
27
|
+
const someDistantFuture = 1777746600000; // Timestamp from future
|
|
28
|
+
const attributes = [];
|
|
29
|
+
attributes.push(BBSSignature.encodeMessageForSigning(stringToBytes('John Smith'))); // Name
|
|
30
|
+
attributes.push(BBSSignature.encodeMessageForSigning(stringToBytes('123-456789-0'))); // SSN
|
|
31
|
+
attributes.push(BBSSignature.encodePositiveNumberForSigning(bornAfter + 100000)); // Birth date as no. of milliseconds since epoch
|
|
32
|
+
attributes.push(BBSSignature.encodePositiveNumberForSigning(earliestIssuance + 100000)); // Issuance date as no. of milliseconds since epoch
|
|
33
|
+
attributes.push(BBSSignature.encodePositiveNumberForSigning(now + 2000000)); // Expiration date as no. of milliseconds since epoch
|
|
34
|
+
const messageCount = attributes.length;
|
|
35
|
+
const sigParams = BBSSignatureParams.generate(messageCount);
|
|
36
|
+
const sigKeypair1 = BBSKeypair.generate(sigParams);
|
|
37
|
+
const sigSecretKey = sigKeypair1.secretKey;
|
|
38
|
+
const sigPublicKey = sigKeypair1.publicKey;
|
|
39
|
+
// Signer creates the signature and shares with prover
|
|
40
|
+
const sig = BBSSignature.generate(attributes, sigSecretKey, sigParams, false);
|
|
41
|
+
const proverSetupParams = [];
|
|
42
|
+
proverSetupParams.push(SetupParam.legosnarkProvingKeyUncompressed(snarkProvingKey));
|
|
43
|
+
const revealedIndices = new Set();
|
|
44
|
+
revealedIndices.add(0);
|
|
45
|
+
const [revealedAttrs, unrevealedAttrs] = getRevealedUnrevealed(attributes, revealedIndices);
|
|
46
|
+
const statement1 = Statement.bbsSignature(sigParams, sigPublicKey, revealedAttrs, false);
|
|
47
|
+
const statement2 = Statement.boundCheckProverFromSetupParamRefs(bornAfter, now, 0);
|
|
48
|
+
// For proving issuance date was between `earliestIssuance` and `latestIssuance`
|
|
49
|
+
const statement3 = Statement.boundCheckProverFromSetupParamRefs(earliestIssuance, latestIssuance, 0);
|
|
50
|
+
// For proving expiration date was between `now` and `someDistantFuture`, i.e. its not expired as of now.
|
|
51
|
+
const statement4 = Statement.boundCheckProverFromSetupParamRefs(now, someDistantFuture, 0);
|
|
52
|
+
const proverStatements = new Statements(statement1);
|
|
53
|
+
proverStatements.add(statement2);
|
|
54
|
+
proverStatements.add(statement3);
|
|
55
|
+
proverStatements.add(statement4);
|
|
56
|
+
// For birth date attribute
|
|
57
|
+
const witnessEq1 = new WitnessEqualityMetaStatement();
|
|
58
|
+
witnessEq1.addWitnessRef(0, 2);
|
|
59
|
+
witnessEq1.addWitnessRef(1, 0);
|
|
60
|
+
// For issuance date attribute
|
|
61
|
+
const witnessEq2 = new WitnessEqualityMetaStatement();
|
|
62
|
+
witnessEq2.addWitnessRef(0, 3);
|
|
63
|
+
witnessEq2.addWitnessRef(2, 0);
|
|
64
|
+
// For expiration date attribute
|
|
65
|
+
const witnessEq3 = new WitnessEqualityMetaStatement();
|
|
66
|
+
witnessEq3.addWitnessRef(0, 4);
|
|
67
|
+
witnessEq3.addWitnessRef(3, 0);
|
|
68
|
+
const metaStatements = new MetaStatements();
|
|
69
|
+
metaStatements.add(MetaStatement.witnessEquality(witnessEq1));
|
|
70
|
+
metaStatements.add(MetaStatement.witnessEquality(witnessEq2));
|
|
71
|
+
metaStatements.add(MetaStatement.witnessEquality(witnessEq3));
|
|
72
|
+
const witnesses = new Witnesses();
|
|
73
|
+
witnesses.add(Witness.bbsSignature(sig, unrevealedAttrs, false));
|
|
74
|
+
witnesses.add(Witness.boundCheckLegoGroth16(attributes[2]));
|
|
75
|
+
witnesses.add(Witness.boundCheckLegoGroth16(attributes[3]));
|
|
76
|
+
witnesses.add(Witness.boundCheckLegoGroth16(attributes[4]));
|
|
77
|
+
const proverProofSpec = new QuasiProofSpecG1(proverStatements, metaStatements, proverSetupParams);
|
|
78
|
+
const nonce = stringToBytes('a nonce');
|
|
79
|
+
const proof = CompositeProofG1.generateUsingQuasiProofSpec(proverProofSpec, witnesses, nonce);
|
|
80
|
+
console.log(proof);
|
|
81
|
+
// Verify the proof
|
|
82
|
+
const verifierSetupParams = [];
|
|
83
|
+
verifierSetupParams.push(SetupParam.legosnarkVerifyingKeyUncompressed(snarkVerifyingKey));
|
|
84
|
+
// For verifying birth date was after `bornAfter`
|
|
85
|
+
const statement5 = Statement.boundCheckVerifierFromSetupParamRefs(bornAfter, now, 0);
|
|
86
|
+
// For verifying issuance date was between `earliestIssuance` and `latestIssuance`
|
|
87
|
+
const statement6 = Statement.boundCheckVerifierFromSetupParamRefs(earliestIssuance, latestIssuance, 0);
|
|
88
|
+
// For verifying expiration date was between `now` and `someDistantFuture`, i.e. its not expired as of now.
|
|
89
|
+
const statement7 = Statement.boundCheckVerifierFromSetupParamRefs(now, someDistantFuture, 0);
|
|
90
|
+
const verifierStatements = new Statements();
|
|
91
|
+
verifierStatements.add(statement1);
|
|
92
|
+
verifierStatements.add(statement5);
|
|
93
|
+
verifierStatements.add(statement6);
|
|
94
|
+
verifierStatements.add(statement7);
|
|
95
|
+
const verifierProofSpec = new QuasiProofSpecG1(verifierStatements, metaStatements, verifierSetupParams);
|
|
96
|
+
const result = proof.verifyUsingQuasiProofSpec(verifierProofSpec, nonce);
|
|
97
|
+
console.log(result);
|
|
98
|
+
return true;
|
|
99
|
+
}
|
|
100
|
+
rangeProofExample();
|
|
101
|
+
//# sourceMappingURL=range-proofs-example.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"range-proofs-example.js","sourceRoot":"","sources":["../../../../src/services/credential/range-proofs-example.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export declare function isBBSPlusCredential(credential: any): any;
|
|
2
|
+
declare class CredentialService {
|
|
3
|
+
constructor();
|
|
4
|
+
rpcMethods: ((params?: {}) => any)[];
|
|
5
|
+
generateCredential(params?: {}): any;
|
|
6
|
+
signCredential(params: any): Promise<any>;
|
|
7
|
+
createPresentation(params: any): Promise<any>;
|
|
8
|
+
verifyCredential(params: any): Promise<any>;
|
|
9
|
+
filterCredentials(params: any): import("@sphereon/pex").SelectResults;
|
|
10
|
+
evaluatePresentation(params: any): import("@sphereon/pex").EvaluationResults;
|
|
11
|
+
isBBSPlusCredential(params: any): any;
|
|
12
|
+
createBBSPresentation(params: any): Promise<any>;
|
|
13
|
+
getAccumulatorId({ credential }: {
|
|
14
|
+
credential: any;
|
|
15
|
+
}): any;
|
|
16
|
+
getAccumulatorData({ credential }: {
|
|
17
|
+
credential: any;
|
|
18
|
+
}): Promise<any>;
|
|
19
|
+
/**
|
|
20
|
+
* Fetch the latest accumulator witness updates for a given credential and membership witness
|
|
21
|
+
* The witness is generated by the issuer when the credential is created and is stored in the wallet when the credential is imported
|
|
22
|
+
*
|
|
23
|
+
* @param param0
|
|
24
|
+
*/
|
|
25
|
+
updateMembershipWitness({ credential, membershipWitnessJSON }: {
|
|
26
|
+
credential: any;
|
|
27
|
+
membershipWitnessJSON: any;
|
|
28
|
+
}): Promise<any>;
|
|
29
|
+
deriveVCFromBBSPresentation(params: any): Promise<any>;
|
|
30
|
+
testRangeProof(): Promise<void>;
|
|
31
|
+
}
|
|
32
|
+
export declare const credentialService: CredentialService;
|
|
33
|
+
export {};
|
|
34
|
+
//# sourceMappingURL=service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../src/services/credential/service.ts"],"names":[],"mappings":"AAkCA,wBAAgB,mBAAmB,CAAC,UAAU,KAAA,OAM7C;AAED,cAAM,iBAAiB;;IAIrB,UAAU,2BAQR;IACF,kBAAkB,CAAC,MAAM,KAAK;IAkBxB,cAAc,CAAC,MAAM,KAAA;IAerB,kBAAkB,CAAC,MAAM,KAAA;IAsBzB,gBAAgB,CAAC,MAAM,KAAA;IA2B7B,iBAAiB,CAAC,MAAM,KAAA;IAWxB,oBAAoB,CAAC,MAAM,KAAA;IAU3B,mBAAmB,CAAC,MAAM,KAAA;IAKpB,qBAAqB,CAAC,MAAM,KAAA;IAgBlC,gBAAgB,CAAC,EAAE,UAAU,EAAE;;KAAA;IASzB,kBAAkB,CAAC,EAAE,UAAU,EAAE;;KAAA;IAWvC;;;;;OAKG;IACG,uBAAuB,CAAC,EAAE,UAAU,EAAE,qBAAqB,EAAE;;;KAAA;IAuC7D,2BAA2B,CAAC,MAAM,KAAA;IA2DlC,cAAc;CAGrB;AAED,eAAO,MAAM,iBAAiB,mBAA0B,CAAC"}
|