@cef-ebsi/cli 1.3.2 → 1.5.0
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/bin/cli.js +1 -1
- package/dist/abi/pilot/DidRegistry.js +568 -0
- package/dist/abi/pilot/DidRegistry.js.map +1 -0
- package/dist/abi/{test/TirV4.js → pilot/Ptr.js} +255 -299
- package/dist/abi/pilot/Ptr.js.map +1 -0
- package/dist/abi/pilot/SchemaSCRegistry.js +264 -0
- package/dist/abi/pilot/SchemaSCRegistry.js.map +1 -0
- package/dist/abi/{test/TprV3.js → pilot/Tcr.js} +269 -261
- package/dist/abi/pilot/Tcr.js.map +1 -0
- package/dist/abi/pilot/Timestamp.js +658 -0
- package/dist/abi/pilot/Timestamp.js.map +1 -0
- package/dist/abi/pilot/Tir.js +428 -0
- package/dist/abi/pilot/Tir.js.map +1 -0
- package/dist/abi/pilot/TnT.js +842 -0
- package/dist/abi/pilot/TnT.js.map +1 -0
- package/dist/abi/pilot/Tpr.js +492 -0
- package/dist/abi/pilot/Tpr.js.map +1 -0
- package/dist/abi/test/DidRegistry.js +144 -658
- package/dist/abi/test/DidRegistry.js.map +1 -1
- package/dist/abi/{pilot/TirV4.js → test/Ptr.js} +255 -299
- package/dist/abi/test/Ptr.js.map +1 -0
- package/dist/abi/test/SchemaSCRegistry.js +122 -795
- package/dist/abi/test/SchemaSCRegistry.js.map +1 -1
- package/dist/abi/{pilot/TprV3.js → test/Tcr.js} +269 -261
- package/dist/abi/test/Tcr.js.map +1 -0
- package/dist/abi/test/Timestamp.js +239 -673
- package/dist/abi/test/Timestamp.js.map +1 -1
- package/dist/abi/test/Tir.js +167 -636
- package/dist/abi/test/Tir.js.map +1 -1
- package/dist/abi/test/TnT.js +842 -0
- package/dist/abi/test/TnT.js.map +1 -0
- package/dist/abi/test/Tpr.js +166 -942
- package/dist/abi/test/Tpr.js.map +1 -1
- package/dist/app.js +447 -443
- package/dist/app.js.map +1 -1
- package/dist/buildParam/{didV3.js → didr.js} +210 -204
- package/dist/buildParam/didr.js.map +1 -0
- package/dist/buildParam/index.js +42 -48
- package/dist/buildParam/index.js.map +1 -1
- package/dist/buildParam/ptr.js +80 -0
- package/dist/buildParam/ptr.js.map +1 -0
- package/dist/buildParam/tcr.js +36 -0
- package/dist/buildParam/tcr.js.map +1 -0
- package/dist/buildParam/{timestampV3.js → timestamp.js} +179 -136
- package/dist/buildParam/timestamp.js.map +1 -0
- package/dist/buildParam/{tirV3.js → tir.js} +67 -59
- package/dist/buildParam/tir.js.map +1 -0
- package/dist/buildParam/{tntV1.js → tnt.js} +90 -61
- package/dist/buildParam/tnt.js.map +1 -0
- package/dist/buildParam/{tprV2.js → tpr.js} +44 -33
- package/dist/buildParam/tpr.js.map +1 -0
- package/dist/buildParam/{tsrV2.js → tsr.js} +45 -40
- package/dist/buildParam/tsr.js.map +1 -0
- package/dist/cli.js +1 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/{authorisation-v5.js → authorisation.js} +95 -72
- package/dist/commands/authorisation.js.map +1 -0
- package/dist/commands/compute.js +429 -389
- package/dist/commands/compute.js.map +1 -1
- package/dist/commands/{conformance-v3.js → conformance.js} +236 -248
- package/dist/commands/conformance.js.map +1 -0
- package/dist/commands/hardwarewallet.js +5 -5
- package/dist/commands/hardwarewallet.js.map +1 -1
- package/dist/commands/index.js +4 -4
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/{ledger-v4.js → ledger.js} +203 -127
- package/dist/commands/ledger.js.map +1 -0
- package/dist/commands/ptr.js +56 -0
- package/dist/commands/ptr.js.map +1 -0
- package/dist/commands/tcr.js +51 -0
- package/dist/commands/tcr.js.map +1 -0
- package/dist/commands/tnl.js +10 -9
- package/dist/commands/tnl.js.map +1 -1
- package/dist/commands/tsr.js +46 -0
- package/dist/commands/tsr.js.map +1 -0
- package/dist/commands/view.js +8 -8
- package/dist/commands/view.js.map +1 -1
- package/dist/config.js +311 -279
- package/dist/config.js.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/interfaces/index.js +1 -1
- package/dist/interfaces/index.js.map +1 -1
- package/dist/programs/migrateDid.js +33 -33
- package/dist/programs/migrateDid.js.map +1 -1
- package/dist/programs/migrateDids.js +39 -42
- package/dist/programs/migrateDids.js.map +1 -1
- package/dist/programs/migrateTsr.js +153 -113
- package/dist/programs/migrateTsr.js.map +1 -1
- package/dist/scripts/accreditAndAuthorize/conformance/step1 +1 -1
- package/dist/scripts/accreditAndAuthorize/test/step1 +1 -1
- package/dist/scripts/accreditTI +1 -1
- package/dist/scripts/assets/CTRevocableCredential.json +1 -1
- package/dist/scripts/assets/CredentialToAttestVerifiableAuthorisationForTrustChain.json +2 -2
- package/dist/scripts/assets/TrustedNodesList.json +1 -1
- package/dist/scripts/assets/VerifiableAccreditationToAccredit.json +2 -2
- package/dist/scripts/assets/VerifiableAccreditationToAttest.json +2 -2
- package/dist/scripts/assets/VerifiableAuthorisationForTrustChain.json +1 -1
- package/dist/scripts/assets/VerifiableAuthorisationToInvoke.json +24 -0
- package/dist/scripts/assets/VerifiableAuthorisationToOnboard.json +1 -1
- package/dist/scripts/bootstrap/1-populateTPR +18 -15
- package/dist/scripts/bootstrap/6-setupConformanceIssuer +1 -1
- package/dist/scripts/issueVcInvoke +10 -0
- package/dist/scripts/issueVcOnboard +1 -1
- package/dist/scripts/issueVcRootTAO +1 -1
- package/dist/scripts/issueVcTAO +2 -2
- package/dist/scripts/issueVcTI +2 -2
- package/dist/scripts/issueVcTnl +1 -1
- package/dist/scripts/issue_CTRevocableCredential +1 -1
- package/dist/scripts/issue_SelfAttestationSupportOffice +2 -2
- package/dist/scripts/issue_VerifiableAccreditationToAccredit +2 -2
- package/dist/scripts/issue_VerifiableAccreditationToAttest +2 -2
- package/dist/scripts/issue_VerifiableAuthorisationForTrustChain +1 -1
- package/dist/scripts/issue_VerifiableAuthorisationToOnboard +1 -1
- package/dist/scripts/updateVcRootTAO +1 -1
- package/dist/scripts/updateVcTAO +2 -2
- package/dist/scripts/updateVcTI +2 -2
- package/dist/scripts/{wctv3 → wct}/accreditAndAuthorize +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/dist/utils/Client.js +81 -68
- package/dist/utils/Client.js.map +1 -1
- package/dist/utils/HardwareWallet.js +169 -165
- package/dist/utils/HardwareWallet.js.map +1 -1
- package/dist/utils/http.js +24 -27
- package/dist/utils/http.js.map +1 -1
- package/dist/utils/index.js +3 -3
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/jsonrpc.js +14 -14
- package/dist/utils/jsonrpc.js.map +1 -1
- package/dist/utils/print.js +19 -19
- package/dist/utils/print.js.map +1 -1
- package/dist/utils/utils.js +180 -173
- package/dist/utils/utils.js.map +1 -1
- package/package.json +70 -46
- package/dist/abi/pilot/DidRegistryV3.js +0 -1082
- package/dist/abi/pilot/DidRegistryV3.js.map +0 -1
- package/dist/abi/pilot/DidRegistryV4.js +0 -942
- package/dist/abi/pilot/DidRegistryV4.js.map +0 -1
- package/dist/abi/pilot/SchemaSCRegistryV2.js +0 -474
- package/dist/abi/pilot/SchemaSCRegistryV2.js.map +0 -1
- package/dist/abi/pilot/TimestampV2.js +0 -1128
- package/dist/abi/pilot/TimestampV2.js.map +0 -1
- package/dist/abi/pilot/TimestampV3.js +0 -995
- package/dist/abi/pilot/TimestampV3.js.map +0 -1
- package/dist/abi/pilot/TirV3.js +0 -496
- package/dist/abi/pilot/TirV3.js.map +0 -1
- package/dist/abi/pilot/TirV4.js.map +0 -1
- package/dist/abi/pilot/TnTV1.js +0 -1375
- package/dist/abi/pilot/TnTV1.js.map +0 -1
- package/dist/abi/pilot/TprV2.js +0 -889
- package/dist/abi/pilot/TprV2.js.map +0 -1
- package/dist/abi/pilot/TprV3.js.map +0 -1
- package/dist/abi/pilot/TsrV3.js +0 -571
- package/dist/abi/pilot/TsrV3.js.map +0 -1
- package/dist/abi/test/DidRegistryV3.js +0 -1089
- package/dist/abi/test/DidRegistryV3.js.map +0 -1
- package/dist/abi/test/DidRegistryV4.js +0 -960
- package/dist/abi/test/DidRegistryV4.js.map +0 -1
- package/dist/abi/test/SchemaSCRegistryV2.js +0 -474
- package/dist/abi/test/SchemaSCRegistryV2.js.map +0 -1
- package/dist/abi/test/TimestampV2.js +0 -1128
- package/dist/abi/test/TimestampV2.js.map +0 -1
- package/dist/abi/test/TimestampV3.js +0 -995
- package/dist/abi/test/TimestampV3.js.map +0 -1
- package/dist/abi/test/TirV3.js +0 -496
- package/dist/abi/test/TirV3.js.map +0 -1
- package/dist/abi/test/TirV4.js.map +0 -1
- package/dist/abi/test/TnTV1.js +0 -1375
- package/dist/abi/test/TnTV1.js.map +0 -1
- package/dist/abi/test/TprV2.js +0 -889
- package/dist/abi/test/TprV2.js.map +0 -1
- package/dist/abi/test/TprV3.js.map +0 -1
- package/dist/abi/test/TsrV3.js +0 -571
- package/dist/abi/test/TsrV3.js.map +0 -1
- package/dist/buildParam/didV3.js.map +0 -1
- package/dist/buildParam/didV4.js +0 -326
- package/dist/buildParam/didV4.js.map +0 -1
- package/dist/buildParam/timestampV2.js +0 -317
- package/dist/buildParam/timestampV2.js.map +0 -1
- package/dist/buildParam/timestampV3.js.map +0 -1
- package/dist/buildParam/tirV3.js.map +0 -1
- package/dist/buildParam/tirV4.js +0 -119
- package/dist/buildParam/tirV4.js.map +0 -1
- package/dist/buildParam/tntV1.js.map +0 -1
- package/dist/buildParam/tntV2.js +0 -185
- package/dist/buildParam/tntV2.js.map +0 -1
- package/dist/buildParam/tprV2.js.map +0 -1
- package/dist/buildParam/tprV3.js +0 -82
- package/dist/buildParam/tprV3.js.map +0 -1
- package/dist/buildParam/tsrV2.js.map +0 -1
- package/dist/buildParam/tsrV3.js +0 -110
- package/dist/buildParam/tsrV3.js.map +0 -1
- package/dist/commands/authorisation-v4.js +0 -119
- package/dist/commands/authorisation-v4.js.map +0 -1
- package/dist/commands/authorisation-v5.js.map +0 -1
- package/dist/commands/conformance-v3.js.map +0 -1
- package/dist/commands/ledger-v4.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- /package/dist/scripts/{wctv3 → wct}/holderWallet +0 -0
- /package/dist/scripts/{wctv3 → wct}/issueToHolder +0 -0
- /package/dist/scripts/{wctv3 → wct}/pda1 +0 -0
- /package/dist/scripts/{wctv3 → wct}/verifier +0 -0
|
@@ -1,152 +1,37 @@
|
|
|
1
|
-
import { calculateJwkThumbprint } from "jose";
|
|
2
1
|
import Joi from "joi";
|
|
2
|
+
import { calculateJwkThumbprint } from "jose";
|
|
3
3
|
import { encodePublicKey } from "../utils/utils.js";
|
|
4
|
-
export async function
|
|
5
|
-
let publicKey;
|
|
6
|
-
let publicKeyJwk;
|
|
7
|
-
let vMethodId;
|
|
8
|
-
if (inputPublicKey) {
|
|
9
|
-
if (typeof inputPublicKey === "string") {
|
|
10
|
-
publicKey = inputPublicKey;
|
|
11
|
-
publicKeyJwk = encodePublicKey({
|
|
12
|
-
key: publicKey,
|
|
13
|
-
format: "jwk",
|
|
14
|
-
alg: "ES256K",
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
else {
|
|
18
|
-
publicKeyJwk = inputPublicKey;
|
|
19
|
-
if (publicKeyJwk.crv === "secp256k1") {
|
|
20
|
-
publicKey = encodePublicKey({
|
|
21
|
-
key: publicKeyJwk,
|
|
22
|
-
format: "hex",
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
// for ES256, RS256, and EdDSA the public
|
|
27
|
-
// key hex is stored as a JSON stringified
|
|
28
|
-
publicKey = `0x${Buffer.from(JSON.stringify(publicKeyJwk)).toString("hex")}`;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
vMethodId =
|
|
32
|
-
inputVMethodId || (await calculateJwkThumbprint(publicKeyJwk, "sha256"));
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
publicKey = client.ethWallet.publicKey;
|
|
36
|
-
publicKeyJwk = encodePublicKey({
|
|
37
|
-
key: publicKey,
|
|
38
|
-
format: "jwk",
|
|
39
|
-
alg: "ES256K",
|
|
40
|
-
});
|
|
41
|
-
vMethodId = client.keys.ES256K.id;
|
|
42
|
-
}
|
|
43
|
-
const isSecp256k1 = publicKeyJwk.crv === "secp256k1";
|
|
44
|
-
return { publicKey, publicKeyJwk, vMethodId, isSecp256k1 };
|
|
45
|
-
}
|
|
46
|
-
export async function buildParamDidV3(method, client, inputs) {
|
|
4
|
+
export async function buildParamDidr(method, client, inputs) {
|
|
47
5
|
switch (method) {
|
|
48
|
-
case "insertDidDocument": {
|
|
49
|
-
const [inputDid, inputBaseDocument, inputPublicKey, inputNotBefore, inputNotAfter, inputVMethodId,] = inputs;
|
|
50
|
-
Joi.assert(inputDid, Joi.string().optional());
|
|
51
|
-
Joi.assert(inputNotBefore, Joi.string().optional());
|
|
52
|
-
Joi.assert(inputNotAfter, Joi.string().optional());
|
|
53
|
-
Joi.assert(inputVMethodId, Joi.string().optional());
|
|
54
|
-
const did = inputDid || client.did;
|
|
55
|
-
let baseDocument;
|
|
56
|
-
let notBefore;
|
|
57
|
-
let notAfter;
|
|
58
|
-
if (inputBaseDocument) {
|
|
59
|
-
baseDocument = JSON.stringify(inputBaseDocument);
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
const didDocument = client.generateDidDocument();
|
|
63
|
-
baseDocument = JSON.stringify({ "@context": didDocument["@context"] });
|
|
64
|
-
}
|
|
65
|
-
const { publicKey, vMethodId, isSecp256k1 } = await processInputPublicKey(client, inputPublicKey, inputVMethodId);
|
|
66
|
-
if (!isSecp256k1) {
|
|
67
|
-
throw new Error("the public key must be for secp256k1");
|
|
68
|
-
}
|
|
69
|
-
if (inputNotBefore) {
|
|
70
|
-
notBefore = Math.floor(new Date(inputNotBefore).getTime() / 1000);
|
|
71
|
-
}
|
|
72
|
-
else {
|
|
73
|
-
notBefore = Math.floor(Date.now() / 1000);
|
|
74
|
-
}
|
|
75
|
-
if (inputNotAfter) {
|
|
76
|
-
notAfter = Math.floor(new Date(inputNotAfter).getTime() / 1000);
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
notAfter = notBefore + 84600 * 365 * 5;
|
|
80
|
-
}
|
|
81
|
-
return {
|
|
82
|
-
info: {
|
|
83
|
-
title: "Did document",
|
|
84
|
-
data: did,
|
|
85
|
-
},
|
|
86
|
-
param: {
|
|
87
|
-
did,
|
|
88
|
-
baseDocument,
|
|
89
|
-
vMethodId,
|
|
90
|
-
publicKey,
|
|
91
|
-
isSecp256k1,
|
|
92
|
-
notBefore,
|
|
93
|
-
notAfter,
|
|
94
|
-
},
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
case "updateBaseDocument": {
|
|
98
|
-
const [did, inputBaseDocument] = inputs;
|
|
99
|
-
Joi.assert(did, Joi.string());
|
|
100
|
-
let baseDocument;
|
|
101
|
-
if (inputBaseDocument) {
|
|
102
|
-
baseDocument = JSON.stringify(inputBaseDocument);
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
const didDocument = client.generateDidDocument();
|
|
106
|
-
baseDocument = JSON.stringify({ "@context": didDocument["@context"] });
|
|
107
|
-
}
|
|
108
|
-
return {
|
|
109
|
-
info: {
|
|
110
|
-
title: "Update base document",
|
|
111
|
-
data: {
|
|
112
|
-
did,
|
|
113
|
-
baseDocument,
|
|
114
|
-
},
|
|
115
|
-
},
|
|
116
|
-
param: {
|
|
117
|
-
did,
|
|
118
|
-
baseDocument,
|
|
119
|
-
},
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
6
|
case "addController": {
|
|
123
7
|
const [did, controller] = inputs;
|
|
124
8
|
Joi.assert(did, Joi.string());
|
|
125
9
|
Joi.assert(controller, Joi.string());
|
|
126
10
|
return {
|
|
127
11
|
info: {
|
|
12
|
+
data: { controller, did },
|
|
128
13
|
title: "Add controller",
|
|
129
|
-
data: { did, controller },
|
|
130
14
|
},
|
|
131
15
|
param: {
|
|
132
|
-
did,
|
|
133
16
|
controller,
|
|
17
|
+
did,
|
|
134
18
|
},
|
|
19
|
+
paramOrder: ["did", "controller"],
|
|
135
20
|
};
|
|
136
21
|
}
|
|
137
|
-
case "
|
|
138
|
-
const [did,
|
|
22
|
+
case "addService": {
|
|
23
|
+
const [did, service] = inputs;
|
|
139
24
|
Joi.assert(did, Joi.string());
|
|
140
|
-
Joi.assert(controller, Joi.string());
|
|
141
25
|
return {
|
|
142
26
|
info: {
|
|
143
|
-
|
|
144
|
-
|
|
27
|
+
data: { did, service },
|
|
28
|
+
title: "Add service",
|
|
145
29
|
},
|
|
146
30
|
param: {
|
|
147
31
|
did,
|
|
148
|
-
|
|
32
|
+
service,
|
|
149
33
|
},
|
|
34
|
+
paramOrder: ["did", "service"],
|
|
150
35
|
};
|
|
151
36
|
}
|
|
152
37
|
case "addVerificationMethod": {
|
|
@@ -155,27 +40,28 @@ export async function buildParamDidV3(method, client, inputs) {
|
|
|
155
40
|
Joi.assert(inputVMethodId, Joi.string().optional());
|
|
156
41
|
let inputPublicKey = inputPublicKeyOrAlg;
|
|
157
42
|
if (typeof inputPublicKeyOrAlg === "string" &&
|
|
158
|
-
["
|
|
43
|
+
["EdDSA", "ES256", "ES256K", "RS256"].includes(inputPublicKeyOrAlg)) {
|
|
159
44
|
const alg = inputPublicKeyOrAlg;
|
|
160
45
|
inputPublicKey = client.keys[alg].publicKeyJwk;
|
|
161
46
|
}
|
|
162
|
-
const { publicKey, vMethodId
|
|
47
|
+
const { isSecp256k1, publicKey, vMethodId } = await processInputPublicKey(client, inputPublicKey, inputVMethodId);
|
|
163
48
|
return {
|
|
164
49
|
info: {
|
|
165
|
-
title: "Add verification method",
|
|
166
50
|
data: {
|
|
167
51
|
did,
|
|
168
|
-
vMethodId,
|
|
169
|
-
publicKey,
|
|
170
52
|
isSecp256k1,
|
|
53
|
+
publicKey,
|
|
54
|
+
vMethodId,
|
|
171
55
|
},
|
|
56
|
+
title: "Add verification method",
|
|
172
57
|
},
|
|
173
58
|
param: {
|
|
174
59
|
did,
|
|
175
|
-
vMethodId,
|
|
176
|
-
publicKey,
|
|
177
60
|
isSecp256k1,
|
|
61
|
+
publicKey,
|
|
62
|
+
vMethodId,
|
|
178
63
|
},
|
|
64
|
+
paramOrder: ["did", "vMethodId", "publicKey", "isSecp256k1"],
|
|
179
65
|
};
|
|
180
66
|
}
|
|
181
67
|
case "addVerificationRelationship": {
|
|
@@ -185,103 +71,176 @@ export async function buildParamDidV3(method, client, inputs) {
|
|
|
185
71
|
Joi.assert(vMethodIdOrAlg, Joi.string());
|
|
186
72
|
Joi.assert(inputNotBefore, Joi.string().optional());
|
|
187
73
|
Joi.assert(inputNotAfter, Joi.string().optional());
|
|
188
|
-
let notBefore;
|
|
189
|
-
let notAfter;
|
|
190
74
|
let vMethodId = vMethodIdOrAlg;
|
|
191
|
-
if (["
|
|
75
|
+
if (["EdDSA", "ES256", "ES256K", "RS256"].includes(vMethodIdOrAlg)) {
|
|
192
76
|
const alg = vMethodIdOrAlg;
|
|
193
77
|
vMethodId = client.keys[alg].id;
|
|
194
78
|
}
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
if (inputNotAfter) {
|
|
202
|
-
notAfter = Math.floor(new Date(inputNotAfter).getTime() / 1000);
|
|
203
|
-
}
|
|
204
|
-
else {
|
|
205
|
-
notAfter = notBefore + 84600 * 365 * 5;
|
|
206
|
-
}
|
|
79
|
+
const notBefore = inputNotBefore
|
|
80
|
+
? Math.floor(new Date(inputNotBefore).getTime() / 1000)
|
|
81
|
+
: Math.floor(Date.now() / 1000);
|
|
82
|
+
const notAfter = inputNotAfter
|
|
83
|
+
? Math.floor(new Date(inputNotAfter).getTime() / 1000)
|
|
84
|
+
: notBefore + 84_600 * 365 * 5;
|
|
207
85
|
return {
|
|
208
86
|
info: {
|
|
209
|
-
title: "Add verification relationship",
|
|
210
87
|
data: {
|
|
211
88
|
did,
|
|
212
89
|
name,
|
|
213
|
-
vMethodId,
|
|
214
|
-
notBefore,
|
|
215
90
|
notAfter,
|
|
91
|
+
notBefore,
|
|
92
|
+
vMethodId,
|
|
216
93
|
},
|
|
94
|
+
title: "Add verification relationship",
|
|
217
95
|
},
|
|
218
96
|
param: {
|
|
219
97
|
did,
|
|
220
98
|
name,
|
|
221
|
-
vMethodId,
|
|
222
|
-
notBefore,
|
|
223
99
|
notAfter,
|
|
100
|
+
notBefore,
|
|
101
|
+
vMethodId,
|
|
224
102
|
},
|
|
103
|
+
paramOrder: ["did", "name", "vMethodId", "notBefore", "notAfter"],
|
|
225
104
|
};
|
|
226
105
|
}
|
|
227
|
-
case "
|
|
106
|
+
case "expireVerificationMethod": {
|
|
228
107
|
const [did, vMethodIdOrAlg, inputNotAfter] = inputs;
|
|
229
108
|
Joi.assert(did, Joi.string());
|
|
230
109
|
Joi.assert(vMethodIdOrAlg, Joi.string());
|
|
231
110
|
Joi.assert(inputNotAfter, Joi.string());
|
|
232
|
-
|
|
111
|
+
const notAfter = Math.floor(new Date(inputNotAfter).getTime() / 1000);
|
|
233
112
|
let vMethodId = vMethodIdOrAlg;
|
|
234
|
-
if (["
|
|
113
|
+
if (["EdDSA", "ES256", "ES256K", "RS256"].includes(vMethodIdOrAlg)) {
|
|
235
114
|
const alg = vMethodIdOrAlg;
|
|
236
115
|
vMethodId = client.keys[alg].id;
|
|
237
116
|
}
|
|
238
|
-
if (inputNotAfter) {
|
|
239
|
-
notAfter = Math.floor(new Date(inputNotAfter).getTime() / 1000);
|
|
240
|
-
}
|
|
241
|
-
else {
|
|
242
|
-
notAfter = Math.floor(Date.now() / 1000);
|
|
243
|
-
}
|
|
244
117
|
return {
|
|
245
118
|
info: {
|
|
246
|
-
title: "Revoke verification method",
|
|
247
119
|
data: {
|
|
248
120
|
did,
|
|
249
|
-
vMethodId,
|
|
250
121
|
notAfter,
|
|
122
|
+
vMethodId,
|
|
251
123
|
},
|
|
124
|
+
title: "Expire verification method",
|
|
252
125
|
},
|
|
253
126
|
param: {
|
|
254
127
|
did,
|
|
128
|
+
notAfter,
|
|
255
129
|
vMethodId,
|
|
130
|
+
},
|
|
131
|
+
paramOrder: ["did", "vMethodId", "notAfter"],
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
case "insertDidDocument": {
|
|
135
|
+
const [inputDid, inputBaseDocument, inputPublicKey, inputNotBefore, inputNotAfter, inputVMethodId,] = inputs;
|
|
136
|
+
Joi.assert(inputDid, Joi.string().optional());
|
|
137
|
+
Joi.assert(inputNotBefore, Joi.string().optional());
|
|
138
|
+
Joi.assert(inputNotAfter, Joi.string().optional());
|
|
139
|
+
Joi.assert(inputVMethodId, Joi.string().optional());
|
|
140
|
+
const did = inputDid || client.did;
|
|
141
|
+
let baseDocument;
|
|
142
|
+
if (inputBaseDocument) {
|
|
143
|
+
baseDocument = JSON.stringify(inputBaseDocument);
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
const didDocument = client.generateDidDocument();
|
|
147
|
+
baseDocument = JSON.stringify({ "@context": didDocument["@context"] });
|
|
148
|
+
}
|
|
149
|
+
const { isSecp256k1, publicKey, vMethodId } = await processInputPublicKey(client, inputPublicKey, inputVMethodId);
|
|
150
|
+
if (!isSecp256k1) {
|
|
151
|
+
throw new Error("the public key must be for secp256k1");
|
|
152
|
+
}
|
|
153
|
+
const notBefore = inputNotBefore
|
|
154
|
+
? Math.floor(new Date(inputNotBefore).getTime() / 1000)
|
|
155
|
+
: Math.floor(Date.now() / 1000);
|
|
156
|
+
const notAfter = inputNotAfter
|
|
157
|
+
? Math.floor(new Date(inputNotAfter).getTime() / 1000)
|
|
158
|
+
: notBefore + 84_600 * 365 * 5;
|
|
159
|
+
return {
|
|
160
|
+
info: {
|
|
161
|
+
data: did,
|
|
162
|
+
title: "Did document",
|
|
163
|
+
},
|
|
164
|
+
param: {
|
|
165
|
+
baseDocument,
|
|
166
|
+
did,
|
|
167
|
+
isSecp256k1,
|
|
256
168
|
notAfter,
|
|
169
|
+
notBefore,
|
|
170
|
+
publicKey,
|
|
171
|
+
vMethodId,
|
|
257
172
|
},
|
|
173
|
+
paramOrder: [
|
|
174
|
+
"did",
|
|
175
|
+
"baseDocument",
|
|
176
|
+
"vMethodId",
|
|
177
|
+
"publicKey",
|
|
178
|
+
"isSecp256k1",
|
|
179
|
+
"notBefore",
|
|
180
|
+
"notAfter",
|
|
181
|
+
],
|
|
258
182
|
};
|
|
259
183
|
}
|
|
260
|
-
case "
|
|
184
|
+
case "revokeController": {
|
|
185
|
+
const [did, controller] = inputs;
|
|
186
|
+
Joi.assert(did, Joi.string());
|
|
187
|
+
Joi.assert(controller, Joi.string());
|
|
188
|
+
return {
|
|
189
|
+
info: {
|
|
190
|
+
data: { controller, did },
|
|
191
|
+
title: "Revoke controller",
|
|
192
|
+
},
|
|
193
|
+
param: {
|
|
194
|
+
controller,
|
|
195
|
+
did,
|
|
196
|
+
},
|
|
197
|
+
paramOrder: ["did", "controller"],
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
case "revokeService": {
|
|
201
|
+
const [did, serviceId] = inputs;
|
|
202
|
+
Joi.assert(did, Joi.string());
|
|
203
|
+
Joi.assert(serviceId, Joi.string());
|
|
204
|
+
return {
|
|
205
|
+
info: {
|
|
206
|
+
data: { did, serviceId },
|
|
207
|
+
title: "Revoke service",
|
|
208
|
+
},
|
|
209
|
+
param: {
|
|
210
|
+
did,
|
|
211
|
+
serviceId,
|
|
212
|
+
},
|
|
213
|
+
paramOrder: ["did", "serviceId"],
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
case "revokeVerificationMethod": {
|
|
261
217
|
const [did, vMethodIdOrAlg, inputNotAfter] = inputs;
|
|
262
218
|
Joi.assert(did, Joi.string());
|
|
263
219
|
Joi.assert(vMethodIdOrAlg, Joi.string());
|
|
264
220
|
Joi.assert(inputNotAfter, Joi.string());
|
|
265
|
-
const notAfter = Math.floor(new Date(inputNotAfter).getTime() / 1000);
|
|
266
221
|
let vMethodId = vMethodIdOrAlg;
|
|
267
|
-
if (["
|
|
222
|
+
if (["EdDSA", "ES256", "ES256K", "RS256"].includes(vMethodIdOrAlg)) {
|
|
268
223
|
const alg = vMethodIdOrAlg;
|
|
269
224
|
vMethodId = client.keys[alg].id;
|
|
270
225
|
}
|
|
226
|
+
const notAfter = inputNotAfter
|
|
227
|
+
? Math.floor(new Date(inputNotAfter).getTime() / 1000)
|
|
228
|
+
: Math.floor(Date.now() / 1000);
|
|
271
229
|
return {
|
|
272
230
|
info: {
|
|
273
|
-
title: "Expire verification method",
|
|
274
231
|
data: {
|
|
275
232
|
did,
|
|
276
|
-
vMethodId,
|
|
277
233
|
notAfter,
|
|
234
|
+
vMethodId,
|
|
278
235
|
},
|
|
236
|
+
title: "Revoke verification method",
|
|
279
237
|
},
|
|
280
238
|
param: {
|
|
281
239
|
did,
|
|
282
|
-
vMethodId,
|
|
283
240
|
notAfter,
|
|
241
|
+
vMethodId,
|
|
284
242
|
},
|
|
243
|
+
paramOrder: ["did", "vMethodId", "notAfter"],
|
|
285
244
|
};
|
|
286
245
|
}
|
|
287
246
|
case "rollVerificationMethod": {
|
|
@@ -294,76 +253,123 @@ export async function buildParamDidV3(method, client, inputs) {
|
|
|
294
253
|
Joi.assert(inputVMethodId, Joi.string().optional());
|
|
295
254
|
let inputPublicKey = inputPublicKeyOrAlg;
|
|
296
255
|
if (typeof inputPublicKeyOrAlg === "string" &&
|
|
297
|
-
["
|
|
256
|
+
["EdDSA", "ES256", "ES256K", "RS256"].includes(inputPublicKeyOrAlg)) {
|
|
298
257
|
const alg = inputPublicKeyOrAlg;
|
|
299
258
|
inputPublicKey = client.keys[alg].publicKeyJwk;
|
|
300
259
|
}
|
|
301
260
|
const notBefore = Math.floor(new Date(inputNotBefore).getTime() / 1000);
|
|
302
261
|
const notAfter = Math.floor(new Date(inputNotAfter).getTime() / 1000);
|
|
303
262
|
const duration = Number(inputDuration);
|
|
304
|
-
const { publicKey, vMethodId
|
|
263
|
+
const { isSecp256k1, publicKey, vMethodId } = await processInputPublicKey(client, inputPublicKey, inputVMethodId);
|
|
305
264
|
return {
|
|
306
265
|
info: {
|
|
307
|
-
title: "Add verification method",
|
|
308
266
|
data: {
|
|
309
267
|
args: {
|
|
310
268
|
did,
|
|
311
|
-
|
|
312
|
-
publicKey,
|
|
269
|
+
duration,
|
|
313
270
|
isSecp256k1,
|
|
314
|
-
notBefore,
|
|
315
271
|
notAfter,
|
|
272
|
+
notBefore,
|
|
316
273
|
oldVMethodId,
|
|
317
|
-
|
|
274
|
+
publicKey,
|
|
275
|
+
vMethodId,
|
|
318
276
|
},
|
|
319
277
|
},
|
|
278
|
+
title: "Add verification method",
|
|
320
279
|
},
|
|
321
280
|
param: {
|
|
322
281
|
args: {
|
|
323
282
|
did,
|
|
324
|
-
|
|
325
|
-
publicKey,
|
|
283
|
+
duration,
|
|
326
284
|
isSecp256k1,
|
|
327
|
-
notBefore,
|
|
328
285
|
notAfter,
|
|
286
|
+
notBefore,
|
|
329
287
|
oldVMethodId,
|
|
330
|
-
|
|
288
|
+
publicKey,
|
|
289
|
+
vMethodId,
|
|
331
290
|
},
|
|
332
291
|
},
|
|
292
|
+
paramOrder: [
|
|
293
|
+
"did",
|
|
294
|
+
"vMethodId",
|
|
295
|
+
"publicKey",
|
|
296
|
+
"isSecp256k1",
|
|
297
|
+
"notBefore",
|
|
298
|
+
"notAfter",
|
|
299
|
+
"oldVMethodId",
|
|
300
|
+
"duration",
|
|
301
|
+
],
|
|
333
302
|
};
|
|
334
303
|
}
|
|
335
|
-
case "
|
|
336
|
-
const [did,
|
|
337
|
-
Joi.assert(did, Joi.string());
|
|
338
|
-
return {
|
|
339
|
-
info: {
|
|
340
|
-
title: "Add service",
|
|
341
|
-
data: { did, service },
|
|
342
|
-
},
|
|
343
|
-
param: {
|
|
344
|
-
did,
|
|
345
|
-
service,
|
|
346
|
-
},
|
|
347
|
-
};
|
|
348
|
-
}
|
|
349
|
-
case "revokeService": {
|
|
350
|
-
const [did, serviceId] = inputs;
|
|
304
|
+
case "updateBaseDocument": {
|
|
305
|
+
const [did, inputBaseDocument] = inputs;
|
|
351
306
|
Joi.assert(did, Joi.string());
|
|
352
|
-
|
|
307
|
+
let baseDocument;
|
|
308
|
+
if (inputBaseDocument) {
|
|
309
|
+
baseDocument = JSON.stringify(inputBaseDocument);
|
|
310
|
+
}
|
|
311
|
+
else {
|
|
312
|
+
const didDocument = client.generateDidDocument();
|
|
313
|
+
baseDocument = JSON.stringify({ "@context": didDocument["@context"] });
|
|
314
|
+
}
|
|
353
315
|
return {
|
|
354
316
|
info: {
|
|
355
|
-
|
|
356
|
-
|
|
317
|
+
data: {
|
|
318
|
+
baseDocument,
|
|
319
|
+
did,
|
|
320
|
+
},
|
|
321
|
+
title: "Update base document",
|
|
357
322
|
},
|
|
358
323
|
param: {
|
|
324
|
+
baseDocument,
|
|
359
325
|
did,
|
|
360
|
-
serviceId,
|
|
361
326
|
},
|
|
327
|
+
paramOrder: ["did", "baseDocument"],
|
|
362
328
|
};
|
|
363
329
|
}
|
|
364
|
-
default:
|
|
330
|
+
default: {
|
|
365
331
|
throw new Error(`Invalid method '${method}'`);
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
export async function processInputPublicKey(client, inputPublicKey, inputVMethodId) {
|
|
336
|
+
let publicKey;
|
|
337
|
+
let publicKeyJwk;
|
|
338
|
+
let vMethodId;
|
|
339
|
+
if (inputPublicKey) {
|
|
340
|
+
if (typeof inputPublicKey === "string") {
|
|
341
|
+
publicKey = inputPublicKey;
|
|
342
|
+
publicKeyJwk = encodePublicKey({
|
|
343
|
+
alg: "ES256K",
|
|
344
|
+
format: "jwk",
|
|
345
|
+
key: publicKey,
|
|
346
|
+
});
|
|
347
|
+
}
|
|
348
|
+
else {
|
|
349
|
+
publicKeyJwk = inputPublicKey;
|
|
350
|
+
publicKey =
|
|
351
|
+
publicKeyJwk.crv === "secp256k1"
|
|
352
|
+
? encodePublicKey({
|
|
353
|
+
format: "hex",
|
|
354
|
+
key: publicKeyJwk,
|
|
355
|
+
})
|
|
356
|
+
: // for ES256, RS256, and EdDSA the public key hex is stored as a JSON stringified
|
|
357
|
+
`0x${Buffer.from(JSON.stringify(publicKeyJwk)).toString("hex")}`;
|
|
358
|
+
}
|
|
359
|
+
vMethodId =
|
|
360
|
+
inputVMethodId || (await calculateJwkThumbprint(publicKeyJwk, "sha256"));
|
|
366
361
|
}
|
|
362
|
+
else {
|
|
363
|
+
publicKey = client.ethWallet.publicKey;
|
|
364
|
+
publicKeyJwk = encodePublicKey({
|
|
365
|
+
alg: "ES256K",
|
|
366
|
+
format: "jwk",
|
|
367
|
+
key: publicKey,
|
|
368
|
+
});
|
|
369
|
+
vMethodId = client.keys.ES256K.id;
|
|
370
|
+
}
|
|
371
|
+
const isSecp256k1 = publicKeyJwk.crv === "secp256k1";
|
|
372
|
+
return { isSecp256k1, publicKey, publicKeyJwk, vMethodId };
|
|
367
373
|
}
|
|
368
|
-
export default
|
|
369
|
-
//# sourceMappingURL=
|
|
374
|
+
export default buildParamDidr;
|
|
375
|
+
//# sourceMappingURL=didr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"didr.js","sourceRoot":"","sources":["../../src/buildParam/didr.ts"],"names":[],"mappings":"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"}
|