export interface TxBuilder {
addCollateral(utxo: TxInput | TxInput[]): TxBuilder
addDCert(dcert: DCert): TxBuilder
addOutput(output: TxOutput[]): TxBuilder
addSigners(hash: PubKeyHash[]): TxBuilder
apply(fn: (b: TxBuilder) => any): TxBuilder
attachNativeScript(script: NativeScript): TxBuilder
attachUplcProgram(program: UplcProgramV2 | UplcProgramV1): TxBuilder
build(config: TxBuilderFinalConfig): Promise<Tx>
buildUnsafe(config: TxBuilderFinalConfig): Promise<Tx>
config: TxBuilderConfig
delegateUnsafe(
hash: PubKeyHash | StakingValidatorHash<any>,
poolId: PubKeyHashLike,
redeemer?: UplcData | LazyRedeemerData<UplcData>
): TxBuilder
delegateWithoutRedeemer(
hash: PubKeyHash,
poolId: PubKeyHashLike
): TxBuilder
delegateWithRedeemer<TRedeemer>(
hash: StakingValidatorHash<StakingContext<any, TRedeemer>>,
poolId: PubKeyHashLike,
redeemer: TRedeemer
): TxBuilder
deregisterUnsafe(
hash: PubKeyHash | StakingValidatorHash<any>,
redeemer?: UplcData | LazyRedeemerData<UplcData>
): TxBuilder
deregisterWithoutRedeemer(hash: PubKeyHash): TxBuilder
deregisterWithRedeemer<TRedeemer>(
hash: StakingValidatorHash<StakingContext<any, TRedeemer>>,
redeemer: TRedeemer
): TxBuilder
hasDatum(data: UplcData): boolean
hasMetadata(): boolean
hasUplcScripts(): boolean
inputs: TxInput[]
mintAssetClassUnsafe(
assetClass: AssetClass,
quantity: IntLike,
redeemer?: UplcData | LazyRedeemerData<UplcData>
): TxBuilder
mintAssetClassWithLazyRedeemer<TRedeemer>(
assetClass: AssetClass<MintingContext<any, TRedeemer>>,
quantity: IntLike,
redeemer: LazyRedeemerData<TRedeemer>
): TxBuilder
mintAssetClassWithoutRedeemer(
assetClass: AssetClass,
quantity: IntLike
): TxBuilder
mintAssetClassWithRedeemer<TRedeemer>(
assetClass: AssetClass<MintingContext<any, TRedeemer>>,
quantity: IntLike,
redeemer: TRedeemer
): TxBuilder
mintedTokens: Assets
mintPolicyTokensUnsafe(
policy: MintingPolicyHashLike,
tokens: [BytesLike, IntLike][],
redeemer?: UplcData | LazyRedeemerData<UplcData>
): TxBuilder
mintPolicyTokensWithoutRedeemer(
policy: MintingPolicyHash,
tokens: [BytesLike, IntLike][]
): TxBuilder
mintPolicyTokensWithRedeemer<TRedeemer>(
policy: MintingPolicyHash<MintingContext<any, TRedeemer>>,
tokens: [BytesLike, IntLike][],
redeemer: TRedeemer
): TxBuilder
mintTokenValueWithoutRedeemer(token: TokenValue): TxBuilder
mintTokenValueWithRedeemer<TRedeemer>(
token: TokenValue<MintingContext<any, TRedeemer>>,
redeemer: TRedeemer
): TxBuilder
outputs: TxOutput[]
payUnsafe(
addr: ShelleyAddressLike,
value: ValueLike,
datum?: TxOutputDatum
): TxBuilder
payWithDatum<TDatum>(
address: ShelleyAddress<ValidatorHash<DatumPaymentContext<TDatum>>>,
value: ValueLike,
datum: TxOutputDatumCastable<TDatum>
): TxBuilder
payWithoutDatum(
address: ShelleyAddress<PubKeyHash>,
value: ValueLike
): TxBuilder
refer(utxos: TxInput<any>[]): TxBuilder
refInputs: TxInput[]
reset(): TxBuilder
setMetadataAttribute(
key: number,
value: TxMetadataAttr
): TxBuilder
setMetadataAttributes(attributes: {[key: number]: TxMetadataAttr}): TxBuilder
signers: PubKeyHash[]
spendUnsafe(
utxos: TxInput<any> | TxInput<any>[],
redeemer?: UplcData | LazyRedeemerData<UplcData>
): TxBuilder
spendWithLazyRedeemer<TRedeemer>(
utxos: TxInput<ValidatorHash<SpendingContext<any, any, any, TRedeemer>>> | TxInput<ValidatorHash<SpendingContext<any, any, any, TRedeemer>>>[],
redeemer: LazyRedeemerData<TRedeemer>
): TxBuilder
spendWithoutRedeemer(utxos: TxInput<PubKeyHash>[]): TxBuilder
spendWithRedeemer<TRedeemer>(
utxos: TxInput<ValidatorHash<SpendingContext<any, any, any, TRedeemer>>> | TxInput<ValidatorHash<SpendingContext<any, any, any, TRedeemer>>>[],
redeemer: TRedeemer
): TxBuilder
sumInputAndMintedAssets(): Assets
sumOutputAssets(): Assets
sumOutputValue(): Value
validFromSlot(slot: IntLike): TxBuilder
validFromTime(time: TimeLike): TxBuilder
validToSlot(slot: IntLike): TxBuilder
validToTime(time: TimeLike): TxBuilder
withdrawUnsafe(
addr: StakingAddressLike,
lovelace: IntLike,
redeemer?: UplcData | LazyRedeemerData<UplcData>
): TxBuilder
withdrawWithLazyRedeemer<TRedeemer>(
addr: StakingAddress<StakingValidatorHash<StakingContext<any, TRedeemer>>>,
lovelace: IntLike,
redeemer: LazyRedeemerData<TRedeemer>
): TxBuilder
withdrawWithoutRedeemer(
addr: StakingAddress<PubKeyHash>,
lovelace: IntLike
): TxBuilder
withdrawWithRedeemer<TRedeemer>(
addr: StakingAddress<StakingValidatorHash<StakingContext<any, TRedeemer>>>,
lovelace: IntLike,
redeemer: TRedeemer
): TxBuilder
}
Properties
addCollateral
addCollateral(utxo: TxInput | TxInput[]): TxBuilder
addDCert
addDCert(dcert: DCert): TxBuilder
addOutput
addOutput(output: TxOutput[]): TxBuilder
Sorts that assets in the output if not already sorted (mutates
output
s) (needed by the Flint wallet)
Throws an error if any the value entries are non-positive
Throws an error if the output doesn't include a datum but is sent to a non-nativescript validator
addSigners
addSigners(hash: PubKeyHash[]): TxBuilder
apply
apply(fn: (b: TxBuilder) => any): TxBuilder
Apply a function to the TxBuilder instance
Useful for chaining compositions of TxBuilder mutations
The return value of fn is unused
attachNativeScript
attachNativeScript(script: NativeScript): TxBuilder
attachUplcProgram
attachUplcProgram(program: UplcProgramV2 | UplcProgramV1): TxBuilder
build
build(config: TxBuilderFinalConfig): Promise<Tx>
Builds and runs validation logic on the transaction,
throwing any validation errors found
The resulting transaction may likely still require
Tx.addSignature /
Tx.addSignatures before
it is submitted to the network.
The [tx.validate|transaction-validation logic](/docs/sdk/tx-utils/tx.validate|transaction-validation logic) run will throw an
error if the transaction is invalid for any reason, including script errors.
The
config.throwBuildPhaseScriptErrors
default (true) will throw script errors
during the build phase, but you can set it to false to defer those errors to the validate
phase.
Use
buildUnsafe to get a transaction with possible
Tx.hasValidationError set, and no thrown exception.
buildUnsafe
buildUnsafe(config: TxBuilderFinalConfig): Promise<Tx>
Builds and runs validation logic on the transaction
Always returns a built transaction that has been validation-checked.
if the
throwBuildPhaseScriptErrors
option is true, then any script errors
found during transaction-building will be thrown, and the full transaction
validation is not run.
Caller should check
Tx.hasValidationError, which will be
false
or a validation error string, in case any transaction validations
are found.
Use
TxBuilder.build if you want validation errors to be thrown.
config
config: TxBuilderConfig
delegateUnsafe
delegateUnsafe(
hash: PubKeyHash | StakingValidatorHash<any>,
poolId: PubKeyHashLike,
redeemer?: UplcData | LazyRedeemerData<UplcData>
): TxBuilder
delegateWithoutRedeemer
delegateWithoutRedeemer(
hash: PubKeyHash,
poolId: PubKeyHashLike
): TxBuilder
delegateWithRedeemer
delegateWithRedeemer<TRedeemer>(
hash: StakingValidatorHash<StakingContext<any, TRedeemer>>,
poolId: PubKeyHashLike,
redeemer: TRedeemer
): TxBuilder
deregisterUnsafe
deregisterUnsafe(
hash: PubKeyHash | StakingValidatorHash<any>,
redeemer?: UplcData | LazyRedeemerData<UplcData>
): TxBuilder
deregisterWithoutRedeemer
deregisterWithoutRedeemer(hash: PubKeyHash): TxBuilder
deregisterWithRedeemer
deregisterWithRedeemer<TRedeemer>(
hash: StakingValidatorHash<StakingContext<any, TRedeemer>>,
redeemer: TRedeemer
): TxBuilder
hasDatum
hasDatum(data: UplcData): boolean
hasUplcScripts
hasUplcScripts(): boolean
inputs: TxInput[]
mintAssetClassUnsafe
mintAssetClassUnsafe(
assetClass: AssetClass,
quantity: IntLike,
redeemer?: UplcData | LazyRedeemerData<UplcData>
): TxBuilder
mintAssetClassWithLazyRedeemer
mintAssetClassWithLazyRedeemer<TRedeemer>(
assetClass: AssetClass<MintingContext<any, TRedeemer>>,
quantity: IntLike,
redeemer: LazyRedeemerData<TRedeemer>
): TxBuilder
Adds minting instructions to the transaction, given a transaction context supporting redeemer transformation
mintAssetClassWithoutRedeemer
mintAssetClassWithoutRedeemer(
assetClass: AssetClass,
quantity: IntLike
): TxBuilder
Adds minting instructions to the transaction without a redeemer
mintAssetClassWithRedeemer
mintAssetClassWithRedeemer<TRedeemer>(
assetClass: AssetClass<MintingContext<any, TRedeemer>>,
quantity: IntLike,
redeemer: TRedeemer
): TxBuilder
Adds minting instructions to the transaction, given a transaction context supporting redeemer transformation
mintedTokens
mintedTokens: Assets
mintPolicyTokensUnsafe
mintPolicyTokensUnsafe(
policy: MintingPolicyHashLike,
tokens: [BytesLike, IntLike][],
redeemer?: UplcData | LazyRedeemerData<UplcData>
): TxBuilder
Mint a list of tokens associated with a given
MintingPolicyHash
.
Throws an error if the given
MintingPolicyHash
was already used in a previous call to
mint()
.
The token names can either by a list of bytes or a hexadecimal string.
Also throws an error if the redeemer is
undefined
, and the minting policy isn't a known
NativeScript
.
mintPolicyTokensWithoutRedeemer
mintPolicyTokensWithoutRedeemer(
policy: MintingPolicyHash,
tokens: [BytesLike, IntLike][]
): TxBuilder
Adds minting instructions to the transaction without a redeemer
mintPolicyTokensWithRedeemer
mintPolicyTokensWithRedeemer<TRedeemer>(
policy: MintingPolicyHash<MintingContext<any, TRedeemer>>,
tokens: [BytesLike, IntLike][],
redeemer: TRedeemer
): TxBuilder
Adds minting instructions to the transaction, given a transaction context supporting redeemer transformation
mintTokenValueWithoutRedeemer
mintTokenValueWithoutRedeemer(token: TokenValue): TxBuilder
Adds minting instructions to the transaction without a redeemer
mintTokenValueWithRedeemer
mintTokenValueWithRedeemer<TRedeemer>(
token: TokenValue<MintingContext<any, TRedeemer>>,
redeemer: TRedeemer
): TxBuilder
Adds minting instructions to the transaction, given a transaction context supporting redeemer transformation
outputs
outputs: TxOutput[]
payUnsafe
payUnsafe(
addr: ShelleyAddressLike,
value: ValueLike,
datum?: TxOutputDatum
): TxBuilder
payWithDatum
payWithDatum<TDatum>(
address: ShelleyAddress<ValidatorHash<DatumPaymentContext<TDatum>>>,
value: ValueLike,
datum: TxOutputDatumCastable<TDatum>
): TxBuilder
payWithoutDatum
payWithoutDatum(
address: ShelleyAddress<PubKeyHash>,
value: ValueLike
): TxBuilder
refer
refer(utxos: TxInput<any>[]): TxBuilder
Include a reference input
refInputs: TxInput[]
reset
reset(): TxBuilder
setMetadataAttribute(
key: number,
value: TxMetadataAttr
): TxBuilder
setMetadataAttributes(attributes: {[key: number]: TxMetadataAttr}): TxBuilder
signers
signers: PubKeyHash[]
spendUnsafe
spendUnsafe(
utxos: TxInput<any> | TxInput<any>[],
redeemer?: UplcData | LazyRedeemerData<UplcData>
): TxBuilder
Add a UTxO instance as an input to the transaction being built.
Throws an error if the UTxO is locked at a script address but a redeemer isn't specified (unless the script is a known
NativeScript
).
spendWithLazyRedeemer
spendWithLazyRedeemer<TRedeemer>(
utxos: TxInput<ValidatorHash<SpendingContext<any, any, any, TRedeemer>>> | TxInput<ValidatorHash<SpendingContext<any, any, any, TRedeemer>>>[],
redeemer: LazyRedeemerData<TRedeemer>
): TxBuilder
spendWithoutRedeemer
spendWithoutRedeemer(utxos: TxInput<PubKeyHash>[]): TxBuilder
spendWithRedeemer
spendWithRedeemer<TRedeemer>(
utxos: TxInput<ValidatorHash<SpendingContext<any, any, any, TRedeemer>>> | TxInput<ValidatorHash<SpendingContext<any, any, any, TRedeemer>>>[],
redeemer: TRedeemer
): TxBuilder
sumInputAndMintedAssets(): Assets
Excludes lovelace
sumOutputAssets
sumOutputAssets(): Assets
Excludes lovelace
sumOutputValue
sumOutputValue(): Value
validFromSlot
validFromSlot(slot: IntLike): TxBuilder
Set the start of the valid time range by specifying a slot.
validFromTime
validFromTime(time: TimeLike): TxBuilder
Set the start of the valid time range by specifying a time.
validToSlot
validToSlot(slot: IntLike): TxBuilder
Set the end of the valid time range by specifying a slot.
validToTime
validToTime(time: TimeLike): TxBuilder
Set the end of the valid time range by specifying a time.
withdrawUnsafe
withdrawUnsafe(
addr: StakingAddressLike,
lovelace: IntLike,
redeemer?: UplcData | LazyRedeemerData<UplcData>
): TxBuilder
withdrawWithLazyRedeemer
withdrawWithLazyRedeemer<TRedeemer>(
addr: StakingAddress<StakingValidatorHash<StakingContext<any, TRedeemer>>>,
lovelace: IntLike,
redeemer: LazyRedeemerData<TRedeemer>
): TxBuilder
withdrawWithoutRedeemer
withdrawWithoutRedeemer(
addr: StakingAddress<PubKeyHash>,
lovelace: IntLike
): TxBuilder
withdrawWithRedeemer
withdrawWithRedeemer<TRedeemer>(
addr: StakingAddress<StakingValidatorHash<StakingContext<any, TRedeemer>>>,
lovelace: IntLike,
redeemer: TRedeemer
): TxBuilder