Aller au contenu
English

ArtifactContract

import type { ArtifactContract } from "@elie-laloum/outpost";
  • encodeRequis
    (value: T) => Promise<Uint8Array>
    Valide une valeur et renvoie les octets à stocker. Rejette une valeur que le contrat n’accepte pas.
  • decodeRequis
    (bytes: Uint8Array) => Promise<T>
    Reconvertit des octets stockés en valeur validée. Rejette des octets que le contrat n’accepte pas.
  • nameRequis
    string
    Nom du contrat, non vide et de 1024 caractères au maximum. Une lecture exige le même nom.
  • versionRequis
    string
    Version du contrat que vous choisissez, non vide et de 1024 caractères au maximum. Une lecture exige la même version : changez-la quand le format change.
  • encodingRequis
    "json" | "binary"
    json pour un contrat defineJsonArtifact(), binary pour un contrat defineBinaryArtifact(). Une lecture exige le même encodage.
export interface ArtifactContract<T> extends ArtifactIdentity {
  encode(value: T): Promise<Uint8Array>;
  decode(bytes: Uint8Array): Promise<T>;
}