diff --git a/src/interfaces/claims.ts b/src/interfaces/claims.ts index b5ad2663..cec47b95 100644 --- a/src/interfaces/claims.ts +++ b/src/interfaces/claims.ts @@ -9,7 +9,6 @@ export interface AgreeVerifiableCredential { // Note that previous VCs may have additional fields. // https://endorser.ch/doc/html/transactions.html#id4 export interface GiveVerifiableCredential extends GenericVerifiableCredential { - "@context"?: string; "@type": "GiveAction"; agent?: { identifier: string }; description?: string; @@ -19,14 +18,45 @@ export interface GiveVerifiableCredential extends GenericVerifiableCredential { object?: { amountOfThisGood: number; unitCode: string }; provider?: GenericVerifiableCredential; recipient?: { identifier: string }; + type: string[]; + issuer: string; + issuanceDate: string; + credentialSubject: { + id: string; + type: "GiveAction"; + offeredBy?: { + type: "Person"; + identifier: string; + }; + offeredTo?: { + type: "Person"; + identifier: string; + }; + offeredToProject?: { + type: "Project"; + identifier: string; + }; + offeredToProjectVisibleToDids?: string[]; + offeredToVisibleToDids?: string[]; + offeredByVisibleToDids?: string[]; + amount: { + type: "QuantitativeValue"; + value: number; + unitCode: string; + }; + startTime?: string; + endTime?: string; + }; } // Note that previous VCs may have additional fields. // https://endorser.ch/doc/html/transactions.html#id8 export interface OfferVerifiableCredential extends GenericVerifiableCredential { - "@context"?: string; "@type": "Offer"; description?: string; + fulfills?: { "@type": string; identifier?: string; lastClaimId?: string }[]; + identifier?: string; + image?: string; includesObject?: { amountOfThisGood: number; unitCode: string }; itemOffered?: { description?: string; @@ -37,9 +67,38 @@ export interface OfferVerifiableCredential extends GenericVerifiableCredential { name?: string; }; }; - offeredBy?: { identifier: string }; + provider?: GenericVerifiableCredential; recipient?: { identifier: string }; validThrough?: string; + type: string[]; + issuer: string; + issuanceDate: string; + credentialSubject: { + id: string; + type: "Offer"; + offeredBy?: { + type: "Person"; + identifier: string; + }; + offeredTo?: { + type: "Person"; + identifier: string; + }; + offeredToProject?: { + type: "Project"; + identifier: string; + }; + offeredToProjectVisibleToDids?: string[]; + offeredToVisibleToDids?: string[]; + offeredByVisibleToDids?: string[]; + amount: { + type: "QuantitativeValue"; + value: number; + unitCode: string; + }; + startTime?: string; + endTime?: string; + }; } // Note that previous VCs may have additional fields. diff --git a/src/libs/util.ts b/src/libs/util.ts index ca719625..ffb5dadf 100644 --- a/src/libs/util.ts +++ b/src/libs/util.ts @@ -389,10 +389,10 @@ export function offerGiverDid( let giver; const claim = veriClaim.claim as OfferVerifiableCredential; if ( - claim.offeredBy?.identifier && - !serverUtil.isHiddenDid(claim.offeredBy.identifier as string) + claim.credentialSubject.offeredBy?.identifier && + !serverUtil.isHiddenDid(claim.credentialSubject.offeredBy.identifier) ) { - giver = claim.offeredBy.identifier; + giver = claim.credentialSubject.offeredBy.identifier; } else if (veriClaim.issuer && !serverUtil.isHiddenDid(veriClaim.issuer)) { giver = veriClaim.issuer; }