@harmoniclabs/buildooor
Version:
Cardano transaction builder in typescript
43 lines (42 loc) • 1.65 kB
TypeScript
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> {
}