mirror of https://github.com/bumi/lnrpc
209 lines
12 KiB
Ruby
209 lines
12 KiB
Ruby
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
# Source: walletrpc/walletkit.proto for package 'walletrpc'
|
|
|
|
require 'grpc'
|
|
require 'walletrpc/walletkit_pb'
|
|
|
|
module Walletrpc
|
|
module WalletKit
|
|
# WalletKit is a service that gives access to the core functionalities of the
|
|
# daemon's wallet.
|
|
class Service
|
|
|
|
include ::GRPC::GenericService
|
|
|
|
self.marshal_class_method = :encode
|
|
self.unmarshal_class_method = :decode
|
|
self.service_name = 'walletrpc.WalletKit'
|
|
|
|
#
|
|
# ListUnspent returns a list of all utxos spendable by the wallet with a
|
|
# number of confirmations between the specified minimum and maximum. By
|
|
# default, all utxos are listed. To list only the unconfirmed utxos, set
|
|
# the unconfirmed_only to true.
|
|
rpc :ListUnspent, ::Walletrpc::ListUnspentRequest, ::Walletrpc::ListUnspentResponse
|
|
#
|
|
# LeaseOutput locks an output to the given ID, preventing it from being
|
|
# available for any future coin selection attempts. The absolute time of the
|
|
# lock's expiration is returned. The expiration of the lock can be extended by
|
|
# successive invocations of this RPC. Outputs can be unlocked before their
|
|
# expiration through `ReleaseOutput`.
|
|
rpc :LeaseOutput, ::Walletrpc::LeaseOutputRequest, ::Walletrpc::LeaseOutputResponse
|
|
#
|
|
# ReleaseOutput unlocks an output, allowing it to be available for coin
|
|
# selection if it remains unspent. The ID should match the one used to
|
|
# originally lock the output.
|
|
rpc :ReleaseOutput, ::Walletrpc::ReleaseOutputRequest, ::Walletrpc::ReleaseOutputResponse
|
|
#
|
|
# ListLeases lists all currently locked utxos.
|
|
rpc :ListLeases, ::Walletrpc::ListLeasesRequest, ::Walletrpc::ListLeasesResponse
|
|
#
|
|
# DeriveNextKey attempts to derive the *next* key within the key family
|
|
# (account in BIP43) specified. This method should return the next external
|
|
# child within this branch.
|
|
rpc :DeriveNextKey, ::Walletrpc::KeyReq, ::Signrpc::KeyDescriptor
|
|
#
|
|
# DeriveKey attempts to derive an arbitrary key specified by the passed
|
|
# KeyLocator.
|
|
rpc :DeriveKey, ::Signrpc::KeyLocator, ::Signrpc::KeyDescriptor
|
|
#
|
|
# NextAddr returns the next unused address within the wallet.
|
|
rpc :NextAddr, ::Walletrpc::AddrRequest, ::Walletrpc::AddrResponse
|
|
#
|
|
# ListAccounts retrieves all accounts belonging to the wallet by default. A
|
|
# name and key scope filter can be provided to filter through all of the
|
|
# wallet accounts and return only those matching.
|
|
rpc :ListAccounts, ::Walletrpc::ListAccountsRequest, ::Walletrpc::ListAccountsResponse
|
|
#
|
|
# RequiredReserve returns the minimum amount of satoshis that should be kept
|
|
# in the wallet in order to fee bump anchor channels if necessary. The value
|
|
# scales with the number of public anchor channels but is capped at a maximum.
|
|
rpc :RequiredReserve, ::Walletrpc::RequiredReserveRequest, ::Walletrpc::RequiredReserveResponse
|
|
#
|
|
# ImportAccount imports an account backed by an account extended public key.
|
|
# The master key fingerprint denotes the fingerprint of the root key
|
|
# corresponding to the account public key (also known as the key with
|
|
# derivation path m/). This may be required by some hardware wallets for
|
|
# proper identification and signing.
|
|
#
|
|
# The address type can usually be inferred from the key's version, but may be
|
|
# required for certain keys to map them into the proper scope.
|
|
#
|
|
# For BIP-0044 keys, an address type must be specified as we intend to not
|
|
# support importing BIP-0044 keys into the wallet using the legacy
|
|
# pay-to-pubkey-hash (P2PKH) scheme. A nested witness address type will force
|
|
# the standard BIP-0049 derivation scheme, while a witness address type will
|
|
# force the standard BIP-0084 derivation scheme.
|
|
#
|
|
# For BIP-0049 keys, an address type must also be specified to make a
|
|
# distinction between the standard BIP-0049 address schema (nested witness
|
|
# pubkeys everywhere) and our own BIP-0049Plus address schema (nested pubkeys
|
|
# externally, witness pubkeys internally).
|
|
#
|
|
# NOTE: Events (deposits/spends) for keys derived from an account will only be
|
|
# detected by lnd if they happen after the import. Rescans to detect past
|
|
# events will be supported later on.
|
|
rpc :ImportAccount, ::Walletrpc::ImportAccountRequest, ::Walletrpc::ImportAccountResponse
|
|
#
|
|
# ImportPublicKey imports a public key as watch-only into the wallet.
|
|
#
|
|
# NOTE: Events (deposits/spends) for a key will only be detected by lnd if
|
|
# they happen after the import. Rescans to detect past events will be
|
|
# supported later on.
|
|
rpc :ImportPublicKey, ::Walletrpc::ImportPublicKeyRequest, ::Walletrpc::ImportPublicKeyResponse
|
|
#
|
|
# PublishTransaction attempts to publish the passed transaction to the
|
|
# network. Once this returns without an error, the wallet will continually
|
|
# attempt to re-broadcast the transaction on start up, until it enters the
|
|
# chain.
|
|
rpc :PublishTransaction, ::Walletrpc::Transaction, ::Walletrpc::PublishResponse
|
|
#
|
|
# SendOutputs is similar to the existing sendmany call in Bitcoind, and
|
|
# allows the caller to create a transaction that sends to several outputs at
|
|
# once. This is ideal when wanting to batch create a set of transactions.
|
|
rpc :SendOutputs, ::Walletrpc::SendOutputsRequest, ::Walletrpc::SendOutputsResponse
|
|
#
|
|
# EstimateFee attempts to query the internal fee estimator of the wallet to
|
|
# determine the fee (in sat/kw) to attach to a transaction in order to
|
|
# achieve the confirmation target.
|
|
rpc :EstimateFee, ::Walletrpc::EstimateFeeRequest, ::Walletrpc::EstimateFeeResponse
|
|
#
|
|
# PendingSweeps returns lists of on-chain outputs that lnd is currently
|
|
# attempting to sweep within its central batching engine. Outputs with similar
|
|
# fee rates are batched together in order to sweep them within a single
|
|
# transaction.
|
|
#
|
|
# NOTE: Some of the fields within PendingSweepsRequest are not guaranteed to
|
|
# remain supported. This is an advanced API that depends on the internals of
|
|
# the UtxoSweeper, so things may change.
|
|
rpc :PendingSweeps, ::Walletrpc::PendingSweepsRequest, ::Walletrpc::PendingSweepsResponse
|
|
#
|
|
# BumpFee bumps the fee of an arbitrary input within a transaction. This RPC
|
|
# takes a different approach than bitcoind's bumpfee command. lnd has a
|
|
# central batching engine in which inputs with similar fee rates are batched
|
|
# together to save on transaction fees. Due to this, we cannot rely on
|
|
# bumping the fee on a specific transaction, since transactions can change at
|
|
# any point with the addition of new inputs. The list of inputs that
|
|
# currently exist within lnd's central batching engine can be retrieved
|
|
# through the PendingSweeps RPC.
|
|
#
|
|
# When bumping the fee of an input that currently exists within lnd's central
|
|
# batching engine, a higher fee transaction will be created that replaces the
|
|
# lower fee transaction through the Replace-By-Fee (RBF) policy. If it
|
|
#
|
|
# This RPC also serves useful when wanting to perform a Child-Pays-For-Parent
|
|
# (CPFP), where the child transaction pays for its parent's fee. This can be
|
|
# done by specifying an outpoint within the low fee transaction that is under
|
|
# the control of the wallet.
|
|
#
|
|
# The fee preference can be expressed either as a specific fee rate or a delta
|
|
# of blocks in which the output should be swept on-chain within. If a fee
|
|
# preference is not explicitly specified, then an error is returned.
|
|
#
|
|
# Note that this RPC currently doesn't perform any validation checks on the
|
|
# fee preference being provided. For now, the responsibility of ensuring that
|
|
# the new fee preference is sufficient is delegated to the user.
|
|
rpc :BumpFee, ::Walletrpc::BumpFeeRequest, ::Walletrpc::BumpFeeResponse
|
|
#
|
|
# ListSweeps returns a list of the sweep transactions our node has produced.
|
|
# Note that these sweeps may not be confirmed yet, as we record sweeps on
|
|
# broadcast, not confirmation.
|
|
rpc :ListSweeps, ::Walletrpc::ListSweepsRequest, ::Walletrpc::ListSweepsResponse
|
|
#
|
|
# LabelTransaction adds a label to a transaction. If the transaction already
|
|
# has a label the call will fail unless the overwrite bool is set. This will
|
|
# overwrite the exiting transaction label. Labels must not be empty, and
|
|
# cannot exceed 500 characters.
|
|
rpc :LabelTransaction, ::Walletrpc::LabelTransactionRequest, ::Walletrpc::LabelTransactionResponse
|
|
#
|
|
# FundPsbt creates a fully populated PSBT that contains enough inputs to fund
|
|
# the outputs specified in the template. There are two ways of specifying a
|
|
# template: Either by passing in a PSBT with at least one output declared or
|
|
# by passing in a raw TxTemplate message.
|
|
#
|
|
# If there are no inputs specified in the template, coin selection is
|
|
# performed automatically. If the template does contain any inputs, it is
|
|
# assumed that full coin selection happened externally and no additional
|
|
# inputs are added. If the specified inputs aren't enough to fund the outputs
|
|
# with the given fee rate, an error is returned.
|
|
#
|
|
# After either selecting or verifying the inputs, all input UTXOs are locked
|
|
# with an internal app ID.
|
|
#
|
|
# NOTE: If this method returns without an error, it is the caller's
|
|
# responsibility to either spend the locked UTXOs (by finalizing and then
|
|
# publishing the transaction) or to unlock/release the locked UTXOs in case of
|
|
# an error on the caller's side.
|
|
rpc :FundPsbt, ::Walletrpc::FundPsbtRequest, ::Walletrpc::FundPsbtResponse
|
|
#
|
|
# SignPsbt expects a partial transaction with all inputs and outputs fully
|
|
# declared and tries to sign all unsigned inputs that have all required fields
|
|
# (UTXO information, BIP32 derivation information, witness or sig scripts)
|
|
# set.
|
|
# If no error is returned, the PSBT is ready to be given to the next signer or
|
|
# to be finalized if lnd was the last signer.
|
|
#
|
|
# NOTE: This RPC only signs inputs (and only those it can sign), it does not
|
|
# perform any other tasks (such as coin selection, UTXO locking or
|
|
# input/output/fee value validation, PSBT finalization). Any input that is
|
|
# incomplete will be skipped.
|
|
rpc :SignPsbt, ::Walletrpc::SignPsbtRequest, ::Walletrpc::SignPsbtResponse
|
|
#
|
|
# FinalizePsbt expects a partial transaction with all inputs and outputs fully
|
|
# declared and tries to sign all inputs that belong to the wallet. Lnd must be
|
|
# the last signer of the transaction. That means, if there are any unsigned
|
|
# non-witness inputs or inputs without UTXO information attached or inputs
|
|
# without witness data that do not belong to lnd's wallet, this method will
|
|
# fail. If no error is returned, the PSBT is ready to be extracted and the
|
|
# final TX within to be broadcast.
|
|
#
|
|
# NOTE: This method does NOT publish the transaction once finalized. It is the
|
|
# caller's responsibility to either publish the transaction on success or
|
|
# unlock/release any locked UTXOs in case of an error in this method.
|
|
rpc :FinalizePsbt, ::Walletrpc::FinalizePsbtRequest, ::Walletrpc::FinalizePsbtResponse
|
|
end
|
|
|
|
Stub = Service.rpc_stub_class
|
|
end
|
|
end
|