@indigo-labs/indigo-sdk
Version:
Indigo SDK for interacting with Indigo endpoints via lucid-evolution
49 lines (41 loc) • 1.19 kB
text/typescript
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);
}