// Code generated by protoc-gen-go-grpc. DO NOT EDIT. package walletrpc import ( context "context" lnrpc "github.com/lightningnetwork/lnd/lnrpc" signrpc "github.com/lightningnetwork/lnd/lnrpc/signrpc" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" ) // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. // Requires gRPC-Go v1.32.0 or later. const _ = grpc.SupportPackageIsVersion7 // WalletKitClient is the client API for WalletKit service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. type WalletKitClient interface { // 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. ListUnspent(ctx context.Context, in *ListUnspentRequest, opts ...grpc.CallOption) (*ListUnspentResponse, error) // lncli: `wallet leaseoutput` // 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`. LeaseOutput(ctx context.Context, in *LeaseOutputRequest, opts ...grpc.CallOption) (*LeaseOutputResponse, error) // lncli: `wallet releaseoutput` // 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. ReleaseOutput(ctx context.Context, in *ReleaseOutputRequest, opts ...grpc.CallOption) (*ReleaseOutputResponse, error) // lncli: `wallet listleases` // ListLeases lists all currently locked utxos. ListLeases(ctx context.Context, in *ListLeasesRequest, opts ...grpc.CallOption) (*ListLeasesResponse, error) // 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. DeriveNextKey(ctx context.Context, in *KeyReq, opts ...grpc.CallOption) (*signrpc.KeyDescriptor, error) // DeriveKey attempts to derive an arbitrary key specified by the passed // KeyLocator. DeriveKey(ctx context.Context, in *signrpc.KeyLocator, opts ...grpc.CallOption) (*signrpc.KeyDescriptor, error) // NextAddr returns the next unused address within the wallet. NextAddr(ctx context.Context, in *AddrRequest, opts ...grpc.CallOption) (*AddrResponse, error) // lncli: `wallet gettx` // GetTransaction returns details for a transaction found in the wallet. GetTransaction(ctx context.Context, in *GetTransactionRequest, opts ...grpc.CallOption) (*lnrpc.Transaction, error) // lncli: `wallet accounts list` // 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. ListAccounts(ctx context.Context, in *ListAccountsRequest, opts ...grpc.CallOption) (*ListAccountsResponse, error) // lncli: `wallet requiredreserve` // 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. RequiredReserve(ctx context.Context, in *RequiredReserveRequest, opts ...grpc.CallOption) (*RequiredReserveResponse, error) // lncli: `wallet addresses list` // ListAddresses retrieves all the addresses along with their balance. An // account name filter can be provided to filter through all of the // wallet accounts and return the addresses of only those matching. ListAddresses(ctx context.Context, in *ListAddressesRequest, opts ...grpc.CallOption) (*ListAddressesResponse, error) // lncli: `wallet addresses signmessage` // SignMessageWithAddr returns the compact signature (base64 encoded) created // with the private key of the provided address. This requires the address // to be solely based on a public key lock (no scripts). Obviously the internal // lnd wallet has to possess the private key of the address otherwise // an error is returned. // // This method aims to provide full compatibility with the bitcoin-core and // btcd implementation. Bitcoin-core's algorithm is not specified in a // BIP and only applicable for legacy addresses. This method enhances the // signing for additional address types: P2WKH, NP2WKH, P2TR. // For P2TR addresses this represents a special case. ECDSA is used to create // a compact signature which makes the public key of the signature recoverable. SignMessageWithAddr(ctx context.Context, in *SignMessageWithAddrRequest, opts ...grpc.CallOption) (*SignMessageWithAddrResponse, error) // lncli: `wallet addresses verifymessage` // VerifyMessageWithAddr returns the validity and the recovered public key of // the provided compact signature (base64 encoded). The verification is // twofold. First the validity of the signature itself is checked and then // it is verified that the recovered public key of the signature equals // the public key of the provided address. There is no dependence on the // private key of the address therefore also external addresses are allowed // to verify signatures. // Supported address types are P2PKH, P2WKH, NP2WKH, P2TR. // // This method is the counterpart of the related signing method // (SignMessageWithAddr) and aims to provide full compatibility to // bitcoin-core's implementation. Although bitcoin-core/btcd only provide // this functionality for legacy addresses this function enhances it to // the address types: P2PKH, P2WKH, NP2WKH, P2TR. // // The verification for P2TR addresses is a special case and requires the // ECDSA compact signature to compare the reovered public key to the internal // taproot key. The compact ECDSA signature format was used because there // are still no known compact signature schemes for schnorr signatures. VerifyMessageWithAddr(ctx context.Context, in *VerifyMessageWithAddrRequest, opts ...grpc.CallOption) (*VerifyMessageWithAddrResponse, error) // lncli: `wallet accounts import` // 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. ImportAccount(ctx context.Context, in *ImportAccountRequest, opts ...grpc.CallOption) (*ImportAccountResponse, error) // lncli: `wallet accounts import-pubkey` // ImportPublicKey imports a public key as watch-only into the wallet. The // public key is converted into a simple address of the given type and that // address script is watched on chain. For Taproot keys, this will only watch // the BIP-0086 style output script. Use ImportTapscript for more advanced key // spend or script spend outputs. // // 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. ImportPublicKey(ctx context.Context, in *ImportPublicKeyRequest, opts ...grpc.CallOption) (*ImportPublicKeyResponse, error) // ImportTapscript imports a Taproot script and internal key and adds the // resulting Taproot output key as a watch-only output script into the wallet. // For BIP-0086 style Taproot keys (no root hash commitment and no script spend // path) use ImportPublicKey. // // 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. // // NOTE: Taproot keys imported through this RPC currently _cannot_ be used for // funding PSBTs. Only tracking the balance and UTXOs is currently supported. ImportTapscript(ctx context.Context, in *ImportTapscriptRequest, opts ...grpc.CallOption) (*ImportTapscriptResponse, error) // lncli: `wallet publishtx` // 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. PublishTransaction(ctx context.Context, in *Transaction, opts ...grpc.CallOption) (*PublishResponse, error) // lncli: `wallet removetx` // RemoveTransaction attempts to remove the provided transaction from the // internal transaction store of the wallet. RemoveTransaction(ctx context.Context, in *GetTransactionRequest, opts ...grpc.CallOption) (*RemoveTransactionResponse, error) // 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. SendOutputs(ctx context.Context, in *SendOutputsRequest, opts ...grpc.CallOption) (*SendOutputsResponse, error) // 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. EstimateFee(ctx context.Context, in *EstimateFeeRequest, opts ...grpc.CallOption) (*EstimateFeeResponse, error) // lncli: `pendingsweeps` // 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. PendingSweeps(ctx context.Context, in *PendingSweepsRequest, opts ...grpc.CallOption) (*PendingSweepsResponse, error) // lncli: `wallet bumpfee` // BumpFee is an endpoint that allows users to interact with lnd's sweeper // directly. It takes an outpoint from an unconfirmed transaction and sends it // to the sweeper for potential fee bumping. Depending on whether the outpoint // has been registered in the sweeper (an existing input, e.g., an anchor // output) or not (a new input, e.g., an unconfirmed wallet utxo), this will // either be an RBF or CPFP attempt. // // When receiving an input, lnd’s sweeper needs to understand its time // sensitivity to make economical fee bumps - internally a fee function is // created using the deadline and budget to guide the process. When the // deadline is approaching, the fee function will increase the fee rate and // perform an RBF. // // When a force close happens, all the outputs from the force closing // transaction will be registered in the sweeper. The sweeper will then handle // the creation, publish, and fee bumping of the sweeping transactions. // Everytime a new block comes in, unless the sweeping transaction is // confirmed, an RBF is attempted. To interfere with this automatic process, // users can use BumpFee to specify customized fee rate, budget, deadline, and // whether the sweep should happen immediately. It's recommended to call // `ListSweeps` to understand the shape of the existing sweeping transaction // first - depending on the number of inputs in this transaction, the RBF // requirements can be quite different. // // 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. BumpFee(ctx context.Context, in *BumpFeeRequest, opts ...grpc.CallOption) (*BumpFeeResponse, error) // lncli: `wallet listsweeps` // 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. ListSweeps(ctx context.Context, in *ListSweepsRequest, opts ...grpc.CallOption) (*ListSweepsResponse, error) // lncli: `wallet labeltx` // 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 existing transaction label. Labels must not be empty, and // cannot exceed 500 characters. LabelTransaction(ctx context.Context, in *LabelTransactionRequest, opts ...grpc.CallOption) (*LabelTransactionResponse, error) // lncli: `wallet psbt fund` // FundPsbt creates a fully populated PSBT that contains enough inputs to fund // the outputs specified in the template. There are three ways a user can // specify what we call the template (a list of inputs and outputs to use in // the PSBT): Either as a PSBT packet directly with no coin selection (using // the legacy "psbt" field), a PSBT with advanced coin selection support (using // the new "coin_select" field) or as a raw RPC message (using the "raw" // field). // The legacy "psbt" and "raw" modes, the following restrictions apply: // 1. If there are no inputs specified in the template, coin selection is // performed automatically. // 2. 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. // // The new "coin_select" mode does not have these restrictions and allows the // user to specify a PSBT with inputs and outputs and still perform coin // selection on top of that. // For all modes this RPC requires any inputs that are specified to be locked // by the user (if they belong to this node in the first place). // // 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. FundPsbt(ctx context.Context, in *FundPsbtRequest, opts ...grpc.CallOption) (*FundPsbtResponse, error) // 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. SignPsbt(ctx context.Context, in *SignPsbtRequest, opts ...grpc.CallOption) (*SignPsbtResponse, error) // lncli: `wallet psbt finalize` // 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. FinalizePsbt(ctx context.Context, in *FinalizePsbtRequest, opts ...grpc.CallOption) (*FinalizePsbtResponse, error) } type walletKitClient struct { cc grpc.ClientConnInterface } func NewWalletKitClient(cc grpc.ClientConnInterface) WalletKitClient { return &walletKitClient{cc} } func (c *walletKitClient) ListUnspent(ctx context.Context, in *ListUnspentRequest, opts ...grpc.CallOption) (*ListUnspentResponse, error) { out := new(ListUnspentResponse) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/ListUnspent", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) LeaseOutput(ctx context.Context, in *LeaseOutputRequest, opts ...grpc.CallOption) (*LeaseOutputResponse, error) { out := new(LeaseOutputResponse) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/LeaseOutput", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) ReleaseOutput(ctx context.Context, in *ReleaseOutputRequest, opts ...grpc.CallOption) (*ReleaseOutputResponse, error) { out := new(ReleaseOutputResponse) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/ReleaseOutput", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) ListLeases(ctx context.Context, in *ListLeasesRequest, opts ...grpc.CallOption) (*ListLeasesResponse, error) { out := new(ListLeasesResponse) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/ListLeases", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) DeriveNextKey(ctx context.Context, in *KeyReq, opts ...grpc.CallOption) (*signrpc.KeyDescriptor, error) { out := new(signrpc.KeyDescriptor) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/DeriveNextKey", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) DeriveKey(ctx context.Context, in *signrpc.KeyLocator, opts ...grpc.CallOption) (*signrpc.KeyDescriptor, error) { out := new(signrpc.KeyDescriptor) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/DeriveKey", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) NextAddr(ctx context.Context, in *AddrRequest, opts ...grpc.CallOption) (*AddrResponse, error) { out := new(AddrResponse) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/NextAddr", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) GetTransaction(ctx context.Context, in *GetTransactionRequest, opts ...grpc.CallOption) (*lnrpc.Transaction, error) { out := new(lnrpc.Transaction) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/GetTransaction", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) ListAccounts(ctx context.Context, in *ListAccountsRequest, opts ...grpc.CallOption) (*ListAccountsResponse, error) { out := new(ListAccountsResponse) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/ListAccounts", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) RequiredReserve(ctx context.Context, in *RequiredReserveRequest, opts ...grpc.CallOption) (*RequiredReserveResponse, error) { out := new(RequiredReserveResponse) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/RequiredReserve", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) ListAddresses(ctx context.Context, in *ListAddressesRequest, opts ...grpc.CallOption) (*ListAddressesResponse, error) { out := new(ListAddressesResponse) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/ListAddresses", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) SignMessageWithAddr(ctx context.Context, in *SignMessageWithAddrRequest, opts ...grpc.CallOption) (*SignMessageWithAddrResponse, error) { out := new(SignMessageWithAddrResponse) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/SignMessageWithAddr", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) VerifyMessageWithAddr(ctx context.Context, in *VerifyMessageWithAddrRequest, opts ...grpc.CallOption) (*VerifyMessageWithAddrResponse, error) { out := new(VerifyMessageWithAddrResponse) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/VerifyMessageWithAddr", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) ImportAccount(ctx context.Context, in *ImportAccountRequest, opts ...grpc.CallOption) (*ImportAccountResponse, error) { out := new(ImportAccountResponse) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/ImportAccount", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) ImportPublicKey(ctx context.Context, in *ImportPublicKeyRequest, opts ...grpc.CallOption) (*ImportPublicKeyResponse, error) { out := new(ImportPublicKeyResponse) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/ImportPublicKey", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) ImportTapscript(ctx context.Context, in *ImportTapscriptRequest, opts ...grpc.CallOption) (*ImportTapscriptResponse, error) { out := new(ImportTapscriptResponse) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/ImportTapscript", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) PublishTransaction(ctx context.Context, in *Transaction, opts ...grpc.CallOption) (*PublishResponse, error) { out := new(PublishResponse) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/PublishTransaction", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) RemoveTransaction(ctx context.Context, in *GetTransactionRequest, opts ...grpc.CallOption) (*RemoveTransactionResponse, error) { out := new(RemoveTransactionResponse) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/RemoveTransaction", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) SendOutputs(ctx context.Context, in *SendOutputsRequest, opts ...grpc.CallOption) (*SendOutputsResponse, error) { out := new(SendOutputsResponse) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/SendOutputs", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) EstimateFee(ctx context.Context, in *EstimateFeeRequest, opts ...grpc.CallOption) (*EstimateFeeResponse, error) { out := new(EstimateFeeResponse) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/EstimateFee", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) PendingSweeps(ctx context.Context, in *PendingSweepsRequest, opts ...grpc.CallOption) (*PendingSweepsResponse, error) { out := new(PendingSweepsResponse) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/PendingSweeps", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) BumpFee(ctx context.Context, in *BumpFeeRequest, opts ...grpc.CallOption) (*BumpFeeResponse, error) { out := new(BumpFeeResponse) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/BumpFee", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) ListSweeps(ctx context.Context, in *ListSweepsRequest, opts ...grpc.CallOption) (*ListSweepsResponse, error) { out := new(ListSweepsResponse) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/ListSweeps", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) LabelTransaction(ctx context.Context, in *LabelTransactionRequest, opts ...grpc.CallOption) (*LabelTransactionResponse, error) { out := new(LabelTransactionResponse) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/LabelTransaction", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) FundPsbt(ctx context.Context, in *FundPsbtRequest, opts ...grpc.CallOption) (*FundPsbtResponse, error) { out := new(FundPsbtResponse) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/FundPsbt", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) SignPsbt(ctx context.Context, in *SignPsbtRequest, opts ...grpc.CallOption) (*SignPsbtResponse, error) { out := new(SignPsbtResponse) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/SignPsbt", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *walletKitClient) FinalizePsbt(ctx context.Context, in *FinalizePsbtRequest, opts ...grpc.CallOption) (*FinalizePsbtResponse, error) { out := new(FinalizePsbtResponse) err := c.cc.Invoke(ctx, "/walletrpc.WalletKit/FinalizePsbt", in, out, opts...) if err != nil { return nil, err } return out, nil } // WalletKitServer is the server API for WalletKit service. // All implementations must embed UnimplementedWalletKitServer // for forward compatibility type WalletKitServer interface { // 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. ListUnspent(context.Context, *ListUnspentRequest) (*ListUnspentResponse, error) // lncli: `wallet leaseoutput` // 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`. LeaseOutput(context.Context, *LeaseOutputRequest) (*LeaseOutputResponse, error) // lncli: `wallet releaseoutput` // 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. ReleaseOutput(context.Context, *ReleaseOutputRequest) (*ReleaseOutputResponse, error) // lncli: `wallet listleases` // ListLeases lists all currently locked utxos. ListLeases(context.Context, *ListLeasesRequest) (*ListLeasesResponse, error) // 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. DeriveNextKey(context.Context, *KeyReq) (*signrpc.KeyDescriptor, error) // DeriveKey attempts to derive an arbitrary key specified by the passed // KeyLocator. DeriveKey(context.Context, *signrpc.KeyLocator) (*signrpc.KeyDescriptor, error) // NextAddr returns the next unused address within the wallet. NextAddr(context.Context, *AddrRequest) (*AddrResponse, error) // lncli: `wallet gettx` // GetTransaction returns details for a transaction found in the wallet. GetTransaction(context.Context, *GetTransactionRequest) (*lnrpc.Transaction, error) // lncli: `wallet accounts list` // 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. ListAccounts(context.Context, *ListAccountsRequest) (*ListAccountsResponse, error) // lncli: `wallet requiredreserve` // 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. RequiredReserve(context.Context, *RequiredReserveRequest) (*RequiredReserveResponse, error) // lncli: `wallet addresses list` // ListAddresses retrieves all the addresses along with their balance. An // account name filter can be provided to filter through all of the // wallet accounts and return the addresses of only those matching. ListAddresses(context.Context, *ListAddressesRequest) (*ListAddressesResponse, error) // lncli: `wallet addresses signmessage` // SignMessageWithAddr returns the compact signature (base64 encoded) created // with the private key of the provided address. This requires the address // to be solely based on a public key lock (no scripts). Obviously the internal // lnd wallet has to possess the private key of the address otherwise // an error is returned. // // This method aims to provide full compatibility with the bitcoin-core and // btcd implementation. Bitcoin-core's algorithm is not specified in a // BIP and only applicable for legacy addresses. This method enhances the // signing for additional address types: P2WKH, NP2WKH, P2TR. // For P2TR addresses this represents a special case. ECDSA is used to create // a compact signature which makes the public key of the signature recoverable. SignMessageWithAddr(context.Context, *SignMessageWithAddrRequest) (*SignMessageWithAddrResponse, error) // lncli: `wallet addresses verifymessage` // VerifyMessageWithAddr returns the validity and the recovered public key of // the provided compact signature (base64 encoded). The verification is // twofold. First the validity of the signature itself is checked and then // it is verified that the recovered public key of the signature equals // the public key of the provided address. There is no dependence on the // private key of the address therefore also external addresses are allowed // to verify signatures. // Supported address types are P2PKH, P2WKH, NP2WKH, P2TR. // // This method is the counterpart of the related signing method // (SignMessageWithAddr) and aims to provide full compatibility to // bitcoin-core's implementation. Although bitcoin-core/btcd only provide // this functionality for legacy addresses this function enhances it to // the address types: P2PKH, P2WKH, NP2WKH, P2TR. // // The verification for P2TR addresses is a special case and requires the // ECDSA compact signature to compare the reovered public key to the internal // taproot key. The compact ECDSA signature format was used because there // are still no known compact signature schemes for schnorr signatures. VerifyMessageWithAddr(context.Context, *VerifyMessageWithAddrRequest) (*VerifyMessageWithAddrResponse, error) // lncli: `wallet accounts import` // 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. ImportAccount(context.Context, *ImportAccountRequest) (*ImportAccountResponse, error) // lncli: `wallet accounts import-pubkey` // ImportPublicKey imports a public key as watch-only into the wallet. The // public key is converted into a simple address of the given type and that // address script is watched on chain. For Taproot keys, this will only watch // the BIP-0086 style output script. Use ImportTapscript for more advanced key // spend or script spend outputs. // // 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. ImportPublicKey(context.Context, *ImportPublicKeyRequest) (*ImportPublicKeyResponse, error) // ImportTapscript imports a Taproot script and internal key and adds the // resulting Taproot output key as a watch-only output script into the wallet. // For BIP-0086 style Taproot keys (no root hash commitment and no script spend // path) use ImportPublicKey. // // 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. // // NOTE: Taproot keys imported through this RPC currently _cannot_ be used for // funding PSBTs. Only tracking the balance and UTXOs is currently supported. ImportTapscript(context.Context, *ImportTapscriptRequest) (*ImportTapscriptResponse, error) // lncli: `wallet publishtx` // 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. PublishTransaction(context.Context, *Transaction) (*PublishResponse, error) // lncli: `wallet removetx` // RemoveTransaction attempts to remove the provided transaction from the // internal transaction store of the wallet. RemoveTransaction(context.Context, *GetTransactionRequest) (*RemoveTransactionResponse, error) // 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. SendOutputs(context.Context, *SendOutputsRequest) (*SendOutputsResponse, error) // 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. EstimateFee(context.Context, *EstimateFeeRequest) (*EstimateFeeResponse, error) // lncli: `pendingsweeps` // 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. PendingSweeps(context.Context, *PendingSweepsRequest) (*PendingSweepsResponse, error) // lncli: `wallet bumpfee` // BumpFee is an endpoint that allows users to interact with lnd's sweeper // directly. It takes an outpoint from an unconfirmed transaction and sends it // to the sweeper for potential fee bumping. Depending on whether the outpoint // has been registered in the sweeper (an existing input, e.g., an anchor // output) or not (a new input, e.g., an unconfirmed wallet utxo), this will // either be an RBF or CPFP attempt. // // When receiving an input, lnd’s sweeper needs to understand its time // sensitivity to make economical fee bumps - internally a fee function is // created using the deadline and budget to guide the process. When the // deadline is approaching, the fee function will increase the fee rate and // perform an RBF. // // When a force close happens, all the outputs from the force closing // transaction will be registered in the sweeper. The sweeper will then handle // the creation, publish, and fee bumping of the sweeping transactions. // Everytime a new block comes in, unless the sweeping transaction is // confirmed, an RBF is attempted. To interfere with this automatic process, // users can use BumpFee to specify customized fee rate, budget, deadline, and // whether the sweep should happen immediately. It's recommended to call // `ListSweeps` to understand the shape of the existing sweeping transaction // first - depending on the number of inputs in this transaction, the RBF // requirements can be quite different. // // 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. BumpFee(context.Context, *BumpFeeRequest) (*BumpFeeResponse, error) // lncli: `wallet listsweeps` // 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. ListSweeps(context.Context, *ListSweepsRequest) (*ListSweepsResponse, error) // lncli: `wallet labeltx` // 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 existing transaction label. Labels must not be empty, and // cannot exceed 500 characters. LabelTransaction(context.Context, *LabelTransactionRequest) (*LabelTransactionResponse, error) // lncli: `wallet psbt fund` // FundPsbt creates a fully populated PSBT that contains enough inputs to fund // the outputs specified in the template. There are three ways a user can // specify what we call the template (a list of inputs and outputs to use in // the PSBT): Either as a PSBT packet directly with no coin selection (using // the legacy "psbt" field), a PSBT with advanced coin selection support (using // the new "coin_select" field) or as a raw RPC message (using the "raw" // field). // The legacy "psbt" and "raw" modes, the following restrictions apply: // 1. If there are no inputs specified in the template, coin selection is // performed automatically. // 2. 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. // // The new "coin_select" mode does not have these restrictions and allows the // user to specify a PSBT with inputs and outputs and still perform coin // selection on top of that. // For all modes this RPC requires any inputs that are specified to be locked // by the user (if they belong to this node in the first place). // // 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. FundPsbt(context.Context, *FundPsbtRequest) (*FundPsbtResponse, error) // 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. SignPsbt(context.Context, *SignPsbtRequest) (*SignPsbtResponse, error) // lncli: `wallet psbt finalize` // 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. FinalizePsbt(context.Context, *FinalizePsbtRequest) (*FinalizePsbtResponse, error) mustEmbedUnimplementedWalletKitServer() } // UnimplementedWalletKitServer must be embedded to have forward compatible implementations. type UnimplementedWalletKitServer struct { } func (UnimplementedWalletKitServer) ListUnspent(context.Context, *ListUnspentRequest) (*ListUnspentResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ListUnspent not implemented") } func (UnimplementedWalletKitServer) LeaseOutput(context.Context, *LeaseOutputRequest) (*LeaseOutputResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method LeaseOutput not implemented") } func (UnimplementedWalletKitServer) ReleaseOutput(context.Context, *ReleaseOutputRequest) (*ReleaseOutputResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ReleaseOutput not implemented") } func (UnimplementedWalletKitServer) ListLeases(context.Context, *ListLeasesRequest) (*ListLeasesResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ListLeases not implemented") } func (UnimplementedWalletKitServer) DeriveNextKey(context.Context, *KeyReq) (*signrpc.KeyDescriptor, error) { return nil, status.Errorf(codes.Unimplemented, "method DeriveNextKey not implemented") } func (UnimplementedWalletKitServer) DeriveKey(context.Context, *signrpc.KeyLocator) (*signrpc.KeyDescriptor, error) { return nil, status.Errorf(codes.Unimplemented, "method DeriveKey not implemented") } func (UnimplementedWalletKitServer) NextAddr(context.Context, *AddrRequest) (*AddrResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method NextAddr not implemented") } func (UnimplementedWalletKitServer) GetTransaction(context.Context, *GetTransactionRequest) (*lnrpc.Transaction, error) { return nil, status.Errorf(codes.Unimplemented, "method GetTransaction not implemented") } func (UnimplementedWalletKitServer) ListAccounts(context.Context, *ListAccountsRequest) (*ListAccountsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ListAccounts not implemented") } func (UnimplementedWalletKitServer) RequiredReserve(context.Context, *RequiredReserveRequest) (*RequiredReserveResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method RequiredReserve not implemented") } func (UnimplementedWalletKitServer) ListAddresses(context.Context, *ListAddressesRequest) (*ListAddressesResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ListAddresses not implemented") } func (UnimplementedWalletKitServer) SignMessageWithAddr(context.Context, *SignMessageWithAddrRequest) (*SignMessageWithAddrResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SignMessageWithAddr not implemented") } func (UnimplementedWalletKitServer) VerifyMessageWithAddr(context.Context, *VerifyMessageWithAddrRequest) (*VerifyMessageWithAddrResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method VerifyMessageWithAddr not implemented") } func (UnimplementedWalletKitServer) ImportAccount(context.Context, *ImportAccountRequest) (*ImportAccountResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ImportAccount not implemented") } func (UnimplementedWalletKitServer) ImportPublicKey(context.Context, *ImportPublicKeyRequest) (*ImportPublicKeyResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ImportPublicKey not implemented") } func (UnimplementedWalletKitServer) ImportTapscript(context.Context, *ImportTapscriptRequest) (*ImportTapscriptResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ImportTapscript not implemented") } func (UnimplementedWalletKitServer) PublishTransaction(context.Context, *Transaction) (*PublishResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method PublishTransaction not implemented") } func (UnimplementedWalletKitServer) RemoveTransaction(context.Context, *GetTransactionRequest) (*RemoveTransactionResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method RemoveTransaction not implemented") } func (UnimplementedWalletKitServer) SendOutputs(context.Context, *SendOutputsRequest) (*SendOutputsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SendOutputs not implemented") } func (UnimplementedWalletKitServer) EstimateFee(context.Context, *EstimateFeeRequest) (*EstimateFeeResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method EstimateFee not implemented") } func (UnimplementedWalletKitServer) PendingSweeps(context.Context, *PendingSweepsRequest) (*PendingSweepsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method PendingSweeps not implemented") } func (UnimplementedWalletKitServer) BumpFee(context.Context, *BumpFeeRequest) (*BumpFeeResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method BumpFee not implemented") } func (UnimplementedWalletKitServer) ListSweeps(context.Context, *ListSweepsRequest) (*ListSweepsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ListSweeps not implemented") } func (UnimplementedWalletKitServer) LabelTransaction(context.Context, *LabelTransactionRequest) (*LabelTransactionResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method LabelTransaction not implemented") } func (UnimplementedWalletKitServer) FundPsbt(context.Context, *FundPsbtRequest) (*FundPsbtResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method FundPsbt not implemented") } func (UnimplementedWalletKitServer) SignPsbt(context.Context, *SignPsbtRequest) (*SignPsbtResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SignPsbt not implemented") } func (UnimplementedWalletKitServer) FinalizePsbt(context.Context, *FinalizePsbtRequest) (*FinalizePsbtResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method FinalizePsbt not implemented") } func (UnimplementedWalletKitServer) mustEmbedUnimplementedWalletKitServer() {} // UnsafeWalletKitServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to WalletKitServer will // result in compilation errors. type UnsafeWalletKitServer interface { mustEmbedUnimplementedWalletKitServer() } func RegisterWalletKitServer(s grpc.ServiceRegistrar, srv WalletKitServer) { s.RegisterService(&WalletKit_ServiceDesc, srv) } func _WalletKit_ListUnspent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ListUnspentRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).ListUnspent(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/ListUnspent", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).ListUnspent(ctx, req.(*ListUnspentRequest)) } return interceptor(ctx, in, info, handler) } func _WalletKit_LeaseOutput_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(LeaseOutputRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).LeaseOutput(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/LeaseOutput", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).LeaseOutput(ctx, req.(*LeaseOutputRequest)) } return interceptor(ctx, in, info, handler) } func _WalletKit_ReleaseOutput_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ReleaseOutputRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).ReleaseOutput(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/ReleaseOutput", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).ReleaseOutput(ctx, req.(*ReleaseOutputRequest)) } return interceptor(ctx, in, info, handler) } func _WalletKit_ListLeases_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ListLeasesRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).ListLeases(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/ListLeases", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).ListLeases(ctx, req.(*ListLeasesRequest)) } return interceptor(ctx, in, info, handler) } func _WalletKit_DeriveNextKey_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(KeyReq) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).DeriveNextKey(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/DeriveNextKey", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).DeriveNextKey(ctx, req.(*KeyReq)) } return interceptor(ctx, in, info, handler) } func _WalletKit_DeriveKey_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(signrpc.KeyLocator) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).DeriveKey(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/DeriveKey", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).DeriveKey(ctx, req.(*signrpc.KeyLocator)) } return interceptor(ctx, in, info, handler) } func _WalletKit_NextAddr_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(AddrRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).NextAddr(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/NextAddr", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).NextAddr(ctx, req.(*AddrRequest)) } return interceptor(ctx, in, info, handler) } func _WalletKit_GetTransaction_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetTransactionRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).GetTransaction(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/GetTransaction", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).GetTransaction(ctx, req.(*GetTransactionRequest)) } return interceptor(ctx, in, info, handler) } func _WalletKit_ListAccounts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ListAccountsRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).ListAccounts(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/ListAccounts", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).ListAccounts(ctx, req.(*ListAccountsRequest)) } return interceptor(ctx, in, info, handler) } func _WalletKit_RequiredReserve_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(RequiredReserveRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).RequiredReserve(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/RequiredReserve", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).RequiredReserve(ctx, req.(*RequiredReserveRequest)) } return interceptor(ctx, in, info, handler) } func _WalletKit_ListAddresses_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ListAddressesRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).ListAddresses(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/ListAddresses", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).ListAddresses(ctx, req.(*ListAddressesRequest)) } return interceptor(ctx, in, info, handler) } func _WalletKit_SignMessageWithAddr_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(SignMessageWithAddrRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).SignMessageWithAddr(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/SignMessageWithAddr", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).SignMessageWithAddr(ctx, req.(*SignMessageWithAddrRequest)) } return interceptor(ctx, in, info, handler) } func _WalletKit_VerifyMessageWithAddr_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(VerifyMessageWithAddrRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).VerifyMessageWithAddr(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/VerifyMessageWithAddr", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).VerifyMessageWithAddr(ctx, req.(*VerifyMessageWithAddrRequest)) } return interceptor(ctx, in, info, handler) } func _WalletKit_ImportAccount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ImportAccountRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).ImportAccount(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/ImportAccount", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).ImportAccount(ctx, req.(*ImportAccountRequest)) } return interceptor(ctx, in, info, handler) } func _WalletKit_ImportPublicKey_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ImportPublicKeyRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).ImportPublicKey(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/ImportPublicKey", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).ImportPublicKey(ctx, req.(*ImportPublicKeyRequest)) } return interceptor(ctx, in, info, handler) } func _WalletKit_ImportTapscript_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ImportTapscriptRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).ImportTapscript(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/ImportTapscript", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).ImportTapscript(ctx, req.(*ImportTapscriptRequest)) } return interceptor(ctx, in, info, handler) } func _WalletKit_PublishTransaction_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(Transaction) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).PublishTransaction(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/PublishTransaction", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).PublishTransaction(ctx, req.(*Transaction)) } return interceptor(ctx, in, info, handler) } func _WalletKit_RemoveTransaction_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetTransactionRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).RemoveTransaction(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/RemoveTransaction", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).RemoveTransaction(ctx, req.(*GetTransactionRequest)) } return interceptor(ctx, in, info, handler) } func _WalletKit_SendOutputs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(SendOutputsRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).SendOutputs(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/SendOutputs", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).SendOutputs(ctx, req.(*SendOutputsRequest)) } return interceptor(ctx, in, info, handler) } func _WalletKit_EstimateFee_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(EstimateFeeRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).EstimateFee(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/EstimateFee", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).EstimateFee(ctx, req.(*EstimateFeeRequest)) } return interceptor(ctx, in, info, handler) } func _WalletKit_PendingSweeps_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(PendingSweepsRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).PendingSweeps(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/PendingSweeps", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).PendingSweeps(ctx, req.(*PendingSweepsRequest)) } return interceptor(ctx, in, info, handler) } func _WalletKit_BumpFee_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(BumpFeeRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).BumpFee(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/BumpFee", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).BumpFee(ctx, req.(*BumpFeeRequest)) } return interceptor(ctx, in, info, handler) } func _WalletKit_ListSweeps_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ListSweepsRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).ListSweeps(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/ListSweeps", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).ListSweeps(ctx, req.(*ListSweepsRequest)) } return interceptor(ctx, in, info, handler) } func _WalletKit_LabelTransaction_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(LabelTransactionRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).LabelTransaction(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/LabelTransaction", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).LabelTransaction(ctx, req.(*LabelTransactionRequest)) } return interceptor(ctx, in, info, handler) } func _WalletKit_FundPsbt_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(FundPsbtRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).FundPsbt(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/FundPsbt", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).FundPsbt(ctx, req.(*FundPsbtRequest)) } return interceptor(ctx, in, info, handler) } func _WalletKit_SignPsbt_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(SignPsbtRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).SignPsbt(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/SignPsbt", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).SignPsbt(ctx, req.(*SignPsbtRequest)) } return interceptor(ctx, in, info, handler) } func _WalletKit_FinalizePsbt_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(FinalizePsbtRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WalletKitServer).FinalizePsbt(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/walletrpc.WalletKit/FinalizePsbt", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WalletKitServer).FinalizePsbt(ctx, req.(*FinalizePsbtRequest)) } return interceptor(ctx, in, info, handler) } // WalletKit_ServiceDesc is the grpc.ServiceDesc for WalletKit service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) var WalletKit_ServiceDesc = grpc.ServiceDesc{ ServiceName: "walletrpc.WalletKit", HandlerType: (*WalletKitServer)(nil), Methods: []grpc.MethodDesc{ { MethodName: "ListUnspent", Handler: _WalletKit_ListUnspent_Handler, }, { MethodName: "LeaseOutput", Handler: _WalletKit_LeaseOutput_Handler, }, { MethodName: "ReleaseOutput", Handler: _WalletKit_ReleaseOutput_Handler, }, { MethodName: "ListLeases", Handler: _WalletKit_ListLeases_Handler, }, { MethodName: "DeriveNextKey", Handler: _WalletKit_DeriveNextKey_Handler, }, { MethodName: "DeriveKey", Handler: _WalletKit_DeriveKey_Handler, }, { MethodName: "NextAddr", Handler: _WalletKit_NextAddr_Handler, }, { MethodName: "GetTransaction", Handler: _WalletKit_GetTransaction_Handler, }, { MethodName: "ListAccounts", Handler: _WalletKit_ListAccounts_Handler, }, { MethodName: "RequiredReserve", Handler: _WalletKit_RequiredReserve_Handler, }, { MethodName: "ListAddresses", Handler: _WalletKit_ListAddresses_Handler, }, { MethodName: "SignMessageWithAddr", Handler: _WalletKit_SignMessageWithAddr_Handler, }, { MethodName: "VerifyMessageWithAddr", Handler: _WalletKit_VerifyMessageWithAddr_Handler, }, { MethodName: "ImportAccount", Handler: _WalletKit_ImportAccount_Handler, }, { MethodName: "ImportPublicKey", Handler: _WalletKit_ImportPublicKey_Handler, }, { MethodName: "ImportTapscript", Handler: _WalletKit_ImportTapscript_Handler, }, { MethodName: "PublishTransaction", Handler: _WalletKit_PublishTransaction_Handler, }, { MethodName: "RemoveTransaction", Handler: _WalletKit_RemoveTransaction_Handler, }, { MethodName: "SendOutputs", Handler: _WalletKit_SendOutputs_Handler, }, { MethodName: "EstimateFee", Handler: _WalletKit_EstimateFee_Handler, }, { MethodName: "PendingSweeps", Handler: _WalletKit_PendingSweeps_Handler, }, { MethodName: "BumpFee", Handler: _WalletKit_BumpFee_Handler, }, { MethodName: "ListSweeps", Handler: _WalletKit_ListSweeps_Handler, }, { MethodName: "LabelTransaction", Handler: _WalletKit_LabelTransaction_Handler, }, { MethodName: "FundPsbt", Handler: _WalletKit_FundPsbt_Handler, }, { MethodName: "SignPsbt", Handler: _WalletKit_SignPsbt_Handler, }, { MethodName: "FinalizePsbt", Handler: _WalletKit_FinalizePsbt_Handler, }, }, Streams: []grpc.StreamDesc{}, Metadata: "walletrpc/walletkit.proto", }