@cef-ebsi/cli 1.0.0-alpha.7 → 1.0.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.
Files changed (129) hide show
  1. package/LICENSE +189 -189
  2. package/bin/cli.js +0 -0
  3. package/dist/abi/pilot/DidRegistryV4.js +942 -0
  4. package/dist/abi/pilot/DidRegistryV4.js.map +1 -0
  5. package/dist/abi/pilot/TimestampV3.js +995 -0
  6. package/dist/abi/pilot/TimestampV3.js.map +1 -0
  7. package/dist/abi/pilot/TirV4.js +710 -0
  8. package/dist/abi/pilot/TirV4.js.map +1 -0
  9. package/dist/abi/pilot/TprV3.js +707 -0
  10. package/dist/abi/pilot/TprV3.js.map +1 -0
  11. package/dist/abi/pilot/TsrV3.js +571 -0
  12. package/dist/abi/pilot/TsrV3.js.map +1 -0
  13. package/dist/abi/test/DidRegistry.js +1082 -0
  14. package/dist/abi/test/DidRegistry.js.map +1 -0
  15. package/dist/abi/test/DidRegistryV4.js +960 -0
  16. package/dist/abi/test/DidRegistryV4.js.map +1 -0
  17. package/dist/abi/test/{TarV3.js → SchemaSCRegistry.js} +319 -454
  18. package/dist/abi/test/SchemaSCRegistry.js.map +1 -0
  19. package/dist/abi/{pilot/TarV3.js → test/Timestamp.js} +450 -466
  20. package/dist/abi/test/Timestamp.js.map +1 -0
  21. package/dist/abi/test/TimestampV3.js +995 -0
  22. package/dist/abi/test/TimestampV3.js.map +1 -0
  23. package/dist/abi/test/Tir.js +897 -0
  24. package/dist/abi/test/Tir.js.map +1 -0
  25. package/dist/abi/test/TirV4.js +710 -0
  26. package/dist/abi/test/TirV4.js.map +1 -0
  27. package/dist/abi/test/Tpr.js +1268 -0
  28. package/dist/abi/test/Tpr.js.map +1 -0
  29. package/dist/abi/test/TprV3.js +707 -0
  30. package/dist/abi/test/TprV3.js.map +1 -0
  31. package/dist/abi/test/TsrV3.js +571 -0
  32. package/dist/abi/test/TsrV3.js.map +1 -0
  33. package/dist/app.js +70 -57
  34. package/dist/app.js.map +1 -1
  35. package/dist/buildParam/didV4.js +390 -0
  36. package/dist/buildParam/didV4.js.map +1 -0
  37. package/dist/buildParam/index.js +43 -20
  38. package/dist/buildParam/index.js.map +1 -1
  39. package/dist/buildParam/timestampV3.js +317 -0
  40. package/dist/buildParam/timestampV3.js.map +1 -0
  41. package/dist/buildParam/tirV4.js +119 -0
  42. package/dist/buildParam/tirV4.js.map +1 -0
  43. package/dist/buildParam/tntV2.js +181 -0
  44. package/dist/buildParam/tntV2.js.map +1 -0
  45. package/dist/buildParam/tprV3.js +82 -0
  46. package/dist/buildParam/tprV3.js.map +1 -0
  47. package/dist/buildParam/tsrV3.js +110 -0
  48. package/dist/buildParam/tsrV3.js.map +1 -0
  49. package/dist/commands/authorisation-v4.js +3 -127
  50. package/dist/commands/authorisation-v4.js.map +1 -1
  51. package/dist/commands/authorisation-v5.js +116 -0
  52. package/dist/commands/authorisation-v5.js.map +1 -0
  53. package/dist/commands/compute.js +122 -53
  54. package/dist/commands/compute.js.map +1 -1
  55. package/dist/commands/conformance-v3.js +1 -2
  56. package/dist/commands/conformance-v3.js.map +1 -1
  57. package/dist/commands/ledger-v4.js +16 -4
  58. package/dist/commands/ledger-v4.js.map +1 -1
  59. package/dist/commands/view.js +0 -8
  60. package/dist/commands/view.js.map +1 -1
  61. package/dist/config.js +93 -96
  62. package/dist/config.js.map +1 -1
  63. package/dist/programs/migrateDid.js +158 -0
  64. package/dist/programs/migrateDid.js.map +1 -0
  65. package/dist/programs/migrateTsr.js +158 -0
  66. package/dist/programs/migrateTsr.js.map +1 -0
  67. package/dist/scripts/accreditAndAuthorize/conformance/step1 +33 -34
  68. package/dist/scripts/accreditAndAuthorize/conformance/step2 +17 -17
  69. package/dist/scripts/accreditAndAuthorize/conformance/step3 +8 -8
  70. package/dist/scripts/accreditAndAuthorize/conformance/step4 +26 -26
  71. package/dist/scripts/accreditAndAuthorize/conformance/step5 +12 -12
  72. package/dist/scripts/accreditAndAuthorize/conformance/step6 +13 -13
  73. package/dist/scripts/accreditAndAuthorize/conformance/step7 +6 -6
  74. package/dist/scripts/accreditAndAuthorize/test/step1 +33 -34
  75. package/dist/scripts/accreditAndAuthorize/test/step2 +17 -17
  76. package/dist/scripts/accreditAndAuthorize/test/step3 +8 -8
  77. package/dist/scripts/accreditAndAuthorize/test/step4 +26 -26
  78. package/dist/scripts/accreditAndAuthorize/test/step5 +12 -12
  79. package/dist/scripts/accreditAndAuthorize/test/step6 +13 -13
  80. package/dist/scripts/accreditAndAuthorize/test/step7 +6 -6
  81. package/dist/scripts/accreditTI +20 -20
  82. package/dist/scripts/assets/CTRevocableCredential.json +29 -29
  83. package/dist/scripts/assets/CredentialToAttestVerifiableAuthorisationForTrustChain.json +28 -28
  84. package/dist/scripts/assets/VerifiableAccreditationToAccredit.json +35 -35
  85. package/dist/scripts/assets/VerifiableAccreditationToAttest.json +32 -32
  86. package/dist/scripts/assets/VerifiableAuthorisationForTrustChain.json +21 -21
  87. package/dist/scripts/assets/VerifiableAuthorisationToOnboard.json +23 -23
  88. package/dist/scripts/bootstrap/0a-loadTPROperator +5 -5
  89. package/dist/scripts/bootstrap/0b-loadAdmin +7 -8
  90. package/dist/scripts/bootstrap/1-populateTPR +89 -112
  91. package/dist/scripts/bootstrap/2-populateDID +6 -6
  92. package/dist/scripts/bootstrap/{4-populateTimestamp → 3-populateTimestamp} +8 -8
  93. package/dist/scripts/bootstrap/{5-populateTIR → 4-populateTIR} +8 -9
  94. package/dist/scripts/bootstrap/{6-populateTSR → 5-populateTSR} +81 -81
  95. package/dist/scripts/bootstrap/{7-setupConformanceIssuer → 6-setupConformanceIssuer} +34 -34
  96. package/dist/scripts/issueVcOnboard +9 -9
  97. package/dist/scripts/issueVcRootTAO +11 -11
  98. package/dist/scripts/issueVcTAO +12 -12
  99. package/dist/scripts/issueVcTI +12 -12
  100. package/dist/scripts/issue_CTRevocableCredential +11 -12
  101. package/dist/scripts/issue_SelfAttestationSupportOffice +9 -10
  102. package/dist/scripts/issue_VerifiableAccreditationToAccredit +10 -11
  103. package/dist/scripts/issue_VerifiableAccreditationToAttest +10 -11
  104. package/dist/scripts/issue_VerifiableAuthorisationForTrustChain +9 -10
  105. package/dist/scripts/issue_VerifiableAuthorisationToOnboard +8 -9
  106. package/dist/scripts/preregisterIssuer +6 -6
  107. package/dist/scripts/registerDidDocument_ES256K +5 -5
  108. package/dist/scripts/registerDidDocument_ES256K_ES256 +13 -13
  109. package/dist/scripts/registerIssuer +6 -6
  110. package/dist/scripts/updateVcRootTAO +10 -0
  111. package/dist/scripts/updateVcTAO +11 -0
  112. package/dist/scripts/updateVcTI +11 -0
  113. package/dist/scripts/wctv3/accreditAndAuthorize +106 -105
  114. package/dist/scripts/wctv3/holderWallet +39 -39
  115. package/dist/scripts/wctv3/issueToHolder +37 -37
  116. package/dist/scripts/wctv3/pda1 +3 -3
  117. package/dist/scripts/wctv3/verifier +7 -7
  118. package/dist/tsconfig.tsbuildinfo +1 -1
  119. package/dist/utils/print.js +1 -5
  120. package/dist/utils/print.js.map +1 -1
  121. package/package.json +100 -103
  122. package/dist/abi/pilot/TarV3.js.map +0 -1
  123. package/dist/abi/test/TarV3.js.map +0 -1
  124. package/dist/buildParam/tarV3.js +0 -193
  125. package/dist/buildParam/tarV3.js.map +0 -1
  126. package/dist/programs/appRegistration.js +0 -69
  127. package/dist/programs/appRegistration.js.map +0 -1
  128. package/dist/scripts/bootstrap/3-populateTAR +0 -28
  129. package/dist/scripts/initializeContracts +0 -5
@@ -0,0 +1,317 @@
1
+ import crypto from "node:crypto";
2
+ import { ethers } from "ethers";
3
+ import Multihash from "multihashes";
4
+ import Joi from "joi";
5
+ import { multibaseEncode, fromHexString } from "../utils/index.js";
6
+ const { sha256 } = ethers.utils;
7
+ export function buildParamTimestampV3(method, client, inputs) {
8
+ switch (method) {
9
+ case "timestampRecordHashes": {
10
+ const [inputData, inputInfo] = inputs;
11
+ Joi.assert(inputData, Joi.object().optional());
12
+ Joi.assert(inputInfo, Joi.object().optional());
13
+ const data = typeof inputData === "object"
14
+ ? inputData
15
+ : { test: crypto.randomBytes(12).toString("hex") };
16
+ const buffer = Buffer.from(JSON.stringify(data));
17
+ const info = typeof inputInfo === "object"
18
+ ? inputInfo
19
+ : {
20
+ info: crypto.randomBytes(12).toString("hex"),
21
+ };
22
+ const timestamp = {
23
+ hash: {
24
+ id: 0,
25
+ value: sha256(buffer),
26
+ },
27
+ data: `0x${buffer.toString("hex")}`,
28
+ };
29
+ return {
30
+ info: {
31
+ title: "Timestamp record hashes. Record Id:",
32
+ data: { hashValue: timestamp.hash.value },
33
+ },
34
+ param: {
35
+ hashAlgorithmIds: [timestamp.hash.id],
36
+ hashValues: [timestamp.hash.value],
37
+ timestampData: [timestamp.data],
38
+ versionInfo: `0x${Buffer.from(JSON.stringify(info)).toString("hex")}`,
39
+ },
40
+ };
41
+ }
42
+ case "timestampVersionHashes": {
43
+ const [versionHash, inputData, inputInfo] = inputs;
44
+ Joi.assert(versionHash, Joi.string());
45
+ Joi.assert(inputData, Joi.object().optional());
46
+ Joi.assert(inputInfo, Joi.object().optional());
47
+ const data = typeof inputData === "object"
48
+ ? inputData
49
+ : { test: crypto.randomBytes(12).toString("hex") };
50
+ const buffer = Buffer.from(JSON.stringify(data));
51
+ const info = typeof inputInfo === "object"
52
+ ? inputInfo
53
+ : {
54
+ info: crypto.randomBytes(12).toString("hex"),
55
+ };
56
+ const timestamp = {
57
+ hash: {
58
+ id: 0,
59
+ value: sha256(buffer),
60
+ },
61
+ data: `0x${buffer.toString("hex")}`,
62
+ };
63
+ return {
64
+ info: {
65
+ title: "Timestamp record version hashes",
66
+ data: { data, info },
67
+ },
68
+ param: {
69
+ versionHash,
70
+ hashAlgorithmIds: [timestamp.hash.id],
71
+ hashValues: [timestamp.hash.value],
72
+ timestampData: [timestamp.data],
73
+ versionInfo: `0x${Buffer.from(JSON.stringify(info)).toString("hex")}`,
74
+ },
75
+ };
76
+ }
77
+ case "timestampRecordVersionHashes": {
78
+ const [recordId, inputData, inputInfo] = inputs;
79
+ Joi.assert(recordId, Joi.string());
80
+ Joi.assert(inputData, Joi.object().optional());
81
+ Joi.assert(inputInfo, Joi.object().optional());
82
+ const data = typeof inputData === "object"
83
+ ? inputData
84
+ : { test: crypto.randomBytes(12).toString("hex") };
85
+ const buffer = Buffer.from(JSON.stringify(data));
86
+ const info = typeof inputInfo === "object"
87
+ ? inputInfo
88
+ : {
89
+ info: crypto.randomBytes(12).toString("hex"),
90
+ };
91
+ const timestamp = {
92
+ hash: {
93
+ id: 0,
94
+ value: sha256(buffer),
95
+ },
96
+ data: `0x${buffer.toString("hex")}`,
97
+ };
98
+ return {
99
+ info: {
100
+ title: "Timestamp record version hashes",
101
+ data: { data, info },
102
+ },
103
+ param: {
104
+ recordId,
105
+ hashAlgorithmIds: [timestamp.hash.id],
106
+ hashValues: [timestamp.hash.value],
107
+ timestampData: [timestamp.data],
108
+ versionInfo: `0x${Buffer.from(JSON.stringify(info)).toString("hex")}`,
109
+ },
110
+ };
111
+ }
112
+ case "insertRecordOwner": {
113
+ const [recordId, ownerId, inputNotBefore, inputNotAfter] = inputs;
114
+ Joi.assert(recordId, Joi.string());
115
+ Joi.assert(ownerId, Joi.string());
116
+ Joi.assert(inputNotBefore, Joi.string().optional());
117
+ Joi.assert(inputNotAfter, Joi.string().optional());
118
+ const now = Math.round(Date.now() / 1000);
119
+ const notBefore = inputNotBefore || now;
120
+ const notAfter = inputNotAfter || 0;
121
+ return {
122
+ info: {
123
+ title: "Insert Record Owner",
124
+ data: ownerId,
125
+ },
126
+ param: {
127
+ recordId,
128
+ ownerId,
129
+ notBefore,
130
+ notAfter,
131
+ },
132
+ };
133
+ }
134
+ case "revokeRecordOwner": {
135
+ const [recordId, ownerId] = inputs;
136
+ Joi.assert(recordId, Joi.string());
137
+ Joi.assert(ownerId, Joi.string());
138
+ return {
139
+ info: {
140
+ title: "Revoke Record Owner",
141
+ data: ownerId,
142
+ },
143
+ param: {
144
+ recordId,
145
+ ownerId,
146
+ },
147
+ };
148
+ }
149
+ case "insertRecordVersionInfo": {
150
+ const [recordId, inputVersionId, inputInfo] = inputs;
151
+ Joi.assert(recordId, Joi.string());
152
+ Joi.assert(inputVersionId, Joi.string());
153
+ Joi.assert(inputInfo, Joi.object().optional());
154
+ const versionId = Number(inputVersionId);
155
+ const info = typeof inputInfo === "object"
156
+ ? inputInfo
157
+ : {
158
+ info: crypto.randomBytes(12).toString("hex"),
159
+ };
160
+ return {
161
+ info: {
162
+ title: "Insert Record Version Info",
163
+ data: { recordId, versionId, info },
164
+ },
165
+ param: {
166
+ recordId,
167
+ versionId,
168
+ versionInfo: `0x${Buffer.from(JSON.stringify(info)).toString("hex")}`,
169
+ },
170
+ };
171
+ }
172
+ case "detachRecordVersionHash": {
173
+ const [recordId, inputVersionId, hashValue] = inputs;
174
+ Joi.assert(recordId, Joi.string());
175
+ Joi.assert(inputVersionId, Joi.string());
176
+ Joi.assert(hashValue, Joi.string());
177
+ const versionId = Number(inputVersionId);
178
+ return {
179
+ info: {
180
+ title: "Detach Record Version Hash",
181
+ data: { recordId, versionId, hashValue },
182
+ },
183
+ param: {
184
+ recordId,
185
+ versionId,
186
+ hashValue,
187
+ },
188
+ };
189
+ }
190
+ case "appendRecordVersionHashes": {
191
+ const [recordId, inputVersionId, inputData, inputInfo] = inputs;
192
+ Joi.assert(recordId, Joi.string());
193
+ Joi.assert(inputVersionId, Joi.string());
194
+ Joi.assert(inputData, Joi.object().optional());
195
+ Joi.assert(inputInfo, Joi.object().optional());
196
+ const versionId = Number(inputVersionId);
197
+ const data = typeof inputData === "object"
198
+ ? inputData
199
+ : { test: crypto.randomBytes(12).toString("hex") };
200
+ const buffer = Buffer.from(JSON.stringify(data));
201
+ const info = typeof inputInfo === "object"
202
+ ? inputInfo
203
+ : {
204
+ info: crypto.randomBytes(12).toString("hex"),
205
+ };
206
+ const timestamp = {
207
+ hash: {
208
+ id: 0,
209
+ value: sha256(buffer),
210
+ },
211
+ data: `0x${buffer.toString("hex")}`,
212
+ };
213
+ return {
214
+ info: {
215
+ title: "Append record version hashes",
216
+ data: { data, info },
217
+ },
218
+ param: {
219
+ recordId,
220
+ versionId,
221
+ hashAlgorithmIds: [timestamp.hash.id],
222
+ hashValues: [timestamp.hash.value],
223
+ timestampData: [timestamp.data],
224
+ versionInfo: `0x${Buffer.from(JSON.stringify(info)).toString("hex")}`,
225
+ },
226
+ };
227
+ }
228
+ case "timestampHashes": {
229
+ const [inputData] = inputs;
230
+ Joi.assert(inputData, Joi.object().optional());
231
+ const data = typeof inputData === "object"
232
+ ? inputData
233
+ : { test: crypto.randomBytes(12).toString("hex") };
234
+ const buffer = Buffer.from(JSON.stringify(data));
235
+ const timestamp = {
236
+ hash: {
237
+ id: 0,
238
+ value: sha256(buffer),
239
+ },
240
+ data: `0x${buffer.toString("hex")}`,
241
+ };
242
+ const hashBuffer = fromHexString(sha256(timestamp.hash.value));
243
+ const multihash = Multihash.encode(hashBuffer, "sha2-256", 32);
244
+ const id = multibaseEncode("base64url", multihash);
245
+ return {
246
+ info: {
247
+ title: "Timestamp hashes",
248
+ data: { data, id },
249
+ },
250
+ param: {
251
+ hashAlgorithmIds: [timestamp.hash.id],
252
+ hashValues: [timestamp.hash.value],
253
+ timestampData: [timestamp.data],
254
+ },
255
+ };
256
+ }
257
+ case "insertHashAlgorithm": {
258
+ const [inputOutputLength, inputIanaName, inputOid, inputStatus, inputMultiHash,] = inputs;
259
+ Joi.assert(inputOutputLength, Joi.string().optional());
260
+ Joi.assert(inputIanaName, Joi.string().optional());
261
+ Joi.assert(inputOid, Joi.string().optional());
262
+ Joi.assert(inputStatus, Joi.string().optional());
263
+ Joi.assert(inputMultiHash, Joi.string().optional());
264
+ const outputLength = Number(inputOutputLength) || 1;
265
+ const ianaName = inputIanaName || "undefined";
266
+ const oid = inputOid || "undefined";
267
+ const status = Number(inputStatus) || 1;
268
+ const multiHash = inputMultiHash || ianaName;
269
+ return {
270
+ info: {
271
+ title: "Hash Algorithm",
272
+ data: ianaName,
273
+ },
274
+ param: {
275
+ outputLength,
276
+ ianaName,
277
+ oid,
278
+ status,
279
+ multiHash,
280
+ },
281
+ };
282
+ }
283
+ case "updateHashAlgorithm": {
284
+ const [inputHashAlgorithmId, inputOutputLength, inputIanaName, inputOid, inputStatus, inputMultiHash,] = inputs;
285
+ Joi.assert(inputHashAlgorithmId, Joi.string());
286
+ Joi.assert(inputOutputLength, Joi.string().optional());
287
+ Joi.assert(inputIanaName, Joi.string().optional());
288
+ Joi.assert(inputOid, Joi.string().optional());
289
+ Joi.assert(inputStatus, Joi.string().optional());
290
+ Joi.assert(inputMultiHash, Joi.string().optional());
291
+ const hashAlgorithmId = Number(inputHashAlgorithmId);
292
+ const outputLength = Number(inputOutputLength) || 1;
293
+ const ianaName = inputIanaName || "undefined";
294
+ const oid = inputOid || "undefined";
295
+ const status = Number(inputStatus) || 1;
296
+ const multiHash = inputMultiHash || ianaName;
297
+ return {
298
+ info: {
299
+ title: "Hash Algorithm",
300
+ data: ianaName,
301
+ },
302
+ param: {
303
+ hashAlgorithmId,
304
+ outputLength,
305
+ ianaName,
306
+ oid,
307
+ status,
308
+ multiHash,
309
+ },
310
+ };
311
+ }
312
+ default:
313
+ throw new Error(`Invalid method '${method}'`);
314
+ }
315
+ }
316
+ export default buildParamTimestampV3;
317
+ //# sourceMappingURL=timestampV3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timestampV3.js","sourceRoot":"","sources":["../../src/buildParam/timestampV3.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,119 @@
1
+ import Joi from "joi";
2
+ import { prefixWith0x } from "../utils/index.js";
3
+ const issuerTypes = ["undefined", "roottao", "tao", "ti", "revoked"];
4
+ function getBufferAttribute(attribute) {
5
+ if (attribute instanceof Buffer)
6
+ return attribute;
7
+ let buffer;
8
+ if (typeof attribute === "object") {
9
+ // json attribute
10
+ buffer = Buffer.from(JSON.stringify(attribute));
11
+ }
12
+ else if (typeof attribute === "string") {
13
+ if (/^(0x|0X)?[a-fA-F0-9]+$/g.test(attribute)) {
14
+ // buffer attribute defined in hex string
15
+ buffer = Buffer.from(attribute.replace("0x", ""), "hex");
16
+ }
17
+ else {
18
+ // jwt attribute
19
+ buffer = Buffer.from(attribute);
20
+ }
21
+ }
22
+ else {
23
+ throw new Error(`invalid type for attribute: ${typeof attribute}`);
24
+ }
25
+ return buffer;
26
+ }
27
+ export function buildParamTirV4(method, client, inputs) {
28
+ switch (method) {
29
+ case "setAttributeMetadata": {
30
+ const [did, revisionId, inputIssuerType, inputTaoDid, inputAttributeIdTao,] = inputs;
31
+ Joi.assert(did, Joi.string());
32
+ Joi.assert(inputIssuerType, Joi.string().valid(...issuerTypes));
33
+ Joi.assert(inputTaoDid, Joi.string().optional());
34
+ Joi.assert(inputAttributeIdTao, Joi.string().optional());
35
+ const issuerType = issuerTypes.findIndex((i) => i === inputIssuerType);
36
+ let taoDid = inputTaoDid;
37
+ let attributeIdTao = inputAttributeIdTao;
38
+ if (inputIssuerType === "roottao") {
39
+ if (!taoDid)
40
+ taoDid = did;
41
+ if (!attributeIdTao)
42
+ attributeIdTao = `0x${"0".repeat(64)}`;
43
+ }
44
+ return {
45
+ info: {
46
+ title: `Issuer ${did}`,
47
+ data: { revisionId, issuerType: inputIssuerType },
48
+ },
49
+ param: {
50
+ did,
51
+ revisionId: prefixWith0x(revisionId),
52
+ issuerType,
53
+ taoDid,
54
+ attributeIdTao: prefixWith0x(attributeIdTao),
55
+ },
56
+ };
57
+ }
58
+ case "setAttributeData": {
59
+ const [did, attributeId, attribute] = inputs;
60
+ Joi.assert(did, Joi.string());
61
+ Joi.assert(attributeId, Joi.string());
62
+ const buffer = getBufferAttribute(attribute);
63
+ const attributeData = `0x${buffer.toString("hex")}`;
64
+ return {
65
+ info: { title: `Issuer ${did}`, data: { attributeId } },
66
+ param: {
67
+ did,
68
+ attributeId: prefixWith0x(attributeId),
69
+ attributeData,
70
+ },
71
+ };
72
+ }
73
+ case "addIssuerProxy": {
74
+ const [did, inputProxyData] = inputs;
75
+ Joi.assert(did, Joi.string());
76
+ const proxyData = JSON.stringify(inputProxyData);
77
+ return {
78
+ info: { title: `Proxy data for issuer ${did}`, data: proxyData },
79
+ param: {
80
+ did,
81
+ proxyData,
82
+ },
83
+ };
84
+ }
85
+ case "updateIssuerProxy": {
86
+ const [did, proxyId, inputProxyData] = inputs;
87
+ Joi.assert(did, Joi.string());
88
+ Joi.assert(proxyId, Joi.string());
89
+ const proxyData = JSON.stringify(inputProxyData);
90
+ return {
91
+ info: { title: `Proxy data for issuer ${did}`, data: proxyData },
92
+ param: {
93
+ did,
94
+ proxyId,
95
+ proxyData,
96
+ },
97
+ };
98
+ }
99
+ case "removeIssuerProxy": {
100
+ const [did, proxyId] = inputs;
101
+ Joi.assert(did, Joi.string());
102
+ Joi.assert(proxyId, Joi.string());
103
+ return {
104
+ info: {
105
+ title: `Proxy ${proxyId} removed from ${did}`,
106
+ data: { did, proxyId },
107
+ },
108
+ param: {
109
+ did,
110
+ proxyId,
111
+ },
112
+ };
113
+ }
114
+ default:
115
+ throw new Error(`Invalid method '${method}'`);
116
+ }
117
+ }
118
+ export default buildParamTirV4;
119
+ //# sourceMappingURL=tirV4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tirV4.js","sourceRoot":"","sources":["../../src/buildParam/tirV4.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,MAAM,WAAW,GAAG,CAAC,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AAErE,SAAS,kBAAkB,CACzB,SAA0C;IAE1C,IAAI,SAAS,YAAY,MAAM;QAAE,OAAO,SAAS,CAAC;IAElD,IAAI,MAAc,CAAC;IACnB,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAClC,iBAAiB;QACjB,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;IAClD,CAAC;SAAM,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QACzC,IAAI,yBAAyB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9C,yCAAyC;YACzC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,gBAAgB;YAChB,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,+BAA+B,OAAO,SAAS,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,MAAc,EACd,MAAc,EACd,MAA2C;IAE3C,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,sBAAsB,CAAC,CAAC,CAAC;YAC5B,MAAM,CACJ,GAAG,EACH,UAAU,EACV,eAAe,EACf,WAAW,EACX,mBAAmB,EACpB,GAAG,MAAkB,CAAC;YACvB,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YAC9B,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;YAChE,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;YACjD,GAAG,CAAC,MAAM,CAAC,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;YAEzD,MAAM,UAAU,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,eAAe,CAAC,CAAC;YACvE,IAAI,MAAM,GAAG,WAAW,CAAC;YACzB,IAAI,cAAc,GAAG,mBAAmB,CAAC;YAEzC,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;gBAClC,IAAI,CAAC,MAAM;oBAAE,MAAM,GAAG,GAAG,CAAC;gBAC1B,IAAI,CAAC,cAAc;oBAAE,cAAc,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;YAC9D,CAAC;YAED,OAAO;gBACL,IAAI,EAAE;oBACJ,KAAK,EAAE,UAAU,GAAG,EAAE;oBACtB,IAAI,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE;iBAClD;gBACD,KAAK,EAAE;oBACL,GAAG;oBACH,UAAU,EAAE,YAAY,CAAC,UAAU,CAAC;oBACpC,UAAU;oBACV,MAAM;oBACN,cAAc,EAAE,YAAY,CAAC,cAAc,CAAC;iBAC7C;aACF,CAAC;QACJ,CAAC;QAED,KAAK,kBAAkB,CAAC,CAAC,CAAC;YACxB,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,SAAS,CAAC,GAAG,MAIrC,CAAC;YACF,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YAC9B,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YAEtC,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;YAC7C,MAAM,aAAa,GAAG,KAAK,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAEpD,OAAO;gBACL,IAAI,EAAE,EAAE,KAAK,EAAE,UAAU,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE;gBACvD,KAAK,EAAE;oBACL,GAAG;oBACH,WAAW,EAAE,YAAY,CAAC,WAAW,CAAC;oBACtC,aAAa;iBACd;aACF,CAAC;QACJ,CAAC;QAED,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,MAAiC,CAAC;YAChE,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YAE9B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YAEjD,OAAO;gBACL,IAAI,EAAE,EAAE,KAAK,EAAE,yBAAyB,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAChE,KAAK,EAAE;oBACL,GAAG;oBACH,SAAS;iBACV;aACF,CAAC;QACJ,CAAC;QAED,KAAK,mBAAmB,CAAC,CAAC,CAAC;YACzB,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,cAAc,CAAC,GAAG,MAItC,CAAC;YACF,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YAC9B,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YAElC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YAEjD,OAAO;gBACL,IAAI,EAAE,EAAE,KAAK,EAAE,yBAAyB,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAChE,KAAK,EAAE;oBACL,GAAG;oBACH,OAAO;oBACP,SAAS;iBACV;aACF,CAAC;QACJ,CAAC;QAED,KAAK,mBAAmB,CAAC,CAAC,CAAC;YACzB,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,MAA0B,CAAC;YAClD,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YAC9B,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YAElC,OAAO;gBACL,IAAI,EAAE;oBACJ,KAAK,EAAE,SAAS,OAAO,iBAAiB,GAAG,EAAE;oBAC7C,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE;iBACvB;gBACD,KAAK,EAAE;oBACL,GAAG;oBACH,OAAO;iBACR;aACF,CAAC;QACJ,CAAC;QAED;YACE,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,GAAG,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED,eAAe,eAAe,CAAC"}
@@ -0,0 +1,181 @@
1
+ import { Resolver } from "did-resolver";
2
+ import { getResolver } from "@cef-ebsi/key-did-resolver";
3
+ import Joi from "joi";
4
+ import { JoiHexadecimal, getPublicKeyHex, removePrefix0x, } from "../utils/index.js";
5
+ export async function didToHex(did) {
6
+ if (did.startsWith("did:key")) {
7
+ const didResolver = new Resolver(getResolver());
8
+ const result = await didResolver.resolve(did);
9
+ const publicKeyJwk = result.didDocument?.verificationMethod[0]?.publicKeyJwk;
10
+ if (!publicKeyJwk) {
11
+ throw new Error(`DID ${did} can't be resolved`);
12
+ }
13
+ if (publicKeyJwk.crv !== "secp256k1") {
14
+ throw new Error(`The DID ${did} must use secp256k1 curve. Received: ${publicKeyJwk.crv}`);
15
+ }
16
+ const publicKeyHex = removePrefix0x(getPublicKeyHex(publicKeyJwk).slice(2));
17
+ if (Buffer.from(publicKeyHex, "hex").byteLength === 65) {
18
+ return `0x${publicKeyHex.slice(2)}`; // Remove first byte "04"
19
+ }
20
+ return `0x${publicKeyHex}`;
21
+ }
22
+ return `0x${Buffer.from(did).toString("hex")}`;
23
+ }
24
+ export async function buildParamTntV2(method, client, inputs) {
25
+ switch (method) {
26
+ case "authoriseDid": {
27
+ const [senderDid, authorisedDid, whiteListInput] = inputs;
28
+ Joi.assert(senderDid, Joi.string());
29
+ Joi.assert(authorisedDid, Joi.string());
30
+ Joi.assert(whiteListInput, Joi.string().valid("true", "false"));
31
+ const whiteList = whiteListInput === "true";
32
+ return {
33
+ info: {
34
+ title: `authorise did`,
35
+ data: { senderDid, authorisedDid, whiteList },
36
+ },
37
+ param: {
38
+ senderDid,
39
+ authorisedDid,
40
+ whiteList,
41
+ },
42
+ };
43
+ }
44
+ case "createDocument": {
45
+ const [documentHash, documentMetadata, didEbsiCreator, inputTimestamp, timestampProof,] = inputs;
46
+ Joi.assert(documentHash, JoiHexadecimal);
47
+ Joi.assert(documentMetadata, Joi.string());
48
+ Joi.assert(didEbsiCreator, Joi.string());
49
+ Joi.assert(inputTimestamp, Joi.string().optional());
50
+ Joi.assert(timestampProof, JoiHexadecimal.optional());
51
+ let timestamp = 0;
52
+ if (inputTimestamp && timestampProof) {
53
+ timestamp = Math.floor(new Date(inputTimestamp).getTime() / 1000);
54
+ }
55
+ return {
56
+ info: {
57
+ title: `create document`,
58
+ data: { documentHash, didEbsiCreator, timestamp },
59
+ },
60
+ param: {
61
+ documentHash,
62
+ documentMetadata,
63
+ didEbsiCreator,
64
+ ...(timestamp && { timestamp, timestampProof }),
65
+ },
66
+ method: timestamp
67
+ ? `${method}(bytes32,string,string,uint256,bytes32)`
68
+ : `${method}(bytes32,string,string)`,
69
+ };
70
+ }
71
+ case "removeDocument": {
72
+ const [documentHash] = inputs;
73
+ Joi.assert(documentHash, JoiHexadecimal);
74
+ return {
75
+ info: {
76
+ title: `remove document`,
77
+ data: { documentHash },
78
+ },
79
+ param: {
80
+ documentHash,
81
+ },
82
+ };
83
+ }
84
+ case "grantAccess": {
85
+ const [documentHash, grantedBy, subject, inputPermission] = inputs;
86
+ Joi.assert(documentHash, JoiHexadecimal);
87
+ Joi.assert(grantedBy, Joi.string());
88
+ Joi.assert(subject, Joi.string());
89
+ Joi.assert(inputPermission, Joi.string().valid("delegate", "write"));
90
+ const grantedByAccount = await didToHex(grantedBy);
91
+ const subjectAccount = await didToHex(subject);
92
+ const grantedByAccType = grantedBy.startsWith("did:ebsi") ? 0 : 1;
93
+ const subjectAccType = subject.startsWith("did:ebsi") ? 0 : 1;
94
+ const permission = inputPermission === "delegate" ? 0 : 1;
95
+ return {
96
+ info: {
97
+ title: `Grant Access`,
98
+ data: {
99
+ documentHash,
100
+ grantedBy,
101
+ subject,
102
+ permission: inputPermission,
103
+ },
104
+ },
105
+ param: {
106
+ documentHash,
107
+ grantedByAccount,
108
+ subjectAccount,
109
+ grantedByAccType,
110
+ subjectAccType,
111
+ permission,
112
+ },
113
+ };
114
+ }
115
+ case "revokeAccess": {
116
+ const [documentHash, revokedBy, subject, inputPermission] = inputs;
117
+ Joi.assert(documentHash, JoiHexadecimal);
118
+ Joi.assert(revokedBy, Joi.string());
119
+ Joi.assert(subject, Joi.string());
120
+ Joi.assert(inputPermission, Joi.string().valid("delegate", "write"));
121
+ const revokedByAccount = await didToHex(revokedBy);
122
+ const subjectAccount = await didToHex(subject);
123
+ const permission = inputPermission === "delegate" ? 0 : 1;
124
+ return {
125
+ info: {
126
+ title: `Revoke Access`,
127
+ data: {
128
+ documentHash,
129
+ revokedBy,
130
+ subject,
131
+ permission: inputPermission,
132
+ },
133
+ },
134
+ param: {
135
+ documentHash,
136
+ revokedByAccount,
137
+ subjectAccount,
138
+ permission,
139
+ },
140
+ };
141
+ }
142
+ case "writeEvent": {
143
+ const [documentHash, externalHash, senderInput, origin, metadata, inputTimestamp, timestampProof,] = inputs;
144
+ Joi.assert(documentHash, JoiHexadecimal);
145
+ Joi.assert(externalHash, Joi.string());
146
+ Joi.assert(senderInput, Joi.string());
147
+ Joi.assert(origin, Joi.string());
148
+ Joi.assert(metadata, Joi.string());
149
+ Joi.assert(inputTimestamp, Joi.string().optional());
150
+ Joi.assert(timestampProof, JoiHexadecimal.optional());
151
+ const sender = await didToHex(senderInput);
152
+ let timestamp = 0;
153
+ if (inputTimestamp && timestampProof) {
154
+ timestamp = Math.floor(new Date(inputTimestamp).getTime() / 1000);
155
+ }
156
+ return {
157
+ info: {
158
+ title: `Write Event`,
159
+ data: { documentHash, externalHash, sender: senderInput },
160
+ },
161
+ param: {
162
+ eventParams: {
163
+ documentHash,
164
+ externalHash,
165
+ sender,
166
+ origin,
167
+ metadata,
168
+ },
169
+ ...(timestamp && { timestamp, timestampProof }),
170
+ },
171
+ method: timestamp
172
+ ? `${method}((bytes32,string,bytes,string,string),uint256,bytes32)`
173
+ : `${method}((bytes32,string,bytes,string,string))`,
174
+ };
175
+ }
176
+ default:
177
+ throw new Error(`Invalid method '${method}'`);
178
+ }
179
+ }
180
+ export default buildParamTntV2;
181
+ //# sourceMappingURL=tntV2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tntV2.js","sourceRoot":"","sources":["../../src/buildParam/tntV2.ts"],"names":[],"mappings":"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"}