@cef-ebsi/cli 1.4.0 → 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.
Files changed (51) hide show
  1. package/dist/abi/pilot/Ptr.js +666 -0
  2. package/dist/abi/pilot/Ptr.js.map +1 -0
  3. package/dist/abi/pilot/Tcr.js +715 -0
  4. package/dist/abi/pilot/Tcr.js.map +1 -0
  5. package/dist/abi/test/Ptr.js +666 -0
  6. package/dist/abi/test/Ptr.js.map +1 -0
  7. package/dist/abi/test/SchemaSCRegistry.js +38 -2
  8. package/dist/abi/test/SchemaSCRegistry.js.map +1 -1
  9. package/dist/abi/test/Tcr.js +715 -0
  10. package/dist/abi/test/Tcr.js.map +1 -0
  11. package/dist/app.js +4 -1
  12. package/dist/app.js.map +1 -1
  13. package/dist/buildParam/didr.js +28 -0
  14. package/dist/buildParam/didr.js.map +1 -1
  15. package/dist/buildParam/index.js +10 -0
  16. package/dist/buildParam/index.js.map +1 -1
  17. package/dist/buildParam/ptr.js +80 -0
  18. package/dist/buildParam/ptr.js.map +1 -0
  19. package/dist/buildParam/tcr.js +36 -0
  20. package/dist/buildParam/tcr.js.map +1 -0
  21. package/dist/buildParam/timestamp.js +42 -0
  22. package/dist/buildParam/timestamp.js.map +1 -1
  23. package/dist/buildParam/tir.js +10 -0
  24. package/dist/buildParam/tir.js.map +1 -1
  25. package/dist/buildParam/tnt.js +28 -0
  26. package/dist/buildParam/tnt.js.map +1 -1
  27. package/dist/buildParam/tpr.js +11 -1
  28. package/dist/buildParam/tpr.js.map +1 -1
  29. package/dist/buildParam/tsr.js +9 -5
  30. package/dist/buildParam/tsr.js.map +1 -1
  31. package/dist/commands/authorisation.js +17 -1
  32. package/dist/commands/authorisation.js.map +1 -1
  33. package/dist/commands/compute.js +41 -1
  34. package/dist/commands/compute.js.map +1 -1
  35. package/dist/commands/ledger.js +68 -5
  36. package/dist/commands/ledger.js.map +1 -1
  37. package/dist/commands/ptr.js +56 -0
  38. package/dist/commands/ptr.js.map +1 -0
  39. package/dist/commands/tcr.js +51 -0
  40. package/dist/commands/tcr.js.map +1 -0
  41. package/dist/config.js +32 -1
  42. package/dist/config.js.map +1 -1
  43. package/dist/programs/migrateTsr.js +98 -54
  44. package/dist/programs/migrateTsr.js.map +1 -1
  45. package/dist/scripts/assets/VerifiableAuthorisationToInvoke.json +24 -0
  46. package/dist/scripts/bootstrap/1-populateTPR +18 -15
  47. package/dist/scripts/issueVcInvoke +10 -0
  48. package/dist/tsconfig.build.tsbuildinfo +1 -1
  49. package/dist/utils/utils.js +1 -1
  50. package/dist/utils/utils.js.map +1 -1
  51. package/package.json +1 -1
@@ -1,48 +1,48 @@
1
+ /**
2
+ * TSR Schema Migration Tool
3
+ *
4
+ * This script migrates schemas from an old TSR (Trusted Schemas Registry) smart contract
5
+ * to a new TSR smart contract address. The migration process is performed in two phases:
6
+ * saving schema data from the old contract and inserting it into the new contract.
7
+ *
8
+ * Usage:
9
+ *
10
+ * Phase 1: Save schemas from the old contract
11
+ * ------------------------------------------
12
+ * 1. Set the TSR_SC_ADDRESS environment variable to the old contract address
13
+ * 2. Run: yarn program:migrateTsr save [progressFile]
14
+ * - Creates a progress file: migrationTsr-{epochtime}.log (if not specified)
15
+ * - Fetches all schema IDs from the old contract
16
+ * - Retrieves and saves complete schema data to schemasData.log
17
+ *
18
+ * Phase 2: Migrate schemas to the new contract
19
+ * --------------------------------------------
20
+ * 3. Set the TSR_SC_ADDRESS environment variable to the new contract address
21
+ * 4. Choose migration method based on your access:
22
+ *
23
+ * Option A - Direct Besu connection (using proxyledger):
24
+ * yarn program:migrateTsr migrateWithProxy <progressFile>
25
+ *
26
+ * Option B - API connection (requires API configured with new address):
27
+ * yarn program:migrateTsr migrate <progressFile>
28
+ *
29
+ * The script tracks migration progress and can be safely restarted if interrupted.
30
+ * Already migrated schemas are skipped automatically.
31
+ */
32
+ import { base58btc } from "multiformats/bases/base58";
1
33
  import fs from "node:fs";
2
34
  import { execCommand } from "../app.js";
3
35
  import { loadConfig } from "../config.js";
4
36
  const part = process.argv[2];
5
- let fileName = process.argv[3];
6
- if (!["migrate", "save"].includes(part)) {
7
- throw new Error(`Invalid command. Use 'migrateTsr save <fileNameList>' to save schemas or 'migrateTsr migrate <fileNameList>' to migrate schemas`);
37
+ let progressFile = process.argv[3];
38
+ if (!["migrate", "migrateWithProxy", "save"].includes(part)) {
39
+ throw new Error(`Invalid command. Use 'migrateTsr save <progressFile>' to save schemas or 'migrateTsr migrate <progressFile>' to migrate schemas or 'migrateTsr migrateWithProxy <progressFile>' to migrate schemas with proxy`);
8
40
  }
9
41
  const fileNameSchemas = "schemasData.log";
10
42
  const config = loadConfig();
11
43
  const { admin } = config.programs;
12
- async function migrateSchema(schema) {
13
- try {
14
- // insert schema
15
- await safeExecCommand(`tsr insertSchema ${JSON.stringify(schema)}`);
16
- return { success: true };
17
- }
18
- catch (error) {
19
- console.log(error);
20
- return { error: error.message, success: false };
21
- }
22
- }
23
- async function safeExecCommand(command) {
24
- try {
25
- await execCommand(command);
26
- }
27
- catch (error) {
28
- const { message } = error;
29
- if (message.includes("nonce has already been used") ||
30
- message.includes("replacement fee too low")) {
31
- // try again after some seconds
32
- await execCommand("wait 5");
33
- await safeExecCommand(command);
34
- return;
35
- }
36
- if (message.includes("Revert reason: schemaId already exists") ||
37
- message.includes("Revert reason: Schema already registered")) {
38
- // everything is ok, continue
39
- return;
40
- }
41
- throw error;
42
- }
43
- }
44
- async function saveListSchemas() {
45
- let fileData = fs.readFileSync(fileName, "utf8");
44
+ async function createProgressFile() {
45
+ let fileData = fs.readFileSync(progressFile, "utf8");
46
46
  if (!fileData)
47
47
  fileData = JSON.stringify({
48
48
  listCompleted: false,
@@ -72,7 +72,7 @@ async function saveListSchemas() {
72
72
  }
73
73
  pageAfter += 1;
74
74
  url = `/schemas?page[after]=${pageAfter}&page[size]=${pageSize}`;
75
- fs.writeFileSync(fileName, JSON.stringify(data, null, 2));
75
+ fs.writeFileSync(progressFile, JSON.stringify(data, null, 2));
76
76
  }
77
77
  catch {
78
78
  await new Promise((resolve) => {
@@ -81,8 +81,52 @@ async function saveListSchemas() {
81
81
  }
82
82
  }
83
83
  }
84
+ async function migrateSchema(schemaData) {
85
+ try {
86
+ // insert schema
87
+ const { schema, schemaId } = schemaData;
88
+ const schemaIdHex = `0x${Buffer.from(base58btc.decode(schemaId)).toString("hex")}`;
89
+ let command = `tsr insertSchema ${schemaIdHex} ${JSON.stringify(schema)}`;
90
+ if (part === "migrateWithProxy")
91
+ command = `proxyledger ${command}`;
92
+ await safeExecCommand(command);
93
+ return { success: true };
94
+ }
95
+ catch (error) {
96
+ console.log(error);
97
+ return { error: error.message, success: false };
98
+ }
99
+ }
100
+ async function safeExecCommand(command) {
101
+ try {
102
+ await execCommand(command);
103
+ }
104
+ catch (error) {
105
+ const { message } = error;
106
+ if (message.includes("nonce has already been used") ||
107
+ message.includes("replacement fee too low")) {
108
+ // try again after some seconds
109
+ await execCommand("wait 5");
110
+ await safeExecCommand(command);
111
+ return;
112
+ }
113
+ if (message.includes("Revert reason: schemaId already exists") ||
114
+ message.includes("Revert reason: Schema already registered")) {
115
+ // everything is ok, continue
116
+ return;
117
+ }
118
+ throw error;
119
+ }
120
+ }
84
121
  async function saveSchema(schemaId) {
85
- const fileData = fs.readFileSync(fileNameSchemas, "utf8");
122
+ let fileData;
123
+ if (fs.existsSync(fileNameSchemas)) {
124
+ fileData = fs.readFileSync(fileNameSchemas, "utf8");
125
+ }
126
+ else {
127
+ fileData = "[]";
128
+ fs.writeFileSync(fileNameSchemas, fileData, "utf8");
129
+ }
86
130
  const data = JSON.parse(fileData);
87
131
  if (data.some((s) => s.schemaId === schemaId)) {
88
132
  console.log(`Schema ${schemaId} already saved.`);
@@ -97,12 +141,12 @@ async function saveSchema(schemaId) {
97
141
  // await execCommand("domain https://aio68-0-ebsi-pilot-rou.ebsi.eu");
98
142
  // load admin
99
143
  await execCommand(`using user ES256K did1 ${admin.ES256K.privateKey} ${admin.did}`);
100
- if (!fileName) {
101
- fileName = `migrationTsr-${Date.now()}.log`;
102
- fs.writeFileSync(fileName, "", "utf8");
144
+ if (!progressFile) {
145
+ progressFile = `migrationTsr-${Date.now()}.log`;
146
+ fs.writeFileSync(progressFile, "", "utf8");
103
147
  }
104
- await saveListSchemas();
105
- const fileData = fs.readFileSync(fileName, "utf8");
148
+ await createProgressFile();
149
+ const fileData = fs.readFileSync(progressFile, "utf8");
106
150
  const data = JSON.parse(fileData);
107
151
  const { schemas } = data;
108
152
  if (part === "save") {
@@ -115,20 +159,20 @@ async function saveSchema(schemaId) {
115
159
  // part migrate
116
160
  const fileDataSchemas = fs.readFileSync(fileNameSchemas, "utf8");
117
161
  const schemasData = JSON.parse(fileDataSchemas);
118
- await execCommand(`using user ES256 did1 ${admin.ES256.privateKey} ${admin.did}`);
119
- await execCommand(`t: authorisation auth tsr_write_presentation`);
120
- await execCommand(`using token t.access_token`);
162
+ if (part === "migrate") {
163
+ // migrate througt the TSR API
164
+ // the API must have the new contract address configured
165
+ await execCommand(`using user ES256 did1 ${admin.ES256.privateKey} ${admin.did}`);
166
+ await execCommand(`t: authorisation auth tsr_write_presentation`);
167
+ await execCommand(`using token t.access_token`);
168
+ }
121
169
  // eslint-disable-next-line @typescript-eslint/prefer-for-of
122
170
  for (let i = 0; i < schemas.length; i += 1) {
123
171
  const schema = schemas[i];
124
- if (!schema.migrated ||
125
- schema.errors.some((error) => error.includes("nonce has already been used") ||
126
- error.includes("replacement fee too low") ||
127
- error.includes("Bad Gateway") ||
128
- error.includes("Revert reason"))) {
172
+ if (!schema.migrated) {
129
173
  const schemaData = schemasData.find((s) => s.schemaId === schema.schemaId);
130
174
  if (schemaData) {
131
- const result = await migrateSchema(schemaData.schema);
175
+ const result = await migrateSchema(schemaData);
132
176
  if (result.success) {
133
177
  schema.migrated = true;
134
178
  }
@@ -139,7 +183,7 @@ async function saveSchema(schemaId) {
139
183
  else {
140
184
  schema.errors.push("Schema not found in schemasData.log");
141
185
  }
142
- fs.writeFileSync(fileName, JSON.stringify({ ...data, schemas }, null, 2), "utf8");
186
+ fs.writeFileSync(progressFile, JSON.stringify({ ...data, schemas }, null, 2), "utf8");
143
187
  }
144
188
  }
145
189
  })()
@@ -1 +1 @@
1
- {"version":3,"file":"migrateTsr.js","sourceRoot":"","sources":["../../src/programs/migrateTsr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migrateTsr.js","sourceRoot":"","sources":["../../src/programs/migrateTsr.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ {
2
+ "@context": [
3
+ "https://www.w3.org/2018/credentials/v1"
4
+ ],
5
+ "type": [
6
+ "VerifiableCredential",
7
+ "VerifiableAttestation",
8
+ "VerifiableAuthorisationToInvoke"
9
+ ],
10
+ "issuer": "",
11
+ "credentialSubject": {
12
+ "id": "",
13
+ "contractAddress": ""
14
+ },
15
+ "termsOfUse": {
16
+ "id": "",
17
+ "type": "IssuanceCertificate"
18
+
19
+ },
20
+ "credentialSchema": {
21
+ "id": "ebsi:pilot:trusted-schemas-registry:/schemas/zH74MKkYTbQ6ZfTxufi6A3Aw8giS4piGm8dpgxFmkJjmu",
22
+ "type": "FullJsonSchemaValidator2021"
23
+ }
24
+ }
@@ -3,27 +3,29 @@ run bootstrap/0a-loadTPROperator
3
3
  # New Policies
4
4
 
5
5
  #DID
6
- proxyledger tpr insertPolicy DID:updateBaseDocument true ["updateBaseDocument in DID Registry"]
7
- proxyledger tpr insertPolicy DID:addController true ["addController in DID Registry"]
8
- proxyledger tpr insertPolicy DID:revokeController true ["revokeController in DID Registry"]
9
- proxyledger tpr insertPolicy DID:addVerificationMethod true ["addVerificationMethod in DID Registry"]
10
- proxyledger tpr insertPolicy DID:addVerificationRelationship true ["addVerificationRelationship in DID Registry"]
11
- proxyledger tpr insertPolicy DID:revokeVerificationMethod true ["revokeVerificationMethod in DID Registry"]
12
- proxyledger tpr insertPolicy DID:expireVerificationMethod true ["expireVerificationMethod in DID Registry"]
13
- proxyledger tpr insertPolicy DID:rollVerificationMethod true ["rollVerificationMethod in DID Registry"]
6
+ proxyledger tpr insertPolicy DID:updateBaseDocument ["updateBaseDocument in DID Registry"]
7
+ proxyledger tpr insertPolicy DID:addController ["addController in DID Registry"]
8
+ proxyledger tpr insertPolicy DID:revokeController ["revokeController in DID Registry"]
9
+ proxyledger tpr insertPolicy DID:addVerificationMethod ["addVerificationMethod in DID Registry"]
10
+ proxyledger tpr insertPolicy DID:addVerificationRelationship ["addVerificationRelationship in DID Registry"]
11
+ proxyledger tpr insertPolicy DID:revokeVerificationMethod ["revokeVerificationMethod in DID Registry"]
12
+ proxyledger tpr insertPolicy DID:expireVerificationMethod ["expireVerificationMethod in DID Registry"]
13
+ proxyledger tpr insertPolicy DID:rollVerificationMethod ["rollVerificationMethod in DID Registry"]
14
+ proxyledger tpr insertPolicy TCR:deployProxy ["deployProxy in Trusted Contracts Registry"]
15
+ proxyledger tpr insertPolicy TCR:manageTemplates ["manage templates in the Proxy Template Regsitry"]
14
16
 
15
17
  #TIR
16
- proxyledger tpr insertPolicy TIR:updateIssuer true ["updateIssuer in Trusted Issuers Registry"]
17
- proxyledger tpr insertPolicy TIR:setAttributeMetadata true ["setAttributeMetadata in Trusted Issuers Registry"]
18
+ proxyledger tpr insertPolicy TIR:updateIssuer ["updateIssuer in Trusted Issuers Registry"]
19
+ proxyledger tpr insertPolicy TIR:setAttributeMetadata ["setAttributeMetadata in Trusted Issuers Registry"]
18
20
 
19
21
  #Timestamp
20
- proxyledger tpr insertPolicy TS:insertHashAlgorithm true ["insertHashAlgorithm in Timestamp"]
21
- proxyledger tpr insertPolicy TS:updateHashAlgorithm true ["updateHashAlgorithm in Timestamp"]
22
+ proxyledger tpr insertPolicy TS:insertHashAlgorithm ["insertHashAlgorithm in Timestamp"]
23
+ proxyledger tpr insertPolicy TS:updateHashAlgorithm ["updateHashAlgorithm in Timestamp"]
22
24
 
23
25
  #TSR
24
- proxyledger tpr insertPolicy TSR:insertSchema true ["insertSchema in Trusted Schemas Registry"]
25
- proxyledger tpr insertPolicy TSR:updateSchema true ["updateSchema in Trusted Schemas Registry"]
26
- proxyledger tpr insertPolicy TSR:updateMetadata true ["updateMetadata in Trusted Schemas Registry"]
26
+ proxyledger tpr insertPolicy TSR:insertSchema ["insertSchema in Trusted Schemas Registry"]
27
+ proxyledger tpr insertPolicy TSR:updateSchema ["updateSchema in Trusted Schemas Registry"]
28
+ proxyledger tpr insertPolicy TSR:updateMetadata ["updateMetadata in Trusted Schemas Registry"]
27
29
 
28
30
  # User Attributes
29
31
  # List taken from https://ec.europa.eu/digital-building-blocks/wikis/display/BLOCKCHAININT/RFC+-+Procedure+for+multisig+wallet+maintenance
@@ -87,3 +89,4 @@ proxyledger tpr insertUserAttributes 0xA4B6C8710f6bF233b8b480498916DEC224A5a891
87
89
  proxyledger tpr insertUserAttributes 0xA4B6C8710f6bF233b8b480498916DEC224A5a891 ["TIR:insertIssuer", "TIR:updateIssuer", "TIR:setAttributeMetadata"]
88
90
  proxyledger tpr insertUserAttributes 0xA4B6C8710f6bF233b8b480498916DEC224A5a891 ["TS:insertHashAlgorithm", "TS:updateHashAlgorithm"]
89
91
  proxyledger tpr insertUserAttributes 0xA4B6C8710f6bF233b8b480498916DEC224A5a891 ["TSR:insertSchema", "TSR:updateSchema", "TSR:updateMetadata"]
92
+ proxyledger tpr insertUserAttributes 0xA4B6C8710f6bF233b8b480498916DEC224A5a891 ["TCR:deployProxy", "TCR:manageTemplates"]
@@ -0,0 +1,10 @@
1
+ # way of use:
2
+ # ==> run issueVcInvoke <didSubject> <address>
3
+
4
+ payloadVcInvoke: load assets/VerifiableAuthorisationToInvoke.json
5
+ set payloadVcInvoke.issuer user.did
6
+ set payloadVcInvoke.credentialSubject.id $1
7
+ set payloadVcInvoke.credentialSubject.contractAddress $2
8
+ set payloadVcInvoke.termsOfUse.id user.accreditationUrl
9
+ set payloadVcInvoke.credentialSchema.id tsrUrl /schemas/zH74MKkYTbQ6ZfTxufi6A3Aw8giS4piGm8dpgxFmkJjmu
10
+ compute createVcJwt payloadVcInvoke {} ES256