Skip to main content

Psbt

@opcat-labs/scrypt-ts-opcat v1.0.4


@opcat-labs/scrypt-ts-opcat / Psbt

Class: Psbt

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:110

Psbt class can parse and generate a PSBT binary based off of the BIP174. There are 6 roles that this class fulfills. (Explained in BIP174)

Creator: This can be done with new Psbt()

Updater: This can be done with psbt.addInput(input), psbt.addInputs(inputs), psbt.addOutput(output), psbt.addOutputs(outputs) when you are looking to add new inputs and outputs to the PSBT, and psbt.updateGlobal(itemObject), psbt.updateInput(itemObject), psbt.updateOutput(itemObject) addInput requires hash: Buffer | string; and index: number; as attributes and can also include any attributes that are used in updateInput method. addOutput requires script: Buffer; and value: number; and likewise can include data for updateOutput. For a list of what attributes should be what types. Check the bip174 library. Also, check the integration tests for some examples of usage.

Signer: There are a few methods. signAllInputs and signAllInputsAsync, which will search all input information for your pubkey or pubkeyhash, and only sign inputs where it finds your info. Or you can explicitly sign a specific input with signInput and signInputAsync. For the async methods you can create a SignerAsync object and use something like a hardware wallet to sign with. (You must implement this)

Combiner: psbts can be combined easily with psbt.combine(psbt2, psbt3, psbt4 ...) the psbt calling combine will always have precedence when a conflict occurs. Combine checks if the internal bitcoin transaction is the same, so be sure that all sequences, version, locktime, etc. are the same before combining.

Input Finalizer: This role is fairly important. Not only does it need to construct the input scriptSigs and witnesses, but it SHOULD verify the signatures etc. Before running psbt.finalizeAllInputs() please run psbt.validateSignaturesOfAllInputs() Running any finalize method will delete any data in the input(s) that are no longer needed due to the finalized scripts containing the information.

Transaction Extractor: This role will perform some checks before returning a Transaction object. Such as fee rate not being larger than maximumFeeRate etc.

Extended by

Constructors

new Psbt()

new Psbt(opts, data): Psbt

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:132

Parameters

opts

PsbtOptsOptional = {}

data

Psbt = ...

Returns

Psbt

Properties

data

readonly data: Psbt

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:134

Accessors

inputCount

Get Signature

get inputCount(): number

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:180

Returns

number


locktime

Get Signature

get locktime(): number

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:192

Returns

number

Set Signature

set locktime(locktime): void

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:196

Parameters
locktime

number

Returns

void


txInputs

Get Signature

get txInputs(): PsbtTxInput[]

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:200

Returns

PsbtTxInput[]


txOutputs

Get Signature

get txOutputs(): PsbtTxOutput[]

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:208

Returns

PsbtTxOutput[]


version

Get Signature

get version(): number

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:184

Returns

number

Set Signature

set version(version): void

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:188

Parameters
version

number

Returns

void

Methods

addInput()

addInput(inputData): this

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:284

Parameters

inputData

PsbtInputExtended

Returns

this


addInputs()

addInputs(inputDatas): this

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:279

Parameters

inputDatas

PsbtInputExtended[]

Returns

this


addOutput()

addOutput(outputData): this

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:317

Parameters

outputData

PsbtOutputExtended & object

Returns

this


addOutputs()

addOutputs(outputDatas): this

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:312

Parameters

outputDatas

PsbtOutputExtended[]

Returns

this


addUnknownKeyValToGlobal()

addUnknownKeyValToGlobal(keyVal): this

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:805

Parameters

keyVal

KeyValue

Returns

this


addUnknownKeyValToInput()

addUnknownKeyValToInput(inputIndex, keyVal): this

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:810

Parameters

inputIndex

number

keyVal

KeyValue

Returns

this


addUnknownKeyValToOutput()

addUnknownKeyValToOutput(outputIndex, keyVal): this

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:815

Parameters

outputIndex

number

keyVal

KeyValue

Returns

this


clearFinalizedInput()

clearFinalizedInput(inputIndex): this

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:820

Parameters

inputIndex

number

Returns

this


clone()

clone(): Psbt

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:237

Returns

Psbt


combine()

combine(...those): this

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:232

Parameters

those

...Psbt[]

Returns

this


extractTransaction()

extractTransaction(disableFeeCheck?): Transaction

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:348

Parameters

disableFeeCheck?

boolean

Returns

Transaction


finalizeAllInputs()

finalizeAllInputs(): this

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:378

Returns

this


finalizeInput()

finalizeInput(inputIndex, finalScriptsFunc?): this

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:384

Parameters

inputIndex

number

finalScriptsFunc?

FinalScriptsFunc

Returns

this


getFee()

getFee(): bigint

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:369

Returns

bigint


getFeeRate()

getFeeRate(): number

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:360

Returns

number


getInputOutput()

getInputOutput(inputIndex): OpcatUtxo

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:228

Parameters

inputIndex

number

The index of the input to get the output for.

Returns

OpcatUtxo

The previous output of the input.


getInputType()

getInputType(inputIndex): AllScriptType

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:421

Parameters

inputIndex

number

Returns

AllScriptType


inputHasHDKey()

inputHasHDKey(inputIndex, root): boolean

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:437

Parameters

inputIndex

number

root

HDSigner

Returns

boolean


inputHasPubkey()

inputHasPubkey(inputIndex, pubkey): boolean

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:432

Parameters

inputIndex

number

pubkey

Uint8Array

Returns

boolean


outputHasHDKey()

outputHasHDKey(outputIndex, root): boolean

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:449

Parameters

outputIndex

number

root

HDSigner

Returns

boolean


outputHasPubkey()

outputHasPubkey(outputIndex, pubkey): boolean

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:445

Parameters

outputIndex

number

pubkey

Uint8Array

Returns

boolean


setInputSequence()

setInputSequence(inputIndex, sequence): this

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:267

Parameters

inputIndex

number

sequence

number

Returns

this


setLocktime()

setLocktime(locktime): this

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:258

Parameters

locktime

number

Returns

this


setMaximumFeeRate()

setMaximumFeeRate(satoshiPerByte): void

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:244

Parameters

satoshiPerByte

number

Returns

void


setVersion()

setVersion(version): this

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:249

Parameters

version

number

Returns

this


signAllInputs()

signAllInputs(keyPair, sighashTypes?): this

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:605

Parameters

keyPair

Signer

sighashTypes?

number[]

Returns

this


signAllInputsAsync()

signAllInputsAsync(keyPair, sighashTypes?): Promise\<void>

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:627

Parameters

keyPair

Signer | SignerAsync

sighashTypes?

number[]

Returns

Promise\<void>


signAllInputsHD()

signAllInputsHD(hdKeyPair, sighashTypes): this

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:512

Parameters

hdKeyPair

HDSigner

sighashTypes

number[] = ...

Returns

this


signAllInputsHDAsync()

signAllInputsHDAsync(hdKeyPair, sighashTypes): Promise\<void>

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:535

Parameters

hdKeyPair

HDSigner | HDSignerAsync

sighashTypes

number[] = ...

Returns

Promise\<void>


signInput()

signInput(inputIndex, keyPair, sighashTypes?): this

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:661

Parameters

inputIndex

number

keyPair

Signer

sighashTypes?

number[]

Returns

this


signInputAsync()

signInputAsync(inputIndex, keyPair, sighashTypes?): Promise\<void>

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:694

Parameters

inputIndex

number

keyPair

Signer | SignerAsync

sighashTypes?

number[]

Returns

Promise\<void>


signInputHD()

signInputHD(inputIndex, hdKeyPair, sighashTypes): this

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:567

Parameters

inputIndex

number

hdKeyPair

HDSigner

sighashTypes

number[] = ...

Returns

this


signInputHDAsync()

signInputHDAsync(inputIndex, hdKeyPair, sighashTypes): Promise\<void>

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:584

Parameters

inputIndex

number

hdKeyPair

HDSigner | HDSignerAsync

sighashTypes

number[] = ...

Returns

Promise\<void>


toBase64()

toBase64(): string

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:784

Returns

string


toBuffer()

toBuffer(): Uint8Array

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:772

Returns

Uint8Array


toHex()

toHex(): string

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:778

Returns

string


updateGlobal()

updateGlobal(updateData): this

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:790

Parameters

updateData

PsbtGlobalUpdate

Returns

this


updateInput()

updateInput(inputIndex, updateData): this

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:795

Parameters

inputIndex

number

updateData

PsbtInputUpdate

Returns

this


updateOutput()

updateOutput(outputIndex, updateData): this

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:800

Parameters

outputIndex

number

updateData

PsbtOutputUpdate

Returns

this


validateSignaturesOfAllInputs()

validateSignaturesOfAllInputs(validator): boolean

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:457

Parameters

validator

ValidateSigFunction

Returns

boolean


validateSignaturesOfInput()

validateSignaturesOfInput(inputIndex, validator, pubkey?): boolean

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:465

Parameters

inputIndex

number

validator

ValidateSigFunction

pubkey?

Uint8Array

Returns

boolean


fromBase64()

static fromBase64(data, opts): Psbt

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:111

Parameters

data

string

opts

PsbtOptsOptional = {}

Returns

Psbt


fromBuffer()

static fromBuffer(buffer, opts): Psbt

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:121

Parameters

buffer

Uint8Array

opts

PsbtOptsOptional = {}

Returns

Psbt


fromHex()

static fromHex(data, opts): Psbt

Defined in: packages/scrypt-ts-opcat/src/psbt/psbt.ts:116

Parameters

data

string

opts

PsbtOptsOptional = {}

Returns

Psbt