Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
import {
Agent,
AutoAcceptCredential,
AutoAcceptProof,
ConnectionsModule,
CredentialsModule,
DidsModule,
Key,
KeyType,
ProofsModule,
TypedArrayEncoder,
V2CredentialProtocol,
V2ProofProtocol,
} from "@aries-framework/core";
import {
AnonCredsCredentialFormatService,
AnonCredsModule,
AnonCredsProofFormatService,
} from "@aries-framework/anoncreds";
import {
IndyVdrAnonCredsRegistry,
IndyVdrIndyDidRegistrar,
IndyVdrIndyDidResolver,
IndyVdrModule,
} from "@aries-framework/indy-vdr";
import { AnonCredsRsModule } from "@aries-framework/anoncreds-rs";
import { anoncreds } from "@hyperledger/anoncreds-nodejs";
import { indyVdr } from "@hyperledger/indy-vdr-nodejs";
import { AskarModule } from "@aries-framework/askar";
import { ariesAskar } from "@hyperledger/aries-askar-nodejs";
export const importDidsToWallet = async (
agent: Agent,
dids: Array<string>,
): Promise<void> => {
for (const did in dids) {
try {
await agent.dids.import({
did: dids[did],
overwrite: false,
});
} catch (e) {
console.log((e as Error).message);
}
}
};
export const generateKey = async ({
seed,
agent,
}: {
seed: string;
agent: Agent;
}): Promise<Key> => {
if (!seed) {
throw Error("No seed provided");
}
const privateKey = TypedArrayEncoder.fromString(seed);
return agent.wallet.createKey({
privateKey,
keyType: KeyType.Ed25519,
});
};
export const generateDidFromKey = (key: Key): string => {
if (!key) {
throw new Error("Key not provided");
}
return TypedArrayEncoder.toBase58(key.publicKey.slice(0, 16));
};
//TODO: handle properly this
//eslint-disable-next-line
export const getAskarAnonCredsIndyModules = (networks: any) => {
return {
connections: new ConnectionsModule({
autoAcceptConnections: true,
}),
credentials: new CredentialsModule({
autoAcceptCredentials: AutoAcceptCredential.ContentApproved,
credentialProtocols: [
new V2CredentialProtocol({
credentialFormats: [new AnonCredsCredentialFormatService()],
}),
],
}),
proofs: new ProofsModule({
autoAcceptProofs: AutoAcceptProof.ContentApproved,
proofProtocols: [
new V2ProofProtocol({
proofFormats: [new AnonCredsProofFormatService()],
}),
],
}),
anoncreds: new AnonCredsModule({
registries: [new IndyVdrAnonCredsRegistry()],
}),
anoncredsRs: new AnonCredsRsModule({
anoncreds,
}),
indyVdr: new IndyVdrModule({
indyVdr,
networks,
}),
dids: new DidsModule({
registrars: [new IndyVdrIndyDidRegistrar()],
resolvers: [new IndyVdrIndyDidResolver()],
}),
askar: new AskarModule({
ariesAskar,
}),
} as const;
};