import { CborByte, CborEncoded, CborUnsigned } from "."; import { ScriptData } from "../scriptData"; const encode = (data: ScriptData): CborEncoded => { const tag = 121 + data.constructor; const reducedFields = data.fields.reduce((acc, field) => { if (typeof field.bytes !== "undefined") { return `${acc}${CborByte.encode(field.bytes)}`; } else if (typeof field.int !== "undefined") { return `${acc}${CborUnsigned.encode(field.int)}`; } else { return acc; } }, ""); return { encoded: `d8${tag.toString(16)}9f${reducedFields}ff`, data, }; }; export const CborScriptData = { encode, };