@harmoniclabs/buildooor
Version:
Cardano transaction builder in typescript
79 lines (78 loc) • 3.62 kB
TypeScript
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;