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

package arkv1

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 (
	IndexerService_GetCommitmentTx_FullMethodName           = "/ark.v1.IndexerService/GetCommitmentTx"
	IndexerService_GetForfeitTxs_FullMethodName             = "/ark.v1.IndexerService/GetForfeitTxs"
	IndexerService_GetConnectors_FullMethodName             = "/ark.v1.IndexerService/GetConnectors"
	IndexerService_GetVtxoTree_FullMethodName               = "/ark.v1.IndexerService/GetVtxoTree"
	IndexerService_GetVtxoTreeLeaves_FullMethodName         = "/ark.v1.IndexerService/GetVtxoTreeLeaves"
	IndexerService_GetVtxos_FullMethodName                  = "/ark.v1.IndexerService/GetVtxos"
	IndexerService_GetVtxoChain_FullMethodName              = "/ark.v1.IndexerService/GetVtxoChain"
	IndexerService_GetVirtualTxs_FullMethodName             = "/ark.v1.IndexerService/GetVirtualTxs"
	IndexerService_GetBatchSweepTransactions_FullMethodName = "/ark.v1.IndexerService/GetBatchSweepTransactions"
	IndexerService_SubscribeForScripts_FullMethodName       = "/ark.v1.IndexerService/SubscribeForScripts"
	IndexerService_UnsubscribeForScripts_FullMethodName     = "/ark.v1.IndexerService/UnsubscribeForScripts"
	IndexerService_GetSubscription_FullMethodName           = "/ark.v1.IndexerService/GetSubscription"
)

// IndexerServiceClient is the client API for IndexerService 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 IndexerServiceClient interface {
	// GetCommitmentTx returns information about a specific commitment transaction identified by the
	// provided txid.
	GetCommitmentTx(ctx context.Context, in *GetCommitmentTxRequest, opts ...grpc.CallOption) (*GetCommitmentTxResponse, error)
	// GetForfeitTxs returns the list of forfeit transactions that were submitted for the provided
	// commitment transaction.
	// The response may include pagination information if the results span multiple pages.
	GetForfeitTxs(ctx context.Context, in *GetForfeitTxsRequest, opts ...grpc.CallOption) (*GetForfeitTxsResponse, error)
	// GetConnectors returns the tree of connectors for the provided commitment transaction.
	// The response includes a list of connector txs with details on the tree posistion and may
	// include pagination information if the results span multiple pages.
	GetConnectors(ctx context.Context, in *GetConnectorsRequest, opts ...grpc.CallOption) (*GetConnectorsResponse, error)
	// GetVtxoTree returns the vtxo tree for the provided batch outpoint.
	// The response includes a list of txs with details on the tree posistion and may
	// include pagination information if the results span multiple pages.
	GetVtxoTree(ctx context.Context, in *GetVtxoTreeRequest, opts ...grpc.CallOption) (*GetVtxoTreeResponse, error)
	// GetVtxoTreeLeaves returns the list of leaves (vtxo outpoints) of the tree(s) for the
	// provided batch outpoint.
	// The response may be paginated if the results span multiple pages.
	GetVtxoTreeLeaves(ctx context.Context, in *GetVtxoTreeLeavesRequest, opts ...grpc.CallOption) (*GetVtxoTreeLeavesResponse, error)
	// GetVtxos returns the list of vtxos based on the provided filter. Vtxos can be retrieved either
	// by addresses or by outpoints, and optionally filtered by spendable or spent only.
	// The response may be paginated if the results span multiple pages.
	GetVtxos(ctx context.Context, in *GetVtxosRequest, opts ...grpc.CallOption) (*GetVtxosResponse, error)
	// GetVtxoChain returns the the chain of ark txs that starts from spending any vtxo leaf and ends
	// with the creation of the provided vtxo outpoint.
	// The response may be paginated if the results span multiple pages.
	GetVtxoChain(ctx context.Context, in *GetVtxoChainRequest, opts ...grpc.CallOption) (*GetVtxoChainResponse, error)
	// GetVirtualTxs returns the virtual transactions in hex format for the specified txids.
	// The response may be paginated if the results span multiple pages.
	GetVirtualTxs(ctx context.Context, in *GetVirtualTxsRequest, opts ...grpc.CallOption) (*GetVirtualTxsResponse, error)
	// GetBatchSweepTransactions returns the list of transaction (txid) that swept a given batch
	// output.
	// In most cases the list contains only one txid, meaning that all the amount locked for a
	// vtxo tree has been claimed back.
	// If any of the leaves of the tree have been unrolled onchain before the expiration, the
	// list will contain many txids instead.
	// In a binary tree with 4 or more leaves, 1 unroll causes the server to broadcast 3 txs to sweep
	// the whole rest of tree for example.
	// If a whole vtxo tree has been unrolled onchain, the list of txids for that batch output is
	// empty.
	GetBatchSweepTransactions(ctx context.Context, in *GetBatchSweepTransactionsRequest, opts ...grpc.CallOption) (*GetBatchSweepTransactionsResponse, error)
	// SubscribeForScripts allows to subscribe for tx notifications related to the provided vtxo
	// scripts. It can also be used to update an existing subscribtion by adding new scripts to it.
	SubscribeForScripts(ctx context.Context, in *SubscribeForScriptsRequest, opts ...grpc.CallOption) (*SubscribeForScriptsResponse, error)
	// UnsubscribeForScripts allows to remove scripts from an existing subscription.
	UnsubscribeForScripts(ctx context.Context, in *UnsubscribeForScriptsRequest, opts ...grpc.CallOption) (*UnsubscribeForScriptsResponse, error)
	// GetSubscription is a server-side streaming RPC which allows clients to receive real-time
	// notifications on transactions related to the subscribed vtxo scripts.
	// The subscription can be created or updated by using the SubscribeForScripts and
	// UnsubscribeForScripts RPCs.
	GetSubscription(ctx context.Context, in *GetSubscriptionRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[GetSubscriptionResponse], error)
}

type indexerServiceClient struct {
	cc grpc.ClientConnInterface
}

func NewIndexerServiceClient(cc grpc.ClientConnInterface) IndexerServiceClient {
	return &indexerServiceClient{cc}
}

func (c *indexerServiceClient) GetCommitmentTx(ctx context.Context, in *GetCommitmentTxRequest, opts ...grpc.CallOption) (*GetCommitmentTxResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(GetCommitmentTxResponse)
	err := c.cc.Invoke(ctx, IndexerService_GetCommitmentTx_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *indexerServiceClient) GetForfeitTxs(ctx context.Context, in *GetForfeitTxsRequest, opts ...grpc.CallOption) (*GetForfeitTxsResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(GetForfeitTxsResponse)
	err := c.cc.Invoke(ctx, IndexerService_GetForfeitTxs_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *indexerServiceClient) GetConnectors(ctx context.Context, in *GetConnectorsRequest, opts ...grpc.CallOption) (*GetConnectorsResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(GetConnectorsResponse)
	err := c.cc.Invoke(ctx, IndexerService_GetConnectors_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *indexerServiceClient) GetVtxoTree(ctx context.Context, in *GetVtxoTreeRequest, opts ...grpc.CallOption) (*GetVtxoTreeResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(GetVtxoTreeResponse)
	err := c.cc.Invoke(ctx, IndexerService_GetVtxoTree_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *indexerServiceClient) GetVtxoTreeLeaves(ctx context.Context, in *GetVtxoTreeLeavesRequest, opts ...grpc.CallOption) (*GetVtxoTreeLeavesResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(GetVtxoTreeLeavesResponse)
	err := c.cc.Invoke(ctx, IndexerService_GetVtxoTreeLeaves_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *indexerServiceClient) GetVtxos(ctx context.Context, in *GetVtxosRequest, opts ...grpc.CallOption) (*GetVtxosResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(GetVtxosResponse)
	err := c.cc.Invoke(ctx, IndexerService_GetVtxos_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *indexerServiceClient) GetVtxoChain(ctx context.Context, in *GetVtxoChainRequest, opts ...grpc.CallOption) (*GetVtxoChainResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(GetVtxoChainResponse)
	err := c.cc.Invoke(ctx, IndexerService_GetVtxoChain_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *indexerServiceClient) GetVirtualTxs(ctx context.Context, in *GetVirtualTxsRequest, opts ...grpc.CallOption) (*GetVirtualTxsResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(GetVirtualTxsResponse)
	err := c.cc.Invoke(ctx, IndexerService_GetVirtualTxs_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *indexerServiceClient) GetBatchSweepTransactions(ctx context.Context, in *GetBatchSweepTransactionsRequest, opts ...grpc.CallOption) (*GetBatchSweepTransactionsResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(GetBatchSweepTransactionsResponse)
	err := c.cc.Invoke(ctx, IndexerService_GetBatchSweepTransactions_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *indexerServiceClient) SubscribeForScripts(ctx context.Context, in *SubscribeForScriptsRequest, opts ...grpc.CallOption) (*SubscribeForScriptsResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(SubscribeForScriptsResponse)
	err := c.cc.Invoke(ctx, IndexerService_SubscribeForScripts_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *indexerServiceClient) UnsubscribeForScripts(ctx context.Context, in *UnsubscribeForScriptsRequest, opts ...grpc.CallOption) (*UnsubscribeForScriptsResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(UnsubscribeForScriptsResponse)
	err := c.cc.Invoke(ctx, IndexerService_UnsubscribeForScripts_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *indexerServiceClient) GetSubscription(ctx context.Context, in *GetSubscriptionRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[GetSubscriptionResponse], error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	stream, err := c.cc.NewStream(ctx, &IndexerService_ServiceDesc.Streams[0], IndexerService_GetSubscription_FullMethodName, cOpts...)
	if err != nil {
		return nil, err
	}
	x := &grpc.GenericClientStream[GetSubscriptionRequest, GetSubscriptionResponse]{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 IndexerService_GetSubscriptionClient = grpc.ServerStreamingClient[GetSubscriptionResponse]

// IndexerServiceServer is the server API for IndexerService service.
// All implementations should embed UnimplementedIndexerServiceServer
// for forward compatibility.
type IndexerServiceServer interface {
	// GetCommitmentTx returns information about a specific commitment transaction identified by the
	// provided txid.
	GetCommitmentTx(context.Context, *GetCommitmentTxRequest) (*GetCommitmentTxResponse, error)
	// GetForfeitTxs returns the list of forfeit transactions that were submitted for the provided
	// commitment transaction.
	// The response may include pagination information if the results span multiple pages.
	GetForfeitTxs(context.Context, *GetForfeitTxsRequest) (*GetForfeitTxsResponse, error)
	// GetConnectors returns the tree of connectors for the provided commitment transaction.
	// The response includes a list of connector txs with details on the tree posistion and may
	// include pagination information if the results span multiple pages.
	GetConnectors(context.Context, *GetConnectorsRequest) (*GetConnectorsResponse, error)
	// GetVtxoTree returns the vtxo tree for the provided batch outpoint.
	// The response includes a list of txs with details on the tree posistion and may
	// include pagination information if the results span multiple pages.
	GetVtxoTree(context.Context, *GetVtxoTreeRequest) (*GetVtxoTreeResponse, error)
	// GetVtxoTreeLeaves returns the list of leaves (vtxo outpoints) of the tree(s) for the
	// provided batch outpoint.
	// The response may be paginated if the results span multiple pages.
	GetVtxoTreeLeaves(context.Context, *GetVtxoTreeLeavesRequest) (*GetVtxoTreeLeavesResponse, error)
	// GetVtxos returns the list of vtxos based on the provided filter. Vtxos can be retrieved either
	// by addresses or by outpoints, and optionally filtered by spendable or spent only.
	// The response may be paginated if the results span multiple pages.
	GetVtxos(context.Context, *GetVtxosRequest) (*GetVtxosResponse, error)
	// GetVtxoChain returns the the chain of ark txs that starts from spending any vtxo leaf and ends
	// with the creation of the provided vtxo outpoint.
	// The response may be paginated if the results span multiple pages.
	GetVtxoChain(context.Context, *GetVtxoChainRequest) (*GetVtxoChainResponse, error)
	// GetVirtualTxs returns the virtual transactions in hex format for the specified txids.
	// The response may be paginated if the results span multiple pages.
	GetVirtualTxs(context.Context, *GetVirtualTxsRequest) (*GetVirtualTxsResponse, error)
	// GetBatchSweepTransactions returns the list of transaction (txid) that swept a given batch
	// output.
	// In most cases the list contains only one txid, meaning that all the amount locked for a
	// vtxo tree has been claimed back.
	// If any of the leaves of the tree have been unrolled onchain before the expiration, the
	// list will contain many txids instead.
	// In a binary tree with 4 or more leaves, 1 unroll causes the server to broadcast 3 txs to sweep
	// the whole rest of tree for example.
	// If a whole vtxo tree has been unrolled onchain, the list of txids for that batch output is
	// empty.
	GetBatchSweepTransactions(context.Context, *GetBatchSweepTransactionsRequest) (*GetBatchSweepTransactionsResponse, error)
	// SubscribeForScripts allows to subscribe for tx notifications related to the provided vtxo
	// scripts. It can also be used to update an existing subscribtion by adding new scripts to it.
	SubscribeForScripts(context.Context, *SubscribeForScriptsRequest) (*SubscribeForScriptsResponse, error)
	// UnsubscribeForScripts allows to remove scripts from an existing subscription.
	UnsubscribeForScripts(context.Context, *UnsubscribeForScriptsRequest) (*UnsubscribeForScriptsResponse, error)
	// GetSubscription is a server-side streaming RPC which allows clients to receive real-time
	// notifications on transactions related to the subscribed vtxo scripts.
	// The subscription can be created or updated by using the SubscribeForScripts and
	// UnsubscribeForScripts RPCs.
	GetSubscription(*GetSubscriptionRequest, grpc.ServerStreamingServer[GetSubscriptionResponse]) error
}

// UnimplementedIndexerServiceServer 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 UnimplementedIndexerServiceServer struct{}

func (UnimplementedIndexerServiceServer) GetCommitmentTx(context.Context, *GetCommitmentTxRequest) (*GetCommitmentTxResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetCommitmentTx not implemented")
}
func (UnimplementedIndexerServiceServer) GetForfeitTxs(context.Context, *GetForfeitTxsRequest) (*GetForfeitTxsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetForfeitTxs not implemented")
}
func (UnimplementedIndexerServiceServer) GetConnectors(context.Context, *GetConnectorsRequest) (*GetConnectorsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetConnectors not implemented")
}
func (UnimplementedIndexerServiceServer) GetVtxoTree(context.Context, *GetVtxoTreeRequest) (*GetVtxoTreeResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetVtxoTree not implemented")
}
func (UnimplementedIndexerServiceServer) GetVtxoTreeLeaves(context.Context, *GetVtxoTreeLeavesRequest) (*GetVtxoTreeLeavesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetVtxoTreeLeaves not implemented")
}
func (UnimplementedIndexerServiceServer) GetVtxos(context.Context, *GetVtxosRequest) (*GetVtxosResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetVtxos not implemented")
}
func (UnimplementedIndexerServiceServer) GetVtxoChain(context.Context, *GetVtxoChainRequest) (*GetVtxoChainResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetVtxoChain not implemented")
}
func (UnimplementedIndexerServiceServer) GetVirtualTxs(context.Context, *GetVirtualTxsRequest) (*GetVirtualTxsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetVirtualTxs not implemented")
}
func (UnimplementedIndexerServiceServer) GetBatchSweepTransactions(context.Context, *GetBatchSweepTransactionsRequest) (*GetBatchSweepTransactionsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetBatchSweepTransactions not implemented")
}
func (UnimplementedIndexerServiceServer) SubscribeForScripts(context.Context, *SubscribeForScriptsRequest) (*SubscribeForScriptsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SubscribeForScripts not implemented")
}
func (UnimplementedIndexerServiceServer) UnsubscribeForScripts(context.Context, *UnsubscribeForScriptsRequest) (*UnsubscribeForScriptsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UnsubscribeForScripts not implemented")
}
func (UnimplementedIndexerServiceServer) GetSubscription(*GetSubscriptionRequest, grpc.ServerStreamingServer[GetSubscriptionResponse]) error {
	return status.Errorf(codes.Unimplemented, "method GetSubscription not implemented")
}
func (UnimplementedIndexerServiceServer) testEmbeddedByValue() {}

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

func RegisterIndexerServiceServer(s grpc.ServiceRegistrar, srv IndexerServiceServer) {
	// If the following call pancis, it indicates UnimplementedIndexerServiceServer 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(&IndexerService_ServiceDesc, srv)
}

func _IndexerService_GetCommitmentTx_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetCommitmentTxRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(IndexerServiceServer).GetCommitmentTx(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: IndexerService_GetCommitmentTx_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(IndexerServiceServer).GetCommitmentTx(ctx, req.(*GetCommitmentTxRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _IndexerService_GetForfeitTxs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetForfeitTxsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(IndexerServiceServer).GetForfeitTxs(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: IndexerService_GetForfeitTxs_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(IndexerServiceServer).GetForfeitTxs(ctx, req.(*GetForfeitTxsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _IndexerService_GetConnectors_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetConnectorsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(IndexerServiceServer).GetConnectors(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: IndexerService_GetConnectors_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(IndexerServiceServer).GetConnectors(ctx, req.(*GetConnectorsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _IndexerService_GetVtxoTree_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetVtxoTreeRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(IndexerServiceServer).GetVtxoTree(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: IndexerService_GetVtxoTree_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(IndexerServiceServer).GetVtxoTree(ctx, req.(*GetVtxoTreeRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _IndexerService_GetVtxoTreeLeaves_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetVtxoTreeLeavesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(IndexerServiceServer).GetVtxoTreeLeaves(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: IndexerService_GetVtxoTreeLeaves_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(IndexerServiceServer).GetVtxoTreeLeaves(ctx, req.(*GetVtxoTreeLeavesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _IndexerService_GetVtxos_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetVtxosRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(IndexerServiceServer).GetVtxos(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: IndexerService_GetVtxos_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(IndexerServiceServer).GetVtxos(ctx, req.(*GetVtxosRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _IndexerService_GetVtxoChain_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetVtxoChainRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(IndexerServiceServer).GetVtxoChain(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: IndexerService_GetVtxoChain_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(IndexerServiceServer).GetVtxoChain(ctx, req.(*GetVtxoChainRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _IndexerService_GetVirtualTxs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetVirtualTxsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(IndexerServiceServer).GetVirtualTxs(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: IndexerService_GetVirtualTxs_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(IndexerServiceServer).GetVirtualTxs(ctx, req.(*GetVirtualTxsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _IndexerService_GetBatchSweepTransactions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetBatchSweepTransactionsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(IndexerServiceServer).GetBatchSweepTransactions(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: IndexerService_GetBatchSweepTransactions_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(IndexerServiceServer).GetBatchSweepTransactions(ctx, req.(*GetBatchSweepTransactionsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _IndexerService_SubscribeForScripts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SubscribeForScriptsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(IndexerServiceServer).SubscribeForScripts(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: IndexerService_SubscribeForScripts_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(IndexerServiceServer).SubscribeForScripts(ctx, req.(*SubscribeForScriptsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _IndexerService_UnsubscribeForScripts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UnsubscribeForScriptsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(IndexerServiceServer).UnsubscribeForScripts(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: IndexerService_UnsubscribeForScripts_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(IndexerServiceServer).UnsubscribeForScripts(ctx, req.(*UnsubscribeForScriptsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _IndexerService_GetSubscription_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(GetSubscriptionRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(IndexerServiceServer).GetSubscription(m, &grpc.GenericServerStream[GetSubscriptionRequest, GetSubscriptionResponse]{ServerStream: stream})
}

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

// IndexerService_ServiceDesc is the grpc.ServiceDesc for IndexerService service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
var IndexerService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "ark.v1.IndexerService",
	HandlerType: (*IndexerServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "GetCommitmentTx",
			Handler:    _IndexerService_GetCommitmentTx_Handler,
		},
		{
			MethodName: "GetForfeitTxs",
			Handler:    _IndexerService_GetForfeitTxs_Handler,
		},
		{
			MethodName: "GetConnectors",
			Handler:    _IndexerService_GetConnectors_Handler,
		},
		{
			MethodName: "GetVtxoTree",
			Handler:    _IndexerService_GetVtxoTree_Handler,
		},
		{
			MethodName: "GetVtxoTreeLeaves",
			Handler:    _IndexerService_GetVtxoTreeLeaves_Handler,
		},
		{
			MethodName: "GetVtxos",
			Handler:    _IndexerService_GetVtxos_Handler,
		},
		{
			MethodName: "GetVtxoChain",
			Handler:    _IndexerService_GetVtxoChain_Handler,
		},
		{
			MethodName: "GetVirtualTxs",
			Handler:    _IndexerService_GetVirtualTxs_Handler,
		},
		{
			MethodName: "GetBatchSweepTransactions",
			Handler:    _IndexerService_GetBatchSweepTransactions_Handler,
		},
		{
			MethodName: "SubscribeForScripts",
			Handler:    _IndexerService_SubscribeForScripts_Handler,
		},
		{
			MethodName: "UnsubscribeForScripts",
			Handler:    _IndexerService_UnsubscribeForScripts_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "GetSubscription",
			Handler:       _IndexerService_GetSubscription_Handler,
			ServerStreams: true,
		},
	},
	Metadata: "ark/v1/indexer.proto",
}
