UNPKG

@harmoniclabs/buildooor

Version:

Cardano transaction builder in typescript

79 lines (78 loc) 3.62 kB
import { Address, AddressStr, CanBeHash28, IProposalProcedure, IUTxO, IVotingProceduresEntry, PubKeyHash, TxMetadata, TxOut, UTxO } from "@harmoniclabs/cardano-ledger-ts"; import { NormalizedITxBuildCert, type ITxBuildCert } from "./ITxBuildCert.js"; import { NormalizedITxBuildInput, type ITxBuildInput } from "./ITxBuildInput/ITxBuildInput.js"; import { NormalizedITxBuildMint, type ITxBuildMint } from "./ITxBuildMint.js"; import { type ITxBuildOutput } from "./ITxBuildOutput.js"; import { NormalizedITxBuildWithdrawal, type ITxBuildWithdrawal } from "./ITxBuildWithdrawal.js"; import { CanBeUInteger } from "../utils/ints.js"; import { ChangeInfos, NormalizedChangeInfos } from "./ChangeInfos/ChangeInfos.js"; import { ITxBuildVotingProcedure, NormalizedITxBuildVotingProcedure } from "./ITxBuildVotingProcedure.js"; import { ITxBuildProposalProcedure, NormalizedITxBuildProposalProcedure } from "./ITxBuildProposalProcedure.js"; import { CanBeCborString } from "@harmoniclabs/cbor"; export interface ITxBuildArgs { inputs: (ITxBuildInput | IUTxO)[]; /** * same as `changeAddress` but allows to specify datums and ref scripts * @example * ```ts * txBuilder.build({ * change: { address: "your_address" } * }); * ``` */ changeAddress?: Address | AddressStr | CanBeCborString; change?: ChangeInfos; outputs?: ITxBuildOutput[]; readonlyRefInputs?: IUTxO[]; requiredSigners?: CanBeHash28[]; collaterals?: IUTxO[]; collateralReturn?: ITxBuildOutput; mints?: ITxBuildMint[]; invalidBefore?: CanBeUInteger; invalidAfter?: CanBeUInteger; certificates?: ITxBuildCert[]; withdrawals?: ITxBuildWithdrawal[]; /** explicitly sets the fee (if higher than calculated minFee) */ fee?: CanBeUInteger; /** * # metadata message following cip20 * * overwrites the metadata at label 674 if already present. **/ memo?: string; metadata?: TxMetadata; votingProcedures?: (IVotingProceduresEntry | ITxBuildVotingProcedure)[]; proposalProcedures?: (IProposalProcedure | ITxBuildProposalProcedure)[]; currentTreasuryValue?: CanBeUInteger; paymentToTreasury?: CanBeUInteger; } export interface NormalizedITxBuildArgs extends ITxBuildArgs { inputs: NormalizedITxBuildInput[]; changeAddress?: Address; change?: NormalizedChangeInfos; outputs?: TxOut[]; readonlyRefInputs?: UTxO[]; requiredSigners?: PubKeyHash[]; collaterals?: UTxO[]; collateralReturn?: TxOut; mints?: NormalizedITxBuildMint[]; invalidBefore?: CanBeUInteger; invalidAfter?: CanBeUInteger; certificates?: NormalizedITxBuildCert[]; withdrawals?: NormalizedITxBuildWithdrawal[]; fee?: bigint; /** * # metadata message following cip20 * * overwrites the metadata at label 674 if already present. **/ memo?: string; metadata?: TxMetadata; votingProcedures?: NormalizedITxBuildVotingProcedure[]; proposalProcedures?: NormalizedITxBuildProposalProcedure[]; currentTreasuryValue?: CanBeUInteger; paymentToTreasury?: CanBeUInteger; } export declare function normalizeITxBuildArgs({ inputs, change, changeAddress, outputs, readonlyRefInputs, requiredSigners, collaterals, collateralReturn, mints, invalidBefore, invalidAfter, certificates, withdrawals, fee, memo, metadata, votingProcedures, proposalProcedures, currentTreasuryValue, paymentToTreasury }: ITxBuildArgs): NormalizedITxBuildArgs; /** @deprecated use `normalizeITxBuildArgs` instead */ export declare function cloneITxBuildArgs(args: ITxBuildArgs): ITxBuildArgs;