Evolution SDK

Metadata.ts

Metadata overview


Table of contents


constructors

empty

Create an empty Metadata map.

Signature

export declare const empty: () => Metadata

Added in v2.0.0

fromEntries

Create Metadata from an array of label-metadatum pairs.

Signature

export declare const fromEntries: (
  entries: Array<[MetadataLabel, TransactionMetadatum.TransactionMetadatum]>
) => Metadata

Added in v2.0.0

remove

Remove a metadata entry by label.

Signature

export declare const remove: (metadata: Metadata, label: MetadataLabel) => Metadata

Added in v2.0.0

set

Add or update a metadata entry.

Signature

export declare const set: (
  metadata: Metadata,
  label: MetadataLabel,
  metadatum: TransactionMetadatum.TransactionMetadatum
) => Metadata

Added in v2.0.0

encoding

toCBORBytes

Convert Metadata to CBOR bytes.

Signature

export declare const toCBORBytes: (
  options?: CBOR.CodecOptions
) => (
  a: Map<
    bigint,
    | string
    | bigint
    | Uint8Array
    | Map<TransactionMetadatum.TransactionMetadatum, TransactionMetadatum.TransactionMetadatum>
    | readonly TransactionMetadatum.TransactionMetadatum[]
  >,
  overrideOptions?: ParseOptions
) => any

Added in v2.0.0

toCBORHex

Convert Metadata to CBOR hex string.

Signature

export declare const toCBORHex: (
  options?: CBOR.CodecOptions
) => (
  a: Map<
    bigint,
    | string
    | bigint
    | Uint8Array
    | Map<TransactionMetadatum.TransactionMetadatum, TransactionMetadatum.TransactionMetadatum>
    | readonly TransactionMetadatum.TransactionMetadatum[]
  >,
  overrideOptions?: ParseOptions
) => string

Added in v2.0.0

model

MetadataLabel (type alias)

Type representing a transaction metadatum label (uint).

Signature

export type MetadataLabel = typeof MetadataLabel.Type

Added in v2.0.0

parsing

fromCBORBytes

Parse Metadata from CBOR bytes.

Signature

export declare const fromCBORBytes: (
  options?: CBOR.CodecOptions
) => (
  i: any,
  overrideOptions?: ParseOptions
) => Map<
  bigint,
  | string
  | bigint
  | Uint8Array
  | Map<TransactionMetadatum.TransactionMetadatum, TransactionMetadatum.TransactionMetadatum>
  | readonly TransactionMetadatum.TransactionMetadatum[]
>

Added in v2.0.0

fromCBORHex

Parse Metadata from CBOR hex string.

Signature

export declare const fromCBORHex: (
  options?: CBOR.CodecOptions
) => (
  i: string,
  overrideOptions?: ParseOptions
) => Map<
  bigint,
  | string
  | bigint
  | Uint8Array
  | Map<TransactionMetadatum.TransactionMetadatum, TransactionMetadatum.TransactionMetadatum>
  | readonly TransactionMetadatum.TransactionMetadatum[]
>

Added in v2.0.0

schemas

CDDLSchema

CDDL schema for Metadata (CBOR-compatible representation). Maps bigint labels to transaction metadatum values.

Uses Schema.typeSchema(TransactionMetadatumSchema) because CBOR decoding returns runtime types (bigint, Uint8Array, Map) directly.

Signature

export declare const CDDLSchema: Schema.MapFromSelf<
  typeof Schema.BigIntFromSelf,
  Schema.suspend<
    | string
    | bigint
    | Uint8Array
    | Map<TransactionMetadatum.TransactionMetadatum, TransactionMetadatum.TransactionMetadatum>
    | readonly TransactionMetadatum.TransactionMetadatum[],
    | string
    | bigint
    | Uint8Array
    | Map<TransactionMetadatum.TransactionMetadatum, TransactionMetadatum.TransactionMetadatum>
    | readonly TransactionMetadatum.TransactionMetadatum[],
    never
  >
>

Added in v2.0.0

FromCBORBytes

Schema transformer for Metadata from CBOR bytes.

Signature

export declare const FromCBORBytes: (
  options?: CBOR.CodecOptions
) => Schema.transform<
  Schema.transformOrFail<
    typeof Schema.Uint8ArrayFromSelf,
    Schema.declare<CBOR.CBOR, CBOR.CBOR, readonly [], never>,
    never
  >,
  Schema.transformOrFail<
    Schema.MapFromSelf<
      typeof Schema.BigIntFromSelf,
      Schema.suspend<
        | string
        | bigint
        | Uint8Array
        | Map<TransactionMetadatum.TransactionMetadatum, TransactionMetadatum.TransactionMetadatum>
        | readonly TransactionMetadatum.TransactionMetadatum[],
        | string
        | bigint
        | Uint8Array
        | Map<TransactionMetadatum.TransactionMetadatum, TransactionMetadatum.TransactionMetadatum>
        | readonly TransactionMetadatum.TransactionMetadatum[],
        never
      >
    >,
    Schema.SchemaClass<
      Map<
        bigint,
        | string
        | bigint
        | Uint8Array
        | Map<TransactionMetadatum.TransactionMetadatum, TransactionMetadatum.TransactionMetadatum>
        | readonly TransactionMetadatum.TransactionMetadatum[]
      >,
      Map<
        bigint,
        | string
        | bigint
        | Uint8Array
        | Map<TransactionMetadatum.TransactionMetadatum, TransactionMetadatum.TransactionMetadatum>
        | readonly TransactionMetadatum.TransactionMetadatum[]
      >,
      never
    >,
    never
  >
>

Added in v2.0.0

FromCBORHex

Schema transformer for Metadata from CBOR hex string.

Signature

export declare const FromCBORHex: (
  options?: CBOR.CodecOptions
) => Schema.transform<
  Schema.Schema<Uint8Array, string, never>,
  Schema.transform<
    Schema.transformOrFail<
      typeof Schema.Uint8ArrayFromSelf,
      Schema.declare<CBOR.CBOR, CBOR.CBOR, readonly [], never>,
      never
    >,
    Schema.transformOrFail<
      Schema.MapFromSelf<
        typeof Schema.BigIntFromSelf,
        Schema.suspend<
          | string
          | bigint
          | Uint8Array
          | Map<TransactionMetadatum.TransactionMetadatum, TransactionMetadatum.TransactionMetadatum>
          | readonly TransactionMetadatum.TransactionMetadatum[],
          | string
          | bigint
          | Uint8Array
          | Map<TransactionMetadatum.TransactionMetadatum, TransactionMetadatum.TransactionMetadatum>
          | readonly TransactionMetadatum.TransactionMetadatum[],
          never
        >
      >,
      Schema.SchemaClass<
        Map<
          bigint,
          | string
          | bigint
          | Uint8Array
          | Map<TransactionMetadatum.TransactionMetadatum, TransactionMetadatum.TransactionMetadatum>
          | readonly TransactionMetadatum.TransactionMetadatum[]
        >,
        Map<
          bigint,
          | string
          | bigint
          | Uint8Array
          | Map<TransactionMetadatum.TransactionMetadatum, TransactionMetadatum.TransactionMetadatum>
          | readonly TransactionMetadatum.TransactionMetadatum[]
        >,
        never
      >,
      never
    >
  >
>

Added in v2.0.0

FromCDDL

Transform schema from CDDL to Metadata.

Signature

export declare const FromCDDL: Schema.transformOrFail<
  Schema.MapFromSelf<
    typeof Schema.BigIntFromSelf,
    Schema.suspend<
      | string
      | bigint
      | Uint8Array
      | Map<TransactionMetadatum.TransactionMetadatum, TransactionMetadatum.TransactionMetadatum>
      | readonly TransactionMetadatum.TransactionMetadatum[],
      | string
      | bigint
      | Uint8Array
      | Map<TransactionMetadatum.TransactionMetadatum, TransactionMetadatum.TransactionMetadatum>
      | readonly TransactionMetadatum.TransactionMetadatum[],
      never
    >
  >,
  Schema.SchemaClass<
    Map<
      bigint,
      | string
      | bigint
      | Uint8Array
      | Map<TransactionMetadatum.TransactionMetadatum, TransactionMetadatum.TransactionMetadatum>
      | readonly TransactionMetadatum.TransactionMetadatum[]
    >,
    Map<
      bigint,
      | string
      | bigint
      | Uint8Array
      | Map<TransactionMetadatum.TransactionMetadatum, TransactionMetadatum.TransactionMetadatum>
      | readonly TransactionMetadatum.TransactionMetadatum[]
    >,
    never
  >,
  never
>

Added in v2.0.0

Metadata

Schema for transaction metadata (map from labels to metadata).

Represents: metadata = {* transaction_metadatum_label => transaction_metadatum}

Signature

export declare const Metadata: Schema.transform<
  Schema.Array$<
    Schema.Tuple2<
      Schema.refine<bigint, typeof Schema.BigInt>,
      Schema.Union<
        [
          Schema.transform<
            Schema.Array$<
              Schema.Tuple2<
                Schema.suspend<
                  TransactionMetadatum.TransactionMetadatum,
                  TransactionMetadatum.TransactionMetadatumEncoded,
                  never
                >,
                Schema.suspend<
                  TransactionMetadatum.TransactionMetadatum,
                  TransactionMetadatum.TransactionMetadatumEncoded,
                  never
                >
              >
            >,
            Schema.MapFromSelf<
              Schema.SchemaClass<
                TransactionMetadatum.TransactionMetadatum,
                TransactionMetadatum.TransactionMetadatum,
                never
              >,
              Schema.SchemaClass<
                TransactionMetadatum.TransactionMetadatum,
                TransactionMetadatum.TransactionMetadatum,
                never
              >
            >
          >,
          Schema.Array$<
            Schema.suspend<
              TransactionMetadatum.TransactionMetadatum,
              TransactionMetadatum.TransactionMetadatumEncoded,
              never
            >
          >,
          Schema.refine<bigint, typeof Schema.BigInt>,
          Schema.Schema<Uint8Array, string, never>,
          Schema.SchemaClass<string, string, never>
        ]
      >
    >
  >,
  Schema.MapFromSelf<
    Schema.SchemaClass<bigint, bigint, never>,
    Schema.SchemaClass<
      | string
      | bigint
      | Uint8Array
      | Map<TransactionMetadatum.TransactionMetadatum, TransactionMetadatum.TransactionMetadatum>
      | readonly TransactionMetadatum.TransactionMetadatum[],
      | string
      | bigint
      | Uint8Array
      | Map<TransactionMetadatum.TransactionMetadatum, TransactionMetadatum.TransactionMetadatum>
      | readonly TransactionMetadatum.TransactionMetadatum[],
      never
    >
  >
>

Added in v2.0.0

MetadataLabel

Schema for transaction metadatum label (uint64 per Cardano CDDL spec). Labels must be in range 0 to 2^64-1.

Signature

export declare const MetadataLabel: Schema.refine<bigint, typeof Schema.BigInt>

Added in v2.0.0

testing

arbitrary

FastCheck arbitrary for generating random Metadata instances.

Signature

export declare const arbitrary: FastCheck.Arbitrary<
  Map<
    bigint,
    | string
    | bigint
    | Uint8Array
    | Map<TransactionMetadatum.TransactionMetadatum, TransactionMetadatum.TransactionMetadatum>
    | readonly TransactionMetadatum.TransactionMetadatum[]
  >
>

Added in v2.0.0

utilities

entries

Get all entries in the metadata.

Signature

export declare const entries: (metadata: Metadata) => Array<[MetadataLabel, TransactionMetadatum.TransactionMetadatum]>

Added in v2.0.0

get

Get a metadata entry by label.

Signature

export declare const get: (
  metadata: Metadata,
  label: MetadataLabel
) => TransactionMetadatum.TransactionMetadatum | undefined

Added in v2.0.0

has

Check if a label exists in the metadata.

Signature

export declare const has: (metadata: Metadata, label: MetadataLabel) => boolean

Added in v2.0.0

labels

Get all labels in the metadata.

Signature

export declare const labels: (metadata: Metadata) => Array<MetadataLabel>

Added in v2.0.0

size

Get the size (number of entries) of the metadata.

Signature

export declare const size: (metadata: Metadata) => number

Added in v2.0.0

values

Get all metadata values in the metadata.

Signature

export declare const values: (metadata: Metadata) => Array<TransactionMetadatum.TransactionMetadatum>

Added in v2.0.0

utils

Metadata (type alias)

Signature

export type Metadata = typeof Metadata.Type