@europeum-ebsi/cli 0.0.0 → 1.0.0-rc.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/LICENSE.txt +289 -289
- package/LICENSES.txt +538 -0
- package/README.md +1140 -98
- package/dist/api/client.d.ts +4 -0
- package/dist/api/client.d.ts.map +1 -0
- package/dist/api/client.js +14 -0
- package/dist/api/client.js.map +1 -0
- package/dist/api/fetch.d.ts +13 -0
- package/dist/api/fetch.d.ts.map +1 -0
- package/dist/api/fetch.js +30 -0
- package/dist/api/fetch.js.map +1 -0
- package/dist/api/params.d.ts +4 -0
- package/dist/api/params.d.ts.map +1 -0
- package/dist/api/params.js +9 -0
- package/dist/api/params.js.map +1 -0
- package/dist/auth/dcql.d.ts +5 -0
- package/dist/auth/dcql.d.ts.map +1 -0
- package/dist/auth/dcql.js +41 -0
- package/dist/auth/dcql.js.map +1 -0
- package/dist/auth/presentation.d.ts +30 -0
- package/dist/auth/presentation.d.ts.map +1 -0
- package/dist/auth/presentation.js +99 -0
- package/dist/auth/presentation.js.map +1 -0
- package/dist/auth/token.d.ts +11 -0
- package/dist/auth/token.d.ts.map +1 -0
- package/dist/auth/token.js +116 -0
- package/dist/auth/token.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +96 -10
- package/dist/cli.js.map +1 -1
- package/dist/commands/auth.d.ts +3 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/auth.js +99 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/config-cmd.d.ts +3 -0
- package/dist/commands/config-cmd.d.ts.map +1 -0
- package/dist/commands/config-cmd.js +86 -0
- package/dist/commands/config-cmd.js.map +1 -0
- package/dist/commands/contracts-registry.d.ts +3 -0
- package/dist/commands/contracts-registry.d.ts.map +1 -0
- package/dist/commands/contracts-registry.js +132 -0
- package/dist/commands/contracts-registry.js.map +1 -0
- package/dist/commands/did-registry.d.ts +3 -0
- package/dist/commands/did-registry.d.ts.map +1 -0
- package/dist/commands/did-registry.js +110 -0
- package/dist/commands/did-registry.js.map +1 -0
- package/dist/commands/faucet.d.ts +3 -0
- package/dist/commands/faucet.d.ts.map +1 -0
- package/dist/commands/faucet.js +78 -0
- package/dist/commands/faucet.js.map +1 -0
- package/dist/commands/health.d.ts +3 -0
- package/dist/commands/health.d.ts.map +1 -0
- package/dist/commands/health.js +20 -0
- package/dist/commands/health.js.map +1 -0
- package/dist/commands/issuers-registry.d.ts +3 -0
- package/dist/commands/issuers-registry.d.ts.map +1 -0
- package/dist/commands/issuers-registry.js +340 -0
- package/dist/commands/issuers-registry.js.map +1 -0
- package/dist/commands/ledger.d.ts +3 -0
- package/dist/commands/ledger.d.ts.map +1 -0
- package/dist/commands/ledger.js +549 -372
- package/dist/commands/ledger.js.map +1 -1
- package/dist/commands/onboarding.d.ts +3 -0
- package/dist/commands/onboarding.d.ts.map +1 -0
- package/dist/commands/onboarding.js +301 -0
- package/dist/commands/onboarding.js.map +1 -0
- package/dist/commands/openapi.d.ts +3 -0
- package/dist/commands/openapi.d.ts.map +1 -0
- package/dist/commands/openapi.js +37 -0
- package/dist/commands/openapi.js.map +1 -0
- package/dist/commands/policies-registry.d.ts +3 -0
- package/dist/commands/policies-registry.d.ts.map +1 -0
- package/dist/commands/policies-registry.js +198 -0
- package/dist/commands/policies-registry.js.map +1 -0
- package/dist/commands/registry.d.ts +27 -0
- package/dist/commands/registry.d.ts.map +1 -0
- package/dist/commands/registry.js +62 -0
- package/dist/commands/registry.js.map +1 -0
- package/dist/commands/schemas-registry.d.ts +3 -0
- package/dist/commands/schemas-registry.d.ts.map +1 -0
- package/dist/commands/schemas-registry.js +231 -0
- package/dist/commands/schemas-registry.js.map +1 -0
- package/dist/commands/shared/args.d.ts +2 -0
- package/dist/commands/shared/args.d.ts.map +1 -0
- package/dist/commands/shared/args.js +4 -0
- package/dist/commands/shared/args.js.map +1 -0
- package/dist/commands/shared/wallet-opts.d.ts +9 -0
- package/dist/commands/shared/wallet-opts.d.ts.map +1 -0
- package/dist/commands/shared/wallet-opts.js +44 -0
- package/dist/commands/shared/wallet-opts.js.map +1 -0
- package/dist/commands/timestamp.d.ts +3 -0
- package/dist/commands/timestamp.d.ts.map +1 -0
- package/dist/commands/timestamp.js +250 -0
- package/dist/commands/timestamp.js.map +1 -0
- package/dist/commands/track-and-trace.d.ts +3 -0
- package/dist/commands/track-and-trace.d.ts.map +1 -0
- package/dist/commands/track-and-trace.js +235 -0
- package/dist/commands/track-and-trace.js.map +1 -0
- package/dist/commands/wallet.d.ts +3 -0
- package/dist/commands/wallet.d.ts.map +1 -0
- package/dist/commands/wallet.js +123 -0
- package/dist/commands/wallet.js.map +1 -0
- package/dist/config/config.d.ts +45 -0
- package/dist/config/config.d.ts.map +1 -0
- package/dist/config/config.js +111 -0
- package/dist/config/config.js.map +1 -0
- package/dist/config/ebsi-env.d.ts +4 -0
- package/dist/config/ebsi-env.d.ts.map +1 -0
- package/dist/config/ebsi-env.js +37 -0
- package/dist/config/ebsi-env.js.map +1 -0
- package/dist/crypto/wallet.d.ts +34 -0
- package/dist/crypto/wallet.d.ts.map +1 -0
- package/dist/crypto/wallet.js +100 -0
- package/dist/crypto/wallet.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -6
- package/dist/index.js.map +1 -1
- package/dist/ledger/read.d.ts +11 -0
- package/dist/ledger/read.d.ts.map +1 -0
- package/dist/ledger/read.js +24 -0
- package/dist/ledger/read.js.map +1 -0
- package/dist/ledger/registries.d.ts +25 -0
- package/dist/ledger/registries.d.ts.map +1 -0
- package/dist/ledger/registries.js +111 -0
- package/dist/ledger/registries.js.map +1 -0
- package/dist/ledger/write.d.ts +43 -0
- package/dist/ledger/write.d.ts.map +1 -0
- package/dist/ledger/write.js +119 -0
- package/dist/ledger/write.js.map +1 -0
- package/dist/onboarding/vc.d.ts +18 -0
- package/dist/onboarding/vc.d.ts.map +1 -0
- package/dist/onboarding/vc.js +72 -0
- package/dist/onboarding/vc.js.map +1 -0
- package/dist/output/format.d.ts +7 -0
- package/dist/output/format.d.ts.map +1 -0
- package/dist/output/format.js +94 -0
- package/dist/output/format.js.map +1 -0
- package/dist/tui/App.d.ts +3 -0
- package/dist/tui/App.d.ts.map +1 -0
- package/dist/tui/App.js +99 -0
- package/dist/tui/App.js.map +1 -0
- package/dist/tui/CommandPalette.d.ts +8 -0
- package/dist/tui/CommandPalette.d.ts.map +1 -0
- package/dist/tui/CommandPalette.js +105 -0
- package/dist/tui/CommandPalette.js.map +1 -0
- package/package.json +66 -108
- package/src/api/client.ts +26 -0
- package/src/api/fetch.ts +53 -0
- package/src/api/params.ts +17 -0
- package/src/auth/dcql.ts +84 -0
- package/src/auth/presentation.ts +255 -0
- package/src/auth/token.ts +244 -0
- package/src/cli.ts +164 -0
- package/src/commands/auth.ts +119 -0
- package/src/commands/config-cmd.ts +122 -0
- package/src/commands/contracts-registry.ts +156 -0
- package/src/commands/did-registry.ts +126 -0
- package/src/commands/faucet.ts +112 -0
- package/src/commands/health.ts +21 -0
- package/src/commands/issuers-registry.ts +385 -0
- package/src/commands/ledger.ts +777 -0
- package/src/commands/onboarding.ts +411 -0
- package/src/commands/openapi.ts +42 -0
- package/src/commands/policies-registry.ts +218 -0
- package/src/commands/registry.ts +152 -0
- package/src/commands/schemas-registry.ts +255 -0
- package/src/commands/shared/args.ts +14 -0
- package/src/commands/shared/wallet-opts.ts +85 -0
- package/src/commands/timestamp.ts +272 -0
- package/src/commands/track-and-trace.ts +263 -0
- package/src/commands/wallet.ts +175 -0
- package/src/config/config.ts +275 -0
- package/src/config/ebsi-env.ts +67 -0
- package/src/crypto/wallet.ts +291 -0
- package/src/index.ts +24 -0
- package/src/ledger/read.ts +70 -0
- package/src/ledger/registries.ts +285 -0
- package/src/ledger/write.ts +381 -0
- package/src/onboarding/vc.ts +205 -0
- package/src/output/format.ts +157 -0
- package/src/tui/App.tsx +282 -0
- package/src/tui/CommandPalette.tsx +223 -0
- package/bin/cli.js +0 -13
- package/dist/abi/pilot/DidRegistry.js +0 -568
- package/dist/abi/pilot/DidRegistry.js.map +0 -1
- package/dist/abi/pilot/Ptr.js +0 -666
- package/dist/abi/pilot/Ptr.js.map +0 -1
- package/dist/abi/pilot/SchemaSCRegistry.js +0 -264
- package/dist/abi/pilot/SchemaSCRegistry.js.map +0 -1
- package/dist/abi/pilot/Tcr.js +0 -715
- package/dist/abi/pilot/Tcr.js.map +0 -1
- package/dist/abi/pilot/Timestamp.js +0 -658
- package/dist/abi/pilot/Timestamp.js.map +0 -1
- package/dist/abi/pilot/Tir.js +0 -428
- package/dist/abi/pilot/Tir.js.map +0 -1
- package/dist/abi/pilot/TnT.js +0 -842
- package/dist/abi/pilot/TnT.js.map +0 -1
- package/dist/abi/pilot/Tpr.js +0 -492
- package/dist/abi/pilot/Tpr.js.map +0 -1
- package/dist/abi/test/DidRegistry.js +0 -568
- package/dist/abi/test/DidRegistry.js.map +0 -1
- package/dist/abi/test/Ptr.js +0 -666
- package/dist/abi/test/Ptr.js.map +0 -1
- package/dist/abi/test/SchemaSCRegistry.js +0 -300
- package/dist/abi/test/SchemaSCRegistry.js.map +0 -1
- package/dist/abi/test/Tcr.js +0 -715
- package/dist/abi/test/Tcr.js.map +0 -1
- package/dist/abi/test/Timestamp.js +0 -658
- package/dist/abi/test/Timestamp.js.map +0 -1
- package/dist/abi/test/Tir.js +0 -428
- package/dist/abi/test/Tir.js.map +0 -1
- package/dist/abi/test/TnT.js +0 -842
- package/dist/abi/test/TnT.js.map +0 -1
- package/dist/abi/test/Tpr.js +0 -492
- package/dist/abi/test/Tpr.js.map +0 -1
- package/dist/app.js +0 -659
- package/dist/app.js.map +0 -1
- package/dist/buildParam/didr.js +0 -374
- package/dist/buildParam/didr.js.map +0 -1
- package/dist/buildParam/index.js +0 -53
- package/dist/buildParam/index.js.map +0 -1
- package/dist/buildParam/ptr.js +0 -80
- package/dist/buildParam/ptr.js.map +0 -1
- package/dist/buildParam/tcr.js +0 -36
- package/dist/buildParam/tcr.js.map +0 -1
- package/dist/buildParam/timestamp.js +0 -350
- package/dist/buildParam/timestamp.js.map +0 -1
- package/dist/buildParam/tir.js +0 -110
- package/dist/buildParam/tir.js.map +0 -1
- package/dist/buildParam/tnt.js +0 -214
- package/dist/buildParam/tnt.js.map +0 -1
- package/dist/buildParam/tpr.js +0 -91
- package/dist/buildParam/tpr.js.map +0 -1
- package/dist/buildParam/tsr.js +0 -115
- package/dist/buildParam/tsr.js.map +0 -1
- package/dist/commands/authorisation.js +0 -144
- package/dist/commands/authorisation.js.map +0 -1
- package/dist/commands/compute.js +0 -680
- package/dist/commands/compute.js.map +0 -1
- package/dist/commands/conformance.js +0 -813
- package/dist/commands/conformance.js.map +0 -1
- package/dist/commands/hardwarewallet.js +0 -41
- package/dist/commands/hardwarewallet.js.map +0 -1
- package/dist/commands/index.js +0 -8
- package/dist/commands/index.js.map +0 -1
- package/dist/commands/ptr.js +0 -54
- package/dist/commands/ptr.js.map +0 -1
- package/dist/commands/tcr.js +0 -50
- package/dist/commands/tcr.js.map +0 -1
- package/dist/commands/tir.js +0 -64
- package/dist/commands/tir.js.map +0 -1
- package/dist/commands/tnl.js +0 -81
- package/dist/commands/tnl.js.map +0 -1
- package/dist/commands/tsr.js +0 -45
- package/dist/commands/tsr.js.map +0 -1
- package/dist/commands/view.js +0 -53
- package/dist/commands/view.js.map +0 -1
- package/dist/config.js +0 -497
- package/dist/config.js.map +0 -1
- package/dist/interfaces/context.js +0 -2
- package/dist/interfaces/context.js.map +0 -1
- package/dist/interfaces/contracts/ProxyFactory.js +0 -2
- package/dist/interfaces/contracts/ProxyFactory.js.map +0 -1
- package/dist/interfaces/contracts/ProxyTemplateRegistry.js +0 -2
- package/dist/interfaces/contracts/ProxyTemplateRegistry.js.map +0 -1
- package/dist/interfaces/contracts/SchemaSCRegistry.js +0 -2
- package/dist/interfaces/contracts/SchemaSCRegistry.js.map +0 -1
- package/dist/interfaces/contracts/common.js +0 -2
- package/dist/interfaces/contracts/common.js.map +0 -1
- package/dist/interfaces/index.js +0 -5
- package/dist/interfaces/index.js.map +0 -1
- package/dist/interfaces/jsonrpc.interface.js +0 -2
- package/dist/interfaces/jsonrpc.interface.js.map +0 -1
- package/dist/interfaces/paginated-list.interface.js +0 -2
- package/dist/interfaces/paginated-list.interface.js.map +0 -1
- package/dist/interfaces/unsigned-transaction.interface.js +0 -2
- package/dist/interfaces/unsigned-transaction.interface.js.map +0 -1
- package/dist/interfaces/utils.interface.js +0 -2
- package/dist/interfaces/utils.interface.js.map +0 -1
- package/dist/programs/migrateDid.js +0 -159
- package/dist/programs/migrateDid.js.map +0 -1
- package/dist/programs/migrateDids.js +0 -232
- package/dist/programs/migrateDids.js.map +0 -1
- package/dist/programs/migrateTsr.js +0 -201
- package/dist/programs/migrateTsr.js.map +0 -1
- package/dist/scripts/accreditAndAuthorize/conformance/step1 +0 -34
- package/dist/scripts/accreditAndAuthorize/conformance/step2 +0 -18
- package/dist/scripts/accreditAndAuthorize/conformance/step3 +0 -9
- package/dist/scripts/accreditAndAuthorize/conformance/step4 +0 -27
- package/dist/scripts/accreditAndAuthorize/conformance/step5 +0 -13
- package/dist/scripts/accreditAndAuthorize/conformance/step6 +0 -14
- package/dist/scripts/accreditAndAuthorize/conformance/step7 +0 -7
- package/dist/scripts/accreditAndAuthorize/test/step1 +0 -34
- package/dist/scripts/accreditAndAuthorize/test/step2 +0 -18
- package/dist/scripts/accreditAndAuthorize/test/step3 +0 -9
- package/dist/scripts/accreditAndAuthorize/test/step4 +0 -27
- package/dist/scripts/accreditAndAuthorize/test/step5 +0 -13
- package/dist/scripts/accreditAndAuthorize/test/step6 +0 -14
- package/dist/scripts/accreditAndAuthorize/test/step7 +0 -7
- package/dist/scripts/accreditTI +0 -21
- package/dist/scripts/assets/Nodes.json +0 -27
- package/dist/scripts/assets/vcdm1.1/CTRevocableCredential.json +0 -30
- package/dist/scripts/assets/vcdm1.1/CredentialToAttestVerifiableAuthorisationForTrustChain.json +0 -29
- package/dist/scripts/assets/vcdm1.1/Nodes.json +0 -27
- package/dist/scripts/assets/vcdm1.1/TrustedNodesList.json +0 -35
- package/dist/scripts/assets/vcdm1.1/VerifiableAccreditationToAccredit.json +0 -35
- package/dist/scripts/assets/vcdm1.1/VerifiableAccreditationToAttest.json +0 -33
- package/dist/scripts/assets/vcdm1.1/VerifiableAuthorisationForTrustChain.json +0 -22
- package/dist/scripts/assets/vcdm1.1/VerifiableAuthorisationToInvoke.json +0 -24
- package/dist/scripts/assets/vcdm1.1/VerifiableAuthorisationToOnboard.json +0 -24
- package/dist/scripts/assets/vcdm2.0/CredentialToAttestVerifiableAuthorisationForTrustChain.json +0 -29
- package/dist/scripts/assets/vcdm2.0/TrustedNodesList.json +0 -36
- package/dist/scripts/assets/vcdm2.0/VerifiableAccreditationToAccredit.json +0 -40
- package/dist/scripts/assets/vcdm2.0/VerifiableAccreditationToAttest.json +0 -38
- package/dist/scripts/assets/vcdm2.0/VerifiableAuthorisationForTrustChain.json +0 -30
- package/dist/scripts/assets/vcdm2.0/VerifiableAuthorisationToInvoke.json +0 -24
- package/dist/scripts/assets/vcdm2.0/VerifiableAuthorisationToOnboard.json +0 -23
- package/dist/scripts/bootstrap/0a-loadTPROperator +0 -5
- package/dist/scripts/bootstrap/0b-loadAdmin +0 -8
- package/dist/scripts/bootstrap/1-populateTPR +0 -92
- package/dist/scripts/bootstrap/2-populateDID +0 -6
- package/dist/scripts/bootstrap/3-populateTimestamp +0 -9
- package/dist/scripts/bootstrap/4-populateTIR +0 -8
- package/dist/scripts/bootstrap/5-populateTSR +0 -85
- package/dist/scripts/bootstrap/6-setupConformanceIssuer +0 -35
- package/dist/scripts/bootstrap/README.md +0 -218
- package/dist/scripts/issueVcInvoke +0 -10
- package/dist/scripts/issueVcOnboard +0 -9
- package/dist/scripts/issueVcRootTAO +0 -11
- package/dist/scripts/issueVcTAO +0 -12
- package/dist/scripts/issueVcTI +0 -12
- package/dist/scripts/issueVcTnl +0 -32
- package/dist/scripts/issue_CTRevocableCredential +0 -12
- package/dist/scripts/issue_SelfAttestationSupportOffice +0 -10
- package/dist/scripts/issue_VerifiableAccreditationToAccredit +0 -11
- package/dist/scripts/issue_VerifiableAccreditationToAttest +0 -11
- package/dist/scripts/issue_VerifiableAuthorisationForTrustChain +0 -10
- package/dist/scripts/issue_VerifiableAuthorisationToOnboard +0 -9
- package/dist/scripts/preregisterIssuer +0 -6
- package/dist/scripts/registerDidDocument +0 -15
- package/dist/scripts/registerIssuer +0 -6
- package/dist/scripts/updateVcRootTAO +0 -10
- package/dist/scripts/updateVcTAO +0 -11
- package/dist/scripts/updateVcTI +0 -11
- package/dist/scripts/vcdm2.0/issueSelfAttestationSupportOffice +0 -10
- package/dist/scripts/vcdm2.0/issueVcInvoke +0 -12
- package/dist/scripts/vcdm2.0/issueVcOnboard +0 -11
- package/dist/scripts/vcdm2.0/issueVcRootTAO +0 -14
- package/dist/scripts/vcdm2.0/issueVcTAO +0 -15
- package/dist/scripts/vcdm2.0/issueVcTI +0 -15
- package/dist/scripts/vcdm2.0/issueVcTnl +0 -34
- package/dist/scripts/vcdm2.0/registerDidDocument +0 -15
- package/dist/scripts/vcdm2.0/updateVcRootTAO +0 -13
- package/dist/scripts/vcdm2.0/updateVcTAO +0 -14
- package/dist/scripts/vcdm2.0/updateVcTI +0 -14
- package/dist/scripts/vcdm2.0/verifyVcTnl +0 -10
- package/dist/scripts/verifyVcTnl +0 -10
- package/dist/scripts/wct/accreditAndAuthorize +0 -133
- package/dist/scripts/wct/accreditAndAuthorize2 +0 -89
- package/dist/scripts/wct/holderWallet +0 -39
- package/dist/scripts/wct/holderWallet2 +0 -39
- package/dist/scripts/wct/issueToHolder +0 -38
- package/dist/scripts/wct/issueToHolder2 +0 -38
- package/dist/scripts/wct/pda1 +0 -3
- package/dist/scripts/wct/verifier +0 -8
- package/dist/scripts/wct/verifier2 +0 -7
- package/dist/utils/Client.js +0 -155
- package/dist/utils/Client.js.map +0 -1
- package/dist/utils/HardwareWallet.js +0 -326
- package/dist/utils/HardwareWallet.js.map +0 -1
- package/dist/utils/http.js +0 -132
- package/dist/utils/http.js.map +0 -1
- package/dist/utils/index.js +0 -8
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/jsonrpc.js +0 -38
- package/dist/utils/jsonrpc.js.map +0 -1
- package/dist/utils/print.js +0 -56
- package/dist/utils/print.js.map +0 -1
- package/dist/utils/utils.js +0 -427
- package/dist/utils/utils.js.map +0 -1
- package/dist/utils/vcdm.js +0 -47
- package/dist/utils/vcdm.js.map +0 -1
|
@@ -1,159 +0,0 @@
|
|
|
1
|
-
import { execCommand } from "../app.js";
|
|
2
|
-
import { loadConfig } from "../config.js";
|
|
3
|
-
const [did] = process.argv.slice(2);
|
|
4
|
-
const relationships = [
|
|
5
|
-
"authentication",
|
|
6
|
-
"assertionMethod",
|
|
7
|
-
"keyAgreement",
|
|
8
|
-
"capabilityInvocation",
|
|
9
|
-
"capabilityDelegation",
|
|
10
|
-
];
|
|
11
|
-
const config = loadConfig();
|
|
12
|
-
const { admin } = config.programs;
|
|
13
|
-
const currentDidVersion = Number(config.api.did.url.slice(-1));
|
|
14
|
-
const oldDidVersion = currentDidVersion - 1;
|
|
15
|
-
const didRegistryOld = config.api.did.url.replace(`/v${currentDidVersion}`, `/v${oldDidVersion}`);
|
|
16
|
-
const didRegistry = config.api.did.url;
|
|
17
|
-
async function getDidParts(url) {
|
|
18
|
-
const didDocument = await execCommand(`get ${url}`);
|
|
19
|
-
if (!didDocument)
|
|
20
|
-
throw new Error(`DID ${url} not found`);
|
|
21
|
-
const parts = {
|
|
22
|
-
baseDocument: JSON.stringify({
|
|
23
|
-
"@context": didDocument["@context"],
|
|
24
|
-
}),
|
|
25
|
-
verificationMethods: (didDocument.verificationMethod ?? []).map((v) => ({
|
|
26
|
-
isSecp256k1: v.publicKeyJwk?.crv === "secp256k1",
|
|
27
|
-
publicKeyJwk: JSON.stringify(v.publicKeyJwk),
|
|
28
|
-
thumbprint: v.id.split("#")[1],
|
|
29
|
-
})),
|
|
30
|
-
verificationRelationships: [],
|
|
31
|
-
};
|
|
32
|
-
for (const rel of relationships) {
|
|
33
|
-
if (didDocument[rel]) {
|
|
34
|
-
for (const r of didDocument[rel]) {
|
|
35
|
-
parts.verificationRelationships.push({
|
|
36
|
-
name: rel,
|
|
37
|
-
thumbprint: r.split("#")[1],
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
return parts;
|
|
43
|
-
}
|
|
44
|
-
async function migrateDid() {
|
|
45
|
-
const messages = [];
|
|
46
|
-
let newDocument = {
|
|
47
|
-
baseDocument: "",
|
|
48
|
-
verificationMethods: [],
|
|
49
|
-
verificationRelationships: [],
|
|
50
|
-
};
|
|
51
|
-
const notBefore = new Date(Date.now() - 365 * 24 * 3600 * 1000).toISOString(); // 1 year ago
|
|
52
|
-
const notAfter = new Date(Date.now() + 5 * 365 * 24 * 3600 * 1000).toISOString(); // 5 years
|
|
53
|
-
const oldDocument = await getDidParts(`${didRegistryOld}/identifiers/${did}`);
|
|
54
|
-
let newDocumentExists;
|
|
55
|
-
try {
|
|
56
|
-
newDocument = await getDidParts(`${didRegistry}/identifiers/${did}`);
|
|
57
|
-
newDocumentExists = true;
|
|
58
|
-
}
|
|
59
|
-
catch (error) {
|
|
60
|
-
console.log(error);
|
|
61
|
-
newDocumentExists = false;
|
|
62
|
-
}
|
|
63
|
-
if (!newDocumentExists) {
|
|
64
|
-
const indexSecp256k1 = oldDocument.verificationMethods.findIndex((v) => v.isSecp256k1);
|
|
65
|
-
if (indexSecp256k1 === -1)
|
|
66
|
-
throw new Error(`The DID ${did} do not exist in the new api and there is not secp256k1 key in the old one in order to register it`);
|
|
67
|
-
const [vMethod] = oldDocument.verificationMethods.splice(indexSecp256k1, 1);
|
|
68
|
-
if (!vMethod) {
|
|
69
|
-
throw new Error("vMethod not found in oldDocument.verificationMethods");
|
|
70
|
-
}
|
|
71
|
-
await safeExecCommand(`proxyledger did insertDidDocument ${[
|
|
72
|
-
did,
|
|
73
|
-
oldDocument.baseDocument,
|
|
74
|
-
vMethod.publicKeyJwk,
|
|
75
|
-
notBefore,
|
|
76
|
-
notAfter,
|
|
77
|
-
vMethod.thumbprint,
|
|
78
|
-
].join(" ")}`);
|
|
79
|
-
messages.push("did document inserted");
|
|
80
|
-
oldDocument.verificationRelationships =
|
|
81
|
-
oldDocument.verificationRelationships.filter((r) => r.thumbprint !== vMethod.thumbprint ||
|
|
82
|
-
(r.name !== "capabilityInvocation" && r.name !== "authentication"));
|
|
83
|
-
}
|
|
84
|
-
else if (oldDocument.baseDocument !== newDocument.baseDocument) {
|
|
85
|
-
await safeExecCommand(`proxyledger did updateBaseDocument ${[
|
|
86
|
-
did,
|
|
87
|
-
oldDocument.baseDocument,
|
|
88
|
-
].join(" ")}`);
|
|
89
|
-
messages.push("base document updated");
|
|
90
|
-
}
|
|
91
|
-
// eslint-disable-next-line @typescript-eslint/prefer-for-of
|
|
92
|
-
for (let i = 0; i < oldDocument.verificationMethods.length; i += 1) {
|
|
93
|
-
const vMethod = oldDocument.verificationMethods[i];
|
|
94
|
-
if (!newDocument.verificationMethods.some((v) => v.thumbprint === vMethod.thumbprint)) {
|
|
95
|
-
await safeExecCommand(`proxyledger did addVerificationMethod ${[
|
|
96
|
-
did,
|
|
97
|
-
vMethod.publicKeyJwk,
|
|
98
|
-
vMethod.thumbprint,
|
|
99
|
-
].join(" ")}`);
|
|
100
|
-
messages.push(`verification method added: ${vMethod.thumbprint}`);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
// eslint-disable-next-line @typescript-eslint/prefer-for-of
|
|
104
|
-
for (let i = 0; i < oldDocument.verificationRelationships.length; i += 1) {
|
|
105
|
-
const vRelationship = oldDocument.verificationRelationships[i];
|
|
106
|
-
if (!newDocument.verificationRelationships.some((r) => r.name === vRelationship.name &&
|
|
107
|
-
r.thumbprint === vRelationship.thumbprint)) {
|
|
108
|
-
await safeExecCommand(`proxyledger did addVerificationRelationship ${[
|
|
109
|
-
did,
|
|
110
|
-
vRelationship.name,
|
|
111
|
-
vRelationship.thumbprint,
|
|
112
|
-
notBefore,
|
|
113
|
-
notAfter,
|
|
114
|
-
].join(" ")}`);
|
|
115
|
-
messages.push(`verification relationship added: ${vRelationship.name} - ${vRelationship.thumbprint}`);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
return messages;
|
|
119
|
-
}
|
|
120
|
-
async function safeExecCommand(command) {
|
|
121
|
-
try {
|
|
122
|
-
await execCommand(command);
|
|
123
|
-
}
|
|
124
|
-
catch (error) {
|
|
125
|
-
const { message } = error;
|
|
126
|
-
if (message.includes("nonce has already been used") ||
|
|
127
|
-
message.includes("replacement fee too low")) {
|
|
128
|
-
// try again after some seconds
|
|
129
|
-
await execCommand("wait 5");
|
|
130
|
-
await safeExecCommand(command);
|
|
131
|
-
return;
|
|
132
|
-
}
|
|
133
|
-
if (message.includes("Revert reason: did already exists") ||
|
|
134
|
-
message.includes("Revert reason: relationship already exists") ||
|
|
135
|
-
message.includes("Revert reason: vMethodId already exists")) {
|
|
136
|
-
// everything is ok, continue
|
|
137
|
-
return;
|
|
138
|
-
}
|
|
139
|
-
throw error;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
(async () => {
|
|
143
|
-
// load admin
|
|
144
|
-
await execCommand(`using user ES256K did1 ${admin.ES256K.privateKey} ${admin.did}`);
|
|
145
|
-
// await execCommand("t: authorisation auth didr_write_presentation ES256K");
|
|
146
|
-
// await execCommand("using token t.access_token");
|
|
147
|
-
const messages = await migrateDid();
|
|
148
|
-
console.log(`DID: ${did}`);
|
|
149
|
-
console.log(messages);
|
|
150
|
-
})()
|
|
151
|
-
.then(() => {
|
|
152
|
-
process.exit(0);
|
|
153
|
-
})
|
|
154
|
-
// eslint-disable-next-line unicorn/prefer-top-level-await
|
|
155
|
-
.catch((error) => {
|
|
156
|
-
console.log(error);
|
|
157
|
-
process.exit(1);
|
|
158
|
-
});
|
|
159
|
-
//# sourceMappingURL=migrateDid.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"migrateDid.js","sourceRoot":"","sources":["../../src/programs/migrateDid.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,232 +0,0 @@
|
|
|
1
|
-
import fs from "node:fs";
|
|
2
|
-
import { execCommand } from "../app.js";
|
|
3
|
-
import { loadConfig } from "../config.js";
|
|
4
|
-
const [fileName] = process.argv.slice(2);
|
|
5
|
-
const relationships = [
|
|
6
|
-
"authentication",
|
|
7
|
-
"assertionMethod",
|
|
8
|
-
"keyAgreement",
|
|
9
|
-
"capabilityInvocation",
|
|
10
|
-
"capabilityDelegation",
|
|
11
|
-
];
|
|
12
|
-
const config = loadConfig();
|
|
13
|
-
const { admin } = config.programs;
|
|
14
|
-
const currentDidVersion = Number(config.api.did.url.slice(-1));
|
|
15
|
-
const oldDidVersion = currentDidVersion - 1;
|
|
16
|
-
const didRegistryOld = config.api.did.url.replace(`/v${currentDidVersion}`, `/v${oldDidVersion}`);
|
|
17
|
-
const didRegistry = config.api.did.url;
|
|
18
|
-
async function getMissingDids(pageIni = 1, pageEnd = 0, pageSize = 50) {
|
|
19
|
-
const missingDids = [];
|
|
20
|
-
const errors = [];
|
|
21
|
-
let pageAfter = pageIni;
|
|
22
|
-
let url = `${didRegistryOld}/identifiers?page[after]=${pageAfter}&page[size]=${pageSize}`;
|
|
23
|
-
while (true) {
|
|
24
|
-
// get DIDs from old api
|
|
25
|
-
const didListOld = await execCommand(`get ${url}`);
|
|
26
|
-
if (!didListOld)
|
|
27
|
-
break;
|
|
28
|
-
// get which ones are not in the current version
|
|
29
|
-
await Promise.all(didListOld.items.map(async (item) => {
|
|
30
|
-
try {
|
|
31
|
-
const hrefCurrent = item.href.replace(didRegistryOld, didRegistry);
|
|
32
|
-
await execCommand(`get ${hrefCurrent}`);
|
|
33
|
-
}
|
|
34
|
-
catch (error) {
|
|
35
|
-
if (error.message.includes("failed with status code 404")) {
|
|
36
|
-
missingDids.push(item.did);
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
errors.push({ error: error.message, url: item.href });
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}));
|
|
43
|
-
if (didListOld.links.next === didListOld.self ||
|
|
44
|
-
(pageEnd && pageAfter >= pageEnd))
|
|
45
|
-
break;
|
|
46
|
-
pageAfter += 1;
|
|
47
|
-
url = didListOld.links.next;
|
|
48
|
-
}
|
|
49
|
-
return {
|
|
50
|
-
errors,
|
|
51
|
-
missingDids,
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
async function migrateDid(did, opts) {
|
|
55
|
-
const success = [];
|
|
56
|
-
try {
|
|
57
|
-
const didDocument = opts.document ??
|
|
58
|
-
(await execCommand(`get ${opts.didRegistry}/identifiers/${did}`));
|
|
59
|
-
if (!didDocument)
|
|
60
|
-
return {};
|
|
61
|
-
const baseDocument = JSON.stringify({
|
|
62
|
-
"@context": didDocument["@context"],
|
|
63
|
-
});
|
|
64
|
-
const notBefore = new Date(Date.now() - 365 * 24 * 3600 * 1000).toISOString(); // 1 year ago
|
|
65
|
-
const notAfter = new Date(Date.now() + 5 * 365 * 24 * 3600 * 1000).toISOString(); // 5 years
|
|
66
|
-
// get secp256k1 key
|
|
67
|
-
const vMethodSecp256k1 = didDocument.verificationMethod?.find((v) => v.publicKeyJwk?.crv === "secp256k1");
|
|
68
|
-
let publicKeyJwk;
|
|
69
|
-
let thumbprint;
|
|
70
|
-
if (vMethodSecp256k1) {
|
|
71
|
-
publicKeyJwk = JSON.stringify(vMethodSecp256k1.publicKeyJwk);
|
|
72
|
-
[, thumbprint] = vMethodSecp256k1.id.split("#");
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
publicKeyJwk = "user.keys.ES256K.publicKeyJwk";
|
|
76
|
-
thumbprint = "user.keys.ES256K.id";
|
|
77
|
-
}
|
|
78
|
-
// insert did document
|
|
79
|
-
let successMessage = "insertDidDocument";
|
|
80
|
-
await safeExecCommand(`did insertDidDocument ${[
|
|
81
|
-
did,
|
|
82
|
-
baseDocument,
|
|
83
|
-
publicKeyJwk,
|
|
84
|
-
notBefore,
|
|
85
|
-
notAfter,
|
|
86
|
-
thumbprint,
|
|
87
|
-
].join(" ")}`, { ...opts, successMessage });
|
|
88
|
-
success.push(successMessage);
|
|
89
|
-
for (const rel of relationships) {
|
|
90
|
-
// skip relationships that come by default with insertDidDocument
|
|
91
|
-
if (["authentication", "capabilityInvocation"].includes(rel))
|
|
92
|
-
continue;
|
|
93
|
-
// add extra relationships
|
|
94
|
-
if (vMethodSecp256k1?.id &&
|
|
95
|
-
didDocument[rel]?.includes(vMethodSecp256k1.id)) {
|
|
96
|
-
successMessage = `addVerificationRelationship ${rel} ${thumbprint}`;
|
|
97
|
-
await safeExecCommand(`did addVerificationRelationship ${[
|
|
98
|
-
did,
|
|
99
|
-
rel,
|
|
100
|
-
thumbprint,
|
|
101
|
-
notBefore,
|
|
102
|
-
notAfter,
|
|
103
|
-
].join(" ")}`, { ...opts, successMessage });
|
|
104
|
-
success.push(successMessage);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
if (!didDocument.verificationMethod)
|
|
108
|
-
return {};
|
|
109
|
-
// insert other keys
|
|
110
|
-
// eslint-disable-next-line @typescript-eslint/prefer-for-of
|
|
111
|
-
for (let j = 0; j < didDocument.verificationMethod.length; j += 1) {
|
|
112
|
-
const vMethod = didDocument.verificationMethod[j];
|
|
113
|
-
if (vMethod.id === vMethodSecp256k1?.id)
|
|
114
|
-
continue;
|
|
115
|
-
publicKeyJwk = JSON.stringify(vMethod.publicKeyJwk);
|
|
116
|
-
[, thumbprint] = vMethod.id.split("#");
|
|
117
|
-
successMessage = `addVerificationMethod ${thumbprint}`;
|
|
118
|
-
await safeExecCommand(`did addVerificationMethod ${[did, publicKeyJwk, thumbprint].join(" ")}`, { ...opts, successMessage });
|
|
119
|
-
success.push(successMessage);
|
|
120
|
-
// add relationships
|
|
121
|
-
for (const rel of relationships) {
|
|
122
|
-
if (didDocument[rel]?.includes(vMethod.id)) {
|
|
123
|
-
successMessage = `addVerificationRelationship ${rel} ${thumbprint}`;
|
|
124
|
-
await safeExecCommand(`did addVerificationRelationship ${[
|
|
125
|
-
did,
|
|
126
|
-
rel,
|
|
127
|
-
thumbprint,
|
|
128
|
-
notBefore,
|
|
129
|
-
notAfter,
|
|
130
|
-
].join(" ")}`, { ...opts, successMessage });
|
|
131
|
-
success.push(successMessage);
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
return {};
|
|
136
|
-
}
|
|
137
|
-
catch (error) {
|
|
138
|
-
console.log(error);
|
|
139
|
-
return {
|
|
140
|
-
error: {
|
|
141
|
-
did,
|
|
142
|
-
error: error.message,
|
|
143
|
-
success,
|
|
144
|
-
},
|
|
145
|
-
};
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
async function safeExecCommand(command, opts) {
|
|
149
|
-
if (opts.skip?.includes(opts.successMessage))
|
|
150
|
-
return;
|
|
151
|
-
try {
|
|
152
|
-
await execCommand(command);
|
|
153
|
-
}
|
|
154
|
-
catch (error) {
|
|
155
|
-
const { message } = error;
|
|
156
|
-
if (message.includes("nonce has already been used") ||
|
|
157
|
-
message.includes("replacement fee too low")) {
|
|
158
|
-
// try again after some seconds
|
|
159
|
-
await execCommand("wait 5");
|
|
160
|
-
await safeExecCommand(command, opts);
|
|
161
|
-
return;
|
|
162
|
-
}
|
|
163
|
-
if (message.includes("Revert reason: did already exists") ||
|
|
164
|
-
message.includes("Revert reason: relationship already exists") ||
|
|
165
|
-
message.includes("Revert reason: vMethodId already exists")) {
|
|
166
|
-
// everything is ok, continue
|
|
167
|
-
return;
|
|
168
|
-
}
|
|
169
|
-
throw error;
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
(async () => {
|
|
173
|
-
// load admin
|
|
174
|
-
await execCommand(`using user ES256K did1 ${admin.ES256K.privateKey} ${admin.did}`);
|
|
175
|
-
await execCommand("t: authorisation auth didr_write_presentation ES256K");
|
|
176
|
-
await execCommand("using token t.access_token");
|
|
177
|
-
let migrated = [];
|
|
178
|
-
let noMigrated = [];
|
|
179
|
-
let errors = [];
|
|
180
|
-
if (fileName) {
|
|
181
|
-
const fileData = fs.readFileSync(fileName, "utf8");
|
|
182
|
-
const { migrated: m, noMigrated: nom } = JSON.parse(fileData);
|
|
183
|
-
migrated = m;
|
|
184
|
-
noMigrated = nom;
|
|
185
|
-
for (let i = 0; i < noMigrated.length; i += 1) {
|
|
186
|
-
const { did, error, success } = noMigrated[i];
|
|
187
|
-
if (!did)
|
|
188
|
-
continue;
|
|
189
|
-
if (error.includes("nonce has already been used") ||
|
|
190
|
-
error.includes("replacement fee too low") ||
|
|
191
|
-
error.includes("Bad Gateway") ||
|
|
192
|
-
error.includes("Revert reason")) {
|
|
193
|
-
const result = await migrateDid(did, {
|
|
194
|
-
didRegistry: didRegistryOld,
|
|
195
|
-
skip: success,
|
|
196
|
-
});
|
|
197
|
-
if (result.error) {
|
|
198
|
-
noMigrated[i] = result.error;
|
|
199
|
-
}
|
|
200
|
-
else {
|
|
201
|
-
noMigrated[i] = { did: "", error: "", success: [] };
|
|
202
|
-
migrated.push(did);
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
noMigrated = noMigrated.filter((n) => n.did);
|
|
207
|
-
}
|
|
208
|
-
else {
|
|
209
|
-
const { errors: e, missingDids } = await getMissingDids(1, 0, 50);
|
|
210
|
-
errors = e;
|
|
211
|
-
// migrate dids
|
|
212
|
-
for (const did of missingDids) {
|
|
213
|
-
const result = await migrateDid(did, { didRegistry: didRegistryOld });
|
|
214
|
-
if (result.error) {
|
|
215
|
-
noMigrated.push(result.error);
|
|
216
|
-
}
|
|
217
|
-
else {
|
|
218
|
-
migrated.push(did);
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
fs.writeFileSync(`migration-${Date.now()}.log`, JSON.stringify({ didRegistry, didRegistryOld, errorList: errors, migrated, noMigrated }, null, 2));
|
|
223
|
-
})()
|
|
224
|
-
.then(() => {
|
|
225
|
-
process.exit(0);
|
|
226
|
-
})
|
|
227
|
-
// eslint-disable-next-line unicorn/prefer-top-level-await
|
|
228
|
-
.catch((error) => {
|
|
229
|
-
console.log(error);
|
|
230
|
-
process.exit(1);
|
|
231
|
-
});
|
|
232
|
-
//# sourceMappingURL=migrateDids.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"migrateDids.js","sourceRoot":"","sources":["../../src/programs/migrateDids.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,201 +0,0 @@
|
|
|
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: pnpm run 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
|
-
* pnpm run program:migrateTsr migrateWithProxy <progressFile>
|
|
25
|
-
*
|
|
26
|
-
* Option B - API connection (requires API configured with new address):
|
|
27
|
-
* pnpm run 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";
|
|
33
|
-
import fs from "node:fs";
|
|
34
|
-
import { execCommand, initConfigVars } from "../app.js";
|
|
35
|
-
import { loadConfig } from "../config.js";
|
|
36
|
-
const part = process.argv[2];
|
|
37
|
-
let progressFile = process.argv[3];
|
|
38
|
-
if (!part || !["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`);
|
|
40
|
-
}
|
|
41
|
-
const fileNameSchemas = "schemasData.log";
|
|
42
|
-
const config = loadConfig();
|
|
43
|
-
const { admin } = config.programs;
|
|
44
|
-
async function createProgressFile() {
|
|
45
|
-
if (!progressFile)
|
|
46
|
-
return;
|
|
47
|
-
let fileData = fs.readFileSync(progressFile, "utf8");
|
|
48
|
-
if (!fileData)
|
|
49
|
-
fileData = JSON.stringify({
|
|
50
|
-
listCompleted: false,
|
|
51
|
-
nextPage: "",
|
|
52
|
-
schemas: [],
|
|
53
|
-
});
|
|
54
|
-
const data = JSON.parse(fileData);
|
|
55
|
-
if (data.listCompleted) {
|
|
56
|
-
console.log("List already completed.");
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
let pageAfter = 1;
|
|
60
|
-
const pageSize = 50;
|
|
61
|
-
while (data.listCompleted === false) {
|
|
62
|
-
let url = `/schemas?page[after]=${pageAfter}&page[size]=${pageSize}`;
|
|
63
|
-
try {
|
|
64
|
-
// get DIDs from old api
|
|
65
|
-
const schemaIdListOld = await execCommand(`ledger tsr get ${url}`);
|
|
66
|
-
data.schemas.push(...schemaIdListOld.items.map((i) => ({
|
|
67
|
-
errors: [],
|
|
68
|
-
migrated: false,
|
|
69
|
-
schemaId: i.schemaId,
|
|
70
|
-
})));
|
|
71
|
-
const lastPage = Math.ceil(schemaIdListOld.total / pageSize);
|
|
72
|
-
if (pageAfter === lastPage) {
|
|
73
|
-
data.listCompleted = true;
|
|
74
|
-
}
|
|
75
|
-
pageAfter += 1;
|
|
76
|
-
url = `/schemas?page[after]=${pageAfter}&page[size]=${pageSize}`;
|
|
77
|
-
fs.writeFileSync(progressFile, JSON.stringify(data, null, 2));
|
|
78
|
-
}
|
|
79
|
-
catch {
|
|
80
|
-
await new Promise((resolve) => {
|
|
81
|
-
setTimeout(resolve, 1000);
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
async function migrateSchema(schemaData) {
|
|
87
|
-
try {
|
|
88
|
-
// insert schema
|
|
89
|
-
const { content, idBase16 } = schemaData;
|
|
90
|
-
let command = `tsr insertSchema ${idBase16} ${JSON.stringify(content)}`;
|
|
91
|
-
if (part === "migrateWithProxy")
|
|
92
|
-
command = `proxyledger ${command}`;
|
|
93
|
-
await safeExecCommand(command);
|
|
94
|
-
return { success: true };
|
|
95
|
-
}
|
|
96
|
-
catch (error) {
|
|
97
|
-
console.log(error);
|
|
98
|
-
return { error: error.message, success: false };
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
async function safeExecCommand(command) {
|
|
102
|
-
try {
|
|
103
|
-
await execCommand(command);
|
|
104
|
-
}
|
|
105
|
-
catch (error) {
|
|
106
|
-
const { message } = error;
|
|
107
|
-
if (message.includes("nonce has already been used") ||
|
|
108
|
-
message.includes("replacement fee too low")) {
|
|
109
|
-
// try again after some seconds
|
|
110
|
-
await execCommand("wait 5");
|
|
111
|
-
await safeExecCommand(command);
|
|
112
|
-
return;
|
|
113
|
-
}
|
|
114
|
-
if (message.includes("Revert reason: schemaId already exists") ||
|
|
115
|
-
message.includes("Revert reason: Schema already registered")) {
|
|
116
|
-
// everything is ok, continue
|
|
117
|
-
return;
|
|
118
|
-
}
|
|
119
|
-
throw error;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
async function saveSchema(schemaId) {
|
|
123
|
-
let fileData;
|
|
124
|
-
if (fs.existsSync(fileNameSchemas)) {
|
|
125
|
-
fileData = fs.readFileSync(fileNameSchemas, "utf8");
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
128
|
-
fileData = "[]";
|
|
129
|
-
fs.writeFileSync(fileNameSchemas, fileData, "utf8");
|
|
130
|
-
}
|
|
131
|
-
const data = JSON.parse(fileData);
|
|
132
|
-
if (data.some((s) => s.idBase58 === schemaId)) {
|
|
133
|
-
console.log(`Schema ${schemaId} already saved.`);
|
|
134
|
-
return;
|
|
135
|
-
}
|
|
136
|
-
const schemaData = await execCommand(`ledger tsr get /schemas/${schemaId}`);
|
|
137
|
-
const idBase16 = `0x${Buffer.from(base58btc.decode(schemaId)).toString("hex")}`;
|
|
138
|
-
data.push({ content: schemaData, idBase16, idBase58: schemaId });
|
|
139
|
-
fs.writeFileSync(fileNameSchemas, JSON.stringify(data, null, 2), "utf8");
|
|
140
|
-
}
|
|
141
|
-
(async () => {
|
|
142
|
-
// // OPTIONAL: load a specific domain
|
|
143
|
-
// await execCommand("domain https://aio68-0-ebsi-pilot-rou.ebsi.eu");
|
|
144
|
-
await initConfigVars();
|
|
145
|
-
// load admin
|
|
146
|
-
await execCommand(`using user ES256K did1 ${admin.ES256K.privateKey} ${admin.did}`);
|
|
147
|
-
if (!progressFile) {
|
|
148
|
-
progressFile = `migrationTsr-${Date.now()}.log`;
|
|
149
|
-
fs.writeFileSync(progressFile, "", "utf8");
|
|
150
|
-
}
|
|
151
|
-
await createProgressFile();
|
|
152
|
-
const fileData = fs.readFileSync(progressFile, "utf8");
|
|
153
|
-
const data = JSON.parse(fileData);
|
|
154
|
-
const { schemas } = data;
|
|
155
|
-
if (part === "save") {
|
|
156
|
-
for (const schema of schemas) {
|
|
157
|
-
await saveSchema(schema.schemaId);
|
|
158
|
-
}
|
|
159
|
-
console.log(`Schemas saved to ${fileNameSchemas}.`);
|
|
160
|
-
return;
|
|
161
|
-
}
|
|
162
|
-
// part migrate
|
|
163
|
-
const fileDataSchemas = fs.readFileSync(fileNameSchemas, "utf8");
|
|
164
|
-
const schemasData = JSON.parse(fileDataSchemas);
|
|
165
|
-
if (part === "migrate") {
|
|
166
|
-
// migrate through the TSR API
|
|
167
|
-
// the API must have the new contract address configured
|
|
168
|
-
await execCommand(`using user ES256 did1 ${admin.ES256.privateKey} ${admin.did}`);
|
|
169
|
-
await execCommand(`t: authorisation auth tsr_write_presentation`);
|
|
170
|
-
await execCommand(`using token t.access_token`);
|
|
171
|
-
}
|
|
172
|
-
// eslint-disable-next-line @typescript-eslint/prefer-for-of
|
|
173
|
-
for (let i = 0; i < schemas.length; i += 1) {
|
|
174
|
-
const schema = schemas[i];
|
|
175
|
-
if (!schema.migrated) {
|
|
176
|
-
const schemaData = schemasData.find((s) => s.idBase58 === schema.schemaId);
|
|
177
|
-
if (schemaData) {
|
|
178
|
-
const result = await migrateSchema(schemaData);
|
|
179
|
-
if (result.success) {
|
|
180
|
-
schema.migrated = true;
|
|
181
|
-
}
|
|
182
|
-
else {
|
|
183
|
-
schema.errors.push(result.error);
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
else {
|
|
187
|
-
schema.errors.push("Schema not found in schemasData.log");
|
|
188
|
-
}
|
|
189
|
-
fs.writeFileSync(progressFile, JSON.stringify({ ...data, schemas }, null, 2), "utf8");
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
})()
|
|
193
|
-
.then(() => {
|
|
194
|
-
process.exit(0);
|
|
195
|
-
})
|
|
196
|
-
// eslint-disable-next-line unicorn/prefer-top-level-await
|
|
197
|
-
.catch((error) => {
|
|
198
|
-
console.log(error);
|
|
199
|
-
process.exit(1);
|
|
200
|
-
});
|
|
201
|
-
//# sourceMappingURL=migrateTsr.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"migrateTsr.js","sourceRoot":"","sources":["../../src/programs/migrateTsr.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAqB1C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7B,IAAI,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACnC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,EAAE,kBAAkB,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IACrE,MAAM,IAAI,KAAK,CACb,+MAA+M,CAChN,CAAC;AACJ,CAAC;AACD,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAE1C,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;AAC5B,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC;AAElC,KAAK,UAAU,kBAAkB;IAC/B,IAAI,CAAC,YAAY;QAAE,OAAO;IAE1B,IAAI,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACrD,IAAI,CAAC,QAAQ;QACX,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;YACxB,aAAa,EAAE,KAAK;YACpB,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE,EAAE;SACG,CAAC,CAAC;IAEpB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAgB,CAAC;IAEjD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACvC,OAAO;IACT,CAAC;IAED,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,OAAO,IAAI,CAAC,aAAa,KAAK,KAAK,EAAE,CAAC;QACpC,IAAI,GAAG,GAAG,wBAAwB,SAAS,eAAe,QAAQ,EAAE,CAAC;QACrE,IAAI,CAAC;YACH,wBAAwB;YACxB,MAAM,eAAe,GAAG,MAAM,WAAW,CACvC,kBAAkB,GAAG,EAAE,CACxB,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,IAAI,CACf,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACnC,MAAM,EAAE,EAAE;gBACV,QAAQ,EAAE,KAAK;gBACf,QAAQ,EAAE,CAAC,CAAC,QAAQ;aACrB,CAAC,CAAC,CACJ,CAAC;YAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC;YAC7D,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAC3B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC5B,CAAC;YACD,SAAS,IAAI,CAAC,CAAC;YACf,GAAG,GAAG,wBAAwB,SAAS,eAAe,QAAQ,EAAE,CAAC;YACjE,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAChE,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC5B,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,UAAsB;IAEtB,IAAI,CAAC;QACH,gBAAgB;QAChB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC;QACzC,IAAI,OAAO,GAAG,oBAAoB,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;QACxE,IAAI,IAAI,KAAK,kBAAkB;YAAE,OAAO,GAAG,eAAe,OAAO,EAAE,CAAC;QACpE,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;QAC/B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,OAAO,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC7D,CAAC;AACH,CAAC;AAED,KAAK,UAAU,eAAe,CAAI,OAAe;IAC/C,IAAI,CAAC;QACH,MAAM,WAAW,CAAI,OAAO,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,EAAE,OAAO,EAAE,GAAG,KAAc,CAAC;QACnC,IACE,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAAC;YAC/C,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAC3C,CAAC;YACD,+BAA+B;YAC/B,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC5B,MAAM,eAAe,CAAI,OAAO,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;QAED,IACE,OAAO,CAAC,QAAQ,CAAC,wCAAwC,CAAC;YAC1D,OAAO,CAAC,QAAQ,CAAC,0CAA0C,CAAC,EAC5D,CAAC;YACD,6BAA6B;YAC7B,OAAO;QACT,CAAC;QAED,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,QAAgB;IACxC,IAAI,QAAgB,CAAC;IACrB,IAAI,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACnC,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,IAAI,CAAC;QAChB,EAAE,CAAC,aAAa,CAAC,eAAe,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAiB,CAAC;IAElD,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,EAAE,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,UAAU,QAAQ,iBAAiB,CAAC,CAAC;QACjD,OAAO;IACT,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,WAAW,CAClC,2BAA2B,QAAQ,EAAE,CACtC,CAAC;IACF,MAAM,QAAQ,GAAG,KAAK,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;IAChF,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;IACjE,EAAE,CAAC,aAAa,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAC3E,CAAC;AAED,CAAC,KAAK,IAAI,EAAE;IACV,sCAAsC;IACtC,sEAAsE;IAEtE,MAAM,cAAc,EAAE,CAAC;IAEvB,aAAa;IACb,MAAM,WAAW,CACf,0BAA0B,KAAK,CAAC,MAAM,CAAC,UAAU,IAAI,KAAK,CAAC,GAAG,EAAE,CACjE,CAAC;IAEF,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,YAAY,GAAG,gBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC;QAChD,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,kBAAkB,EAAE,CAAC;IAE3B,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAgB,CAAC;IACjD,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAEzB,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,oBAAoB,eAAe,GAAG,CAAC,CAAC;QACpD,OAAO;IACT,CAAC;IAED,eAAe;IACf,MAAM,eAAe,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IACjE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAiB,CAAC;IAEhE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,8BAA8B;QAC9B,wDAAwD;QACxD,MAAM,WAAW,CACf,yBAAyB,KAAK,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,GAAG,EAAE,CAC/D,CAAC;QACF,MAAM,WAAW,CAAC,8CAA8C,CAAC,CAAC;QAClE,MAAM,WAAW,CAAC,4BAA4B,CAAC,CAAC;IAClD,CAAC;IAED,4DAA4D;IAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CACjC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CACtC,CAAC;YACF,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC;gBAC/C,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACzB,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;YAC5D,CAAC;YAED,EAAE,CAAC,aAAa,CACd,YAAY,EACZ,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAC7C,MAAM,CACP,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC,CAAC,EAAE;KACD,IAAI,CAAC,GAAG,EAAE;IACT,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC;IACF,0DAA0D;KACzD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
env conformance
|
|
2
|
-
|
|
3
|
-
# create new issuer
|
|
4
|
-
using user null
|
|
5
|
-
using user
|
|
6
|
-
using user ES256 did1 user.keys.ES256K.privateKeyHex
|
|
7
|
-
|
|
8
|
-
# request credential to onboard
|
|
9
|
-
vcOnboard: conformance getCredential onboard
|
|
10
|
-
set myIssuer user
|
|
11
|
-
|
|
12
|
-
# register did document
|
|
13
|
-
run registerDidDocument vcOnboard.vc
|
|
14
|
-
|
|
15
|
-
# request VerifiableAccreditationToAttest (TI)
|
|
16
|
-
vcTI: conformance getCredential ti
|
|
17
|
-
|
|
18
|
-
# register the credential for TI
|
|
19
|
-
t: authorisation auth tir_invite_presentation ES256 vcTI.vc
|
|
20
|
-
using token t.access_token
|
|
21
|
-
tir setAttributeData myIssuer.did vcTI.reservedAttributeId vcTI.vc
|
|
22
|
-
set vcTI.url tirUrl /issuers/ myIssuer.did /attributes/ vcTI.reservedAttributeId
|
|
23
|
-
|
|
24
|
-
view myIssuer
|
|
25
|
-
# Go to https://hub.ebsi.eu/wallet-conformance/accredit-authorise/flow
|
|
26
|
-
# and validate the following tests:
|
|
27
|
-
#
|
|
28
|
-
# - Onboarding
|
|
29
|
-
# - Request VerifiableAuthorisationToOnboard
|
|
30
|
-
# - Register your DID Document into the DID Registry
|
|
31
|
-
#
|
|
32
|
-
# - Get accredited as a Trusted Issuer
|
|
33
|
-
# - Request VerifiableAccreditationToAttest
|
|
34
|
-
# - Register VerifiableAccreditationToAttest into the Trusted Issuers Registry
|