@didtools/codecs
Version:
Common codecs for DID packages.
41 lines (40 loc) • 995 B
JavaScript
import { array, keyof, optional, sparse, strict, string } from 'codeco';
export const CacaoHeader = strict({
t: keyof({
eip4361: null,
caip122: null
})
}, 'CacaoHeader');
export const CacaoPayload = sparse({
domain: string,
iss: string,
aud: string,
version: string,
nonce: string,
iat: string,
nbf: optional(string),
exp: optional(string),
statement: optional(string),
requestId: optional(string),
resources: optional(array(string))
}, 'CacaoPayload');
export const CacaoSignature = strict({
t: keyof({
eip191: null,
eip1271: null,
'solana:ed25519': null,
'tezos:ed25519': null,
'stacks:secp256k1': null
}),
s: string
}, 'CacaoSignature');
export const Cacao = sparse({
h: CacaoHeader,
p: CacaoPayload,
s: optional(CacaoSignature)
}, 'Cacao');
export const SignedCacao = strict({
h: CacaoHeader,
p: CacaoPayload,
s: CacaoSignature
}, 'SignedCacao');