///
import { OutPoint, TransactionDetails, Utxo, ListUnspentResponse, Transaction, ListUnspentRequest, AddressType, EstimateFeeRequest } from "./ln-rpc";
import { KeyDescriptor, KeyLocator, TxOut } from "./sign-rpc";
import { JsonBuffer } from "../general";
export declare enum WitnessType {
UNKNOWN_WITNESS = 0,
COMMITMENT_TIME_LOCK = 1,
COMMITMENT_NO_DELAY = 2,
COMMITMENT_REVOKE = 3,
HTLC_OFFERED_REVOKE = 4,
HTLC_ACCEPTED_REVOKE = 5,
HTLC_OFFERED_TIMEOUT_SECOND_LEVEL = 6,
HTLC_ACCEPTED_SUCCESS_SECOND_LEVEL = 7,
HTLC_OFFERED_REMOTE_TIMEOUT = 8,
HTLC_ACCEPTED_REMOTE_SUCCESS = 9,
HTLC_SECOND_LEVEL_REVOKE = 10,
WITNESS_KEY_HASH = 11,
NESTED_WITNESS_KEY_HASH = 12,
COMMITMENT_ANCHOR = 13
}
export declare enum SweepsCase {
SWEEPS_NOT_SET = 0,
TRANSACTION_DETAILS = 1,
TRANSACTION_IDS = 2
}
export interface ListUnspentReq {
minConfs?: number;
maxConfs?: number;
}
export interface ListUnspentResp {
utxos: Utxo[];
}
export interface LeaseOutputRequest {
id: Buffer | string | JsonBuffer;
outpoint?: OutPoint;
}
export interface LeaseOutputResponse {
expiration: number;
}
export interface ReleaseOutputRequest {
id: Buffer | string | JsonBuffer;
outpoint?: OutPoint;
expirationSeconds: number;
}
export interface KeyReq {
keyFingerPrint: number;
keyFamily: number;
}
export interface AddrResponse {
addr: string;
}
export interface Tx {
txHex: Buffer | string | JsonBuffer;
label?: string;
}
export interface PublishResponse {
publishError?: string;
}
export interface SendOutputsRequest {
satPerKw: number;
outputs: TxOut[];
label?: string;
minConfs: number;
spendUnconfirmed: boolean;
}
export interface SendOutputsResponse {
rawTx: Buffer | string | JsonBuffer;
}
export interface EstimateFeeReq {
confTarget: number;
}
export interface EstimateFeeResp {
satPerKw: number;
}
export interface PendingSweep {
outpoint?: OutPoint;
witnessType: WitnessType;
amountSat: number;
satPerByte: number;
broadcastAttempts: number;
nextBroadcastHeight: number;
requestedConfTarget: number;
requestedSatPerByte: number;
satPerVbyte: number;
requestedSatPerVbyte: number;
force: boolean;
}
export interface PendingSweepsResponse {
pendingSweeps: PendingSweep[];
}
export interface BumpFeeRequest {
outpoint: OutPoint;
targetConf?: number;
satPerByte?: number;
force?: boolean;
satPerVbyte: number;
}
export interface ListSweepsRequest {
verbose?: boolean;
}
export interface TransactionIDs {
transactionIds: string[];
}
export interface ListSweepsResponse {
transactionDetails?: TransactionDetails;
transactionIds?: TransactionIDs;
}
export interface FundPsbtRequest {
psbt: Buffer | string | JsonBuffer;
raw?: TxTemplate;
targetConf: number;
satPerVbyte: number;
account: string;
minConfs: number;
spendUnconfirmed: boolean;
}
export declare enum FundPsbtRequestTemplateCase {
TEMPLATE_NOT_SET = 0,
PSBT = 1,
RAW = 2
}
export declare enum FundPsbtRequestFeesCase {
FEES_NOT_SET = 0,
TARGET_CONF = 3,
SAT_PER_VBYTE = 4
}
export interface FundPsbtResponse {
fundedPsbt: Buffer | string | JsonBuffer;
changeOutputIndex: number;
lockedUtxos: Array;
}
export interface TxTemplate {
inputs: Array;
outputs: Array<[string, number]>;
}
export interface UtxoLease {
id: Buffer | string | JsonBuffer;
outpoint?: OutPoint;
expiration: number;
}
export interface FinalizePsbtRequest {
fundedPsbt: Buffer | string | JsonBuffer;
account: string;
}
export interface LabelTransactionRequest {
txid: Buffer | string | JsonBuffer;
label: string;
overwrite?: boolean;
}
export interface FinalizePsbtResponse {
signedPsbt: Buffer | string | JsonBuffer;
rawFinalTx: Buffer | string | JsonBuffer;
}
export interface UtxoLease {
id: Buffer | string | JsonBuffer;
outpoint?: OutPoint;
expiration: number;
}
export interface FundPsbtResponse {
fundedPsbt: Buffer | string | JsonBuffer;
changeOutputIndex: number;
lockedUtxos: Array;
}
export interface FinalizePsbtRequest {
fundedPsbt: Buffer | string | JsonBuffer;
account: string;
}
export interface ListLeasesRequest {
}
export interface ReleaseOutputResponse {
}
export interface ListLeasesRequest {
}
export interface ListLeasesResponse {
lockedUtxos: Array;
}
export interface ListLeasesResponse {
lockedUtxos: Array;
}
export interface ListAccountsRequest {
name?: string;
addressType?: AddressType;
}
export interface AddrRequest {
account: string;
type: AddressType;
change: boolean;
}
export interface Account {
name: string;
addressType: AddressType;
extendedPublicKey: string;
masterKeyFingerprint: Buffer | string | JsonBuffer;
derivationPath: string;
externalKeyCount: number;
internalKeyCount: number;
watchOnly: boolean;
}
export interface ListAccountsResponse {
accounts: Array;
}
export interface ImportAccountRequest {
name: string;
extendedPublicKey: string;
masterKeyFingerprint: Buffer | string | JsonBuffer;
addressType: AddressType;
dryRun: boolean;
}
export interface ImportAccountResponse {
account?: Account;
dryRunExternalAddrs: Array;
dryRunInternalAddrs: Array;
}
export interface ImportPublicKeyRequest {
publicKey: Buffer | string | JsonBuffer;
addressType: AddressType;
}
export interface ImportPublicKeyResponse {
}
export interface BumpFeeResponse {
}
export interface PendingSweepsRequest {
}
export interface LabelTransactionResponse {
}
export interface EstimateFeeResponse {
satPerKw: number;
}
/**
* LND Wallet gRPC API Client
*/
export interface WalletRpc {
listUnspent(args: ListUnspentRequest): Promise;
leaseOutput(args: LeaseOutputRequest): Promise;
releaseOutput(args: ReleaseOutputRequest): Promise;
listLeases(args: ListLeasesRequest): Promise;
deriveNextKey(args: KeyReq): Promise;
deriveKey(args: KeyLocator): Promise;
nextAddr(args: AddrRequest): Promise;
listAccounts(args?: ListAccountsRequest): Promise;
importAccount(args: ImportAccountRequest): Promise;
importPublicKey(args: ImportPublicKeyRequest): Promise;
publishTransaction(args: Transaction): Promise;
sendOutputs(args: SendOutputsRequest): Promise;
estimateFee(args: EstimateFeeRequest): Promise;
pendingSweeps(args: PendingSweepsRequest): Promise;
bumpFee(args: BumpFeeRequest): Promise;
listSweeps(args: ListSweepsRequest): Promise;
labelTransaction(args: LabelTransactionRequest): Promise;
fundPsbt(args: FundPsbtRequest): Promise;
finalizePsbt(args: FinalizePsbtRequest): Promise;
}