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