UNPKG

@indigo-labs/indigo-sdk

Version:

Indigo SDK for interacting with Indigo endpoints via lucid-evolution

49 lines (41 loc) 1.19 kB
import { TSchema, Data } from '@evolution-sdk/evolution'; import { Schema } from 'effect'; const OpaqueData = Schema.typeSchema(Data.DataSchema); export const MultisigSchema = TSchema.Union( TSchema.Struct( { Signature: TSchema.Struct( { keyHash: TSchema.ByteArray, }, { flatFields: true }, ), }, { flatInUnion: true }, ), TSchema.Struct( { AtLeast: TSchema.Struct( { required: TSchema.Integer, authSignatories: TSchema.Array(OpaqueData), }, { flatFields: true }, ), }, { flatInUnion: true }, ), ); export type Multisig = typeof MultisigSchema.Type; export function parseMultisig(datum: string): Multisig { return Data.withSchema(MultisigSchema).fromCBORHex(datum); } export function fromDataMultisig(data: Data.Data): Multisig { return Data.withSchema(MultisigSchema).fromCBORHex(Data.toCBORHex(data)); } export function toDataMultisig(data: Multisig): Data.Data { return Data.withSchema(MultisigSchema).toData(data); } export function serialiseMultisig(datum: Multisig): string { return Data.withSchema(MultisigSchema).toCBORHex(datum); }