@docknetwork/wallet-sdk-wasm 1.5.8 → 1.5.10
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/lib/core/format-utils.js +0 -28
- package/lib/core/format-utils.mjs +1 -24
- package/lib/core/validation.js +1 -24
- package/lib/core/validation.mjs +2 -21
- package/lib/index.js +13 -32
- package/lib/index.mjs +13 -32
- package/lib/rpc-server.js +13 -32
- package/lib/rpc-server.mjs +13 -32
- package/lib/rpc-util.js +14 -0
- package/lib/rpc-util.mjs +14 -0
- package/lib/services/blockchain/index.js +3 -8
- package/lib/services/blockchain/index.mjs +3 -8
- package/lib/services/blockchain/service.js +37 -80
- package/lib/services/blockchain/service.mjs +38 -81
- package/lib/services/credential/bbs-revocation.js +4 -9
- package/lib/services/credential/bbs-revocation.mjs +3 -8
- package/lib/services/credential/bound-check.js +9 -4
- package/lib/services/credential/bound-check.mjs +9 -4
- package/lib/services/credential/index.js +11 -15
- package/lib/services/credential/index.mjs +11 -15
- package/lib/services/credential/service.js +18 -20
- package/lib/services/credential/service.mjs +15 -17
- package/lib/services/credential/utils.js +65 -28
- package/lib/services/credential/utils.mjs +62 -32
- package/lib/services/dids/index.js +11 -16
- package/lib/services/dids/index.mjs +11 -16
- package/lib/services/dids/keypair-utils.js +142 -0
- package/lib/services/dids/keypair-utils.mjs +113 -0
- package/lib/services/dids/service.js +16 -37
- package/lib/services/dids/service.mjs +16 -37
- package/lib/services/edv/index.js +8 -16
- package/lib/services/edv/index.mjs +8 -16
- package/lib/services/edv/service.js +10 -24
- package/lib/services/edv/service.mjs +10 -24
- package/lib/services/index.js +13 -37
- package/lib/services/index.mjs +13 -37
- package/lib/services/pex/service.js +2 -1
- package/lib/services/pex/service.mjs +2 -1
- package/lib/services/relay-service/configs.js +0 -1
- package/lib/services/relay-service/configs.mjs +0 -1
- package/lib/services/relay-service/index.android.js +0 -1
- package/lib/services/relay-service/index.android.mjs +0 -1
- package/lib/services/relay-service/index.ios.js +0 -1
- package/lib/services/relay-service/index.ios.mjs +0 -1
- package/lib/services/relay-service/index.js +0 -1
- package/lib/services/relay-service/index.mjs +0 -1
- package/lib/services/relay-service/service-rpc.js +0 -1
- package/lib/services/relay-service/service-rpc.mjs +0 -1
- package/lib/services/relay-service/service.js +0 -1
- package/lib/services/relay-service/service.mjs +0 -1
- package/lib/services/test-utils.js +0 -239
- package/lib/services/test-utils.mjs +1 -234
- package/lib/services/util-crypto/configs.js +0 -12
- package/lib/services/util-crypto/configs.mjs +0 -12
- package/lib/services/util-crypto/index.android.js +0 -3
- package/lib/services/util-crypto/index.android.mjs +0 -3
- package/lib/services/util-crypto/index.ios.js +0 -3
- package/lib/services/util-crypto/index.ios.mjs +0 -3
- package/lib/services/util-crypto/index.js +4 -7
- package/lib/services/util-crypto/index.mjs +4 -7
- package/lib/services/util-crypto/service-rpc.js +0 -23
- package/lib/services/util-crypto/service-rpc.mjs +0 -23
- package/lib/services/util-crypto/service.js +68 -61
- package/lib/services/util-crypto/service.mjs +50 -59
- package/lib/services/wallet/configs.js +0 -63
- package/lib/services/wallet/configs.mjs +1 -64
- package/lib/services/wallet/index.android.js +0 -1
- package/lib/services/wallet/index.android.mjs +0 -1
- package/lib/services/wallet/index.ios.js +0 -1
- package/lib/services/wallet/index.ios.mjs +0 -1
- package/lib/services/wallet/index.js +2 -12
- package/lib/services/wallet/index.mjs +2 -12
- package/lib/services/wallet/service-rpc.js +0 -77
- package/lib/services/wallet/service-rpc.mjs +0 -77
- package/lib/services/wallet/service.js +1 -215
- package/lib/services/wallet/service.mjs +1 -211
- package/lib/setup-nodejs.js +13 -32
- package/lib/setup-nodejs.mjs +13 -32
- package/lib/setup-tests.js +13 -32
- package/lib/setup-tests.mjs +13 -32
- package/lib/src/core/format-utils.d.ts +0 -5
- package/lib/src/core/format-utils.d.ts.map +1 -1
- package/lib/src/core/validation.d.ts +0 -3
- package/lib/src/core/validation.d.ts.map +1 -1
- package/lib/src/rpc-util.d.ts.map +1 -1
- package/lib/src/services/blockchain/service.d.ts +7 -3
- package/lib/src/services/blockchain/service.d.ts.map +1 -1
- package/lib/src/services/credential/bbs-revocation.d.ts.map +1 -1
- package/lib/src/services/credential/bound-check.d.ts +1 -1
- package/lib/src/services/credential/bound-check.d.ts.map +1 -1
- package/lib/src/services/credential/service.d.ts.map +1 -1
- package/lib/src/services/credential/utils.d.ts +2 -1
- package/lib/src/services/credential/utils.d.ts.map +1 -1
- package/lib/src/services/dids/keypair-utils.d.ts +15 -0
- package/lib/src/services/dids/keypair-utils.d.ts.map +1 -0
- package/lib/src/services/dids/service.d.ts +6 -6
- package/lib/src/services/dids/service.d.ts.map +1 -1
- package/lib/src/services/edv/service.d.ts.map +1 -1
- package/lib/src/services/pex/service.d.ts.map +1 -1
- package/lib/src/services/util-crypto/configs.d.ts +0 -3
- package/lib/src/services/util-crypto/configs.d.ts.map +1 -1
- package/lib/src/services/util-crypto/service.d.ts +3 -8
- package/lib/src/services/util-crypto/service.d.ts.map +1 -1
- package/lib/src/services/wallet/configs.d.ts +13 -0
- package/lib/src/services/wallet/configs.d.ts.map +1 -0
- package/lib/src/services/wallet/service.d.ts +1 -44
- package/lib/src/services/wallet/service.d.ts.map +1 -1
- package/lib/test-utils.js +0 -4
- package/lib/test-utils.mjs +1 -4
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -27
- package/readme.md +0 -61
- package/src/core/format-utils.test.js +1 -28
- package/src/core/format-utils.ts +0 -33
- package/src/core/validation.test.js +1 -33
- package/src/core/validation.ts +1 -25
- package/src/rpc-server.test.js +2 -9
- package/src/rpc-util.js +14 -0
- package/src/services/blockchain/index.test.js +4 -15
- package/src/services/blockchain/service.ts +39 -98
- package/src/services/credential/bbs-revocation.ts +2 -1
- package/src/services/credential/bound-check.test.ts +6 -6
- package/src/services/credential/bound-check.ts +4 -4
- package/src/services/credential/index.test.js +0 -2
- package/src/services/credential/service.ts +5 -2
- package/src/services/credential/utils.js +65 -23
- package/src/services/dids/index.test.js +9 -20
- package/src/services/dids/keypair-utils.js +111 -0
- package/src/services/dids/service.ts +7 -26
- package/src/services/edv/service.ts +2 -9
- package/src/services/index.js +0 -8
- package/src/services/pex/service.ts +7 -1
- package/src/services/test-utils.js +0 -207
- package/src/services/util-crypto/configs.ts +0 -12
- package/src/services/util-crypto/index.test.js +6 -83
- package/src/services/util-crypto/service-rpc.js +0 -20
- package/src/services/util-crypto/service.ts +62 -75
- package/src/services/wallet/configs.ts +1 -113
- package/src/services/wallet/index.test.js +0 -159
- package/src/services/wallet/service-rpc.js +1 -88
- package/src/services/wallet/service.ts +0 -258
- package/src/test-utils.js +0 -13
- package/lib/account-8fa95046.js +0 -774
- package/lib/account-e7156c51.js +0 -764
- package/lib/core/polkadot-utils.js +0 -119
- package/lib/core/polkadot-utils.mjs +0 -94
- package/lib/core/realm-schemas.js +0 -50
- package/lib/core/realm-schemas.mjs +0 -44
- package/lib/core/subscan.js +0 -75
- package/lib/core/subscan.mjs +0 -64
- package/lib/fixtures.js +0 -56
- package/lib/fixtures.mjs +0 -52
- package/lib/modules/account.js +0 -55
- package/lib/modules/account.mjs +0 -47
- package/lib/modules/accounts.js +0 -56
- package/lib/modules/accounts.mjs +0 -47
- package/lib/modules/data-migration.js +0 -72
- package/lib/modules/data-migration.mjs +0 -68
- package/lib/modules/wallet-backup.js +0 -82
- package/lib/modules/wallet-backup.mjs +0 -71
- package/lib/modules/wallet.js +0 -56
- package/lib/modules/wallet.mjs +0 -47
- package/lib/services/example/configs.js +0 -21
- package/lib/services/example/configs.mjs +0 -13
- package/lib/services/example/index.js +0 -18
- package/lib/services/example/index.mjs +0 -14
- package/lib/services/example/service-rpc.js +0 -25
- package/lib/services/example/service-rpc.mjs +0 -21
- package/lib/services/example/service.js +0 -25
- package/lib/services/example/service.mjs +0 -20
- package/lib/services/keyring/configs.js +0 -70
- package/lib/services/keyring/configs.mjs +0 -61
- package/lib/services/keyring/index.android.js +0 -22
- package/lib/services/keyring/index.android.mjs +0 -18
- package/lib/services/keyring/index.ios.js +0 -22
- package/lib/services/keyring/index.ios.mjs +0 -18
- package/lib/services/keyring/index.js +0 -16
- package/lib/services/keyring/index.mjs +0 -8
- package/lib/services/keyring/service-rpc.js +0 -65
- package/lib/services/keyring/service-rpc.mjs +0 -61
- package/lib/services/keyring/service.js +0 -84
- package/lib/services/keyring/service.mjs +0 -74
- package/lib/services/polkadot/configs.js +0 -17
- package/lib/services/polkadot/configs.mjs +0 -13
- package/lib/services/polkadot/index.android.js +0 -22
- package/lib/services/polkadot/index.android.mjs +0 -18
- package/lib/services/polkadot/index.ios.js +0 -22
- package/lib/services/polkadot/index.ios.mjs +0 -18
- package/lib/services/polkadot/index.js +0 -15
- package/lib/services/polkadot/index.mjs +0 -7
- package/lib/services/polkadot/service-rpc.js +0 -30
- package/lib/services/polkadot/service-rpc.mjs +0 -26
- package/lib/services/polkadot/service.js +0 -28
- package/lib/services/polkadot/service.mjs +0 -23
- package/lib/services/substrate/api-utils.js +0 -85
- package/lib/services/substrate/api-utils.mjs +0 -74
- package/lib/services/substrate/configs.js +0 -30
- package/lib/services/substrate/configs.mjs +0 -21
- package/lib/services/substrate/index.android.js +0 -22
- package/lib/services/substrate/index.android.mjs +0 -18
- package/lib/services/substrate/index.ios.js +0 -22
- package/lib/services/substrate/index.ios.mjs +0 -18
- package/lib/services/substrate/index.js +0 -37
- package/lib/services/substrate/index.mjs +0 -29
- package/lib/services/substrate/service-rpc.js +0 -37
- package/lib/services/substrate/service-rpc.mjs +0 -33
- package/lib/services/substrate/service.js +0 -115
- package/lib/services/substrate/service.mjs +0 -102
- package/lib/services/trust-registry/configs.js +0 -25
- package/lib/services/trust-registry/configs.mjs +0 -16
- package/lib/services/trust-registry/index.android.js +0 -19
- package/lib/services/trust-registry/index.android.mjs +0 -15
- package/lib/services/trust-registry/index.ios.js +0 -19
- package/lib/services/trust-registry/index.ios.mjs +0 -15
- package/lib/services/trust-registry/index.js +0 -33
- package/lib/services/trust-registry/index.mjs +0 -25
- package/lib/services/trust-registry/service-rpc.js +0 -29
- package/lib/services/trust-registry/service-rpc.mjs +0 -25
- package/lib/services/trust-registry/service.js +0 -89
- package/lib/services/trust-registry/service.mjs +0 -85
- package/lib/src/core/polkadot-utils.d.ts +0 -11
- package/lib/src/core/polkadot-utils.d.ts.map +0 -1
- package/lib/src/modules/account.d.ts +0 -60
- package/lib/src/modules/account.d.ts.map +0 -1
- package/lib/src/modules/accounts.d.ts +0 -49
- package/lib/src/modules/accounts.d.ts.map +0 -1
- package/lib/src/modules/data-migration.d.ts +0 -7
- package/lib/src/modules/data-migration.d.ts.map +0 -1
- package/lib/src/modules/wallet-backup.d.ts +0 -12
- package/lib/src/modules/wallet-backup.d.ts.map +0 -1
- package/lib/src/modules/wallet.d.ts +0 -134
- package/lib/src/modules/wallet.d.ts.map +0 -1
- package/lib/src/services/blockchain/index.d.ts +0 -2
- package/lib/src/services/blockchain/index.d.ts.map +0 -1
- package/lib/src/services/example/configs.d.ts +0 -9
- package/lib/src/services/example/configs.d.ts.map +0 -1
- package/lib/src/services/example/service.d.ts +0 -8
- package/lib/src/services/example/service.d.ts.map +0 -1
- package/lib/src/services/keyring/configs.d.ts +0 -39
- package/lib/src/services/keyring/configs.d.ts.map +0 -1
- package/lib/src/services/keyring/index.d.ts +0 -2
- package/lib/src/services/keyring/index.d.ts.map +0 -1
- package/lib/src/services/polkadot/configs.d.ts +0 -8
- package/lib/src/services/polkadot/configs.d.ts.map +0 -1
- package/lib/src/services/polkadot/index.d.ts +0 -2
- package/lib/src/services/polkadot/index.d.ts.map +0 -1
- package/lib/src/services/polkadot/service.d.ts +0 -8
- package/lib/src/services/polkadot/service.d.ts.map +0 -1
- package/lib/src/services/substrate/api-utils.d.ts +0 -14
- package/lib/src/services/substrate/api-utils.d.ts.map +0 -1
- package/lib/src/services/substrate/configs.d.ts +0 -16
- package/lib/src/services/substrate/configs.d.ts.map +0 -1
- package/lib/src/services/substrate/index.d.ts +0 -2
- package/lib/src/services/substrate/index.d.ts.map +0 -1
- package/lib/src/services/substrate/service.d.ts +0 -13
- package/lib/src/services/substrate/service.d.ts.map +0 -1
- package/lib/src/services/trust-registry/configs.d.ts +0 -6
- package/lib/src/services/trust-registry/configs.d.ts.map +0 -1
- package/lib/src/services/trust-registry/service.d.ts +0 -25
- package/lib/src/services/trust-registry/service.d.ts.map +0 -1
- package/lib/src/services/wallet/index.d.ts +0 -2
- package/lib/src/services/wallet/index.d.ts.map +0 -1
- package/lib/test/axiosMocks.js +0 -431
- package/lib/test/axiosMocks.mjs +0 -420
- package/lib/test/setup-test-state.js +0 -93
- package/lib/test/setup-test-state.mjs +0 -85
- package/src/core/polkadot-utils.js +0 -99
- package/src/core/realm-schemas.js +0 -42
- package/src/core/subscan.js +0 -62
- package/src/core/subscan.test.js +0 -56
- package/src/fixtures.js +0 -43
- package/src/modules/account.test.js +0 -56
- package/src/modules/account.ts +0 -128
- package/src/modules/accounts.test.js +0 -88
- package/src/modules/accounts.ts +0 -264
- package/src/modules/data-migration.test.js +0 -72
- package/src/modules/data-migration.ts +0 -86
- package/src/modules/wallet-backup.test.js +0 -24
- package/src/modules/wallet-backup.ts +0 -68
- package/src/modules/wallet.test.js +0 -227
- package/src/modules/wallet.ts +0 -424
- package/src/services/example/configs.js +0 -14
- package/src/services/example/index.js +0 -3
- package/src/services/example/index.test.js +0 -28
- package/src/services/example/service-rpc.js +0 -11
- package/src/services/example/service.ts +0 -18
- package/src/services/keyring/configs.ts +0 -110
- package/src/services/keyring/index.android.js +0 -3
- package/src/services/keyring/index.ios.js +0 -3
- package/src/services/keyring/index.js +0 -1
- package/src/services/keyring/index.test.js +0 -48
- package/src/services/keyring/service-rpc.js +0 -56
- package/src/services/keyring/service.ts +0 -111
- package/src/services/polkadot/configs.ts +0 -13
- package/src/services/polkadot/index.android.js +0 -3
- package/src/services/polkadot/index.ios.js +0 -3
- package/src/services/polkadot/index.js +0 -1
- package/src/services/polkadot/index.test.js +0 -52
- package/src/services/polkadot/service-rpc.js +0 -13
- package/src/services/polkadot/service.ts +0 -21
- package/src/services/substrate/api-utils.test.js +0 -73
- package/src/services/substrate/api-utils.ts +0 -66
- package/src/services/substrate/configs.ts +0 -34
- package/src/services/substrate/index.android.js +0 -3
- package/src/services/substrate/index.ios.js +0 -3
- package/src/services/substrate/index.js +0 -1
- package/src/services/substrate/index.test.js +0 -116
- package/src/services/substrate/service-rpc.js +0 -24
- package/src/services/substrate/service.ts +0 -117
- package/src/services/trust-registry/configs.ts +0 -14
- package/src/services/trust-registry/index.android.js +0 -3
- package/src/services/trust-registry/index.ios.js +0 -3
- package/src/services/trust-registry/index.js +0 -1
- package/src/services/trust-registry/index.test.js +0 -67
- package/src/services/trust-registry/service-rpc.js +0 -15
- package/src/services/trust-registry/service.ts +0 -94
- package/src/test/axiosMocks.js +0 -20
- package/src/test/fixtures/subscan-failure.json +0 -5
- package/src/test/fixtures/subscan-success.json +0 -370
- package/src/test/fixtures/subscan-too-many-requests.json +0 -9
- package/src/test/setup-test-state.js +0 -37
- package/src/test/test-wallet.test.js +0 -15
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
import {OpenID4VCIClientV1_0_13} from '@sphereon/oid4vci-client';
|
|
10
10
|
import {Alg} from '@sphereon/oid4vci-common';
|
|
11
11
|
import {getKeypairFromDoc} from '@docknetwork/universal-wallet/methods/keypairs';
|
|
12
|
+
import {hexToU8a} from '@docknetwork/credential-sdk/utils';
|
|
12
13
|
import {
|
|
13
14
|
VerifiablePresentation,
|
|
14
15
|
Presentation,
|
|
@@ -117,13 +118,15 @@ class CredentialService {
|
|
|
117
118
|
vp.setHolder(keyDoc.controller);
|
|
118
119
|
}
|
|
119
120
|
|
|
120
|
-
|
|
121
|
+
const keyPair = getKeypairFromDoc(keyDoc);
|
|
122
|
+
keyPair.signer = keyPair.signer();
|
|
123
|
+
const suite = await getSuiteFromKeyDoc(keyPair);
|
|
121
124
|
|
|
122
125
|
if (shouldSkipSigning) {
|
|
123
126
|
return vp.toJSON();
|
|
124
127
|
}
|
|
125
128
|
|
|
126
|
-
return vp.sign(
|
|
129
|
+
return vp.sign(suite, challenge, domain, blockchainService.resolver);
|
|
127
130
|
}
|
|
128
131
|
|
|
129
132
|
async verifyPresentation({ presentation, options }: any) {
|
|
@@ -1,13 +1,22 @@
|
|
|
1
1
|
import * as bs58 from 'base58-universal';
|
|
2
|
-
import {
|
|
3
|
-
|
|
2
|
+
import {
|
|
3
|
+
Bls12381BBSKeyPairDock2023,
|
|
4
|
+
Bls12381G2KeyPairDock2022,
|
|
5
|
+
Bls12381BBDT16KeyPairDock2024,
|
|
6
|
+
} from '@docknetwork/credential-sdk/vc/crypto';
|
|
7
|
+
import {randomAsHex} from '@docknetwork/credential-sdk/utils';
|
|
8
|
+
import x25519KeyAgreementKey2020 from '@digitalbazaar/x25519-key-agreement-key-2020';
|
|
9
|
+
import x25519KeyAgreementKey2019 from '@digitalbazaar/x25519-key-agreement-key-2019';
|
|
10
|
+
import ed25519VerificationKey2018 from '@digitalbazaar/ed25519-verification-key-2018';
|
|
11
|
+
import ed25519VerificationKey2020 from '@digitalbazaar/ed25519-verification-key-2020';
|
|
12
|
+
|
|
13
|
+
import {Ed25519Keypair} from '@docknetwork/credential-sdk/keypairs';
|
|
14
|
+
|
|
15
|
+
export async function keyDocToKeypair(keyDoc) {
|
|
16
|
+
if (keyDoc.keypair) {
|
|
17
|
+
return keyDoc;
|
|
18
|
+
}
|
|
4
19
|
|
|
5
|
-
const docToKeyMap = {
|
|
6
|
-
Sr25519VerificationKey2020: 'sr25519',
|
|
7
|
-
Ed25519VerificationKey2018: 'ed25519',
|
|
8
|
-
};
|
|
9
|
-
export function keyDocToKeypair(keyDoc, dock) {
|
|
10
|
-
// For now we expect multibase to just be b58, this needs fixing later if/when we support more keys
|
|
11
20
|
const {
|
|
12
21
|
type,
|
|
13
22
|
privateKeyBase58,
|
|
@@ -15,25 +24,58 @@ export function keyDocToKeypair(keyDoc, dock) {
|
|
|
15
24
|
privateKeyMultibase,
|
|
16
25
|
publicKeyMultibase,
|
|
17
26
|
} = keyDoc;
|
|
18
|
-
|
|
27
|
+
|
|
28
|
+
const publicKeyEncoded = publicKeyBase58 || publicKeyMultibase.substr(1);
|
|
29
|
+
const privateKeyEncoded =
|
|
30
|
+
privateKeyBase58 || (privateKeyMultibase && privateKeyMultibase.substr(1));
|
|
31
|
+
if (!privateKeyEncoded) {
|
|
32
|
+
throw new Error(
|
|
33
|
+
`No private key in document found, this should not happen. Got: ${JSON.stringify(
|
|
34
|
+
keyDoc,
|
|
35
|
+
null,
|
|
36
|
+
2,
|
|
37
|
+
)}`,
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
|
|
19
41
|
const privateKeyBytes = bs58.decode(privateKeyEncoded);
|
|
42
|
+
const publicKeyBytes = bs58.decode(publicKeyEncoded);
|
|
20
43
|
|
|
21
44
|
if (type === 'Bls12381G2VerificationKeyDock2022') {
|
|
22
45
|
return new Bls12381G2KeyPairDock2022(keyDoc);
|
|
46
|
+
} else if (type === 'Bls12381BBSVerificationKeyDock2023') {
|
|
47
|
+
return new Bls12381BBSKeyPairDock2023(keyDoc);
|
|
48
|
+
} else if (type === 'Bls12381BBDT16VerificationKeyDock2024') {
|
|
49
|
+
return new Bls12381BBDT16KeyPairDock2024(keyDoc);
|
|
50
|
+
} else if (
|
|
51
|
+
type === 'Ed25519VerificationKey2020' ||
|
|
52
|
+
type === 'Ed25519VerificationKey2018'
|
|
53
|
+
) {
|
|
54
|
+
const key = new Ed25519Keypair(randomAsHex(32));
|
|
55
|
+
key.keyPair.publicKey = publicKeyBytes;
|
|
56
|
+
key.keyPair.secretKey = privateKeyBytes;
|
|
57
|
+
return key;
|
|
23
58
|
} else {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
59
|
+
throw new Error(`Unsupported key type: ${type}`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
const keyConstructors = {
|
|
64
|
+
Ed25519VerificationKey2018: keypairOptions =>
|
|
65
|
+
new ed25519VerificationKey2018.Ed25519VerificationKey2018(keypairOptions),
|
|
66
|
+
Ed25519VerificationKey2020: keypairOptions =>
|
|
67
|
+
new ed25519VerificationKey2020.Ed25519VerificationKey2020(keypairOptions),
|
|
68
|
+
X25519KeyAgreementKey2019: keypairOptions =>
|
|
69
|
+
new x25519KeyAgreementKey2019.X25519KeyAgreementKey2019(keypairOptions),
|
|
70
|
+
X25519KeyAgreementKey2020: keypairOptions =>
|
|
71
|
+
new x25519KeyAgreementKey2020.X25519KeyAgreementKey2020(keypairOptions),
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
export function getKeypairFromDoc(keypairOptions) {
|
|
75
|
+
const {type} = keypairOptions;
|
|
76
|
+
const keyConstructor = keyConstructors[type];
|
|
77
|
+
if (!keyConstructor) {
|
|
78
|
+
throw new Error(`Unrecognized keypair type to construct: ${type}`);
|
|
38
79
|
}
|
|
80
|
+
return keyConstructor(keypairOptions);
|
|
39
81
|
}
|
|
@@ -3,14 +3,10 @@ import {DIDServiceRPC} from './service-rpc';
|
|
|
3
3
|
import {didService as service} from './service';
|
|
4
4
|
import {validation} from './config';
|
|
5
5
|
import {DIDKeyManager} from '@docknetwork/wallet-sdk-dids/src';
|
|
6
|
-
import {getTestWallet} from '../../test/setup-test-state';
|
|
7
6
|
import {blockchainService} from '../blockchain/service';
|
|
7
|
+
import {Ed25519Keypair} from '@docknetwork/credential-sdk/keypairs';
|
|
8
8
|
|
|
9
9
|
describe('DID Service', () => {
|
|
10
|
-
beforeAll(async () => {
|
|
11
|
-
await getTestWallet();
|
|
12
|
-
});
|
|
13
|
-
|
|
14
10
|
it('ServiceRpc', () => {
|
|
15
11
|
assertRpcService(DIDServiceRPC, service, validation);
|
|
16
12
|
});
|
|
@@ -100,7 +96,7 @@ describe('DID Service', () => {
|
|
|
100
96
|
it('expect to get did document', async () => {
|
|
101
97
|
const document = 'document';
|
|
102
98
|
jest
|
|
103
|
-
.spyOn(blockchainService.
|
|
99
|
+
.spyOn(blockchainService.modules.did, 'getDocument')
|
|
104
100
|
.mockResolvedValue(document);
|
|
105
101
|
|
|
106
102
|
const result = await service.getDidDockDocument(
|
|
@@ -121,25 +117,18 @@ describe('DID Service', () => {
|
|
|
121
117
|
expect(keyDoc.privateKeyMultibase).toBeDefined();
|
|
122
118
|
});
|
|
123
119
|
|
|
124
|
-
it('expect to
|
|
120
|
+
it('expect to deriveKeyDoc', async () => {
|
|
125
121
|
const controller =
|
|
126
122
|
'did:dock:5HL5XB7CHcHT2ZUKjY2SCJvDAK11qoa1exgfVnVTHRbmjJQ';
|
|
127
|
-
const keyPairJSON = {
|
|
128
|
-
encoded:
|
|
129
|
-
'MFMCAQEwBQYDK2VwBCIEIJDIpsaUjZCkVkPmBPqKD0dgu59F8ks4yepJKNFQkz+A/fYvnshD7g1RpaSXuGcLytu6fN/P/PGt2ahhH2Bkh0GhIwMhAP32L57IQ+4NUaWkl7hnC8rbunzfz/zxrdmoYR9gZIdB',
|
|
130
|
-
encoding: {content: ['pkcs8', 'ed25519'], type: ['none'], version: '3'},
|
|
131
|
-
address: '3CGqgBTzZEPyhVTjpWdX5z2uDQ6hxEUALcZ6HthscNnVrKy7',
|
|
132
|
-
meta: {},
|
|
133
|
-
};
|
|
134
123
|
|
|
135
|
-
const
|
|
124
|
+
const {keyPair} = Ed25519Keypair.random();
|
|
125
|
+
|
|
126
|
+
const derivedKeyDoc = await service.deriveKeyDoc({
|
|
136
127
|
controller,
|
|
137
|
-
|
|
128
|
+
pair: keyPair,
|
|
138
129
|
});
|
|
139
130
|
|
|
140
|
-
expect(
|
|
141
|
-
expect(
|
|
142
|
-
'z3ttk77Si8AUHHGAGLWue3qZacSgZDtRRCbd75Bmujx2qstznWv4ZRWtCjEKcJAUUufQpSsurEAJ47mYYKPwQnA2C',
|
|
143
|
-
);
|
|
131
|
+
expect(derivedKeyDoc.controller).toEqual(controller);
|
|
132
|
+
expect(derivedKeyDoc.privateKeyMultibase).toBeDefined();
|
|
144
133
|
});
|
|
145
134
|
});
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code is based on the implementation from truvera api
|
|
3
|
+
* https://github.com/docknetwork/web/blob/3c706c5dc5de4ae63f548c76ec6edeb17533a0c9/apps/api/src/utils/key-manager.js
|
|
4
|
+
*/
|
|
5
|
+
import {Ed25519Keypair} from '@docknetwork/credential-sdk/keypairs';
|
|
6
|
+
import {hexToU8a, u8aToHex, u8aToU8a} from '@docknetwork/credential-sdk/utils';
|
|
7
|
+
// import {encodeBase58} from './dock-shared';
|
|
8
|
+
import * as bs58 from 'base58-universal';
|
|
9
|
+
|
|
10
|
+
export function getKeyPairType(key) {
|
|
11
|
+
const keyType = key.type || key.constructor.VerKeyType;
|
|
12
|
+
if (keyType) {
|
|
13
|
+
return keyType;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
if (key instanceof Ed25519Keypair) {
|
|
17
|
+
return 'Ed25519VerificationKey2018';
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
throw new Error(`Unknown key type for ${key.constructor.name}`);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export const MULTIBASE_BASE58BTC_HEADER = 'z';
|
|
24
|
+
export const MULTICODEC_ED25519_PUB_HEADER = new Uint8Array([0xed, 0x01]);
|
|
25
|
+
export const MULTICODEC_ED25519_PRIV_HEADER = new Uint8Array([0x80, 0x26]);
|
|
26
|
+
|
|
27
|
+
export function encodeMbKey(header, key) {
|
|
28
|
+
const mbKey = new Uint8Array(header.length + key.length);
|
|
29
|
+
mbKey.set(header);
|
|
30
|
+
mbKey.set(key, header.length);
|
|
31
|
+
return MULTIBASE_BASE58BTC_HEADER + bs58.encode(mbKey);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function getKeyFingerprint(keyType, publicKey) {
|
|
35
|
+
if (keyType.startsWith('Ed25519')) {
|
|
36
|
+
return encodeMbKey(MULTICODEC_ED25519_PUB_HEADER, publicKey);
|
|
37
|
+
} else {
|
|
38
|
+
throw new Error(`Cannot detect key type for fingerprint: ${keyType}`);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const keyTypeToDocType = {
|
|
43
|
+
bjj: 'BJJVerificationKey2021',
|
|
44
|
+
secp256k1: 'EcdsaSecp256k1VerificationKey2019',
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
export function keypairToKeydoc(key, controller, id = undefined) {
|
|
48
|
+
const keyType = getKeyPairType(key);
|
|
49
|
+
let keyDoc;
|
|
50
|
+
if (
|
|
51
|
+
keyType === 'Ed25519VerificationKey2020' ||
|
|
52
|
+
keyType === 'Ed25519VerificationKey2018'
|
|
53
|
+
) {
|
|
54
|
+
const publicKey = u8aToU8a(
|
|
55
|
+
(key.keyPair &&
|
|
56
|
+
key.keyPair.publicKey &&
|
|
57
|
+
u8aToU8a(key.keyPair.publicKey)) ||
|
|
58
|
+
key.publicKeyBuffer ||
|
|
59
|
+
(key.pk && key.pk.value),
|
|
60
|
+
);
|
|
61
|
+
|
|
62
|
+
if (!publicKey) {
|
|
63
|
+
throw new Error('Cannot find public key');
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const pk = u8aToU8a(
|
|
67
|
+
(key.keyPair && key.keyPair.secretKey) ||
|
|
68
|
+
key.privateKeyBuffer ||
|
|
69
|
+
(key.sk &&
|
|
70
|
+
(typeof key.sk === 'string'
|
|
71
|
+
? hexToU8a(key.sk)
|
|
72
|
+
: key.sk.value || key.sk)) ||
|
|
73
|
+
hexToU8a(key.pk),
|
|
74
|
+
);
|
|
75
|
+
|
|
76
|
+
const publicKeyBase58 = bs58.encode(publicKey);
|
|
77
|
+
const privateKeyBase58 = bs58.encode(pk);
|
|
78
|
+
|
|
79
|
+
const fingerprint =
|
|
80
|
+
(key.fingerprint && key.fingerprint()) ||
|
|
81
|
+
getKeyFingerprint(keyType, publicKey);
|
|
82
|
+
|
|
83
|
+
// auto create controller
|
|
84
|
+
if (!controller) {
|
|
85
|
+
controller = `did:key:${fingerprint}`;
|
|
86
|
+
id = id || key.id || `${controller}#${fingerprint}`;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
const keyId = id || key.id || `${controller}#${fingerprint}`;
|
|
90
|
+
const type = keyTypeToDocType[keyType] || keyType;
|
|
91
|
+
keyDoc = {
|
|
92
|
+
controller,
|
|
93
|
+
type,
|
|
94
|
+
id: keyId,
|
|
95
|
+
publicKeyMultibase: encodeMbKey(MULTICODEC_ED25519_PUB_HEADER, publicKey),
|
|
96
|
+
privateKeyMultibase: encodeMbKey(MULTICODEC_ED25519_PRIV_HEADER, pk),
|
|
97
|
+
privateKeyBase58,
|
|
98
|
+
publicKeyBase58,
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
if (key.seed) {
|
|
102
|
+
keyDoc.seed = u8aToHex(key.seed);
|
|
103
|
+
}
|
|
104
|
+
} else {
|
|
105
|
+
throw new Error(`Unknown keypairToKeydoc type: ${keyType}`);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
keyDoc['@context'] = ['https://w3id.org/wallet/v1'];
|
|
109
|
+
|
|
110
|
+
return keyDoc;
|
|
111
|
+
}
|
|
@@ -6,7 +6,6 @@ import {
|
|
|
6
6
|
KeypairToDIDKeyDocumentParams,
|
|
7
7
|
GetDIDResolutionParams,
|
|
8
8
|
} from './config';
|
|
9
|
-
import {keyringService} from '../keyring/service';
|
|
10
9
|
import {utilCryptoService} from '../util-crypto/service';
|
|
11
10
|
import assert from 'assert';
|
|
12
11
|
import {blockchainService, getDock} from '../blockchain/service';
|
|
@@ -20,13 +19,13 @@ import {
|
|
|
20
19
|
import {Ed25519Keypair} from '@docknetwork/credential-sdk/keypairs';
|
|
21
20
|
|
|
22
21
|
import {Logger} from '../../core/logger';
|
|
23
|
-
import {polkadotToKeydoc} from '../../core/polkadot-utils';
|
|
24
22
|
import base64url from 'base64url';
|
|
25
23
|
import {keyDocToKeypair} from '../credential/utils';
|
|
26
24
|
import {
|
|
27
25
|
Ed25519Signature2020,
|
|
28
26
|
EcdsaSecp256k1Signature2019,
|
|
29
27
|
} from '@docknetwork/credential-sdk/vc/crypto';
|
|
28
|
+
import { keypairToKeydoc } from './keypair-utils';
|
|
30
29
|
|
|
31
30
|
async function getSignerKeypair(privateKeyDoc) {
|
|
32
31
|
const privateKey =
|
|
@@ -84,34 +83,16 @@ class DIDService {
|
|
|
84
83
|
|
|
85
84
|
async generateKeyDoc(params) {
|
|
86
85
|
validation.generateKeyDoc(params);
|
|
87
|
-
const {derivePath = '', type = 'ed25519'
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
if (keyPairJSON) {
|
|
91
|
-
keyring = keyringService.keyring.addFromJson(keyPairJSON);
|
|
92
|
-
keyring.unlock('');
|
|
93
|
-
} else {
|
|
94
|
-
const mnemonic = await utilCryptoService.mnemonicGenerate(12);
|
|
95
|
-
keyring = keyringService.getKeyringPair({
|
|
96
|
-
mnemonic,
|
|
97
|
-
derivePath,
|
|
98
|
-
type,
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
return polkadotToKeydoc(keyring, params.controller);
|
|
86
|
+
const {derivePath = '', type = 'ed25519'} = params;
|
|
87
|
+
const keyPair = Ed25519Keypair.random()
|
|
88
|
+
return keypairToKeydoc(keyPair, params.controller);
|
|
103
89
|
}
|
|
104
90
|
|
|
105
91
|
async deriveKeyDoc(params) {
|
|
106
92
|
validation.deriveKeyDoc(params);
|
|
107
93
|
const { pair, type = 'ed25519' } = params;
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
pair,
|
|
111
|
-
type,
|
|
112
|
-
});
|
|
113
|
-
|
|
114
|
-
return polkadotToKeydoc(keyring, params.controller);
|
|
94
|
+
const keyPair = new Ed25519Keypair(pair.secretKey, 'private')
|
|
95
|
+
return keypairToKeydoc(keyPair, params.controller);
|
|
115
96
|
}
|
|
116
97
|
|
|
117
98
|
async createSignedJWT({payload, privateKeyDoc, headerInput}) {
|
|
@@ -137,7 +118,7 @@ class DIDService {
|
|
|
137
118
|
async getDidDockDocument(did) {
|
|
138
119
|
assert(!!did, 'DID is required');
|
|
139
120
|
const dock = blockchainService.dock;
|
|
140
|
-
const result = await blockchainService.
|
|
121
|
+
const result = await blockchainService.modules.did.getDocument(did);
|
|
141
122
|
return result;
|
|
142
123
|
}
|
|
143
124
|
}
|
|
@@ -8,8 +8,7 @@ import {X25519KeyAgreementKey2020} from '@digitalbazaar/x25519-key-agreement-key
|
|
|
8
8
|
import {getKeypairFromDoc} from '@docknetwork/universal-wallet/methods/keypairs';
|
|
9
9
|
import {logger} from '@docknetwork/wallet-sdk-data-store/src/logger';
|
|
10
10
|
import {didService} from '@docknetwork/wallet-sdk-wasm/src/services/dids/service';
|
|
11
|
-
import {
|
|
12
|
-
import {ed25519PairFromSeed} from '@polkadot/util-crypto';
|
|
11
|
+
import {Ed25519Keypair} from '@docknetwork/credential-sdk/keypairs';
|
|
13
12
|
|
|
14
13
|
/**
|
|
15
14
|
* EDVService
|
|
@@ -97,9 +96,6 @@ export class EDVService {
|
|
|
97
96
|
}
|
|
98
97
|
|
|
99
98
|
async generateKeys() {
|
|
100
|
-
await keyringService.initialize({
|
|
101
|
-
ss58Format: 22,
|
|
102
|
-
});
|
|
103
99
|
const keyPair = await didService.generateKeyDoc({});
|
|
104
100
|
|
|
105
101
|
const verificationKey = await Ed25519VerificationKey2018.generate({
|
|
@@ -116,10 +112,7 @@ export class EDVService {
|
|
|
116
112
|
}
|
|
117
113
|
|
|
118
114
|
async deriveKeys(masterKey: Uint8Array) {
|
|
119
|
-
|
|
120
|
-
ss58Format: 22,
|
|
121
|
-
});
|
|
122
|
-
const pair = ed25519PairFromSeed(masterKey);
|
|
115
|
+
const {keyPair: pair} = new Ed25519Keypair(masterKey, 'seed');
|
|
123
116
|
|
|
124
117
|
const keyPair = await didService.deriveKeyDoc({ pair });
|
|
125
118
|
|
package/src/services/index.js
CHANGED
|
@@ -1,29 +1,21 @@
|
|
|
1
|
-
import {keyringService} from './keyring/service';
|
|
2
1
|
import {blockchainService} from './blockchain/service';
|
|
3
|
-
import {substrateService} from './substrate/service';
|
|
4
2
|
import {walletService} from './wallet/service';
|
|
5
|
-
import {polkadotService} from './polkadot/service';
|
|
6
3
|
import {utilCryptoService} from './util-crypto/service';
|
|
7
4
|
import {storageService} from './storage/service';
|
|
8
5
|
import {didService} from './dids/service';
|
|
9
6
|
import {credentialService} from './credential/service';
|
|
10
7
|
import {relayService} from './relay-service/service';
|
|
11
8
|
import {pexService} from './pex/service';
|
|
12
|
-
import {trustRegistryService} from './trust-registry/service';
|
|
13
9
|
import {edvService} from './edv/service';
|
|
14
10
|
|
|
15
11
|
export default [
|
|
16
|
-
keyringService,
|
|
17
12
|
blockchainService,
|
|
18
|
-
substrateService,
|
|
19
13
|
walletService,
|
|
20
|
-
polkadotService,
|
|
21
14
|
utilCryptoService,
|
|
22
15
|
storageService,
|
|
23
16
|
didService,
|
|
24
17
|
credentialService,
|
|
25
18
|
relayService,
|
|
26
19
|
pexService,
|
|
27
|
-
trustRegistryService,
|
|
28
20
|
edvService,
|
|
29
21
|
];
|
|
@@ -105,12 +105,18 @@ class PEXService {
|
|
|
105
105
|
|
|
106
106
|
presentationFrom(params: CreatePresentationParams) {
|
|
107
107
|
const {credentials, presentationDefinition, holderDID} = params;
|
|
108
|
-
const
|
|
108
|
+
const evaluateResult = pex.evaluateCredentials(
|
|
109
109
|
removeOptionalAttribute(presentationDefinition),
|
|
110
110
|
credentials,
|
|
111
111
|
holderDID,
|
|
112
112
|
);
|
|
113
113
|
|
|
114
|
+
const result: IPresentation = pex.presentationFrom(
|
|
115
|
+
presentationDefinition,
|
|
116
|
+
evaluateResult.verifiableCredential,
|
|
117
|
+
holderDID,
|
|
118
|
+
);
|
|
119
|
+
|
|
114
120
|
return result;
|
|
115
121
|
}
|
|
116
122
|
}
|
|
@@ -1,22 +1,6 @@
|
|
|
1
|
-
import {cryptoWaitReady} from '@polkadot/util-crypto';
|
|
2
1
|
import assert from 'assert';
|
|
3
|
-
import BigNumber from 'bignumber.js';
|
|
4
|
-
import {DOCK_TOKEN_UNIT} from '../core/format-utils';
|
|
5
|
-
import {TestFixtures} from '../fixtures';
|
|
6
2
|
import {NetworkManager} from '../modules/network-manager';
|
|
7
|
-
import {keyringService} from './keyring';
|
|
8
3
|
import {RpcService} from './rpc-service-client';
|
|
9
|
-
import {walletService} from './wallet';
|
|
10
|
-
import Keyring from '@polkadot/keyring';
|
|
11
|
-
import {blockchainService} from './blockchain/service';
|
|
12
|
-
|
|
13
|
-
export async function initializeWalletService() {
|
|
14
|
-
await cryptoWaitReady();
|
|
15
|
-
await keyringService.initialize({
|
|
16
|
-
ss58Format: 21,
|
|
17
|
-
});
|
|
18
|
-
await walletService.create('test-wallet', 'memory');
|
|
19
|
-
}
|
|
20
4
|
|
|
21
5
|
export const TEST_FEE_AMOUNT = 2.48;
|
|
22
6
|
export const API_MOCK_DISABLED = process.env.API_MOCK_DISABLED === 'true';
|
|
@@ -34,105 +18,6 @@ export const TEST_SCHEMA_METADATA = {
|
|
|
34
18
|
},
|
|
35
19
|
};
|
|
36
20
|
|
|
37
|
-
let mockTransactionError;
|
|
38
|
-
|
|
39
|
-
export const setMockTransactionError = error => {
|
|
40
|
-
mockTransactionError = error;
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
export async function mockDockService() {
|
|
44
|
-
await cryptoWaitReady();
|
|
45
|
-
|
|
46
|
-
await keyringService.initialize({
|
|
47
|
-
ss58Format: NetworkManager.getInstance().getNetworkInfo().addressPrefix,
|
|
48
|
-
});
|
|
49
|
-
|
|
50
|
-
let sdkMock;
|
|
51
|
-
|
|
52
|
-
if (API_MOCK_DISABLED) {
|
|
53
|
-
return blockchainService.init({
|
|
54
|
-
address: NetworkManager.getInstance().getNetworkInfo().substrateUrl,
|
|
55
|
-
});
|
|
56
|
-
} else {
|
|
57
|
-
sdkMock = mockDockSdkConnection();
|
|
58
|
-
await blockchainService.init({
|
|
59
|
-
address: NetworkManager.getInstance().getNetworkInfo().substrateUrl,
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
const _dockSdk = blockchainService.dock;
|
|
64
|
-
|
|
65
|
-
blockchainService.isDockReady = true;
|
|
66
|
-
|
|
67
|
-
blockchainService.dock = {
|
|
68
|
-
api: {
|
|
69
|
-
events: {
|
|
70
|
-
system: {
|
|
71
|
-
ExtrinsicFailed: {
|
|
72
|
-
is: event => !!mockTransactionError,
|
|
73
|
-
},
|
|
74
|
-
},
|
|
75
|
-
},
|
|
76
|
-
query: {
|
|
77
|
-
system: {
|
|
78
|
-
account: jest.fn().mockImplementation(() => ({
|
|
79
|
-
data: {
|
|
80
|
-
free: BigNumber(TestFixtures.account1.balance * DOCK_TOKEN_UNIT),
|
|
81
|
-
},
|
|
82
|
-
})),
|
|
83
|
-
},
|
|
84
|
-
},
|
|
85
|
-
revocation: {
|
|
86
|
-
getIsRevoked: jest.fn().mockImplementation(() => false),
|
|
87
|
-
},
|
|
88
|
-
tx: {
|
|
89
|
-
balances: {
|
|
90
|
-
transfer: jest.fn().mockImplementation(() => ({
|
|
91
|
-
paymentInfo: () => ({
|
|
92
|
-
partialFee: BigNumber(TEST_FEE_AMOUNT * DOCK_TOKEN_UNIT),
|
|
93
|
-
}),
|
|
94
|
-
signAndSend: (account, callback) => {
|
|
95
|
-
callback({
|
|
96
|
-
status: {
|
|
97
|
-
isInBlock: true,
|
|
98
|
-
isFinalized: true,
|
|
99
|
-
toHex: () => 'hash',
|
|
100
|
-
},
|
|
101
|
-
events: [
|
|
102
|
-
{
|
|
103
|
-
event: {
|
|
104
|
-
data: [mockTransactionError],
|
|
105
|
-
},
|
|
106
|
-
},
|
|
107
|
-
],
|
|
108
|
-
});
|
|
109
|
-
|
|
110
|
-
return Promise.resolve({});
|
|
111
|
-
},
|
|
112
|
-
})),
|
|
113
|
-
},
|
|
114
|
-
},
|
|
115
|
-
},
|
|
116
|
-
trustRegistry: {
|
|
117
|
-
registriesInfo: jest.fn().mockImplementation(() => TEST_TRUST_REGISTRIES),
|
|
118
|
-
registrySchemasMetadata: jest
|
|
119
|
-
.fn()
|
|
120
|
-
.mockImplementation(() => TEST_SCHEMA_METADATA),
|
|
121
|
-
},
|
|
122
|
-
init: jest.fn().mockImplementation(() => Promise.resolve({})),
|
|
123
|
-
disconnect: jest.fn(),
|
|
124
|
-
setAccount: jest.fn(),
|
|
125
|
-
};
|
|
126
|
-
|
|
127
|
-
return () => {
|
|
128
|
-
blockchainService.dock = _dockSdk;
|
|
129
|
-
if (sdkMock) {
|
|
130
|
-
sdkMock.clear();
|
|
131
|
-
}
|
|
132
|
-
blockchainService.disconnect();
|
|
133
|
-
};
|
|
134
|
-
}
|
|
135
|
-
|
|
136
21
|
let walletCreated;
|
|
137
22
|
|
|
138
23
|
export async function setupTestWallet() {
|
|
@@ -142,101 +27,9 @@ export async function setupTestWallet() {
|
|
|
142
27
|
|
|
143
28
|
NetworkManager.getInstance().setNetworkId('testnet');
|
|
144
29
|
|
|
145
|
-
await cryptoWaitReady();
|
|
146
|
-
await keyringService.initialize({
|
|
147
|
-
ss58Format: NetworkManager.getInstance().getNetworkInfo().addressPrefix,
|
|
148
|
-
});
|
|
149
|
-
await walletService.create({
|
|
150
|
-
walletId: 'test-wallet',
|
|
151
|
-
type: 'memory',
|
|
152
|
-
});
|
|
153
|
-
await walletService.createAccountDocuments({
|
|
154
|
-
mnemonic: TestFixtures.account1.mnemonic,
|
|
155
|
-
name: TestFixtures.account1.name,
|
|
156
|
-
});
|
|
157
|
-
await walletService.createAccountDocuments({
|
|
158
|
-
mnemonic: TestFixtures.account2.mnemonic,
|
|
159
|
-
name: TestFixtures.account2.name,
|
|
160
|
-
});
|
|
161
|
-
|
|
162
30
|
walletCreated = true;
|
|
163
31
|
}
|
|
164
32
|
|
|
165
|
-
export function mockDockSdkConnection(connectionError) {
|
|
166
|
-
const result = 'result';
|
|
167
|
-
const dock = blockchainService.dock;
|
|
168
|
-
const mocks = [
|
|
169
|
-
jest.spyOn(dock, 'init').mockImplementation(() => {
|
|
170
|
-
if (connectionError) {
|
|
171
|
-
return Promise.reject(connectionError);
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
return Promise.resolve(result);
|
|
175
|
-
}),
|
|
176
|
-
jest.spyOn(dock, 'disconnect').mockReturnValue(Promise.resolve(true)),
|
|
177
|
-
];
|
|
178
|
-
|
|
179
|
-
let currentAccount;
|
|
180
|
-
|
|
181
|
-
blockchainService.dock = {
|
|
182
|
-
...dock,
|
|
183
|
-
setAccount(account) {
|
|
184
|
-
currentAccount = account;
|
|
185
|
-
},
|
|
186
|
-
did: {
|
|
187
|
-
new: () => {
|
|
188
|
-
if (
|
|
189
|
-
currentAccount &&
|
|
190
|
-
currentAccount.address === TestFixtures.noBalanceAccount.address
|
|
191
|
-
) {
|
|
192
|
-
throw new Error(
|
|
193
|
-
'1010: Invalid Transaction: Inability to pay some fees , e.g. account balance too low',
|
|
194
|
-
);
|
|
195
|
-
}
|
|
196
|
-
return {
|
|
197
|
-
txHash: 'hash',
|
|
198
|
-
};
|
|
199
|
-
},
|
|
200
|
-
getDocument: () => ({
|
|
201
|
-
'@context': ['https://www.w3.org/ns/did/v1'],
|
|
202
|
-
assertionMethod: [
|
|
203
|
-
'did:dock:5HL5XB7CHcHT2ZUKjY2SCJvDAK11qoa1exgfVnVTHRbmjJQi#keys-1',
|
|
204
|
-
],
|
|
205
|
-
authentication: [
|
|
206
|
-
'did:dock:5HL5XB7CHcHT2ZUKjY2SCJvDAK11qoa1exgfVnVTHRbmjJQi#keys-1',
|
|
207
|
-
],
|
|
208
|
-
capabilityInvocation: [
|
|
209
|
-
'did:dock:5HL5XB7CHcHT2ZUKjY2SCJvDAK11qoa1exgfVnVTHRbmjJQi#keys-1',
|
|
210
|
-
],
|
|
211
|
-
controller: [
|
|
212
|
-
'did:dock:5HL5XB7CHcHT2ZUKjY2SCJvDAK11qoa1exgfVnVTHRbmjJQi',
|
|
213
|
-
],
|
|
214
|
-
id: 'did:dock:5HL5XB7CHcHT2ZUKjY2SCJvDAK11qoa1exgfVnVTHRbmjJQi',
|
|
215
|
-
publicKey: [
|
|
216
|
-
{
|
|
217
|
-
controller:
|
|
218
|
-
'did:dock:5HL5XB7CHcHT2ZUKjY2SCJvDAK11qoa1exgfVnVTHRbmjJQi',
|
|
219
|
-
id: 'did:dock:5HL5XB7CHcHT2ZUKjY2SCJvDAK11qoa1exgfVnVTHRbmjJQi#keys-1',
|
|
220
|
-
publicKeyBase58: '8UDojkFBh5RopLKZredz8uVZV5U579voUwQFyYDmgBM3',
|
|
221
|
-
type: 'Sr25519VerificationKey2020',
|
|
222
|
-
},
|
|
223
|
-
],
|
|
224
|
-
}),
|
|
225
|
-
},
|
|
226
|
-
keyring: {
|
|
227
|
-
createFromPair: jest.fn(() => {
|
|
228
|
-
const kr = new Keyring();
|
|
229
|
-
return kr.createFromUri('//Alice');
|
|
230
|
-
}),
|
|
231
|
-
},
|
|
232
|
-
};
|
|
233
|
-
|
|
234
|
-
return {
|
|
235
|
-
result,
|
|
236
|
-
clear: () => mocks.forEach(mock => mock.mockClear()),
|
|
237
|
-
};
|
|
238
|
-
}
|
|
239
|
-
|
|
240
33
|
export async function getPromiseError(func) {
|
|
241
34
|
try {
|
|
242
35
|
return await func();
|