-
Notifications
You must be signed in to change notification settings - Fork 182
/
Wallet.ts
86 lines (83 loc) · 2.78 KB
/
Wallet.ts
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
import type {
DidConfig,
Did,
Verkey,
Schema,
CredDefConfig,
CredDefId,
CredDef,
CredOffer,
CredReq,
CredReqMetadata,
CredValues,
Cred,
CredRevocId,
RevocRegDelta,
IndyProofRequest,
IndyRequestedCredentials,
Schemas,
CredentialDefs,
RevStates,
IndyProof,
CredentialId,
IndyCredentialInfo,
WalletRecordOptions,
WalletRecord,
WalletQuery,
WalletSearchOptions,
LedgerRequest,
} from 'indy-sdk';
import { UnpackedMessageContext } from '../types';
export interface Wallet {
publicDid: DidInfo | undefined;
init(): Promise<void>;
close(): Promise<void>;
delete(): Promise<void>;
initPublicDid(didConfig: DidConfig): Promise<void>;
createDid(didConfig?: DidConfig): Promise<[Did, Verkey]>;
createCredentialDefinition(
issuerDid: Did,
schema: Schema,
tag: string,
signatureType: string,
config?: CredDefConfig
): Promise<[CredDefId, CredDef]>;
createCredentialOffer(credDefId: CredDefId): Promise<CredOffer>;
createCredentialRequest(proverDid: Did, offer: CredOffer, credDef: CredDef): Promise<[CredReq, CredReqMetadata]>;
createCredential(
credOffer: CredOffer,
credReq: CredReq,
credValues: CredValues
): Promise<[Cred, CredRevocId, RevocRegDelta]>;
createProof(
proofRequest: IndyProofRequest,
requestedCredentials: IndyRequestedCredentials,
schemas: Schemas,
credentialDefs: CredentialDefs,
revStates: RevStates
): Promise<IndyProof>;
storeCredential(
credentialId: CredentialId,
credReqMetadata: CredReqMetadata,
cred: Cred,
credDef: CredDef
): Promise<string>;
getCredential(credentialId: CredentialId): Promise<IndyCredentialInfo>;
pack(payload: Record<string, unknown>, recipientKeys: Verkey[], senderVk: Verkey | null): Promise<JsonWebKey>;
unpack(messagePackage: JsonWebKey): Promise<UnpackedMessageContext>;
sign(data: Buffer, verkey: Verkey): Promise<Buffer>;
verify(signerVerkey: Verkey, data: Buffer, signature: Buffer): Promise<boolean>;
addWalletRecord(type: string, id: string, value: string, tags: Record<string, string | undefined>): Promise<void>;
updateWalletRecordValue(type: string, id: string, value: string): Promise<void>;
updateWalletRecordTags(type: string, id: string, tags: Record<string, string | undefined>): Promise<void>;
deleteWalletRecord(type: string, id: string): Promise<void>;
getWalletRecord(type: string, id: string, options: WalletRecordOptions): Promise<WalletRecord>;
search(type: string, query: WalletQuery, options: WalletSearchOptions): Promise<AsyncIterable<WalletRecord>>;
signRequest(myDid: Did, request: LedgerRequest): Promise<LedgerRequest>;
searchCredentialsForProofRequest(proofRequest: IndyProofRequest): Promise<number>;
generateNonce(): Promise<string>;
}
export interface DidInfo {
did: Did;
verkey: Verkey;
}