Skip to content

Latest commit

 

History

History
2189 lines (1331 loc) · 51.1 KB

README.md

File metadata and controls

2189 lines (1331 loc) · 51.1 KB

beignet

beignet

Table of contents

Enumerations

Classes

Interfaces

Type Aliases

Variables

Functions

Type Aliases

ElectrumConnectionPubSub

Ƭ ElectrumConnectionPubSub: Object

Type declaration

Name Type
publish (isConnected: boolean) => void
subscribe (callback: (isConnected: boolean) => void) => ElectrumConnectionSubscription

Defined in

types/electrum.ts:174


ElectrumConnectionSubscription

Ƭ ElectrumConnectionSubscription: Object

Type declaration

Name Type
remove () => void

Defined in

types/electrum.ts:181


InputData

Ƭ InputData: Object

Index signature

▪ [key: string]: { addresses: string[] ; value: number }

Defined in

types/wallet.ts:383


ObjectKeys

Ƭ ObjectKeys<T>: `${Exclude<keyof T, symbol>}`

Type parameters

Name Type
T extends object

Defined in

types/wallet.ts:456


Result

Ƭ Result<T>: Ok<T> | Err<T>

Represents a result that can be successful (Ok) or contain an error (Err).

Type parameters

Name
T

Defined in

utils/result.ts:4


TAddressIndexInfo

Ƭ TAddressIndexInfo: Object

Type declaration

Name Type
addressIndex IAddress
changeAddressIndex IAddress
lastUsedAddressIndex IAddress
lastUsedChangeAddressIndex IAddress

Defined in

types/wallet.ts:477


TAddressLabel

Ƭ TAddressLabel: "bech32" | "segwit" | "legacy"

Defined in

types/wallet.ts:17


TAddressTxResponse

Ƭ TAddressTxResponse: Object

Type declaration

Name Type
data string
error? { code: number ; message: string }
error.code number
error.message string
id number
jsonrpc string
param string
result TTxResult[]

Defined in

types/electrum.ts:77


TAddressType

Ƭ TAddressType: "p2wpkh" | "p2sh" | "p2pkh"

Defined in

types/wallet.ts:16


TAddressTypeContent

Ƭ TAddressTypeContent<T>: { [key in EAddressType]: T }

Type parameters

Name
T

Defined in

types/wallet.ts:48


TAddressTypes

Ƭ TAddressTypes: { [key in EAddressType]: Readonly<IAddressTypeData> }

Defined in

types/wallet.ts:23


TAvailableNetworks

Ƭ TAvailableNetworks: "bitcoin" | "testnet" | "regtest"

Defined in

types/wallet.ts:15


TConnectToElectrumRes

Ƭ TConnectToElectrumRes: string

Defined in

types/electrum.ts:15


TDecodeRawTx

Ƭ TDecodeRawTx: Object

Type declaration

Name Type
locktime number
size number
tx_hash string
txid string
version number
vin IVin[]
vout IVout[]
vsize number
weight number

Defined in

types/transaction.ts:43


TElectrumNetworks

Ƭ TElectrumNetworks: "bitcoin" | "bitcoinTestnet" | "bitcoinRegtest"

Defined in

types/electrum.ts:9


TGapLimitOptions

Ƭ TGapLimitOptions: Object

Type declaration

Name Type
lookAhead number
lookBehind number

Defined in

types/transaction.ts:62


TGetAddressHistory

Ƭ TGetAddressHistory: Object

Type declaration

Name Type
height number
txid string

Defined in

types/electrum.ts:185


TGetByteCountInput

Ƭ TGetByteCountInput: `MULTISIG-P2SH:${number}-${number}` | `MULTISIG-P2WSH:${number}-${number}` | `MULTISIG-P2SH-P2WSH:${number}-${number}` | "P2SH-P2WPKH" | "P2PKH" | "p2pkh" | "P2WPKH" | "p2wpkh" | "P2SH" | "p2sh" | "P2TR" | "p2tr"

Defined in

types/wallet.ts:398


TGetByteCountInputs

Ƭ TGetByteCountInputs: { [key in TGetByteCountInput]?: number }

Defined in

types/wallet.ts:390


TGetByteCountOutput

Ƭ TGetByteCountOutput: "P2SH" | "P2PKH" | "P2WPKH" | "P2WSH" | "p2wpkh" | "p2sh" | "p2pkh" | "P2TR" | "p2tr"

Defined in

types/wallet.ts:412


TGetByteCountOutputs

Ƭ TGetByteCountOutputs: { [key in TGetByteCountOutput]?: number }

Defined in

types/wallet.ts:394


TGetData

Ƭ TGetData: <K>(key: string) => Promise<Result<IWalletData[K]>>

Type declaration

▸ <K>(key): Promise<Result<IWalletData[K]>>

Type parameters
Name Type
K extends keyof IWalletData
Parameters
Name Type
key string
Returns

Promise<Result<IWalletData[K]>>

Defined in

types/wallet.ts:176


TGetTotalFeeObj

Ƭ TGetTotalFeeObj: Object

Type declaration

Name Type
maxSatPerByte number
satsPerByte number
totalFee number
transactionByteCount number

Defined in

types/transaction.ts:55


TKeyDerivationAccount

Ƭ TKeyDerivationAccount: "0" | string

Defined in

types/wallet.ts:20


TKeyDerivationChange

Ƭ TKeyDerivationChange: "0" | "1"

Defined in

types/wallet.ts:21


TKeyDerivationCoinType

Ƭ TKeyDerivationCoinType: "0" | "1" | string

Defined in

types/wallet.ts:19


TKeyDerivationIndex

Ƭ TKeyDerivationIndex: string

Defined in

types/wallet.ts:22


TKeyDerivationPurpose

Ƭ TKeyDerivationPurpose: "84" | "49" | "44" | string

Defined in

types/wallet.ts:18


TMessageDataMap

Ƭ TMessageDataMap: Object

Type declaration

Name Type
connectedToElectrum boolean
newBlock INewBlock
rbf string[]
reorg IUtxo[]
transactionConfirmed TTransactionMessage
transactionReceived TTransactionMessage
transactionSent TTransactionMessage

Defined in

types/wallet.ts:439


TMessageKeys

Ƭ TMessageKeys: keyof TMessageDataMap

Defined in

types/wallet.ts:464


TOnMessage

Ƭ TOnMessage: <K>(key: K, data: TMessageDataMap[K]) => void

Type declaration

▸ <K>(key, data): void

Type parameters
Name Type
K extends keyof TMessageDataMap
Parameters
Name Type
key K
data TMessageDataMap[K]
Returns

void

Defined in

types/wallet.ts:459


TProcessUnconfirmedTransactions

Ƭ TProcessUnconfirmedTransactions: Object

Type declaration

Name Type
ghostTxs string[]
outdatedTxs IUtxo[]
unconfirmedTxs IFormattedTransactions

Defined in

types/wallet.ts:371


TProtocol

Ƭ TProtocol: "tcp" | "ssl"

Defined in

types/electrum.ts:27


TServer

Ƭ TServer: Object

Type declaration

Name Type
host string
protocol EProtocol
ssl number
tcp number

Defined in

types/electrum.ts:21


TSetData

Ƭ TSetData: <K>(key: string, value: IWalletData[K]) => Promise<Result<boolean>>

Type declaration

▸ <K>(key, value): Promise<Result<boolean>>

Type parameters
Name Type
K extends keyof IWalletData
Parameters
Name Type
key string
value IWalletData[K]
Returns

Promise<Result<boolean>>

Defined in

types/wallet.ts:179


TSetupTransactionResponse

Ƭ TSetupTransactionResponse: Result<Partial<ISendTransaction>>

Defined in

types/transaction.ts:41


TStorage

Ƭ TStorage: Object

Type declaration

Name Type
getData? TGetData
setData? TSetData

Defined in

types/wallet.ts:484


TSubscribedReceive

Ƭ TSubscribedReceive: [string, string]

Defined in

types/electrum.ts:158


TTransactionMessage

Ƭ TTransactionMessage: Object

Type declaration

Name Type
transaction IFormattedTransaction

Defined in

types/wallet.ts:449


TTxDetails

Ƭ TTxDetails: Object

Type declaration

Name Type
blockhash string
blocktime? number
confirmations number
hash string
hex string
locktime number
size number
time? number
txid string
version number
vin IVin[]
vout IVout[]
vsize number
weight number

Defined in

types/wallet.ts:341


TTxResponse

Ƭ TTxResponse: Object

Type declaration

Name Type
data IAddress
id number
jsonrpc string
param string
result TTxResult[]

Defined in

types/electrum.ts:62


TTxResult

Ƭ TTxResult: Object

Type declaration

Name Type
height number
tx_hash string

Defined in

types/electrum.ts:49


TUnspentAddressScriptHashData

Ƭ TUnspentAddressScriptHashData: Object

Index signature

▪ [x: string]: IUtxo | IAddress

Defined in

types/electrum.ts:45


TWalletDataKeys

Ƭ TWalletDataKeys: keyof IWalletData

Defined in

types/wallet.ts:174

Variables

defaultElectrumPorts

Const defaultElectrumPorts: string[]

Defined in

utils/electrum.ts:15


electrumConnection

Const electrumConnection: ElectrumConnectionPubSub

Background task that checks the connection to the Electrum server with a PubSub If connection was lost this will try to reconnect in the specified interval

Param

Defined in

utils/electrum.ts:134

Functions

availableNetworks

availableNetworks(): EAvailableNetworks[]

Returns an array of all available networks from the networks object.

Returns

EAvailableNetworks[]

Defined in

utils/wallet.ts:209


constructByteCountParam

constructByteCountParam(addresses, increaseAddressCount?): TGetByteCountInputs | TGetByteCountOutputs

Constructs the parameter for getByteCount via an array of addresses.

Parameters

Name Type Default value
addresses string[] undefined
increaseAddressCount { addrType: EAddressType ; count: number }[] []

Returns

TGetByteCountInputs | TGetByteCountOutputs

y

Defined in

utils/transaction.ts:145


decodeOpReturnMessage

decodeOpReturnMessage(opReturn?): string[]

Parameters

Name Type Default value
opReturn string ''

Returns

string[]

Defined in

utils/wallet.ts:264


decodeRawTransaction

decodeRawTransaction(hex, _network?): Result<TDecodeRawTx>

Attempts to decode a raw tx hex. Source: bitcoinjs/bitcoinjs-lib#1606 (comment)

Parameters

Name Type
hex string
_network? EAvailableNetworks

Returns

Result<TDecodeRawTx>

Defined in

utils/transaction.ts:378


err

err<T>(error): Err<T>

Construct a new Err result value.

Type parameters

Name
T

Parameters

Name Type Description
error string | Error The error message or Error object to be wrapped in an Err result.

Returns

Err<T>

An Err result containing the given error.

Defined in

utils/result.ts:74


filterAddressesForGapLimit

filterAddressesForGapLimit(«destructured»): IAddress[]

Parameters

Name Type
«destructured» Object
› addresses IAddress[]
› gapLimitOptions TGapLimitOptions
› index number

Returns

IAddress[]

Defined in

utils/wallet.ts:355


filterAddressesObjForGapLimit

filterAddressesObjForGapLimit(«destructured»): IAddresses

Parameters

Name Type
«destructured» Object
› addresses IAddresses
› gapLimitOptions TGapLimitOptions
› index number

Returns

IAddresses

Defined in

utils/wallet.ts:373


filterAddressesObjForSingleIndex

filterAddressesObjForSingleIndex(«destructured»): IAddresses

Parameters

Name Type
«destructured» Object
› addressIndex number
› addresses IAddresses

Returns

IAddresses

Defined in

utils/wallet.ts:412


filterAddressesObjForStartingIndex

filterAddressesObjForStartingIndex(«destructured»): IAddresses

Parameters

Name Type
«destructured» Object
› addresses IAddresses
› index number

Returns

IAddresses

Defined in

utils/wallet.ts:398


formatKeyDerivationPath

formatKeyDerivationPath(«destructured»): Result<IKeyDerivationPathData>

Formats and returns the provided derivation path string and object.

Parameters

Name Type
«destructured» Object
› addressType? EAddressType
› changeAddress? boolean
› index? string
› network EAvailableNetworks
› path string | IKeyDerivationPath
› purpose? string

Returns

Result<IKeyDerivationPathData>

Derivation Path Data

Defined in

utils/wallet.ts:77


formatPeerData

formatPeerData(data): Result<IFormattedPeerData>

Formats the peer data response from an Electrum server.

Parameters

Name Type
data [string, string, [string, string, string]]

Returns

Result<IFormattedPeerData>

Result

Defined in

utils/electrum.ts:60


generateMnemonic

generateMnemonic(strength?, rng?, wordlist?): string

Extends bip39's generateMnemonic function.

Parameters

Name Type
strength? number
rng? (size: number) => Buffer
wordlist? string[]

Returns

string

Defined in

utils/helpers.ts:160


generateWalletId

generateWalletId(seed): string

Parameters

Name Type
seed Buffer

Returns

string

Defined in

utils/wallet.ts:312


getAddressFromKeyPair

getAddressFromKeyPair(«destructured»): Result<IGetAddressesFromKeyPair>

Get address from key pair.

Parameters

Name Type
«destructured» Object
› addressType EAddressType
› keyPair BIP32Interface | ECPairInterface
› network Network

Returns

Result<IGetAddressesFromKeyPair>

Defined in

utils/helpers.ts:210


getAddressFromScriptPubKey

getAddressFromScriptPubKey(scriptPubKey, selectedNetwork): string

Get address for a given scriptPubKey.

Parameters

Name Type
scriptPubKey string
selectedNetwork EAvailableNetworks

Returns

string

Defined in

utils/helpers.ts:26


getAddressIndexDiff

getAddressIndexDiff(addrIndex1?, addrIndex2?): number

Returns the difference between two address indexes.

Parameters

Name Type Default value
addrIndex1 number 0
addrIndex2 number 0

Returns

number

number

Defined in

utils/helpers.ts:341


getAddressTypeFromPath

getAddressTypeFromPath(path): Result<EAddressType>

Returns the address type from the specified derivation path.

Parameters

Name Type
path string | IKeyDerivationPath

Returns

Result<EAddressType>

Defined in

utils/derivation-path.ts:147


getAddressesFromPrivateKey

getAddressesFromPrivateKey(«destructured»): Result<IGetAddressesFromPrivateKey>

Get addresses from a private key.

Parameters

Name Type
«destructured» Object
› addrTypes? EAddressType[]
› network? Network
› privateKey string

Returns

Result<IGetAddressesFromPrivateKey>

Defined in

utils/helpers.ts:298


getByteCount

getByteCount(inputs, outputs, message?, minByteCount?): number

Parameters

Name Type Default value
inputs TGetByteCountInputs undefined
outputs TGetByteCountOutputs undefined
message? string undefined
minByteCount number 166

Returns

number

Defined in

utils/transaction.ts:180


getDataFallback

getDataFallback<K>(key): Promise<Result<IWalletData[K]>>

Type parameters

Name Type
K extends keyof IWalletData

Parameters

Name Type
key string

Returns

Promise<Result<IWalletData[K]>>

Defined in

types/wallet.ts:176


getDefaultPort

getDefaultPort(selectedNetwork?, protocol?): number

Returns the default port for the given network and protocol.

Parameters

Name Type
selectedNetwork? EAvailableNetworks
protocol? TProtocol

Returns

number

Defined in

utils/electrum.ts:23


getDefaultWalletData

getDefaultWalletData(): IWalletData

Returns the default wallet data object.

Returns

IWalletData

Defined in

utils/wallet.ts:36


getDefaultWalletDataKeys

getDefaultWalletDataKeys(): keyof IWalletData[]

Returns the keys from the default wallet data object.

Returns

keyof IWalletData[]

Defined in

utils/wallet.ts:44


getElectrumNetwork

getElectrumNetwork(network?): EElectrumNetworks

Returns the network string for use with Electrum methods.

Parameters

Name Type
network? EAvailableNetworks

Returns

EElectrumNetworks

Defined in

utils/electrum.ts:196


getHighestUsedIndexFromTxHashes

getHighestUsedIndexFromTxHashes(«destructured»): Result<IIndexes>

Returns the highest used index from the provided txHashes.

Parameters

Name Type
«destructured» Object
› addressIndex IAddress
› addresses IAddresses
› changeAddressIndex IAddress
› changeAddresses IAddresses
› txHashes ITxHashes[]

Returns

Result<IIndexes>

Defined in

utils/wallet.ts:135


getKeyDerivationPath

getKeyDerivationPath(«destructured»): Result<IKeyDerivationPath>

Returns the derivation path object for the specified addressType and network.

Parameters

Name Type
«destructured» Object
› addressType EAddressType
› network EAvailableNetworks

Returns

Result<IKeyDerivationPath>

Result

Defined in

utils/helpers.ts:108


getKeyDerivationPathObject

getKeyDerivationPathObject(«destructured»): Result<IKeyDerivationPath>

Parses a key derivation path in string format Ex: "m/84'/0'/0'/0/0" and returns IKeyDerivationPath.

Parameters

Name Type
«destructured» Object
› changeAddress? boolean
› index? string
› network EAvailableNetworks
› path string
› purpose? string

Returns

Result<IKeyDerivationPath>

Defined in

utils/derivation-path.ts:22


getKeyDerivationPathString

getKeyDerivationPathString(«destructured»): Result<string>

Parses a key derivation path object and returns it in string format. Ex: "m/84'/0'/0'/0/0"

Parameters

Name Type
«destructured» Object
› accountType? string | number
› addressType EAddressType
› changeAddress? boolean
› index? string | number
› network EAvailableNetworks
› path? IKeyDerivationPath
› purpose? string

Returns

Result<string>

Defined in

utils/derivation-path.ts:80


getKeyValue

getKeyValue(key): string

Returns last value between hyphens in a string.

Parameters

Name Type
key string

Returns

string

Defined in

utils/wallet.ts:53


getPeers

getPeers(selectedNetwork?): Promise<Result<IFormattedPeerData[]>>

Returns an array of peers. If unable to acquire peers from an Electrum server the method will default to the hardcoded peers in peers.json.

Parameters

Name Type
selectedNetwork? Object
selectedNetwork.selectedNetwork EAvailableNetworks

Returns

Promise<Result<IFormattedPeerData[]>>

Promise<Result<IFormattedPeerData[]>>

Defined in

utils/electrum.ts:96


getProtocolForPort

getProtocolForPort(port?, network?): undefined | TProtocol

Returns the protocol for the given network and default port.

Parameters

Name Type
port? string
network? EAvailableNetworks

Returns

undefined | TProtocol

Defined in

utils/electrum.ts:40


getScriptHash

getScriptHash(«destructured»): string

Get scriptHash for a given address

Parameters

Name Type
«destructured» Object
› address string
› network EAvailableNetworks

Returns

string

Defined in

utils/helpers.ts:135


getSeed

getSeed(mnemonic, bip39Passphrase): Buffer

Returns the seed for a given mnemonic and passphrase.

Parameters

Name Type
mnemonic any
bip39Passphrase any

Returns

Buffer

Defined in

utils/wallet.ts:297


getSeedHash

getSeedHash(seed): string

Returns the seed hash for a given mnemonic and passphrase.

Parameters

Name Type
seed Buffer

Returns

string

Defined in

utils/wallet.ts:306


getSha256

getSha256(str): string

Get sha256 hash of a given string.

Parameters

Name Type
str string

Returns

string

Defined in

utils/helpers.ts:42


getStorageKeyValues

getStorageKeyValues(storageKey): Object

Parameters

Name Type
storageKey string

Returns

Object

Name Type
network EAvailableNetworks
value keyof IWalletData
walletName string

Defined in

utils/wallet.ts:326


getTapRootAddressFromPublicKey

getTapRootAddressFromPublicKey(«destructured»): Result<{ address: string ; internalPubkey: Buffer ; output: Buffer }>

Returns taproot address information from the provided public key.

Parameters

Name Type
«destructured» Object
› network Network
› publicKey Buffer

Returns

Result<{ address: string ; internalPubkey: Buffer ; output: Buffer }>

Defined in

utils/helpers.ts:271


getTxFee

getTxFee(«destructured»): number

Returns the total fee in sats for a transaction at a given size (transactionByteCount) times the desired satsPerByte.

Parameters

Name Type
«destructured» Object
› satsPerByte number
› transactionByteCount number

Returns

number

Defined in

utils/wallet.ts:347


getWalletDataStorageKey

getWalletDataStorageKey(name, network, key): string

Parameters

Name Type
name string
network EAvailableNetworks
key keyof IWalletData

Returns

string

Defined in

utils/wallet.ts:318


isP2trPrefix

isP2trPrefix(address): boolean

Quickly attempts to determine if the provided address is a valid p2tr/taproot address prefix. For a more robust check, use isValidBech32mEncodedString.

Parameters

Name Type
address string

Returns

boolean

Defined in

utils/transaction.ts:430


isPositive

isPositive(num): boolean

Parameters

Name Type
num number

Returns

boolean

Defined in

utils/helpers.ts:347


isValidBech32mEncodedString

isValidBech32mEncodedString(address): Object

Returns if the provided string is a valid Bech32m encoded string (taproot/p2tr address).

Parameters

Name Type
address string

Returns

Object

Name Type
isValid boolean
network EAvailableNetworks

Defined in

utils/wallet.ts:187


objectKeys

objectKeys<Type>(value): `${Exclude<keyof Type, symbol>}`[]

Returns the keys of a given object.

Type parameters

Name Type
Type extends object

Parameters

Name Type
value Type

Returns

`${Exclude<keyof Type, symbol>}`[]

Defined in

utils/wallet.ts:64


objectsMatch

objectsMatch(obj1, obj2): boolean

Determines if the two objects passed as params match.

Parameters

Name Type
obj1 any
obj2 any

Returns

boolean

boolean

Defined in

utils/helpers.ts:187


ok

ok<T>(value): Ok<T>

Construct a new Ok result value.

Type parameters

Name
T

Parameters

Name Type Description
value T The value to be wrapped in an Ok result.

Returns

Ok<T>

An Ok result containing the given value.

Defined in

utils/result.ts:67


parseOnChainPaymentRequest

parseOnChainPaymentRequest(data, network?): Result<{ address: string ; message: string ; network: EAvailableNetworks ; sats: number }>

Parameters

Name Type
data string
network? EAvailableNetworks

Returns

Result<{ address: string ; message: string ; network: EAvailableNetworks ; sats: number }>

Defined in

utils/transaction.ts:62


reduceValue

reduceValue<T>(«destructured»): Result<number>

Sum a specific value in an array of objects.

Type parameters

Name
T

Parameters

Name Type
«destructured» Object
› arr T[]
› value keyof T

Returns

Result<number>

Defined in

utils/wallet.ts:218


removeDustOutputs

removeDustOutputs(outputs): IOutput[]

Removes outputs that are below the dust limit.

Parameters

Name Type
outputs IOutput[]

Returns

IOutput[]

Defined in

utils/transaction.ts:298


setReplaceByFee

setReplaceByFee(«destructured»): void

Sets RBF for the provided psbt.

Parameters

Name Type
«destructured» Object
› psbt Psbt
› setRbf boolean

Returns

void

Defined in

utils/transaction.ts:26


shuffleArray

shuffleArray<T>(array): T[]

Shuffles a given array.

Type parameters

Name
T

Parameters

Name Type
array T[]

Returns

T[]

Defined in

utils/wallet.ts:244


sleep

sleep(ms): Promise<void>

Parameters

Name Type
ms any

Returns

Promise<void>

Defined in

utils/helpers.ts:329


validateAddress

validateAddress(«destructured»): Object

Validate address for a given network. If no address is provided, it will attempt to validate the address for all available networks.

Parameters

Name Type
«destructured» Object
› address string
› network? EAvailableNetworks

Returns

Object

Name Type
isValid boolean
network EAvailableNetworks

Defined in

utils/helpers.ts:55


validateMnemonic

validateMnemonic(mnemonic?): boolean

Attempts to validate the provided mnemonic.

Parameters

Name Type Default value
mnemonic string ''

Returns

boolean

Defined in

utils/helpers.ts:173


validateTransaction

validateTransaction(transaction): Result<string>

Used to validate transaction form data.

Parameters

Name Type
transaction ISendTransaction

Returns

Result<string>

Defined in

utils/transaction.ts:309