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

package nodev1

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.32.0 or later.
const _ = grpc.SupportPackageIsVersion7

// NodeClient is the client API for Node 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 NodeClient interface {
	// blockchain api.
	GetAccount(ctx context.Context, in *AccountRequest, opts ...grpc.CallOption) (*AccountResponse, error)
	GetBlockHeaderByNumber(ctx context.Context, in *GetHeaderRequest, opts ...grpc.CallOption) (*GetHeaderResponse, error)
	GetBlockByNumber(ctx context.Context, in *GetBlockRequest, opts ...grpc.CallOption) (*GetBlockResponse, error)
	GetBlockByHash(ctx context.Context, in *GetBlockRequest, opts ...grpc.CallOption) (*GetBlockResponse, error)
	GetTransactionByHash(ctx context.Context, in *GetTransactionRequest, opts ...grpc.CallOption) (*GetTransactionResponse, error)
	GetTransactionReceipt(ctx context.Context, in *GetReceiptRequest, opts ...grpc.CallOption) (*GetReceiptResponse, error)
	GetPairList(ctx context.Context, in *GetPairListRequest, opts ...grpc.CallOption) (*GetPairListResponse, error)
	GetPairInfo(ctx context.Context, in *GetPairInfoRequest, opts ...grpc.CallOption) (*GetPairInfoResponse, error)
	GetCoinList(ctx context.Context, in *GetCoinListRequest, opts ...grpc.CallOption) (*GetCoinListResponse, error)
	GetCoinInfo(ctx context.Context, in *GetCoinInfoRequest, opts ...grpc.CallOption) (*GetCoinInfoResponse, error)
	GetWithdrawalProof(ctx context.Context, in *WithdrawalProofRequest, opts ...grpc.CallOption) (*WithdrawalProofResponse, error)
}

type nodeClient struct {
	cc grpc.ClientConnInterface
}

func NewNodeClient(cc grpc.ClientConnInterface) NodeClient {
	return &nodeClient{cc}
}

func (c *nodeClient) GetAccount(ctx context.Context, in *AccountRequest, opts ...grpc.CallOption) (*AccountResponse, error) {
	out := new(AccountResponse)
	err := c.cc.Invoke(ctx, "/exchain.node.v1.Node/GetAccount", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *nodeClient) GetBlockHeaderByNumber(ctx context.Context, in *GetHeaderRequest, opts ...grpc.CallOption) (*GetHeaderResponse, error) {
	out := new(GetHeaderResponse)
	err := c.cc.Invoke(ctx, "/exchain.node.v1.Node/GetBlockHeaderByNumber", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *nodeClient) GetBlockByNumber(ctx context.Context, in *GetBlockRequest, opts ...grpc.CallOption) (*GetBlockResponse, error) {
	out := new(GetBlockResponse)
	err := c.cc.Invoke(ctx, "/exchain.node.v1.Node/GetBlockByNumber", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *nodeClient) GetBlockByHash(ctx context.Context, in *GetBlockRequest, opts ...grpc.CallOption) (*GetBlockResponse, error) {
	out := new(GetBlockResponse)
	err := c.cc.Invoke(ctx, "/exchain.node.v1.Node/GetBlockByHash", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *nodeClient) GetTransactionByHash(ctx context.Context, in *GetTransactionRequest, opts ...grpc.CallOption) (*GetTransactionResponse, error) {
	out := new(GetTransactionResponse)
	err := c.cc.Invoke(ctx, "/exchain.node.v1.Node/GetTransactionByHash", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *nodeClient) GetTransactionReceipt(ctx context.Context, in *GetReceiptRequest, opts ...grpc.CallOption) (*GetReceiptResponse, error) {
	out := new(GetReceiptResponse)
	err := c.cc.Invoke(ctx, "/exchain.node.v1.Node/GetTransactionReceipt", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *nodeClient) GetPairList(ctx context.Context, in *GetPairListRequest, opts ...grpc.CallOption) (*GetPairListResponse, error) {
	out := new(GetPairListResponse)
	err := c.cc.Invoke(ctx, "/exchain.node.v1.Node/GetPairList", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *nodeClient) GetPairInfo(ctx context.Context, in *GetPairInfoRequest, opts ...grpc.CallOption) (*GetPairInfoResponse, error) {
	out := new(GetPairInfoResponse)
	err := c.cc.Invoke(ctx, "/exchain.node.v1.Node/GetPairInfo", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *nodeClient) GetCoinList(ctx context.Context, in *GetCoinListRequest, opts ...grpc.CallOption) (*GetCoinListResponse, error) {
	out := new(GetCoinListResponse)
	err := c.cc.Invoke(ctx, "/exchain.node.v1.Node/GetCoinList", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *nodeClient) GetCoinInfo(ctx context.Context, in *GetCoinInfoRequest, opts ...grpc.CallOption) (*GetCoinInfoResponse, error) {
	out := new(GetCoinInfoResponse)
	err := c.cc.Invoke(ctx, "/exchain.node.v1.Node/GetCoinInfo", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *nodeClient) GetWithdrawalProof(ctx context.Context, in *WithdrawalProofRequest, opts ...grpc.CallOption) (*WithdrawalProofResponse, error) {
	out := new(WithdrawalProofResponse)
	err := c.cc.Invoke(ctx, "/exchain.node.v1.Node/GetWithdrawalProof", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// NodeServer is the server API for Node service.
// All implementations must embed UnimplementedNodeServer
// for forward compatibility
type NodeServer interface {
	// blockchain api.
	GetAccount(context.Context, *AccountRequest) (*AccountResponse, error)
	GetBlockHeaderByNumber(context.Context, *GetHeaderRequest) (*GetHeaderResponse, error)
	GetBlockByNumber(context.Context, *GetBlockRequest) (*GetBlockResponse, error)
	GetBlockByHash(context.Context, *GetBlockRequest) (*GetBlockResponse, error)
	GetTransactionByHash(context.Context, *GetTransactionRequest) (*GetTransactionResponse, error)
	GetTransactionReceipt(context.Context, *GetReceiptRequest) (*GetReceiptResponse, error)
	GetPairList(context.Context, *GetPairListRequest) (*GetPairListResponse, error)
	GetPairInfo(context.Context, *GetPairInfoRequest) (*GetPairInfoResponse, error)
	GetCoinList(context.Context, *GetCoinListRequest) (*GetCoinListResponse, error)
	GetCoinInfo(context.Context, *GetCoinInfoRequest) (*GetCoinInfoResponse, error)
	GetWithdrawalProof(context.Context, *WithdrawalProofRequest) (*WithdrawalProofResponse, error)
	mustEmbedUnimplementedNodeServer()
}

// UnimplementedNodeServer must be embedded to have forward compatible implementations.
type UnimplementedNodeServer struct {
}

func (UnimplementedNodeServer) GetAccount(context.Context, *AccountRequest) (*AccountResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetAccount not implemented")
}
func (UnimplementedNodeServer) GetBlockHeaderByNumber(context.Context, *GetHeaderRequest) (*GetHeaderResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetBlockHeaderByNumber not implemented")
}
func (UnimplementedNodeServer) GetBlockByNumber(context.Context, *GetBlockRequest) (*GetBlockResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetBlockByNumber not implemented")
}
func (UnimplementedNodeServer) GetBlockByHash(context.Context, *GetBlockRequest) (*GetBlockResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetBlockByHash not implemented")
}
func (UnimplementedNodeServer) GetTransactionByHash(context.Context, *GetTransactionRequest) (*GetTransactionResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetTransactionByHash not implemented")
}
func (UnimplementedNodeServer) GetTransactionReceipt(context.Context, *GetReceiptRequest) (*GetReceiptResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetTransactionReceipt not implemented")
}
func (UnimplementedNodeServer) GetPairList(context.Context, *GetPairListRequest) (*GetPairListResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetPairList not implemented")
}
func (UnimplementedNodeServer) GetPairInfo(context.Context, *GetPairInfoRequest) (*GetPairInfoResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetPairInfo not implemented")
}
func (UnimplementedNodeServer) GetCoinList(context.Context, *GetCoinListRequest) (*GetCoinListResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetCoinList not implemented")
}
func (UnimplementedNodeServer) GetCoinInfo(context.Context, *GetCoinInfoRequest) (*GetCoinInfoResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetCoinInfo not implemented")
}
func (UnimplementedNodeServer) GetWithdrawalProof(context.Context, *WithdrawalProofRequest) (*WithdrawalProofResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetWithdrawalProof not implemented")
}
func (UnimplementedNodeServer) mustEmbedUnimplementedNodeServer() {}

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

func RegisterNodeServer(s grpc.ServiceRegistrar, srv NodeServer) {
	s.RegisterService(&Node_ServiceDesc, srv)
}

func _Node_GetAccount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AccountRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(NodeServer).GetAccount(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/exchain.node.v1.Node/GetAccount",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(NodeServer).GetAccount(ctx, req.(*AccountRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Node_GetBlockHeaderByNumber_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetHeaderRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(NodeServer).GetBlockHeaderByNumber(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/exchain.node.v1.Node/GetBlockHeaderByNumber",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(NodeServer).GetBlockHeaderByNumber(ctx, req.(*GetHeaderRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Node_GetBlockByNumber_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetBlockRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(NodeServer).GetBlockByNumber(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/exchain.node.v1.Node/GetBlockByNumber",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(NodeServer).GetBlockByNumber(ctx, req.(*GetBlockRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Node_GetBlockByHash_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetBlockRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(NodeServer).GetBlockByHash(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/exchain.node.v1.Node/GetBlockByHash",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(NodeServer).GetBlockByHash(ctx, req.(*GetBlockRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Node_GetTransactionByHash_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.(NodeServer).GetTransactionByHash(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/exchain.node.v1.Node/GetTransactionByHash",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(NodeServer).GetTransactionByHash(ctx, req.(*GetTransactionRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Node_GetTransactionReceipt_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetReceiptRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(NodeServer).GetTransactionReceipt(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/exchain.node.v1.Node/GetTransactionReceipt",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(NodeServer).GetTransactionReceipt(ctx, req.(*GetReceiptRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Node_GetPairList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetPairListRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(NodeServer).GetPairList(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/exchain.node.v1.Node/GetPairList",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(NodeServer).GetPairList(ctx, req.(*GetPairListRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Node_GetPairInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetPairInfoRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(NodeServer).GetPairInfo(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/exchain.node.v1.Node/GetPairInfo",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(NodeServer).GetPairInfo(ctx, req.(*GetPairInfoRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Node_GetCoinList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetCoinListRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(NodeServer).GetCoinList(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/exchain.node.v1.Node/GetCoinList",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(NodeServer).GetCoinList(ctx, req.(*GetCoinListRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Node_GetCoinInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetCoinInfoRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(NodeServer).GetCoinInfo(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/exchain.node.v1.Node/GetCoinInfo",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(NodeServer).GetCoinInfo(ctx, req.(*GetCoinInfoRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Node_GetWithdrawalProof_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(WithdrawalProofRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(NodeServer).GetWithdrawalProof(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/exchain.node.v1.Node/GetWithdrawalProof",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(NodeServer).GetWithdrawalProof(ctx, req.(*WithdrawalProofRequest))
	}
	return interceptor(ctx, in, info, handler)
}

// Node_ServiceDesc is the grpc.ServiceDesc for Node service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
var Node_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "exchain.node.v1.Node",
	HandlerType: (*NodeServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "GetAccount",
			Handler:    _Node_GetAccount_Handler,
		},
		{
			MethodName: "GetBlockHeaderByNumber",
			Handler:    _Node_GetBlockHeaderByNumber_Handler,
		},
		{
			MethodName: "GetBlockByNumber",
			Handler:    _Node_GetBlockByNumber_Handler,
		},
		{
			MethodName: "GetBlockByHash",
			Handler:    _Node_GetBlockByHash_Handler,
		},
		{
			MethodName: "GetTransactionByHash",
			Handler:    _Node_GetTransactionByHash_Handler,
		},
		{
			MethodName: "GetTransactionReceipt",
			Handler:    _Node_GetTransactionReceipt_Handler,
		},
		{
			MethodName: "GetPairList",
			Handler:    _Node_GetPairList_Handler,
		},
		{
			MethodName: "GetPairInfo",
			Handler:    _Node_GetPairInfo_Handler,
		},
		{
			MethodName: "GetCoinList",
			Handler:    _Node_GetCoinList_Handler,
		},
		{
			MethodName: "GetCoinInfo",
			Handler:    _Node_GetCoinInfo_Handler,
		},
		{
			MethodName: "GetWithdrawalProof",
			Handler:    _Node_GetWithdrawalProof_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "node/v1/node.proto",
}
