// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
// versions:
// - protoc-gen-go-grpc v1.5.1
// - protoc             (unknown)
// source: arkwallet/v1/bitcoin_wallet.proto

package arkwalletv1

import (
	context "context"
	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.64.0 or later.
const _ = grpc.SupportPackageIsVersion9

const (
	WalletService_GenSeed_FullMethodName                  = "/arkwallet.v1.WalletService/GenSeed"
	WalletService_Create_FullMethodName                   = "/arkwallet.v1.WalletService/Create"
	WalletService_Restore_FullMethodName                  = "/arkwallet.v1.WalletService/Restore"
	WalletService_Unlock_FullMethodName                   = "/arkwallet.v1.WalletService/Unlock"
	WalletService_Lock_FullMethodName                     = "/arkwallet.v1.WalletService/Lock"
	WalletService_Status_FullMethodName                   = "/arkwallet.v1.WalletService/Status"
	WalletService_GetNetwork_FullMethodName               = "/arkwallet.v1.WalletService/GetNetwork"
	WalletService_GetForfeitPubkey_FullMethodName         = "/arkwallet.v1.WalletService/GetForfeitPubkey"
	WalletService_DeriveConnectorAddress_FullMethodName   = "/arkwallet.v1.WalletService/DeriveConnectorAddress"
	WalletService_DeriveAddresses_FullMethodName          = "/arkwallet.v1.WalletService/DeriveAddresses"
	WalletService_SignTransaction_FullMethodName          = "/arkwallet.v1.WalletService/SignTransaction"
	WalletService_SignTransactionTapscript_FullMethodName = "/arkwallet.v1.WalletService/SignTransactionTapscript"
	WalletService_SelectUtxos_FullMethodName              = "/arkwallet.v1.WalletService/SelectUtxos"
	WalletService_BroadcastTransaction_FullMethodName     = "/arkwallet.v1.WalletService/BroadcastTransaction"
	WalletService_GetReadyUpdate_FullMethodName           = "/arkwallet.v1.WalletService/GetReadyUpdate"
	WalletService_IsTransactionConfirmed_FullMethodName   = "/arkwallet.v1.WalletService/IsTransactionConfirmed"
	WalletService_GetOutpointStatus_FullMethodName        = "/arkwallet.v1.WalletService/GetOutpointStatus"
	WalletService_EstimateFees_FullMethodName             = "/arkwallet.v1.WalletService/EstimateFees"
	WalletService_FeeRate_FullMethodName                  = "/arkwallet.v1.WalletService/FeeRate"
	WalletService_ListConnectorUtxos_FullMethodName       = "/arkwallet.v1.WalletService/ListConnectorUtxos"
	WalletService_MainAccountBalance_FullMethodName       = "/arkwallet.v1.WalletService/MainAccountBalance"
	WalletService_ConnectorsAccountBalance_FullMethodName = "/arkwallet.v1.WalletService/ConnectorsAccountBalance"
	WalletService_LockConnectorUtxos_FullMethodName       = "/arkwallet.v1.WalletService/LockConnectorUtxos"
	WalletService_GetDustAmount_FullMethodName            = "/arkwallet.v1.WalletService/GetDustAmount"
	WalletService_GetTransaction_FullMethodName           = "/arkwallet.v1.WalletService/GetTransaction"
	WalletService_SignMessage_FullMethodName              = "/arkwallet.v1.WalletService/SignMessage"
	WalletService_VerifyMessageSignature_FullMethodName   = "/arkwallet.v1.WalletService/VerifyMessageSignature"
	WalletService_GetCurrentBlockTime_FullMethodName      = "/arkwallet.v1.WalletService/GetCurrentBlockTime"
	WalletService_Withdraw_FullMethodName                 = "/arkwallet.v1.WalletService/Withdraw"
	WalletService_WatchScripts_FullMethodName             = "/arkwallet.v1.WalletService/WatchScripts"
	WalletService_UnwatchScripts_FullMethodName           = "/arkwallet.v1.WalletService/UnwatchScripts"
	WalletService_NotificationStream_FullMethodName       = "/arkwallet.v1.WalletService/NotificationStream"
	WalletService_LoadSignerKey_FullMethodName            = "/arkwallet.v1.WalletService/LoadSignerKey"
)

// WalletServiceClient is the client API for WalletService 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.
//
// WalletService exposes wallet operations via gRPC. Methods match the ports.WalletService interface.
type WalletServiceClient interface {
	GenSeed(ctx context.Context, in *GenSeedRequest, opts ...grpc.CallOption) (*GenSeedResponse, error)
	Create(ctx context.Context, in *CreateRequest, opts ...grpc.CallOption) (*CreateResponse, error)
	Restore(ctx context.Context, in *RestoreRequest, opts ...grpc.CallOption) (*RestoreResponse, error)
	Unlock(ctx context.Context, in *UnlockRequest, opts ...grpc.CallOption) (*UnlockResponse, error)
	Lock(ctx context.Context, in *LockRequest, opts ...grpc.CallOption) (*LockResponse, error)
	Status(ctx context.Context, in *StatusRequest, opts ...grpc.CallOption) (*StatusResponse, error)
	GetNetwork(ctx context.Context, in *GetNetworkRequest, opts ...grpc.CallOption) (*GetNetworkResponse, error)
	GetForfeitPubkey(ctx context.Context, in *GetForfeitPubkeyRequest, opts ...grpc.CallOption) (*GetForfeitPubkeyResponse, error)
	DeriveConnectorAddress(ctx context.Context, in *DeriveConnectorAddressRequest, opts ...grpc.CallOption) (*DeriveConnectorAddressResponse, error)
	DeriveAddresses(ctx context.Context, in *DeriveAddressesRequest, opts ...grpc.CallOption) (*DeriveAddressesResponse, error)
	SignTransaction(ctx context.Context, in *SignTransactionRequest, opts ...grpc.CallOption) (*SignTransactionResponse, error)
	SignTransactionTapscript(ctx context.Context, in *SignTransactionTapscriptRequest, opts ...grpc.CallOption) (*SignTransactionTapscriptResponse, error)
	SelectUtxos(ctx context.Context, in *SelectUtxosRequest, opts ...grpc.CallOption) (*SelectUtxosResponse, error)
	BroadcastTransaction(ctx context.Context, in *BroadcastTransactionRequest, opts ...grpc.CallOption) (*BroadcastTransactionResponse, error)
	GetReadyUpdate(ctx context.Context, in *GetReadyUpdateRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[GetReadyUpdateResponse], error)
	IsTransactionConfirmed(ctx context.Context, in *IsTransactionConfirmedRequest, opts ...grpc.CallOption) (*IsTransactionConfirmedResponse, error)
	GetOutpointStatus(ctx context.Context, in *GetOutpointStatusRequest, opts ...grpc.CallOption) (*GetOutpointStatusResponse, error)
	EstimateFees(ctx context.Context, in *EstimateFeesRequest, opts ...grpc.CallOption) (*EstimateFeesResponse, error)
	FeeRate(ctx context.Context, in *FeeRateRequest, opts ...grpc.CallOption) (*FeeRateResponse, error)
	ListConnectorUtxos(ctx context.Context, in *ListConnectorUtxosRequest, opts ...grpc.CallOption) (*ListConnectorUtxosResponse, error)
	MainAccountBalance(ctx context.Context, in *MainAccountBalanceRequest, opts ...grpc.CallOption) (*MainAccountBalanceResponse, error)
	ConnectorsAccountBalance(ctx context.Context, in *ConnectorsAccountBalanceRequest, opts ...grpc.CallOption) (*ConnectorsAccountBalanceResponse, error)
	LockConnectorUtxos(ctx context.Context, in *LockConnectorUtxosRequest, opts ...grpc.CallOption) (*LockConnectorUtxosResponse, error)
	GetDustAmount(ctx context.Context, in *GetDustAmountRequest, opts ...grpc.CallOption) (*GetDustAmountResponse, error)
	GetTransaction(ctx context.Context, in *GetTransactionRequest, opts ...grpc.CallOption) (*GetTransactionResponse, error)
	SignMessage(ctx context.Context, in *SignMessageRequest, opts ...grpc.CallOption) (*SignMessageResponse, error)
	VerifyMessageSignature(ctx context.Context, in *VerifyMessageSignatureRequest, opts ...grpc.CallOption) (*VerifyMessageSignatureResponse, error)
	GetCurrentBlockTime(ctx context.Context, in *GetCurrentBlockTimeRequest, opts ...grpc.CallOption) (*GetCurrentBlockTimeResponse, error)
	Withdraw(ctx context.Context, in *WithdrawRequest, opts ...grpc.CallOption) (*WithdrawResponse, error)
	WatchScripts(ctx context.Context, in *WatchScriptsRequest, opts ...grpc.CallOption) (*WatchScriptsResponse, error)
	UnwatchScripts(ctx context.Context, in *UnwatchScriptsRequest, opts ...grpc.CallOption) (*UnwatchScriptsResponse, error)
	NotificationStream(ctx context.Context, in *NotificationStreamRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[NotificationStreamResponse], error)
	LoadSignerKey(ctx context.Context, in *LoadSignerKeyRequest, opts ...grpc.CallOption) (*LoadSignerKeyResponse, error)
}

type walletServiceClient struct {
	cc grpc.ClientConnInterface
}

func NewWalletServiceClient(cc grpc.ClientConnInterface) WalletServiceClient {
	return &walletServiceClient{cc}
}

func (c *walletServiceClient) GenSeed(ctx context.Context, in *GenSeedRequest, opts ...grpc.CallOption) (*GenSeedResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(GenSeedResponse)
	err := c.cc.Invoke(ctx, WalletService_GenSeed_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *walletServiceClient) Create(ctx context.Context, in *CreateRequest, opts ...grpc.CallOption) (*CreateResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(CreateResponse)
	err := c.cc.Invoke(ctx, WalletService_Create_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *walletServiceClient) Restore(ctx context.Context, in *RestoreRequest, opts ...grpc.CallOption) (*RestoreResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(RestoreResponse)
	err := c.cc.Invoke(ctx, WalletService_Restore_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *walletServiceClient) Unlock(ctx context.Context, in *UnlockRequest, opts ...grpc.CallOption) (*UnlockResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(UnlockResponse)
	err := c.cc.Invoke(ctx, WalletService_Unlock_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *walletServiceClient) Lock(ctx context.Context, in *LockRequest, opts ...grpc.CallOption) (*LockResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(LockResponse)
	err := c.cc.Invoke(ctx, WalletService_Lock_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *walletServiceClient) Status(ctx context.Context, in *StatusRequest, opts ...grpc.CallOption) (*StatusResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(StatusResponse)
	err := c.cc.Invoke(ctx, WalletService_Status_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *walletServiceClient) GetNetwork(ctx context.Context, in *GetNetworkRequest, opts ...grpc.CallOption) (*GetNetworkResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(GetNetworkResponse)
	err := c.cc.Invoke(ctx, WalletService_GetNetwork_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *walletServiceClient) GetForfeitPubkey(ctx context.Context, in *GetForfeitPubkeyRequest, opts ...grpc.CallOption) (*GetForfeitPubkeyResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(GetForfeitPubkeyResponse)
	err := c.cc.Invoke(ctx, WalletService_GetForfeitPubkey_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *walletServiceClient) DeriveConnectorAddress(ctx context.Context, in *DeriveConnectorAddressRequest, opts ...grpc.CallOption) (*DeriveConnectorAddressResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(DeriveConnectorAddressResponse)
	err := c.cc.Invoke(ctx, WalletService_DeriveConnectorAddress_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *walletServiceClient) DeriveAddresses(ctx context.Context, in *DeriveAddressesRequest, opts ...grpc.CallOption) (*DeriveAddressesResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(DeriveAddressesResponse)
	err := c.cc.Invoke(ctx, WalletService_DeriveAddresses_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *walletServiceClient) SignTransaction(ctx context.Context, in *SignTransactionRequest, opts ...grpc.CallOption) (*SignTransactionResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(SignTransactionResponse)
	err := c.cc.Invoke(ctx, WalletService_SignTransaction_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *walletServiceClient) SignTransactionTapscript(ctx context.Context, in *SignTransactionTapscriptRequest, opts ...grpc.CallOption) (*SignTransactionTapscriptResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(SignTransactionTapscriptResponse)
	err := c.cc.Invoke(ctx, WalletService_SignTransactionTapscript_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *walletServiceClient) SelectUtxos(ctx context.Context, in *SelectUtxosRequest, opts ...grpc.CallOption) (*SelectUtxosResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(SelectUtxosResponse)
	err := c.cc.Invoke(ctx, WalletService_SelectUtxos_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *walletServiceClient) BroadcastTransaction(ctx context.Context, in *BroadcastTransactionRequest, opts ...grpc.CallOption) (*BroadcastTransactionResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(BroadcastTransactionResponse)
	err := c.cc.Invoke(ctx, WalletService_BroadcastTransaction_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *walletServiceClient) GetReadyUpdate(ctx context.Context, in *GetReadyUpdateRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[GetReadyUpdateResponse], error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	stream, err := c.cc.NewStream(ctx, &WalletService_ServiceDesc.Streams[0], WalletService_GetReadyUpdate_FullMethodName, cOpts...)
	if err != nil {
		return nil, err
	}
	x := &grpc.GenericClientStream[GetReadyUpdateRequest, GetReadyUpdateResponse]{ClientStream: stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type WalletService_GetReadyUpdateClient = grpc.ServerStreamingClient[GetReadyUpdateResponse]

func (c *walletServiceClient) IsTransactionConfirmed(ctx context.Context, in *IsTransactionConfirmedRequest, opts ...grpc.CallOption) (*IsTransactionConfirmedResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(IsTransactionConfirmedResponse)
	err := c.cc.Invoke(ctx, WalletService_IsTransactionConfirmed_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *walletServiceClient) GetOutpointStatus(ctx context.Context, in *GetOutpointStatusRequest, opts ...grpc.CallOption) (*GetOutpointStatusResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(GetOutpointStatusResponse)
	err := c.cc.Invoke(ctx, WalletService_GetOutpointStatus_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *walletServiceClient) EstimateFees(ctx context.Context, in *EstimateFeesRequest, opts ...grpc.CallOption) (*EstimateFeesResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(EstimateFeesResponse)
	err := c.cc.Invoke(ctx, WalletService_EstimateFees_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *walletServiceClient) FeeRate(ctx context.Context, in *FeeRateRequest, opts ...grpc.CallOption) (*FeeRateResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(FeeRateResponse)
	err := c.cc.Invoke(ctx, WalletService_FeeRate_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *walletServiceClient) ListConnectorUtxos(ctx context.Context, in *ListConnectorUtxosRequest, opts ...grpc.CallOption) (*ListConnectorUtxosResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(ListConnectorUtxosResponse)
	err := c.cc.Invoke(ctx, WalletService_ListConnectorUtxos_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *walletServiceClient) MainAccountBalance(ctx context.Context, in *MainAccountBalanceRequest, opts ...grpc.CallOption) (*MainAccountBalanceResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(MainAccountBalanceResponse)
	err := c.cc.Invoke(ctx, WalletService_MainAccountBalance_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *walletServiceClient) ConnectorsAccountBalance(ctx context.Context, in *ConnectorsAccountBalanceRequest, opts ...grpc.CallOption) (*ConnectorsAccountBalanceResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(ConnectorsAccountBalanceResponse)
	err := c.cc.Invoke(ctx, WalletService_ConnectorsAccountBalance_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *walletServiceClient) LockConnectorUtxos(ctx context.Context, in *LockConnectorUtxosRequest, opts ...grpc.CallOption) (*LockConnectorUtxosResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(LockConnectorUtxosResponse)
	err := c.cc.Invoke(ctx, WalletService_LockConnectorUtxos_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *walletServiceClient) GetDustAmount(ctx context.Context, in *GetDustAmountRequest, opts ...grpc.CallOption) (*GetDustAmountResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(GetDustAmountResponse)
	err := c.cc.Invoke(ctx, WalletService_GetDustAmount_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *walletServiceClient) GetTransaction(ctx context.Context, in *GetTransactionRequest, opts ...grpc.CallOption) (*GetTransactionResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(GetTransactionResponse)
	err := c.cc.Invoke(ctx, WalletService_GetTransaction_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *walletServiceClient) SignMessage(ctx context.Context, in *SignMessageRequest, opts ...grpc.CallOption) (*SignMessageResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(SignMessageResponse)
	err := c.cc.Invoke(ctx, WalletService_SignMessage_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *walletServiceClient) VerifyMessageSignature(ctx context.Context, in *VerifyMessageSignatureRequest, opts ...grpc.CallOption) (*VerifyMessageSignatureResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(VerifyMessageSignatureResponse)
	err := c.cc.Invoke(ctx, WalletService_VerifyMessageSignature_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *walletServiceClient) GetCurrentBlockTime(ctx context.Context, in *GetCurrentBlockTimeRequest, opts ...grpc.CallOption) (*GetCurrentBlockTimeResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(GetCurrentBlockTimeResponse)
	err := c.cc.Invoke(ctx, WalletService_GetCurrentBlockTime_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *walletServiceClient) Withdraw(ctx context.Context, in *WithdrawRequest, opts ...grpc.CallOption) (*WithdrawResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(WithdrawResponse)
	err := c.cc.Invoke(ctx, WalletService_Withdraw_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *walletServiceClient) WatchScripts(ctx context.Context, in *WatchScriptsRequest, opts ...grpc.CallOption) (*WatchScriptsResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(WatchScriptsResponse)
	err := c.cc.Invoke(ctx, WalletService_WatchScripts_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *walletServiceClient) UnwatchScripts(ctx context.Context, in *UnwatchScriptsRequest, opts ...grpc.CallOption) (*UnwatchScriptsResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(UnwatchScriptsResponse)
	err := c.cc.Invoke(ctx, WalletService_UnwatchScripts_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *walletServiceClient) NotificationStream(ctx context.Context, in *NotificationStreamRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[NotificationStreamResponse], error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	stream, err := c.cc.NewStream(ctx, &WalletService_ServiceDesc.Streams[1], WalletService_NotificationStream_FullMethodName, cOpts...)
	if err != nil {
		return nil, err
	}
	x := &grpc.GenericClientStream[NotificationStreamRequest, NotificationStreamResponse]{ClientStream: stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type WalletService_NotificationStreamClient = grpc.ServerStreamingClient[NotificationStreamResponse]

func (c *walletServiceClient) LoadSignerKey(ctx context.Context, in *LoadSignerKeyRequest, opts ...grpc.CallOption) (*LoadSignerKeyResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(LoadSignerKeyResponse)
	err := c.cc.Invoke(ctx, WalletService_LoadSignerKey_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// WalletServiceServer is the server API for WalletService service.
// All implementations should embed UnimplementedWalletServiceServer
// for forward compatibility.
//
// WalletService exposes wallet operations via gRPC. Methods match the ports.WalletService interface.
type WalletServiceServer interface {
	GenSeed(context.Context, *GenSeedRequest) (*GenSeedResponse, error)
	Create(context.Context, *CreateRequest) (*CreateResponse, error)
	Restore(context.Context, *RestoreRequest) (*RestoreResponse, error)
	Unlock(context.Context, *UnlockRequest) (*UnlockResponse, error)
	Lock(context.Context, *LockRequest) (*LockResponse, error)
	Status(context.Context, *StatusRequest) (*StatusResponse, error)
	GetNetwork(context.Context, *GetNetworkRequest) (*GetNetworkResponse, error)
	GetForfeitPubkey(context.Context, *GetForfeitPubkeyRequest) (*GetForfeitPubkeyResponse, error)
	DeriveConnectorAddress(context.Context, *DeriveConnectorAddressRequest) (*DeriveConnectorAddressResponse, error)
	DeriveAddresses(context.Context, *DeriveAddressesRequest) (*DeriveAddressesResponse, error)
	SignTransaction(context.Context, *SignTransactionRequest) (*SignTransactionResponse, error)
	SignTransactionTapscript(context.Context, *SignTransactionTapscriptRequest) (*SignTransactionTapscriptResponse, error)
	SelectUtxos(context.Context, *SelectUtxosRequest) (*SelectUtxosResponse, error)
	BroadcastTransaction(context.Context, *BroadcastTransactionRequest) (*BroadcastTransactionResponse, error)
	GetReadyUpdate(*GetReadyUpdateRequest, grpc.ServerStreamingServer[GetReadyUpdateResponse]) error
	IsTransactionConfirmed(context.Context, *IsTransactionConfirmedRequest) (*IsTransactionConfirmedResponse, error)
	GetOutpointStatus(context.Context, *GetOutpointStatusRequest) (*GetOutpointStatusResponse, error)
	EstimateFees(context.Context, *EstimateFeesRequest) (*EstimateFeesResponse, error)
	FeeRate(context.Context, *FeeRateRequest) (*FeeRateResponse, error)
	ListConnectorUtxos(context.Context, *ListConnectorUtxosRequest) (*ListConnectorUtxosResponse, error)
	MainAccountBalance(context.Context, *MainAccountBalanceRequest) (*MainAccountBalanceResponse, error)
	ConnectorsAccountBalance(context.Context, *ConnectorsAccountBalanceRequest) (*ConnectorsAccountBalanceResponse, error)
	LockConnectorUtxos(context.Context, *LockConnectorUtxosRequest) (*LockConnectorUtxosResponse, error)
	GetDustAmount(context.Context, *GetDustAmountRequest) (*GetDustAmountResponse, error)
	GetTransaction(context.Context, *GetTransactionRequest) (*GetTransactionResponse, error)
	SignMessage(context.Context, *SignMessageRequest) (*SignMessageResponse, error)
	VerifyMessageSignature(context.Context, *VerifyMessageSignatureRequest) (*VerifyMessageSignatureResponse, error)
	GetCurrentBlockTime(context.Context, *GetCurrentBlockTimeRequest) (*GetCurrentBlockTimeResponse, error)
	Withdraw(context.Context, *WithdrawRequest) (*WithdrawResponse, error)
	WatchScripts(context.Context, *WatchScriptsRequest) (*WatchScriptsResponse, error)
	UnwatchScripts(context.Context, *UnwatchScriptsRequest) (*UnwatchScriptsResponse, error)
	NotificationStream(*NotificationStreamRequest, grpc.ServerStreamingServer[NotificationStreamResponse]) error
	LoadSignerKey(context.Context, *LoadSignerKeyRequest) (*LoadSignerKeyResponse, error)
}

// UnimplementedWalletServiceServer should be embedded to have
// forward compatible implementations.
//
// NOTE: this should be embedded by value instead of pointer to avoid a nil
// pointer dereference when methods are called.
type UnimplementedWalletServiceServer struct{}

func (UnimplementedWalletServiceServer) GenSeed(context.Context, *GenSeedRequest) (*GenSeedResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GenSeed not implemented")
}
func (UnimplementedWalletServiceServer) Create(context.Context, *CreateRequest) (*CreateResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Create not implemented")
}
func (UnimplementedWalletServiceServer) Restore(context.Context, *RestoreRequest) (*RestoreResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Restore not implemented")
}
func (UnimplementedWalletServiceServer) Unlock(context.Context, *UnlockRequest) (*UnlockResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Unlock not implemented")
}
func (UnimplementedWalletServiceServer) Lock(context.Context, *LockRequest) (*LockResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Lock not implemented")
}
func (UnimplementedWalletServiceServer) Status(context.Context, *StatusRequest) (*StatusResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Status not implemented")
}
func (UnimplementedWalletServiceServer) GetNetwork(context.Context, *GetNetworkRequest) (*GetNetworkResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetNetwork not implemented")
}
func (UnimplementedWalletServiceServer) GetForfeitPubkey(context.Context, *GetForfeitPubkeyRequest) (*GetForfeitPubkeyResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetForfeitPubkey not implemented")
}
func (UnimplementedWalletServiceServer) DeriveConnectorAddress(context.Context, *DeriveConnectorAddressRequest) (*DeriveConnectorAddressResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeriveConnectorAddress not implemented")
}
func (UnimplementedWalletServiceServer) DeriveAddresses(context.Context, *DeriveAddressesRequest) (*DeriveAddressesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeriveAddresses not implemented")
}
func (UnimplementedWalletServiceServer) SignTransaction(context.Context, *SignTransactionRequest) (*SignTransactionResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SignTransaction not implemented")
}
func (UnimplementedWalletServiceServer) SignTransactionTapscript(context.Context, *SignTransactionTapscriptRequest) (*SignTransactionTapscriptResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SignTransactionTapscript not implemented")
}
func (UnimplementedWalletServiceServer) SelectUtxos(context.Context, *SelectUtxosRequest) (*SelectUtxosResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SelectUtxos not implemented")
}
func (UnimplementedWalletServiceServer) BroadcastTransaction(context.Context, *BroadcastTransactionRequest) (*BroadcastTransactionResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method BroadcastTransaction not implemented")
}
func (UnimplementedWalletServiceServer) GetReadyUpdate(*GetReadyUpdateRequest, grpc.ServerStreamingServer[GetReadyUpdateResponse]) error {
	return status.Errorf(codes.Unimplemented, "method GetReadyUpdate not implemented")
}
func (UnimplementedWalletServiceServer) IsTransactionConfirmed(context.Context, *IsTransactionConfirmedRequest) (*IsTransactionConfirmedResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method IsTransactionConfirmed not implemented")
}
func (UnimplementedWalletServiceServer) GetOutpointStatus(context.Context, *GetOutpointStatusRequest) (*GetOutpointStatusResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetOutpointStatus not implemented")
}
func (UnimplementedWalletServiceServer) EstimateFees(context.Context, *EstimateFeesRequest) (*EstimateFeesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method EstimateFees not implemented")
}
func (UnimplementedWalletServiceServer) FeeRate(context.Context, *FeeRateRequest) (*FeeRateResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method FeeRate not implemented")
}
func (UnimplementedWalletServiceServer) ListConnectorUtxos(context.Context, *ListConnectorUtxosRequest) (*ListConnectorUtxosResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListConnectorUtxos not implemented")
}
func (UnimplementedWalletServiceServer) MainAccountBalance(context.Context, *MainAccountBalanceRequest) (*MainAccountBalanceResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method MainAccountBalance not implemented")
}
func (UnimplementedWalletServiceServer) ConnectorsAccountBalance(context.Context, *ConnectorsAccountBalanceRequest) (*ConnectorsAccountBalanceResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ConnectorsAccountBalance not implemented")
}
func (UnimplementedWalletServiceServer) LockConnectorUtxos(context.Context, *LockConnectorUtxosRequest) (*LockConnectorUtxosResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method LockConnectorUtxos not implemented")
}
func (UnimplementedWalletServiceServer) GetDustAmount(context.Context, *GetDustAmountRequest) (*GetDustAmountResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetDustAmount not implemented")
}
func (UnimplementedWalletServiceServer) GetTransaction(context.Context, *GetTransactionRequest) (*GetTransactionResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetTransaction not implemented")
}
func (UnimplementedWalletServiceServer) SignMessage(context.Context, *SignMessageRequest) (*SignMessageResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SignMessage not implemented")
}
func (UnimplementedWalletServiceServer) VerifyMessageSignature(context.Context, *VerifyMessageSignatureRequest) (*VerifyMessageSignatureResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method VerifyMessageSignature not implemented")
}
func (UnimplementedWalletServiceServer) GetCurrentBlockTime(context.Context, *GetCurrentBlockTimeRequest) (*GetCurrentBlockTimeResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetCurrentBlockTime not implemented")
}
func (UnimplementedWalletServiceServer) Withdraw(context.Context, *WithdrawRequest) (*WithdrawResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Withdraw not implemented")
}
func (UnimplementedWalletServiceServer) WatchScripts(context.Context, *WatchScriptsRequest) (*WatchScriptsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method WatchScripts not implemented")
}
func (UnimplementedWalletServiceServer) UnwatchScripts(context.Context, *UnwatchScriptsRequest) (*UnwatchScriptsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UnwatchScripts not implemented")
}
func (UnimplementedWalletServiceServer) NotificationStream(*NotificationStreamRequest, grpc.ServerStreamingServer[NotificationStreamResponse]) error {
	return status.Errorf(codes.Unimplemented, "method NotificationStream not implemented")
}
func (UnimplementedWalletServiceServer) LoadSignerKey(context.Context, *LoadSignerKeyRequest) (*LoadSignerKeyResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method LoadSignerKey not implemented")
}
func (UnimplementedWalletServiceServer) testEmbeddedByValue() {}

// UnsafeWalletServiceServer may be embedded to opt out of forward compatibility for this service.
// Use of this interface is not recommended, as added methods to WalletServiceServer will
// result in compilation errors.
type UnsafeWalletServiceServer interface {
	mustEmbedUnimplementedWalletServiceServer()
}

func RegisterWalletServiceServer(s grpc.ServiceRegistrar, srv WalletServiceServer) {
	// If the following call pancis, it indicates UnimplementedWalletServiceServer was
	// embedded by pointer and is nil.  This will cause panics if an
	// unimplemented method is ever invoked, so we test this at initialization
	// time to prevent it from happening at runtime later due to I/O.
	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
		t.testEmbeddedByValue()
	}
	s.RegisterService(&WalletService_ServiceDesc, srv)
}

func _WalletService_GenSeed_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GenSeedRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(WalletServiceServer).GenSeed(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: WalletService_GenSeed_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(WalletServiceServer).GenSeed(ctx, req.(*GenSeedRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _WalletService_Create_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(WalletServiceServer).Create(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: WalletService_Create_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(WalletServiceServer).Create(ctx, req.(*CreateRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _WalletService_Restore_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(RestoreRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(WalletServiceServer).Restore(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: WalletService_Restore_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(WalletServiceServer).Restore(ctx, req.(*RestoreRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _WalletService_Unlock_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UnlockRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(WalletServiceServer).Unlock(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: WalletService_Unlock_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(WalletServiceServer).Unlock(ctx, req.(*UnlockRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _WalletService_Lock_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(LockRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(WalletServiceServer).Lock(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: WalletService_Lock_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(WalletServiceServer).Lock(ctx, req.(*LockRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _WalletService_Status_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(StatusRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(WalletServiceServer).Status(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: WalletService_Status_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(WalletServiceServer).Status(ctx, req.(*StatusRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _WalletService_GetNetwork_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetNetworkRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(WalletServiceServer).GetNetwork(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: WalletService_GetNetwork_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(WalletServiceServer).GetNetwork(ctx, req.(*GetNetworkRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _WalletService_GetForfeitPubkey_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetForfeitPubkeyRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(WalletServiceServer).GetForfeitPubkey(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: WalletService_GetForfeitPubkey_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(WalletServiceServer).GetForfeitPubkey(ctx, req.(*GetForfeitPubkeyRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _WalletService_DeriveConnectorAddress_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeriveConnectorAddressRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(WalletServiceServer).DeriveConnectorAddress(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: WalletService_DeriveConnectorAddress_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(WalletServiceServer).DeriveConnectorAddress(ctx, req.(*DeriveConnectorAddressRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _WalletService_DeriveAddresses_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeriveAddressesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(WalletServiceServer).DeriveAddresses(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: WalletService_DeriveAddresses_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(WalletServiceServer).DeriveAddresses(ctx, req.(*DeriveAddressesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _WalletService_SignTransaction_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SignTransactionRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(WalletServiceServer).SignTransaction(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: WalletService_SignTransaction_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(WalletServiceServer).SignTransaction(ctx, req.(*SignTransactionRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _WalletService_SignTransactionTapscript_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SignTransactionTapscriptRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(WalletServiceServer).SignTransactionTapscript(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: WalletService_SignTransactionTapscript_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(WalletServiceServer).SignTransactionTapscript(ctx, req.(*SignTransactionTapscriptRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _WalletService_SelectUtxos_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SelectUtxosRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(WalletServiceServer).SelectUtxos(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: WalletService_SelectUtxos_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(WalletServiceServer).SelectUtxos(ctx, req.(*SelectUtxosRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _WalletService_BroadcastTransaction_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(BroadcastTransactionRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(WalletServiceServer).BroadcastTransaction(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: WalletService_BroadcastTransaction_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(WalletServiceServer).BroadcastTransaction(ctx, req.(*BroadcastTransactionRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _WalletService_GetReadyUpdate_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(GetReadyUpdateRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(WalletServiceServer).GetReadyUpdate(m, &grpc.GenericServerStream[GetReadyUpdateRequest, GetReadyUpdateResponse]{ServerStream: stream})
}

// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type WalletService_GetReadyUpdateServer = grpc.ServerStreamingServer[GetReadyUpdateResponse]

func _WalletService_IsTransactionConfirmed_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(IsTransactionConfirmedRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(WalletServiceServer).IsTransactionConfirmed(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: WalletService_IsTransactionConfirmed_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(WalletServiceServer).IsTransactionConfirmed(ctx, req.(*IsTransactionConfirmedRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _WalletService_GetOutpointStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetOutpointStatusRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(WalletServiceServer).GetOutpointStatus(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: WalletService_GetOutpointStatus_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(WalletServiceServer).GetOutpointStatus(ctx, req.(*GetOutpointStatusRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _WalletService_EstimateFees_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(EstimateFeesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(WalletServiceServer).EstimateFees(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: WalletService_EstimateFees_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(WalletServiceServer).EstimateFees(ctx, req.(*EstimateFeesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _WalletService_FeeRate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(FeeRateRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(WalletServiceServer).FeeRate(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: WalletService_FeeRate_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(WalletServiceServer).FeeRate(ctx, req.(*FeeRateRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _WalletService_ListConnectorUtxos_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListConnectorUtxosRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(WalletServiceServer).ListConnectorUtxos(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: WalletService_ListConnectorUtxos_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(WalletServiceServer).ListConnectorUtxos(ctx, req.(*ListConnectorUtxosRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _WalletService_MainAccountBalance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(MainAccountBalanceRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(WalletServiceServer).MainAccountBalance(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: WalletService_MainAccountBalance_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(WalletServiceServer).MainAccountBalance(ctx, req.(*MainAccountBalanceRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _WalletService_ConnectorsAccountBalance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ConnectorsAccountBalanceRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(WalletServiceServer).ConnectorsAccountBalance(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: WalletService_ConnectorsAccountBalance_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(WalletServiceServer).ConnectorsAccountBalance(ctx, req.(*ConnectorsAccountBalanceRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _WalletService_LockConnectorUtxos_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(LockConnectorUtxosRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(WalletServiceServer).LockConnectorUtxos(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: WalletService_LockConnectorUtxos_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(WalletServiceServer).LockConnectorUtxos(ctx, req.(*LockConnectorUtxosRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _WalletService_GetDustAmount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetDustAmountRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(WalletServiceServer).GetDustAmount(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: WalletService_GetDustAmount_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(WalletServiceServer).GetDustAmount(ctx, req.(*GetDustAmountRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _WalletService_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.(WalletServiceServer).GetTransaction(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: WalletService_GetTransaction_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(WalletServiceServer).GetTransaction(ctx, req.(*GetTransactionRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _WalletService_SignMessage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SignMessageRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(WalletServiceServer).SignMessage(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: WalletService_SignMessage_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(WalletServiceServer).SignMessage(ctx, req.(*SignMessageRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _WalletService_VerifyMessageSignature_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(VerifyMessageSignatureRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(WalletServiceServer).VerifyMessageSignature(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: WalletService_VerifyMessageSignature_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(WalletServiceServer).VerifyMessageSignature(ctx, req.(*VerifyMessageSignatureRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _WalletService_GetCurrentBlockTime_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetCurrentBlockTimeRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(WalletServiceServer).GetCurrentBlockTime(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: WalletService_GetCurrentBlockTime_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(WalletServiceServer).GetCurrentBlockTime(ctx, req.(*GetCurrentBlockTimeRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _WalletService_Withdraw_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(WithdrawRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(WalletServiceServer).Withdraw(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: WalletService_Withdraw_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(WalletServiceServer).Withdraw(ctx, req.(*WithdrawRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _WalletService_WatchScripts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(WatchScriptsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(WalletServiceServer).WatchScripts(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: WalletService_WatchScripts_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(WalletServiceServer).WatchScripts(ctx, req.(*WatchScriptsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _WalletService_UnwatchScripts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UnwatchScriptsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(WalletServiceServer).UnwatchScripts(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: WalletService_UnwatchScripts_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(WalletServiceServer).UnwatchScripts(ctx, req.(*UnwatchScriptsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _WalletService_NotificationStream_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(NotificationStreamRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(WalletServiceServer).NotificationStream(m, &grpc.GenericServerStream[NotificationStreamRequest, NotificationStreamResponse]{ServerStream: stream})
}

// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type WalletService_NotificationStreamServer = grpc.ServerStreamingServer[NotificationStreamResponse]

func _WalletService_LoadSignerKey_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(LoadSignerKeyRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(WalletServiceServer).LoadSignerKey(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: WalletService_LoadSignerKey_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(WalletServiceServer).LoadSignerKey(ctx, req.(*LoadSignerKeyRequest))
	}
	return interceptor(ctx, in, info, handler)
}

// WalletService_ServiceDesc is the grpc.ServiceDesc for WalletService service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
var WalletService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "arkwallet.v1.WalletService",
	HandlerType: (*WalletServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "GenSeed",
			Handler:    _WalletService_GenSeed_Handler,
		},
		{
			MethodName: "Create",
			Handler:    _WalletService_Create_Handler,
		},
		{
			MethodName: "Restore",
			Handler:    _WalletService_Restore_Handler,
		},
		{
			MethodName: "Unlock",
			Handler:    _WalletService_Unlock_Handler,
		},
		{
			MethodName: "Lock",
			Handler:    _WalletService_Lock_Handler,
		},
		{
			MethodName: "Status",
			Handler:    _WalletService_Status_Handler,
		},
		{
			MethodName: "GetNetwork",
			Handler:    _WalletService_GetNetwork_Handler,
		},
		{
			MethodName: "GetForfeitPubkey",
			Handler:    _WalletService_GetForfeitPubkey_Handler,
		},
		{
			MethodName: "DeriveConnectorAddress",
			Handler:    _WalletService_DeriveConnectorAddress_Handler,
		},
		{
			MethodName: "DeriveAddresses",
			Handler:    _WalletService_DeriveAddresses_Handler,
		},
		{
			MethodName: "SignTransaction",
			Handler:    _WalletService_SignTransaction_Handler,
		},
		{
			MethodName: "SignTransactionTapscript",
			Handler:    _WalletService_SignTransactionTapscript_Handler,
		},
		{
			MethodName: "SelectUtxos",
			Handler:    _WalletService_SelectUtxos_Handler,
		},
		{
			MethodName: "BroadcastTransaction",
			Handler:    _WalletService_BroadcastTransaction_Handler,
		},
		{
			MethodName: "IsTransactionConfirmed",
			Handler:    _WalletService_IsTransactionConfirmed_Handler,
		},
		{
			MethodName: "GetOutpointStatus",
			Handler:    _WalletService_GetOutpointStatus_Handler,
		},
		{
			MethodName: "EstimateFees",
			Handler:    _WalletService_EstimateFees_Handler,
		},
		{
			MethodName: "FeeRate",
			Handler:    _WalletService_FeeRate_Handler,
		},
		{
			MethodName: "ListConnectorUtxos",
			Handler:    _WalletService_ListConnectorUtxos_Handler,
		},
		{
			MethodName: "MainAccountBalance",
			Handler:    _WalletService_MainAccountBalance_Handler,
		},
		{
			MethodName: "ConnectorsAccountBalance",
			Handler:    _WalletService_ConnectorsAccountBalance_Handler,
		},
		{
			MethodName: "LockConnectorUtxos",
			Handler:    _WalletService_LockConnectorUtxos_Handler,
		},
		{
			MethodName: "GetDustAmount",
			Handler:    _WalletService_GetDustAmount_Handler,
		},
		{
			MethodName: "GetTransaction",
			Handler:    _WalletService_GetTransaction_Handler,
		},
		{
			MethodName: "SignMessage",
			Handler:    _WalletService_SignMessage_Handler,
		},
		{
			MethodName: "VerifyMessageSignature",
			Handler:    _WalletService_VerifyMessageSignature_Handler,
		},
		{
			MethodName: "GetCurrentBlockTime",
			Handler:    _WalletService_GetCurrentBlockTime_Handler,
		},
		{
			MethodName: "Withdraw",
			Handler:    _WalletService_Withdraw_Handler,
		},
		{
			MethodName: "WatchScripts",
			Handler:    _WalletService_WatchScripts_Handler,
		},
		{
			MethodName: "UnwatchScripts",
			Handler:    _WalletService_UnwatchScripts_Handler,
		},
		{
			MethodName: "LoadSignerKey",
			Handler:    _WalletService_LoadSignerKey_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "GetReadyUpdate",
			Handler:       _WalletService_GetReadyUpdate_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "NotificationStream",
			Handler:       _WalletService_NotificationStream_Handler,
			ServerStreams: true,
		},
	},
	Metadata: "arkwallet/v1/bitcoin_wallet.proto",
}
