UNPKG

@harmoniclabs/buildooor

Version:

Cardano transaction builder in typescript

43 lines (42 loc) 1.65 kB
import { Address, AddressStr, Hash32, ProtocolParameters, UTxO } from "@harmoniclabs/cardano-ledger-ts"; import { CanResolveToUTxO } from "../CanResolveToUTxO/CanResolveToUTxO.js"; import { GenesisInfos } from "../GenesisInfos.js"; import { CanBeData } from "../../utils/CanBeData.js"; export interface IGetGenesisInfos { getGenesisInfos: () => Promise<GenesisInfos>; } export interface IGetProtocolParameters { getProtocolParameters: () => Promise<ProtocolParameters>; } export interface IResolveUTxOs { resolveUtxos: (utxos: CanResolveToUTxO[]) => Promise<UTxO[]>; } export interface IResolveDatumHashes { resolveDatumHashes: (hashes: Hash32[]) => Promise<{ hash: string; datum: CanBeData; }[]>; } export interface ISubmitTx { /** * * @param {string} txCBOR hex encoded CBOR value\ * @returns {string} hash of the submitted transaction */ submitTx: (txCBOR: string) => Promise<string>; } export interface ISignTx { /** * * @param {string} txCBOR hex encoded CBOR value * @returns {string} hex encoded CBOR for a `TxWitnessSet` value according to the cardano-ledger CDDL (eg. valid input for `TxWitnessSet.fromCbor`) */ signTx: (txCBOR: string) => Promise<string>; } export interface IGetChangeAddress { getChangeAddress: () => Promise<AddressStr | Address>; } export interface ITxRunnerProvider extends IGetGenesisInfos, IResolveUTxOs, IResolveDatumHashes, Partial<IGetChangeAddress> { } export interface IProvider extends IGetGenesisInfos, IGetProtocolParameters, IResolveUTxOs, IResolveDatumHashes, ISubmitTx, ISignTx, Partial<IGetChangeAddress> { }