|
package proxy
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
|
|
"github.com/tendermint/tendermint/internal/eventlog/cursor"
|
|
tmbytes "github.com/tendermint/tendermint/libs/bytes"
|
|
lrpc "github.com/tendermint/tendermint/light/rpc"
|
|
rpcclient "github.com/tendermint/tendermint/rpc/client"
|
|
"github.com/tendermint/tendermint/rpc/coretypes"
|
|
)
|
|
|
|
// proxyService wraps a light RPC client to export the RPC service interfaces.
|
|
// This is needed because the service and the client use different signatures
|
|
// for some of the methods.
|
|
type proxyService struct {
|
|
*lrpc.Client
|
|
}
|
|
|
|
func (p proxyService) ABCIQuery(ctx context.Context, path string, data tmbytes.HexBytes, height int64, prove bool) (*coretypes.ResultABCIQuery, error) {
|
|
return p.ABCIQueryWithOptions(ctx, path, data, rpcclient.ABCIQueryOptions{
|
|
Height: height,
|
|
Prove: prove,
|
|
})
|
|
}
|
|
|
|
func (p proxyService) GetConsensusState(ctx context.Context) (*coretypes.ResultConsensusState, error) {
|
|
return p.ConsensusState(ctx)
|
|
}
|
|
|
|
func (p proxyService) Events(ctx context.Context,
|
|
filter *coretypes.EventFilter,
|
|
maxItems int,
|
|
before, after cursor.Cursor,
|
|
waitTime time.Duration,
|
|
) (*coretypes.ResultEvents, error) {
|
|
return p.Client.Events(ctx, &coretypes.RequestEvents{
|
|
Filter: filter,
|
|
MaxItems: maxItems,
|
|
Before: before.String(),
|
|
After: after.String(),
|
|
WaitTime: waitTime,
|
|
})
|
|
}
|
|
|
|
func (p proxyService) Subscribe(ctx context.Context, query string) (*coretypes.ResultSubscribe, error) {
|
|
return p.SubscribeWS(ctx, query)
|
|
}
|
|
|
|
func (p proxyService) Unsubscribe(ctx context.Context, query string) (*coretypes.ResultUnsubscribe, error) {
|
|
return p.UnsubscribeWS(ctx, query)
|
|
}
|
|
|
|
func (p proxyService) UnsubscribeAll(ctx context.Context) (*coretypes.ResultUnsubscribe, error) {
|
|
return p.UnsubscribeAllWS(ctx)
|
|
}
|
|
|
|
func (p proxyService) BroadcastEvidence(ctx context.Context, ev coretypes.Evidence) (*coretypes.ResultBroadcastEvidence, error) {
|
|
return p.Client.BroadcastEvidence(ctx, ev.Value)
|
|
}
|