trustchain_api/
lib.rs

1//! API for DID, VC and VP functionality.
2pub mod api;
3use crate::api::{TrustchainDIDAPI, TrustchainDataAPI, TrustchainVCAPI, TrustchainVPAPI};
4
5/// A type for implementing CLI traits on.
6pub struct TrustchainAPI;
7
8impl TrustchainDIDAPI for TrustchainAPI {}
9impl TrustchainVCAPI for TrustchainAPI {}
10impl TrustchainVPAPI for TrustchainAPI {}
11impl TrustchainDataAPI for TrustchainAPI {}
12
13/// A template for data credentials.
14/// Uses the dataset attribute from schema.org.
15/// The context (i.e. ["https://schema.org/"](https://schema.org/)) is checked by the SSI library
16/// against this [list](https://github.com/spruceid/ssi/blob/976e2607080c20cd5789b977e477e98b6417f8af/ssi-json-ld/src/lib.rs#L41)
17/// with an exact string match. (Therefore the trailing "/" is required.)
18pub(crate) const DATA_CREDENTIAL_TEMPLATE: &str = r###"
19{
20    "@context": [
21      "https://www.w3.org/2018/credentials/v1",
22      "https://www.w3.org/2018/credentials/examples/v1",
23      "https://schema.org/"
24    ],
25    "type": [
26      "VerifiableCredential"
27    ],
28    "credentialSubject": {
29      "dataset": ""
30    },
31    "issuer": "did:ion:test:XYZ",
32    "issuanceDate": "2000-01-01T00:00:00.0Z"
33}
34"###;
35pub(crate) const DATA_ATTRIBUTE: &str = "dataset";