@originals/sdk 1.8.2 → 1.8.3
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/package.json +5 -6
- package/src/adapters/FeeOracleMock.ts +0 -9
- package/src/adapters/index.ts +0 -5
- package/src/adapters/providers/OrdHttpProvider.ts +0 -126
- package/src/adapters/providers/OrdMockProvider.ts +0 -101
- package/src/adapters/types.ts +0 -66
- package/src/bitcoin/BitcoinManager.ts +0 -329
- package/src/bitcoin/BroadcastClient.ts +0 -54
- package/src/bitcoin/OrdinalsClient.ts +0 -120
- package/src/bitcoin/PSBTBuilder.ts +0 -106
- package/src/bitcoin/fee-calculation.ts +0 -38
- package/src/bitcoin/providers/OrdNodeProvider.ts +0 -92
- package/src/bitcoin/providers/OrdinalsProvider.ts +0 -56
- package/src/bitcoin/providers/types.ts +0 -59
- package/src/bitcoin/transactions/commit.ts +0 -465
- package/src/bitcoin/transactions/index.ts +0 -13
- package/src/bitcoin/transfer.ts +0 -43
- package/src/bitcoin/utxo-selection.ts +0 -322
- package/src/bitcoin/utxo.ts +0 -113
- package/src/cel/ExternalReferenceManager.ts +0 -87
- package/src/cel/OriginalsCel.ts +0 -460
- package/src/cel/algorithms/createEventLog.ts +0 -68
- package/src/cel/algorithms/deactivateEventLog.ts +0 -109
- package/src/cel/algorithms/index.ts +0 -11
- package/src/cel/algorithms/updateEventLog.ts +0 -99
- package/src/cel/algorithms/verifyEventLog.ts +0 -306
- package/src/cel/algorithms/witnessEvent.ts +0 -87
- package/src/cel/cli/create.ts +0 -330
- package/src/cel/cli/index.ts +0 -383
- package/src/cel/cli/inspect.ts +0 -549
- package/src/cel/cli/migrate.ts +0 -473
- package/src/cel/cli/verify.ts +0 -249
- package/src/cel/hash.ts +0 -71
- package/src/cel/index.ts +0 -16
- package/src/cel/layers/BtcoCelManager.ts +0 -408
- package/src/cel/layers/PeerCelManager.ts +0 -371
- package/src/cel/layers/WebVHCelManager.ts +0 -361
- package/src/cel/layers/index.ts +0 -27
- package/src/cel/serialization/cbor.ts +0 -189
- package/src/cel/serialization/index.ts +0 -10
- package/src/cel/serialization/json.ts +0 -209
- package/src/cel/types.ts +0 -160
- package/src/cel/witnesses/BitcoinWitness.ts +0 -184
- package/src/cel/witnesses/HttpWitness.ts +0 -241
- package/src/cel/witnesses/WitnessService.ts +0 -51
- package/src/cel/witnesses/index.ts +0 -11
- package/src/contexts/credentials-v1.json +0 -237
- package/src/contexts/credentials-v2-examples.json +0 -5
- package/src/contexts/credentials-v2.json +0 -340
- package/src/contexts/credentials.json +0 -237
- package/src/contexts/data-integrity-v2.json +0 -81
- package/src/contexts/dids.json +0 -58
- package/src/contexts/ed255192020.json +0 -93
- package/src/contexts/ordinals-plus.json +0 -23
- package/src/contexts/originals.json +0 -22
- package/src/core/OriginalsSDK.ts +0 -420
- package/src/crypto/Multikey.ts +0 -194
- package/src/crypto/Signer.ts +0 -262
- package/src/crypto/noble-init.ts +0 -138
- package/src/did/BtcoDidResolver.ts +0 -231
- package/src/did/DIDManager.ts +0 -705
- package/src/did/Ed25519Verifier.ts +0 -68
- package/src/did/KeyManager.ts +0 -239
- package/src/did/WebVHManager.ts +0 -499
- package/src/did/createBtcoDidDocument.ts +0 -60
- package/src/did/providers/OrdinalsClientProviderAdapter.ts +0 -68
- package/src/events/EventEmitter.ts +0 -222
- package/src/events/index.ts +0 -19
- package/src/events/types.ts +0 -331
- package/src/examples/basic-usage.ts +0 -78
- package/src/examples/create-module-original.ts +0 -435
- package/src/examples/full-lifecycle-flow.ts +0 -514
- package/src/examples/run.ts +0 -60
- package/src/index.ts +0 -204
- package/src/kinds/KindRegistry.ts +0 -320
- package/src/kinds/index.ts +0 -74
- package/src/kinds/types.ts +0 -470
- package/src/kinds/validators/AgentValidator.ts +0 -257
- package/src/kinds/validators/AppValidator.ts +0 -211
- package/src/kinds/validators/DatasetValidator.ts +0 -242
- package/src/kinds/validators/DocumentValidator.ts +0 -311
- package/src/kinds/validators/MediaValidator.ts +0 -269
- package/src/kinds/validators/ModuleValidator.ts +0 -225
- package/src/kinds/validators/base.ts +0 -276
- package/src/kinds/validators/index.ts +0 -12
- package/src/lifecycle/BatchOperations.ts +0 -381
- package/src/lifecycle/LifecycleManager.ts +0 -2156
- package/src/lifecycle/OriginalsAsset.ts +0 -524
- package/src/lifecycle/ProvenanceQuery.ts +0 -280
- package/src/lifecycle/ResourceVersioning.ts +0 -163
- package/src/migration/MigrationManager.ts +0 -587
- package/src/migration/audit/AuditLogger.ts +0 -176
- package/src/migration/checkpoint/CheckpointManager.ts +0 -112
- package/src/migration/checkpoint/CheckpointStorage.ts +0 -101
- package/src/migration/index.ts +0 -33
- package/src/migration/operations/BaseMigration.ts +0 -126
- package/src/migration/operations/PeerToBtcoMigration.ts +0 -105
- package/src/migration/operations/PeerToWebvhMigration.ts +0 -62
- package/src/migration/operations/WebvhToBtcoMigration.ts +0 -105
- package/src/migration/rollback/RollbackManager.ts +0 -170
- package/src/migration/state/StateMachine.ts +0 -92
- package/src/migration/state/StateTracker.ts +0 -156
- package/src/migration/types.ts +0 -356
- package/src/migration/validation/BitcoinValidator.ts +0 -107
- package/src/migration/validation/CredentialValidator.ts +0 -62
- package/src/migration/validation/DIDCompatibilityValidator.ts +0 -151
- package/src/migration/validation/LifecycleValidator.ts +0 -64
- package/src/migration/validation/StorageValidator.ts +0 -79
- package/src/migration/validation/ValidationPipeline.ts +0 -213
- package/src/resources/ResourceManager.ts +0 -655
- package/src/resources/index.ts +0 -21
- package/src/resources/types.ts +0 -202
- package/src/storage/LocalStorageAdapter.ts +0 -64
- package/src/storage/MemoryStorageAdapter.ts +0 -29
- package/src/storage/StorageAdapter.ts +0 -25
- package/src/storage/index.ts +0 -3
- package/src/types/bitcoin.ts +0 -98
- package/src/types/common.ts +0 -92
- package/src/types/credentials.ts +0 -89
- package/src/types/did.ts +0 -31
- package/src/types/external-shims.d.ts +0 -53
- package/src/types/index.ts +0 -7
- package/src/types/network.ts +0 -178
- package/src/utils/EventLogger.ts +0 -298
- package/src/utils/Logger.ts +0 -324
- package/src/utils/MetricsCollector.ts +0 -358
- package/src/utils/bitcoin-address.ts +0 -132
- package/src/utils/cbor.ts +0 -31
- package/src/utils/encoding.ts +0 -135
- package/src/utils/hash.ts +0 -12
- package/src/utils/retry.ts +0 -46
- package/src/utils/satoshi-validation.ts +0 -196
- package/src/utils/serialization.ts +0 -102
- package/src/utils/telemetry.ts +0 -44
- package/src/utils/validation.ts +0 -123
- package/src/vc/CredentialManager.ts +0 -955
- package/src/vc/Issuer.ts +0 -105
- package/src/vc/Verifier.ts +0 -54
- package/src/vc/cryptosuites/bbs.ts +0 -253
- package/src/vc/cryptosuites/bbsSimple.ts +0 -21
- package/src/vc/cryptosuites/eddsa.ts +0 -99
- package/src/vc/documentLoader.ts +0 -81
- package/src/vc/proofs/data-integrity.ts +0 -33
- package/src/vc/utils/jsonld.ts +0 -18
|
@@ -1,241 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* HttpWitness - HTTP-based witness service for CEL event logs
|
|
3
|
-
*
|
|
4
|
-
* Implements the WitnessService interface for HTTP-based witness endpoints.
|
|
5
|
-
* Used primarily for the did:webvh layer to obtain third-party attestations
|
|
6
|
-
* from remote witness services.
|
|
7
|
-
*
|
|
8
|
-
* @see https://w3c-ccg.github.io/cel-spec/
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
import type { WitnessProof } from '../types';
|
|
12
|
-
import type { WitnessService } from './WitnessService';
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Configuration options for HttpWitness
|
|
16
|
-
*/
|
|
17
|
-
export interface HttpWitnessOptions {
|
|
18
|
-
/** Request timeout in milliseconds (default: 30000) */
|
|
19
|
-
timeout?: number;
|
|
20
|
-
/** Custom headers to include in requests */
|
|
21
|
-
headers?: Record<string, string>;
|
|
22
|
-
/** Custom fetch implementation (for testing or alternative HTTP clients) */
|
|
23
|
-
fetch?: typeof globalThis.fetch;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Error thrown when the HTTP witness service is unavailable or returns an error
|
|
28
|
-
*/
|
|
29
|
-
export class HttpWitnessError extends Error {
|
|
30
|
-
/** HTTP status code if available */
|
|
31
|
-
readonly statusCode?: number;
|
|
32
|
-
/** Response body if available */
|
|
33
|
-
readonly responseBody?: string;
|
|
34
|
-
/** The witness URL that failed */
|
|
35
|
-
readonly witnessUrl: string;
|
|
36
|
-
|
|
37
|
-
constructor(
|
|
38
|
-
message: string,
|
|
39
|
-
witnessUrl: string,
|
|
40
|
-
statusCode?: number,
|
|
41
|
-
responseBody?: string
|
|
42
|
-
) {
|
|
43
|
-
super(message);
|
|
44
|
-
this.name = 'HttpWitnessError';
|
|
45
|
-
this.witnessUrl = witnessUrl;
|
|
46
|
-
this.statusCode = statusCode;
|
|
47
|
-
this.responseBody = responseBody;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* HTTP-based witness service implementation
|
|
53
|
-
*
|
|
54
|
-
* Posts digestMultibase to a witness endpoint and parses the WitnessProof response.
|
|
55
|
-
*
|
|
56
|
-
* @example
|
|
57
|
-
* ```typescript
|
|
58
|
-
* const witness = new HttpWitness('https://witness.example.com/api/attest');
|
|
59
|
-
* const proof = await witness.witness('uEiD...');
|
|
60
|
-
* console.log(proof.witnessedAt); // ISO timestamp of attestation
|
|
61
|
-
* ```
|
|
62
|
-
*/
|
|
63
|
-
export class HttpWitness implements WitnessService {
|
|
64
|
-
private readonly witnessUrl: string;
|
|
65
|
-
private readonly timeout: number;
|
|
66
|
-
private readonly headers: Record<string, string>;
|
|
67
|
-
private readonly fetchFn: typeof globalThis.fetch;
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* Creates a new HttpWitness instance
|
|
71
|
-
*
|
|
72
|
-
* @param witnessUrl - The URL of the witness endpoint to POST to
|
|
73
|
-
* @param options - Optional configuration options
|
|
74
|
-
*/
|
|
75
|
-
constructor(witnessUrl: string, options: HttpWitnessOptions = {}) {
|
|
76
|
-
if (!witnessUrl || typeof witnessUrl !== 'string') {
|
|
77
|
-
throw new Error('witnessUrl must be a non-empty string');
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
// Validate URL format
|
|
81
|
-
try {
|
|
82
|
-
new URL(witnessUrl);
|
|
83
|
-
} catch {
|
|
84
|
-
throw new Error(`Invalid witness URL: ${witnessUrl}`);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
this.witnessUrl = witnessUrl;
|
|
88
|
-
this.timeout = options.timeout ?? 30000;
|
|
89
|
-
this.headers = {
|
|
90
|
-
'Content-Type': 'application/json',
|
|
91
|
-
'Accept': 'application/json',
|
|
92
|
-
...options.headers,
|
|
93
|
-
};
|
|
94
|
-
this.fetchFn = options.fetch ?? globalThis.fetch;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
/**
|
|
98
|
-
* Witnesses a digest by posting to the HTTP endpoint
|
|
99
|
-
*
|
|
100
|
-
* @param digestMultibase - The Multibase-encoded digest to witness
|
|
101
|
-
* @returns A WitnessProof containing the attestation and witnessedAt timestamp
|
|
102
|
-
* @throws HttpWitnessError if the witness service is unavailable or returns an error
|
|
103
|
-
*/
|
|
104
|
-
async witness(digestMultibase: string): Promise<WitnessProof> {
|
|
105
|
-
if (!digestMultibase || typeof digestMultibase !== 'string') {
|
|
106
|
-
throw new Error('digestMultibase must be a non-empty string');
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
// Create abort controller for timeout
|
|
110
|
-
const controller = new AbortController();
|
|
111
|
-
const timeoutId = setTimeout(() => controller.abort(), this.timeout);
|
|
112
|
-
|
|
113
|
-
try {
|
|
114
|
-
const response = await this.fetchFn(this.witnessUrl, {
|
|
115
|
-
method: 'POST',
|
|
116
|
-
headers: this.headers,
|
|
117
|
-
body: JSON.stringify({ digest: digestMultibase }),
|
|
118
|
-
signal: controller.signal,
|
|
119
|
-
});
|
|
120
|
-
|
|
121
|
-
clearTimeout(timeoutId);
|
|
122
|
-
|
|
123
|
-
// Handle non-OK responses
|
|
124
|
-
if (!response.ok) {
|
|
125
|
-
let responseBody: string | undefined;
|
|
126
|
-
try {
|
|
127
|
-
responseBody = await response.text();
|
|
128
|
-
} catch {
|
|
129
|
-
// Ignore body read errors
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
throw new HttpWitnessError(
|
|
133
|
-
`Witness service returned ${response.status} ${response.statusText}`,
|
|
134
|
-
this.witnessUrl,
|
|
135
|
-
response.status,
|
|
136
|
-
responseBody
|
|
137
|
-
);
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
// Parse response
|
|
141
|
-
let data: unknown;
|
|
142
|
-
try {
|
|
143
|
-
data = await response.json();
|
|
144
|
-
} catch {
|
|
145
|
-
throw new HttpWitnessError(
|
|
146
|
-
'Witness service returned invalid JSON response',
|
|
147
|
-
this.witnessUrl,
|
|
148
|
-
response.status
|
|
149
|
-
);
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
// Validate WitnessProof structure
|
|
153
|
-
const proof = this.validateWitnessProof(data);
|
|
154
|
-
return proof;
|
|
155
|
-
|
|
156
|
-
} catch (error) {
|
|
157
|
-
clearTimeout(timeoutId);
|
|
158
|
-
|
|
159
|
-
// Re-throw HttpWitnessError as-is
|
|
160
|
-
if (error instanceof HttpWitnessError) {
|
|
161
|
-
throw error;
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
// Handle abort/timeout
|
|
165
|
-
if (error instanceof Error && error.name === 'AbortError') {
|
|
166
|
-
throw new HttpWitnessError(
|
|
167
|
-
`Witness service request timed out after ${this.timeout}ms`,
|
|
168
|
-
this.witnessUrl
|
|
169
|
-
);
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
// Handle network errors
|
|
173
|
-
if (error instanceof TypeError) {
|
|
174
|
-
throw new HttpWitnessError(
|
|
175
|
-
`Witness service unavailable: ${error.message}`,
|
|
176
|
-
this.witnessUrl
|
|
177
|
-
);
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
// Re-throw other errors
|
|
181
|
-
throw new HttpWitnessError(
|
|
182
|
-
`Witness request failed: ${error instanceof Error ? error.message : String(error)}`,
|
|
183
|
-
this.witnessUrl
|
|
184
|
-
);
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
/**
|
|
189
|
-
* Validates that the response data is a valid WitnessProof
|
|
190
|
-
*
|
|
191
|
-
* @param data - The parsed JSON response
|
|
192
|
-
* @returns A validated WitnessProof
|
|
193
|
-
* @throws HttpWitnessError if the response is not a valid WitnessProof
|
|
194
|
-
*/
|
|
195
|
-
private validateWitnessProof(data: unknown): WitnessProof {
|
|
196
|
-
if (!data || typeof data !== 'object') {
|
|
197
|
-
throw new HttpWitnessError(
|
|
198
|
-
'Witness service returned invalid proof: expected object',
|
|
199
|
-
this.witnessUrl
|
|
200
|
-
);
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
const proof = data as Record<string, unknown>;
|
|
204
|
-
|
|
205
|
-
// Check required DataIntegrityProof fields
|
|
206
|
-
const requiredFields = ['type', 'cryptosuite', 'created', 'verificationMethod', 'proofPurpose', 'proofValue'];
|
|
207
|
-
for (const field of requiredFields) {
|
|
208
|
-
if (typeof proof[field] !== 'string') {
|
|
209
|
-
throw new HttpWitnessError(
|
|
210
|
-
`Witness service returned invalid proof: missing or invalid '${field}' field`,
|
|
211
|
-
this.witnessUrl
|
|
212
|
-
);
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
// Check WitnessProof-specific field
|
|
217
|
-
if (typeof proof.witnessedAt !== 'string') {
|
|
218
|
-
throw new HttpWitnessError(
|
|
219
|
-
"Witness service returned invalid proof: missing or invalid 'witnessedAt' field",
|
|
220
|
-
this.witnessUrl
|
|
221
|
-
);
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
return {
|
|
225
|
-
type: proof.type as string,
|
|
226
|
-
cryptosuite: proof.cryptosuite as string,
|
|
227
|
-
created: proof.created as string,
|
|
228
|
-
verificationMethod: proof.verificationMethod as string,
|
|
229
|
-
proofPurpose: proof.proofPurpose as string,
|
|
230
|
-
proofValue: proof.proofValue as string,
|
|
231
|
-
witnessedAt: proof.witnessedAt as string,
|
|
232
|
-
};
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
/**
|
|
236
|
-
* Gets the witness URL this instance is configured to use
|
|
237
|
-
*/
|
|
238
|
-
get url(): string {
|
|
239
|
-
return this.witnessUrl;
|
|
240
|
-
}
|
|
241
|
-
}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WitnessService Interface
|
|
3
|
-
*
|
|
4
|
-
* Defines a pluggable interface for witness services that attest to the
|
|
5
|
-
* existence of events at a point in time. Witnesses add trust anchors
|
|
6
|
-
* to event logs by providing third-party attestations.
|
|
7
|
-
*
|
|
8
|
-
* @see https://w3c-ccg.github.io/cel-spec/
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
import type { WitnessProof } from '../types';
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Interface for witness services that can attest to event digests.
|
|
15
|
-
*
|
|
16
|
-
* Implementations might include:
|
|
17
|
-
* - HTTP-based witness services (for did:webvh layer)
|
|
18
|
-
* - Bitcoin timestamping services (for did:btco layer)
|
|
19
|
-
* - Notary services
|
|
20
|
-
* - Blockchain-based attestation services
|
|
21
|
-
*
|
|
22
|
-
* @example
|
|
23
|
-
* ```typescript
|
|
24
|
-
* class MyHttpWitness implements WitnessService {
|
|
25
|
-
* constructor(private witnessUrl: string) {}
|
|
26
|
-
*
|
|
27
|
-
* async witness(digestMultibase: string): Promise<WitnessProof> {
|
|
28
|
-
* const response = await fetch(this.witnessUrl, {
|
|
29
|
-
* method: 'POST',
|
|
30
|
-
* body: JSON.stringify({ digest: digestMultibase })
|
|
31
|
-
* });
|
|
32
|
-
* return response.json();
|
|
33
|
-
* }
|
|
34
|
-
* }
|
|
35
|
-
* ```
|
|
36
|
-
*/
|
|
37
|
-
export interface WitnessService {
|
|
38
|
-
/**
|
|
39
|
-
* Witnesses a digest and returns a proof of attestation.
|
|
40
|
-
*
|
|
41
|
-
* The witness should:
|
|
42
|
-
* 1. Record the digest at the current point in time
|
|
43
|
-
* 2. Generate a cryptographic proof of the attestation
|
|
44
|
-
* 3. Include a witnessedAt timestamp in the proof
|
|
45
|
-
*
|
|
46
|
-
* @param digestMultibase - The Multibase-encoded digest to witness (from computeDigestMultibase)
|
|
47
|
-
* @returns A WitnessProof containing the attestation and witnessedAt timestamp
|
|
48
|
-
* @throws Error if the witness service is unavailable or fails
|
|
49
|
-
*/
|
|
50
|
-
witness(digestMultibase: string): Promise<WitnessProof>;
|
|
51
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CEL Witness Services
|
|
3
|
-
*
|
|
4
|
-
* Pluggable witness interfaces and implementations for third-party attestations.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
export type { WitnessService } from './WitnessService';
|
|
8
|
-
export { HttpWitness, HttpWitnessError } from './HttpWitness';
|
|
9
|
-
export type { HttpWitnessOptions } from './HttpWitness';
|
|
10
|
-
export { BitcoinWitness, BitcoinWitnessError } from './BitcoinWitness';
|
|
11
|
-
export type { BitcoinWitnessOptions, BitcoinWitnessProof } from './BitcoinWitness';
|
|
@@ -1,237 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"@context": {
|
|
3
|
-
"@version": 1.1,
|
|
4
|
-
"@protected": true,
|
|
5
|
-
|
|
6
|
-
"id": "@id",
|
|
7
|
-
"type": "@type",
|
|
8
|
-
|
|
9
|
-
"VerifiableCredential": {
|
|
10
|
-
"@id": "https://www.w3.org/2018/credentials#VerifiableCredential",
|
|
11
|
-
"@context": {
|
|
12
|
-
"@version": 1.1,
|
|
13
|
-
"@protected": true,
|
|
14
|
-
|
|
15
|
-
"id": "@id",
|
|
16
|
-
"type": "@type",
|
|
17
|
-
|
|
18
|
-
"cred": "https://www.w3.org/2018/credentials#",
|
|
19
|
-
"sec": "https://w3id.org/security#",
|
|
20
|
-
"xsd": "http://www.w3.org/2001/XMLSchema#",
|
|
21
|
-
|
|
22
|
-
"credentialSchema": {
|
|
23
|
-
"@id": "cred:credentialSchema",
|
|
24
|
-
"@type": "@id",
|
|
25
|
-
"@context": {
|
|
26
|
-
"@version": 1.1,
|
|
27
|
-
"@protected": true,
|
|
28
|
-
|
|
29
|
-
"id": "@id",
|
|
30
|
-
"type": "@type",
|
|
31
|
-
|
|
32
|
-
"cred": "https://www.w3.org/2018/credentials#",
|
|
33
|
-
|
|
34
|
-
"JsonSchemaValidator2018": "cred:JsonSchemaValidator2018"
|
|
35
|
-
}
|
|
36
|
-
},
|
|
37
|
-
"credentialStatus": {"@id": "cred:credentialStatus", "@type": "@id"},
|
|
38
|
-
"credentialSubject": {"@id": "cred:credentialSubject", "@type": "@id"},
|
|
39
|
-
"evidence": {"@id": "cred:evidence", "@type": "@id"},
|
|
40
|
-
"expirationDate": {"@id": "cred:expirationDate", "@type": "xsd:dateTime"},
|
|
41
|
-
"holder": {"@id": "cred:holder", "@type": "@id"},
|
|
42
|
-
"issued": {"@id": "cred:issued", "@type": "xsd:dateTime"},
|
|
43
|
-
"issuer": {"@id": "cred:issuer", "@type": "@id"},
|
|
44
|
-
"issuanceDate": {"@id": "cred:issuanceDate", "@type": "xsd:dateTime"},
|
|
45
|
-
"proof": {"@id": "sec:proof", "@type": "@id", "@container": "@graph"},
|
|
46
|
-
"refreshService": {
|
|
47
|
-
"@id": "cred:refreshService",
|
|
48
|
-
"@type": "@id",
|
|
49
|
-
"@context": {
|
|
50
|
-
"@version": 1.1,
|
|
51
|
-
"@protected": true,
|
|
52
|
-
|
|
53
|
-
"id": "@id",
|
|
54
|
-
"type": "@type",
|
|
55
|
-
|
|
56
|
-
"cred": "https://www.w3.org/2018/credentials#",
|
|
57
|
-
|
|
58
|
-
"ManualRefreshService2018": "cred:ManualRefreshService2018"
|
|
59
|
-
}
|
|
60
|
-
},
|
|
61
|
-
"termsOfUse": {"@id": "cred:termsOfUse", "@type": "@id"},
|
|
62
|
-
"validFrom": {"@id": "cred:validFrom", "@type": "xsd:dateTime"},
|
|
63
|
-
"validUntil": {"@id": "cred:validUntil", "@type": "xsd:dateTime"}
|
|
64
|
-
}
|
|
65
|
-
},
|
|
66
|
-
|
|
67
|
-
"VerifiablePresentation": {
|
|
68
|
-
"@id": "https://www.w3.org/2018/credentials#VerifiablePresentation",
|
|
69
|
-
"@context": {
|
|
70
|
-
"@version": 1.1,
|
|
71
|
-
"@protected": true,
|
|
72
|
-
|
|
73
|
-
"id": "@id",
|
|
74
|
-
"type": "@type",
|
|
75
|
-
|
|
76
|
-
"cred": "https://www.w3.org/2018/credentials#",
|
|
77
|
-
"sec": "https://w3id.org/security#",
|
|
78
|
-
|
|
79
|
-
"holder": {"@id": "cred:holder", "@type": "@id"},
|
|
80
|
-
"proof": {"@id": "sec:proof", "@type": "@id", "@container": "@graph"},
|
|
81
|
-
"verifiableCredential": {"@id": "cred:verifiableCredential", "@type": "@id", "@container": "@graph"}
|
|
82
|
-
}
|
|
83
|
-
},
|
|
84
|
-
|
|
85
|
-
"EcdsaSecp256k1Signature2019": {
|
|
86
|
-
"@id": "https://w3id.org/security#EcdsaSecp256k1Signature2019",
|
|
87
|
-
"@context": {
|
|
88
|
-
"@version": 1.1,
|
|
89
|
-
"@protected": true,
|
|
90
|
-
|
|
91
|
-
"id": "@id",
|
|
92
|
-
"type": "@type",
|
|
93
|
-
|
|
94
|
-
"sec": "https://w3id.org/security#",
|
|
95
|
-
"xsd": "http://www.w3.org/2001/XMLSchema#",
|
|
96
|
-
|
|
97
|
-
"challenge": "sec:challenge",
|
|
98
|
-
"created": {"@id": "http://purl.org/dc/terms/created", "@type": "xsd:dateTime"},
|
|
99
|
-
"domain": "sec:domain",
|
|
100
|
-
"expires": {"@id": "sec:expiration", "@type": "xsd:dateTime"},
|
|
101
|
-
"jws": "sec:jws",
|
|
102
|
-
"nonce": "sec:nonce",
|
|
103
|
-
"proofPurpose": {
|
|
104
|
-
"@id": "sec:proofPurpose",
|
|
105
|
-
"@type": "@vocab",
|
|
106
|
-
"@context": {
|
|
107
|
-
"@version": 1.1,
|
|
108
|
-
"@protected": true,
|
|
109
|
-
|
|
110
|
-
"id": "@id",
|
|
111
|
-
"type": "@type",
|
|
112
|
-
|
|
113
|
-
"sec": "https://w3id.org/security#",
|
|
114
|
-
|
|
115
|
-
"assertionMethod": {"@id": "sec:assertionMethod", "@type": "@id", "@container": "@set"},
|
|
116
|
-
"authentication": {"@id": "sec:authenticationMethod", "@type": "@id", "@container": "@set"}
|
|
117
|
-
}
|
|
118
|
-
},
|
|
119
|
-
"proofValue": "sec:proofValue",
|
|
120
|
-
"verificationMethod": {"@id": "sec:verificationMethod", "@type": "@id"}
|
|
121
|
-
}
|
|
122
|
-
},
|
|
123
|
-
|
|
124
|
-
"EcdsaSecp256r1Signature2019": {
|
|
125
|
-
"@id": "https://w3id.org/security#EcdsaSecp256r1Signature2019",
|
|
126
|
-
"@context": {
|
|
127
|
-
"@version": 1.1,
|
|
128
|
-
"@protected": true,
|
|
129
|
-
|
|
130
|
-
"id": "@id",
|
|
131
|
-
"type": "@type",
|
|
132
|
-
|
|
133
|
-
"sec": "https://w3id.org/security#",
|
|
134
|
-
"xsd": "http://www.w3.org/2001/XMLSchema#",
|
|
135
|
-
|
|
136
|
-
"challenge": "sec:challenge",
|
|
137
|
-
"created": {"@id": "http://purl.org/dc/terms/created", "@type": "xsd:dateTime"},
|
|
138
|
-
"domain": "sec:domain",
|
|
139
|
-
"expires": {"@id": "sec:expiration", "@type": "xsd:dateTime"},
|
|
140
|
-
"jws": "sec:jws",
|
|
141
|
-
"nonce": "sec:nonce",
|
|
142
|
-
"proofPurpose": {
|
|
143
|
-
"@id": "sec:proofPurpose",
|
|
144
|
-
"@type": "@vocab",
|
|
145
|
-
"@context": {
|
|
146
|
-
"@version": 1.1,
|
|
147
|
-
"@protected": true,
|
|
148
|
-
|
|
149
|
-
"id": "@id",
|
|
150
|
-
"type": "@type",
|
|
151
|
-
|
|
152
|
-
"sec": "https://w3id.org/security#",
|
|
153
|
-
|
|
154
|
-
"assertionMethod": {"@id": "sec:assertionMethod", "@type": "@id", "@container": "@set"},
|
|
155
|
-
"authentication": {"@id": "sec:authenticationMethod", "@type": "@id", "@container": "@set"}
|
|
156
|
-
}
|
|
157
|
-
},
|
|
158
|
-
"proofValue": "sec:proofValue",
|
|
159
|
-
"verificationMethod": {"@id": "sec:verificationMethod", "@type": "@id"}
|
|
160
|
-
}
|
|
161
|
-
},
|
|
162
|
-
|
|
163
|
-
"Ed25519Signature2018": {
|
|
164
|
-
"@id": "https://w3id.org/security#Ed25519Signature2018",
|
|
165
|
-
"@context": {
|
|
166
|
-
"@version": 1.1,
|
|
167
|
-
"@protected": true,
|
|
168
|
-
|
|
169
|
-
"id": "@id",
|
|
170
|
-
"type": "@type",
|
|
171
|
-
|
|
172
|
-
"sec": "https://w3id.org/security#",
|
|
173
|
-
"xsd": "http://www.w3.org/2001/XMLSchema#",
|
|
174
|
-
|
|
175
|
-
"challenge": "sec:challenge",
|
|
176
|
-
"created": {"@id": "http://purl.org/dc/terms/created", "@type": "xsd:dateTime"},
|
|
177
|
-
"domain": "sec:domain",
|
|
178
|
-
"expires": {"@id": "sec:expiration", "@type": "xsd:dateTime"},
|
|
179
|
-
"jws": "sec:jws",
|
|
180
|
-
"nonce": "sec:nonce",
|
|
181
|
-
"proofPurpose": {
|
|
182
|
-
"@id": "sec:proofPurpose",
|
|
183
|
-
"@type": "@vocab",
|
|
184
|
-
"@context": {
|
|
185
|
-
"@version": 1.1,
|
|
186
|
-
"@protected": true,
|
|
187
|
-
|
|
188
|
-
"id": "@id",
|
|
189
|
-
"type": "@type",
|
|
190
|
-
|
|
191
|
-
"sec": "https://w3id.org/security#",
|
|
192
|
-
|
|
193
|
-
"assertionMethod": {"@id": "sec:assertionMethod", "@type": "@id", "@container": "@set"},
|
|
194
|
-
"authentication": {"@id": "sec:authenticationMethod", "@type": "@id", "@container": "@set"}
|
|
195
|
-
}
|
|
196
|
-
},
|
|
197
|
-
"proofValue": "sec:proofValue",
|
|
198
|
-
"verificationMethod": {"@id": "sec:verificationMethod", "@type": "@id"}
|
|
199
|
-
}
|
|
200
|
-
},
|
|
201
|
-
|
|
202
|
-
"RsaSignature2018": {
|
|
203
|
-
"@id": "https://w3id.org/security#RsaSignature2018",
|
|
204
|
-
"@context": {
|
|
205
|
-
"@version": 1.1,
|
|
206
|
-
"@protected": true,
|
|
207
|
-
|
|
208
|
-
"challenge": "sec:challenge",
|
|
209
|
-
"created": {"@id": "http://purl.org/dc/terms/created", "@type": "xsd:dateTime"},
|
|
210
|
-
"domain": "sec:domain",
|
|
211
|
-
"expires": {"@id": "sec:expiration", "@type": "xsd:dateTime"},
|
|
212
|
-
"jws": "sec:jws",
|
|
213
|
-
"nonce": "sec:nonce",
|
|
214
|
-
"proofPurpose": {
|
|
215
|
-
"@id": "sec:proofPurpose",
|
|
216
|
-
"@type": "@vocab",
|
|
217
|
-
"@context": {
|
|
218
|
-
"@version": 1.1,
|
|
219
|
-
"@protected": true,
|
|
220
|
-
|
|
221
|
-
"id": "@id",
|
|
222
|
-
"type": "@type",
|
|
223
|
-
|
|
224
|
-
"sec": "https://w3id.org/security#",
|
|
225
|
-
|
|
226
|
-
"assertionMethod": {"@id": "sec:assertionMethod", "@type": "@id", "@container": "@set"},
|
|
227
|
-
"authentication": {"@id": "sec:authenticationMethod", "@type": "@id", "@container": "@set"}
|
|
228
|
-
}
|
|
229
|
-
},
|
|
230
|
-
"proofValue": "sec:proofValue",
|
|
231
|
-
"verificationMethod": {"@id": "sec:verificationMethod", "@type": "@id"}
|
|
232
|
-
}
|
|
233
|
-
},
|
|
234
|
-
|
|
235
|
-
"proof": {"@id": "https://w3id.org/security#proof", "@type": "@id", "@container": "@graph"}
|
|
236
|
-
}
|
|
237
|
-
}
|