keri 0.0.8-dev.ffce734 → 0.1.2
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/dist/controller/controller.d.ts +109 -0
- package/dist/controller/controller.js +545 -0
- package/dist/controller/controller.js.map +1 -0
- package/dist/controller/encrypt.d.ts +45 -0
- package/dist/controller/encrypt.js +120 -0
- package/dist/controller/encrypt.js.map +1 -0
- package/dist/core/credential-event.d.ts +58 -0
- package/dist/core/credential-event.js +28 -0
- package/dist/core/credential-event.js.map +1 -0
- package/dist/core/credential.d.ts +79 -0
- package/dist/core/credential.js +25 -0
- package/dist/core/credential.js.map +1 -0
- package/dist/core/digest.d.ts +1 -0
- package/dist/core/digest.js +7 -0
- package/dist/core/digest.js.map +1 -0
- package/dist/core/endpoint-discovery.d.ts +20 -0
- package/dist/core/endpoint-discovery.js +60 -0
- package/dist/core/endpoint-discovery.js.map +1 -0
- package/dist/core/events.d.ts +12 -0
- package/dist/core/events.js +25 -0
- package/dist/core/events.js.map +1 -0
- package/dist/core/kawa.d.ts +17 -0
- package/dist/core/kawa.js +79 -0
- package/dist/core/kawa.js.map +1 -0
- package/dist/core/key-event-log.d.ts +13 -0
- package/dist/core/key-event-log.js +154 -0
- package/dist/core/key-event-log.js.map +1 -0
- package/dist/core/key-event.d.ts +96 -0
- package/dist/core/key-event.js +89 -0
- package/dist/core/key-event.js.map +1 -0
- package/dist/core/keys.d.ts +9 -0
- package/dist/core/keys.js +17 -0
- package/dist/core/keys.js.map +1 -0
- package/dist/core/mailbox-client.d.ts +17 -0
- package/dist/core/mailbox-client.js +57 -0
- package/dist/core/mailbox-client.js.map +1 -0
- package/dist/core/main.d.ts +47 -0
- package/dist/core/main.js +44 -0
- package/dist/core/main.js.map +1 -0
- package/dist/core/receipt-event.d.ts +15 -0
- package/dist/core/receipt-event.js +13 -0
- package/dist/core/receipt-event.js.map +1 -0
- package/dist/core/registry-event.d.ts +28 -0
- package/dist/core/registry-event.js +18 -0
- package/dist/core/registry-event.js.map +1 -0
- package/dist/core/routed-event.d.ts +73 -0
- package/dist/core/routed-event.js +53 -0
- package/dist/core/routed-event.js.map +1 -0
- package/dist/core/said.d.ts +4 -0
- package/dist/core/said.js +26 -0
- package/dist/core/said.js.map +1 -0
- package/dist/core/sign.d.ts +5 -0
- package/dist/core/sign.js +10 -0
- package/dist/core/sign.js.map +1 -0
- package/dist/core/threshold.d.ts +6 -0
- package/dist/core/threshold.js +58 -0
- package/dist/core/threshold.js.map +1 -0
- package/dist/core/verify.d.ts +14 -0
- package/dist/core/verify.js +43 -0
- package/dist/core/verify.js.map +1 -0
- package/dist/main.d.ts +2 -8
- package/dist/main.js +2 -8
- package/dist/main.js.map +1 -1
- package/dist/storage/sqlite/node-sqlite.d.ts +12 -0
- package/dist/storage/sqlite/node-sqlite.js +25 -0
- package/dist/storage/sqlite/node-sqlite.js.map +1 -0
- package/dist/storage/sqlite/schema.d.ts +2 -0
- package/dist/storage/sqlite/schema.js +49 -0
- package/dist/storage/sqlite/schema.js.map +1 -0
- package/dist/storage/sqlite/sqlite-database.d.ts +13 -0
- package/dist/storage/sqlite/sqlite-database.js +2 -0
- package/dist/storage/sqlite/sqlite-database.js.map +1 -0
- package/dist/storage/sqlite/storage-sqlite.d.ts +26 -0
- package/dist/storage/sqlite/storage-sqlite.js +213 -0
- package/dist/storage/sqlite/storage-sqlite.js.map +1 -0
- package/package.json +29 -21
- package/LICENSE +0 -201
- package/README.md +0 -10
- package/dist/cli/main.d.ts +0 -2
- package/dist/cli/main.js +0 -175
- package/dist/cli/main.js.map +0 -1
- package/dist/client.d.ts +0 -21
- package/dist/client.js +0 -88
- package/dist/client.js.map +0 -1
- package/dist/controller.d.ts +0 -63
- package/dist/controller.js +0 -392
- package/dist/controller.js.map +0 -1
- package/dist/db/storage-sqlite.d.ts +0 -12
- package/dist/db/storage-sqlite.js +0 -53
- package/dist/db/storage-sqlite.js.map +0 -1
- package/dist/db/storage.d.ts +0 -18
- package/dist/db/storage.js +0 -29
- package/dist/db/storage.js.map +0 -1
- package/dist/events/event-store.d.ts +0 -126
- package/dist/events/event-store.js +0 -242
- package/dist/events/event-store.js.map +0 -1
- package/dist/events/events.d.ts +0 -248
- package/dist/events/events.js +0 -184
- package/dist/events/events.js.map +0 -1
- package/dist/keystore/encrypt.d.ts +0 -10
- package/dist/keystore/encrypt.js +0 -39
- package/dist/keystore/encrypt.js.map +0 -1
- package/dist/keystore/key-manager.d.ts +0 -27
- package/dist/keystore/key-manager.js +0 -91
- package/dist/keystore/key-manager.js.map +0 -1
- package/dist/serializer.d.ts +0 -10
- package/dist/serializer.js +0 -83
- package/dist/serializer.js.map +0 -1
- package/dist/witness.d.ts +0 -17
- package/dist/witness.js +0 -99
- package/dist/witness.js.map +0 -1
package/dist/cli/main.js
DELETED
|
@@ -1,175 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env -S node --no-warnings
|
|
2
|
-
import { program } from "commander";
|
|
3
|
-
import { Controller } from "../controller.js";
|
|
4
|
-
import { SqliteStorage } from "../db/storage-sqlite.js";
|
|
5
|
-
import { KeyManager } from "../keystore/key-manager.js";
|
|
6
|
-
import { keri } from "../events/events.js";
|
|
7
|
-
import { PassphraseEncrypter } from "../keystore/encrypt.js";
|
|
8
|
-
const storage = new SqliteStorage({ filename: ".keri/db.sqlite" });
|
|
9
|
-
storage.init();
|
|
10
|
-
function getStringArray(options, key) {
|
|
11
|
-
if (typeof options !== "object" || options === null || !(key in options)) {
|
|
12
|
-
return [];
|
|
13
|
-
}
|
|
14
|
-
const value = options[key];
|
|
15
|
-
const result = [];
|
|
16
|
-
if (typeof value === "string") {
|
|
17
|
-
result.push(value);
|
|
18
|
-
}
|
|
19
|
-
else if (Array.isArray(value)) {
|
|
20
|
-
result.push(...value);
|
|
21
|
-
}
|
|
22
|
-
return result;
|
|
23
|
-
}
|
|
24
|
-
function getOptionalString(options, key) {
|
|
25
|
-
if (typeof options !== "object" || options === null) {
|
|
26
|
-
throw new Error(`Options is not an object`);
|
|
27
|
-
}
|
|
28
|
-
const value = options[key];
|
|
29
|
-
if (value !== undefined && typeof value !== "string") {
|
|
30
|
-
throw new Error(`Expected "${key}" to be a string, got "${typeof value}"`);
|
|
31
|
-
}
|
|
32
|
-
return value;
|
|
33
|
-
}
|
|
34
|
-
function getString(options, key) {
|
|
35
|
-
const value = getOptionalString(options, key);
|
|
36
|
-
if (!value) {
|
|
37
|
-
throw new Error(`Expected "${key}" to be a string, got "${value}"`);
|
|
38
|
-
}
|
|
39
|
-
return value;
|
|
40
|
-
}
|
|
41
|
-
program.command("resolve <oobi>").action(async (oobi) => {
|
|
42
|
-
const controller = new Controller({
|
|
43
|
-
storage,
|
|
44
|
-
keyManager: new KeyManager({ storage, encrypter: new PassphraseEncrypter("") }),
|
|
45
|
-
});
|
|
46
|
-
await controller.resolve(oobi);
|
|
47
|
-
});
|
|
48
|
-
program
|
|
49
|
-
.command("incept")
|
|
50
|
-
.requiredOption("--passcode <passcode>")
|
|
51
|
-
.option("--wit <wit...>")
|
|
52
|
-
.action(async (options) => {
|
|
53
|
-
const passcode = getString(options, "passcode");
|
|
54
|
-
const wits = getStringArray(options, "wit");
|
|
55
|
-
const encrypter = new PassphraseEncrypter(passcode);
|
|
56
|
-
const keystore = new KeyManager({ encrypter, storage });
|
|
57
|
-
const controller = new Controller({ storage, keyManager: keystore });
|
|
58
|
-
const event = await controller.createIdentifier({ wits });
|
|
59
|
-
console.log(event.i);
|
|
60
|
-
});
|
|
61
|
-
program
|
|
62
|
-
.command("send")
|
|
63
|
-
.description("Sends a signed exchange message to the specified recipient")
|
|
64
|
-
.requiredOption("--sender <sender aid>")
|
|
65
|
-
.requiredOption("--route <route>")
|
|
66
|
-
.requiredOption("--topic <topic>")
|
|
67
|
-
.requiredOption("--receiver <receiver aid>")
|
|
68
|
-
.requiredOption("--passcode <passcode>")
|
|
69
|
-
.requiredOption("--data <data>")
|
|
70
|
-
.action(async (options) => {
|
|
71
|
-
const passcode = getString(options, "passcode");
|
|
72
|
-
const sender = getString(options, "sender");
|
|
73
|
-
const receiver = getString(options, "receiver");
|
|
74
|
-
const route = getString(options, "route");
|
|
75
|
-
const topic = getString(options, "topic");
|
|
76
|
-
const data = JSON.parse(getString(options, "data"));
|
|
77
|
-
const keystore = new KeyManager({
|
|
78
|
-
storage,
|
|
79
|
-
encrypter: new PassphraseEncrypter(passcode),
|
|
80
|
-
});
|
|
81
|
-
const controller = new Controller({ storage, keyManager: keystore });
|
|
82
|
-
const client = await controller.getClient(receiver);
|
|
83
|
-
await controller.forward(client, {
|
|
84
|
-
sender: await controller.state(sender),
|
|
85
|
-
topic,
|
|
86
|
-
recipient: receiver,
|
|
87
|
-
event: keri.exchange({
|
|
88
|
-
i: sender,
|
|
89
|
-
r: route,
|
|
90
|
-
q: {},
|
|
91
|
-
a: { i: sender, ...data },
|
|
92
|
-
e: {},
|
|
93
|
-
}),
|
|
94
|
-
});
|
|
95
|
-
});
|
|
96
|
-
program
|
|
97
|
-
.command("create-registry")
|
|
98
|
-
.description("Creates a new credential registry")
|
|
99
|
-
.requiredOption("--owner <owner aid>")
|
|
100
|
-
.requiredOption("--passcode <passcode>")
|
|
101
|
-
.action(async (options) => {
|
|
102
|
-
const passcode = getString(options, "passcode");
|
|
103
|
-
const owner = getString(options, "owner");
|
|
104
|
-
const keystore = new KeyManager({
|
|
105
|
-
storage,
|
|
106
|
-
encrypter: new PassphraseEncrypter(passcode),
|
|
107
|
-
});
|
|
108
|
-
const controller = new Controller({ storage, keyManager: keystore });
|
|
109
|
-
const registry = await controller.createRegistry({ owner });
|
|
110
|
-
console.log(registry.i);
|
|
111
|
-
});
|
|
112
|
-
program
|
|
113
|
-
.command("create-credential")
|
|
114
|
-
.description("Creates a new credential")
|
|
115
|
-
.requiredOption("--registry <registry said>")
|
|
116
|
-
.requiredOption("--receiver <receiver aid>")
|
|
117
|
-
.requiredOption("--schema <schema said>")
|
|
118
|
-
.requiredOption("--data <data>")
|
|
119
|
-
.requiredOption("--rules <rules>")
|
|
120
|
-
.option("--salt <salt>")
|
|
121
|
-
.option("--edges <edges>")
|
|
122
|
-
.requiredOption("--passcode <passcode>")
|
|
123
|
-
.action(async (options) => {
|
|
124
|
-
const passcode = getString(options, "passcode");
|
|
125
|
-
const registryId = getString(options, "registry");
|
|
126
|
-
const receiver = getString(options, "receiver");
|
|
127
|
-
const schemaId = getString(options, "schema");
|
|
128
|
-
const salt = getOptionalString(options, "salt");
|
|
129
|
-
const data = JSON.parse(getString(options, "data"));
|
|
130
|
-
const rules = JSON.parse(getString(options, "rules"));
|
|
131
|
-
const edges = JSON.parse(getOptionalString(options, "edges") ?? "null");
|
|
132
|
-
const keystore = new KeyManager({
|
|
133
|
-
storage,
|
|
134
|
-
encrypter: new PassphraseEncrypter(passcode),
|
|
135
|
-
});
|
|
136
|
-
const controller = new Controller({ storage, keyManager: keystore });
|
|
137
|
-
const acdc = await controller.createCredential({
|
|
138
|
-
holder: receiver,
|
|
139
|
-
registryId: registryId,
|
|
140
|
-
schemaId: schemaId,
|
|
141
|
-
data: data,
|
|
142
|
-
salt: salt,
|
|
143
|
-
rules: rules,
|
|
144
|
-
edges: edges || undefined,
|
|
145
|
-
});
|
|
146
|
-
console.log(acdc.d);
|
|
147
|
-
});
|
|
148
|
-
program
|
|
149
|
-
.command("ipex-grant")
|
|
150
|
-
.requiredOption("--said <aid>")
|
|
151
|
-
.requiredOption("--passcode <passcode>")
|
|
152
|
-
.action(async (options) => {
|
|
153
|
-
const passcode = getString(options, "passcode");
|
|
154
|
-
const said = getString(options, "said");
|
|
155
|
-
const keystore = new KeyManager({
|
|
156
|
-
storage,
|
|
157
|
-
encrypter: new PassphraseEncrypter(passcode),
|
|
158
|
-
});
|
|
159
|
-
const controller = new Controller({
|
|
160
|
-
storage,
|
|
161
|
-
keyManager: keystore,
|
|
162
|
-
});
|
|
163
|
-
const acdc = (await controller.store.get(said))?.event;
|
|
164
|
-
if (!acdc) {
|
|
165
|
-
throw new Error(`No ACDC found for said ${said}`);
|
|
166
|
-
}
|
|
167
|
-
if (acdc.a.i) {
|
|
168
|
-
await controller.sendCredentialArficats(acdc, acdc.a.i);
|
|
169
|
-
}
|
|
170
|
-
await controller.grant({
|
|
171
|
-
credential: acdc,
|
|
172
|
-
});
|
|
173
|
-
});
|
|
174
|
-
program.parse(process.argv);
|
|
175
|
-
//# sourceMappingURL=main.js.map
|
package/dist/cli/main.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { type KeyEvent, type ReceiptEvent } from "./events/events.ts";
|
|
2
|
-
import { type KeyEventMessage, type LocationRecord } from "./events/event-store.ts";
|
|
3
|
-
export interface Message {
|
|
4
|
-
event: KeyEvent;
|
|
5
|
-
attachment: string;
|
|
6
|
-
}
|
|
7
|
-
export interface SendArgs {
|
|
8
|
-
messages: Message[];
|
|
9
|
-
}
|
|
10
|
-
export interface ClientOptions {
|
|
11
|
-
role: string;
|
|
12
|
-
endpoint: LocationRecord;
|
|
13
|
-
}
|
|
14
|
-
export declare class Client {
|
|
15
|
-
#private;
|
|
16
|
-
role: string;
|
|
17
|
-
constructor(options: ClientOptions);
|
|
18
|
-
getReceipt(message: Message): Promise<KeyEventMessage<ReceiptEvent>>;
|
|
19
|
-
sendMessage(message: Message): Promise<void>;
|
|
20
|
-
}
|
|
21
|
-
export declare function parseKeyEvents(input: ReadableStream<Uint8Array>): AsyncIterableIterator<KeyEventMessage>;
|
package/dist/client.js
DELETED
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { cesr, CountCode_10, parseMessages } from "cesr/__unstable__";
|
|
2
|
-
export class Client {
|
|
3
|
-
#location;
|
|
4
|
-
role;
|
|
5
|
-
constructor(options) {
|
|
6
|
-
this.#location = options.endpoint;
|
|
7
|
-
this.role = options.role;
|
|
8
|
-
}
|
|
9
|
-
async getReceipt(message) {
|
|
10
|
-
const url = new URL("/receipts", this.#location.url);
|
|
11
|
-
if (url.protocol !== "http:" && url.protocol !== "https:") {
|
|
12
|
-
throw new Error(`Invalid protocol: ${url}`);
|
|
13
|
-
}
|
|
14
|
-
const response = await fetch(url, {
|
|
15
|
-
method: "POST",
|
|
16
|
-
body: JSON.stringify(message.event),
|
|
17
|
-
headers: {
|
|
18
|
-
"Content-Type": "application/cesr+json",
|
|
19
|
-
"CESR-ATTACHMENT": message.attachment,
|
|
20
|
-
},
|
|
21
|
-
});
|
|
22
|
-
if (!response.ok) {
|
|
23
|
-
throw new Error(`Failed to send event: ${response.status} ${response.statusText}`);
|
|
24
|
-
}
|
|
25
|
-
if (!response.body) {
|
|
26
|
-
throw new Error(`Failed to send event: ${response.status} ${response.statusText}`);
|
|
27
|
-
}
|
|
28
|
-
for await (const event of parseKeyEvents(response.body)) {
|
|
29
|
-
if (event.event.t === "rct" && event.event.d === message.event.d) {
|
|
30
|
-
return event;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
throw new Error(`Failed to get receipt for event: ${response.status} ${response.statusText}`);
|
|
34
|
-
}
|
|
35
|
-
async sendMessage(message) {
|
|
36
|
-
const url = new URL("/", this.#location.url);
|
|
37
|
-
const response = await fetch(url, {
|
|
38
|
-
method: "POST",
|
|
39
|
-
body: JSON.stringify(message.event),
|
|
40
|
-
headers: {
|
|
41
|
-
"Content-Type": "application/cesr+json",
|
|
42
|
-
"CESR-ATTACHMENT": message.attachment,
|
|
43
|
-
"CESR-DESTINATION": this.#location.eid,
|
|
44
|
-
},
|
|
45
|
-
});
|
|
46
|
-
if (!response.ok) {
|
|
47
|
-
throw new Error(`Failed to send event: ${response.status} ${response.statusText}`);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
export async function* parseKeyEvents(input) {
|
|
52
|
-
for await (const message of parseMessages(input)) {
|
|
53
|
-
const signatures = [];
|
|
54
|
-
const receipts = [];
|
|
55
|
-
let group = null;
|
|
56
|
-
for (const attachment of message.attachments) {
|
|
57
|
-
if (attachment.startsWith("-")) {
|
|
58
|
-
group = cesr.decodeCounter(attachment);
|
|
59
|
-
}
|
|
60
|
-
else if (group) {
|
|
61
|
-
switch (group.code) {
|
|
62
|
-
case CountCode_10.ControllerIdxSigs:
|
|
63
|
-
signatures.push(attachment);
|
|
64
|
-
break;
|
|
65
|
-
case CountCode_10.NonTransReceiptCouples:
|
|
66
|
-
receipts.push(attachment);
|
|
67
|
-
break;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
yield {
|
|
72
|
-
event: message.payload,
|
|
73
|
-
receipts: decouple(receipts).map(([backer, signature]) => ({ backer, signature })),
|
|
74
|
-
signatures,
|
|
75
|
-
timestamp: new Date(),
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
function decouple(arr) {
|
|
80
|
-
const result = [];
|
|
81
|
-
for (let i = 0; i < arr.length; i++) {
|
|
82
|
-
if (i % 2 === 0) {
|
|
83
|
-
result.push([arr[i], arr[i + 1]]);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
return result;
|
|
87
|
-
}
|
|
88
|
-
//# sourceMappingURL=client.js.map
|
package/dist/client.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/controller.d.ts
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { ControllerEventStore, type KeyValueStorage, type KeyEventMessage, type KeyState, type LocationRecord } from "./events/event-store.ts";
|
|
2
|
-
import type { Key, KeyManager } from "./keystore/key-manager.ts";
|
|
3
|
-
import { type KeyEvent, type InteractEvent, type CredentialEvent, type RegistryInceptEvent } from "./events/events.ts";
|
|
4
|
-
import { Client } from "./client.ts";
|
|
5
|
-
export interface ControllerDeps {
|
|
6
|
-
keyManager: KeyManager;
|
|
7
|
-
storage: KeyValueStorage;
|
|
8
|
-
}
|
|
9
|
-
export interface IpexGrantArgs {
|
|
10
|
-
credential: CredentialEvent;
|
|
11
|
-
recipient?: string;
|
|
12
|
-
timestamp?: string;
|
|
13
|
-
}
|
|
14
|
-
export interface ForwardArgs {
|
|
15
|
-
event: KeyEvent;
|
|
16
|
-
sender: KeyState;
|
|
17
|
-
topic: string;
|
|
18
|
-
recipient: string;
|
|
19
|
-
attachment?: string;
|
|
20
|
-
timestamp?: string;
|
|
21
|
-
}
|
|
22
|
-
export interface InceptArgs {
|
|
23
|
-
keys?: Key[];
|
|
24
|
-
wits?: string[];
|
|
25
|
-
toad?: number;
|
|
26
|
-
}
|
|
27
|
-
export interface InteractArgs {
|
|
28
|
-
aid: string;
|
|
29
|
-
data: Record<string, unknown>;
|
|
30
|
-
}
|
|
31
|
-
export interface CreateRegistryArgs {
|
|
32
|
-
owner: string;
|
|
33
|
-
nonce?: string;
|
|
34
|
-
}
|
|
35
|
-
export interface CreateCredentialArgs {
|
|
36
|
-
schemaId: string;
|
|
37
|
-
registryId: string;
|
|
38
|
-
holder: string;
|
|
39
|
-
salt?: string;
|
|
40
|
-
data?: Record<string, unknown>;
|
|
41
|
-
rules?: Record<string, unknown>;
|
|
42
|
-
edges?: Record<string, unknown>;
|
|
43
|
-
timestamp?: Date;
|
|
44
|
-
}
|
|
45
|
-
export declare class Controller {
|
|
46
|
-
#private;
|
|
47
|
-
get store(): ControllerEventStore;
|
|
48
|
-
constructor(deps: ControllerDeps);
|
|
49
|
-
createIdentifier(args?: InceptArgs): Promise<KeyState>;
|
|
50
|
-
interact(args: InteractArgs): Promise<InteractEvent>;
|
|
51
|
-
createRegistry(args: CreateRegistryArgs): Promise<RegistryInceptEvent>;
|
|
52
|
-
createCredential(args: CreateCredentialArgs): Promise<CredentialEvent>;
|
|
53
|
-
resolve(oobi: string): Promise<void>;
|
|
54
|
-
getClient(cid: string): Promise<Client>;
|
|
55
|
-
getLocation(aid: string): Promise<LocationRecord>;
|
|
56
|
-
submit(event: KeyEvent, signatures: string[]): Promise<void>;
|
|
57
|
-
state(said: string): Promise<KeyState>;
|
|
58
|
-
listEvents(id: string): Promise<KeyEventMessage[]>;
|
|
59
|
-
sendCredentialArficats(credential: CredentialEvent, recipient: string): Promise<void>;
|
|
60
|
-
grant(args: IpexGrantArgs): Promise<void>;
|
|
61
|
-
forward(client: Client, args: ForwardArgs): Promise<void>;
|
|
62
|
-
sign(event: Record<string, unknown>, keys: string[]): Promise<string[]>;
|
|
63
|
-
}
|