Browse Source

New RPC call

master
Aditya Kulkarni 5 years ago
parent
commit
b4796bc67e
  1. 2
      cmd/ingest/main.go
  2. 2
      frontend/rpc_client.go
  3. 17
      frontend/service.go
  4. 325
      walletrpc/service.pb.go
  5. 29
      walletrpc/service.proto

2
cmd/ingest/main.go

@ -13,7 +13,7 @@ import (
"strings"
"github.com/pkg/errors"
"github.com/btcsuite/btcd/rpcclient"
"github.com/adityapk00/btcd/rpcclient"
"github.com/golang/protobuf/proto"
"github.com/sirupsen/logrus"

2
frontend/rpc_client.go

@ -3,7 +3,7 @@ package frontend
import (
"net"
"github.com/btcsuite/btcd/rpcclient"
"github.com/adityapk00/btcd/rpcclient"
"github.com/pkg/errors"
ini "gopkg.in/ini.v1"
)

17
frontend/service.go

@ -11,7 +11,7 @@ import (
"strings"
"time"
"github.com/btcsuite/btcd/rpcclient"
"github.com/adityapk00/btcd/rpcclient"
"github.com/golang/protobuf/proto"
// blank import for sqlite driver support
@ -86,6 +86,12 @@ func (s *SqlStreamer) GetBlock(ctx context.Context, id *walletrpc.BlockID) (*wal
return cBlock, err
}
func (s *SqlStreamer) GetUtxos(address *walletrpc.TransparentAddress, resp walletrpc.CompactTxStreamer_GetUtxosServer) error {
s.client.GetAddressUtxos("someaddress")
return nil
}
func (s *SqlStreamer) GetBlockRange(span *walletrpc.BlockRange, resp walletrpc.CompactTxStreamer_GetBlockRangeServer) error {
blockChan := make(chan []byte)
errChan := make(chan error)
@ -154,12 +160,13 @@ func (s *SqlStreamer) GetTransaction(ctx context.Context, txf *walletrpc.TxFilte
}
// GetLightdInfo gets the LightWalletD (this server) info
func (s *SqlStreamer) GetLightdInfo(ctx context.Context, in *walletrpc.Empty) (*walletrpc.SendResponse, error) {
func (s *SqlStreamer) GetLightdInfo(ctx context.Context, in *walletrpc.Empty) (*walletrpc.LightdInfo, error) {
// TODO these are called Error but they aren't at the moment.
// A success will return code 0 and message txhash.
return &walletrpc.SendResponse{
ErrorCode: int32(0),
ErrorMessage: "Go Light Server",
return &walletrpc.LightdInfo{
Version: "0.1-zeclightd",
Vendor: "ZecWallet LightWalletD",
TaddrSupport: true,
}, nil
}

325
walletrpc/service.pb.go

@ -330,6 +330,179 @@ func (m *Empty) XXX_DiscardUnknown() {
var xxx_messageInfo_Empty proto.InternalMessageInfo
type LightdInfo struct {
Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
Vendor string `protobuf:"bytes,2,opt,name=vendor,proto3" json:"vendor,omitempty"`
TaddrSupport bool `protobuf:"varint,3,opt,name=taddrSupport,proto3" json:"taddrSupport,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *LightdInfo) Reset() { *m = LightdInfo{} }
func (m *LightdInfo) String() string { return proto.CompactTextString(m) }
func (*LightdInfo) ProtoMessage() {}
func (*LightdInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_a0b84a42fa06f626, []int{7}
}
func (m *LightdInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_LightdInfo.Unmarshal(m, b)
}
func (m *LightdInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_LightdInfo.Marshal(b, m, deterministic)
}
func (m *LightdInfo) XXX_Merge(src proto.Message) {
xxx_messageInfo_LightdInfo.Merge(m, src)
}
func (m *LightdInfo) XXX_Size() int {
return xxx_messageInfo_LightdInfo.Size(m)
}
func (m *LightdInfo) XXX_DiscardUnknown() {
xxx_messageInfo_LightdInfo.DiscardUnknown(m)
}
var xxx_messageInfo_LightdInfo proto.InternalMessageInfo
func (m *LightdInfo) GetVersion() string {
if m != nil {
return m.Version
}
return ""
}
func (m *LightdInfo) GetVendor() string {
if m != nil {
return m.Vendor
}
return ""
}
func (m *LightdInfo) GetTaddrSupport() bool {
if m != nil {
return m.TaddrSupport
}
return false
}
type TransparentAddress struct {
Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *TransparentAddress) Reset() { *m = TransparentAddress{} }
func (m *TransparentAddress) String() string { return proto.CompactTextString(m) }
func (*TransparentAddress) ProtoMessage() {}
func (*TransparentAddress) Descriptor() ([]byte, []int) {
return fileDescriptor_a0b84a42fa06f626, []int{8}
}
func (m *TransparentAddress) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TransparentAddress.Unmarshal(m, b)
}
func (m *TransparentAddress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_TransparentAddress.Marshal(b, m, deterministic)
}
func (m *TransparentAddress) XXX_Merge(src proto.Message) {
xxx_messageInfo_TransparentAddress.Merge(m, src)
}
func (m *TransparentAddress) XXX_Size() int {
return xxx_messageInfo_TransparentAddress.Size(m)
}
func (m *TransparentAddress) XXX_DiscardUnknown() {
xxx_messageInfo_TransparentAddress.DiscardUnknown(m)
}
var xxx_messageInfo_TransparentAddress proto.InternalMessageInfo
func (m *TransparentAddress) GetAddress() string {
if m != nil {
return m.Address
}
return ""
}
type Utxo struct {
Address *TransparentAddress `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
Txid []byte `protobuf:"bytes,2,opt,name=txid,proto3" json:"txid,omitempty"`
OutputIndex uint64 `protobuf:"varint,3,opt,name=outputIndex,proto3" json:"outputIndex,omitempty"`
Script []byte `protobuf:"bytes,4,opt,name=script,proto3" json:"script,omitempty"`
Value uint64 `protobuf:"varint,5,opt,name=value,proto3" json:"value,omitempty"`
Height uint64 `protobuf:"varint,6,opt,name=height,proto3" json:"height,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *Utxo) Reset() { *m = Utxo{} }
func (m *Utxo) String() string { return proto.CompactTextString(m) }
func (*Utxo) ProtoMessage() {}
func (*Utxo) Descriptor() ([]byte, []int) {
return fileDescriptor_a0b84a42fa06f626, []int{9}
}
func (m *Utxo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Utxo.Unmarshal(m, b)
}
func (m *Utxo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Utxo.Marshal(b, m, deterministic)
}
func (m *Utxo) XXX_Merge(src proto.Message) {
xxx_messageInfo_Utxo.Merge(m, src)
}
func (m *Utxo) XXX_Size() int {
return xxx_messageInfo_Utxo.Size(m)
}
func (m *Utxo) XXX_DiscardUnknown() {
xxx_messageInfo_Utxo.DiscardUnknown(m)
}
var xxx_messageInfo_Utxo proto.InternalMessageInfo
func (m *Utxo) GetAddress() *TransparentAddress {
if m != nil {
return m.Address
}
return nil
}
func (m *Utxo) GetTxid() []byte {
if m != nil {
return m.Txid
}
return nil
}
func (m *Utxo) GetOutputIndex() uint64 {
if m != nil {
return m.OutputIndex
}
return 0
}
func (m *Utxo) GetScript() []byte {
if m != nil {
return m.Script
}
return nil
}
func (m *Utxo) GetValue() uint64 {
if m != nil {
return m.Value
}
return 0
}
func (m *Utxo) GetHeight() uint64 {
if m != nil {
return m.Height
}
return 0
}
func init() {
proto.RegisterType((*BlockID)(nil), "cash.z.wallet.sdk.rpc.BlockID")
proto.RegisterType((*BlockRange)(nil), "cash.z.wallet.sdk.rpc.BlockRange")
@ -338,40 +511,53 @@ func init() {
proto.RegisterType((*SendResponse)(nil), "cash.z.wallet.sdk.rpc.SendResponse")
proto.RegisterType((*ChainSpec)(nil), "cash.z.wallet.sdk.rpc.ChainSpec")
proto.RegisterType((*Empty)(nil), "cash.z.wallet.sdk.rpc.Empty")
proto.RegisterType((*LightdInfo)(nil), "cash.z.wallet.sdk.rpc.LightdInfo")
proto.RegisterType((*TransparentAddress)(nil), "cash.z.wallet.sdk.rpc.TransparentAddress")
proto.RegisterType((*Utxo)(nil), "cash.z.wallet.sdk.rpc.Utxo")
}
func init() { proto.RegisterFile("service.proto", fileDescriptor_a0b84a42fa06f626) }
var fileDescriptor_a0b84a42fa06f626 = []byte{
// 444 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x53, 0x5f, 0x4f, 0x13, 0x41,
0x10, 0x6f, 0xa5, 0x05, 0x3a, 0x2d, 0x18, 0x27, 0x62, 0x48, 0x43, 0xb4, 0xae, 0x9a, 0xf0, 0x74,
0x21, 0xa8, 0x5f, 0x80, 0xaa, 0x84, 0x04, 0x13, 0xdd, 0xde, 0x13, 0x3e, 0x90, 0x65, 0x6f, 0xe8,
0x9d, 0xb4, 0xbb, 0x97, 0xdd, 0x8d, 0x54, 0x3f, 0x93, 0x1f, 0xd2, 0xdc, 0x6c, 0xc1, 0x92, 0x78,
0xf6, 0xde, 0x76, 0x76, 0x7f, 0x7f, 0xe6, 0xdf, 0xc2, 0x8e, 0x27, 0xf7, 0xa3, 0xd0, 0x94, 0x94,
0xce, 0x06, 0x8b, 0x7b, 0x5a, 0xf9, 0x3c, 0xf9, 0x95, 0xdc, 0xaa, 0xd9, 0x8c, 0x42, 0xe2, 0xb3,
0x9b, 0xc4, 0x95, 0x7a, 0xb8, 0xa7, 0xed, 0xbc, 0x54, 0x3a, 0x5c, 0x5e, 0x5b, 0x37, 0x57, 0xc1,
0x47, 0xb4, 0x78, 0x0f, 0x5b, 0x27, 0x33, 0xab, 0x6f, 0xce, 0x3e, 0xe0, 0x33, 0xd8, 0xcc, 0xa9,
0x98, 0xe6, 0x61, 0xbf, 0x3d, 0x6a, 0x1f, 0x76, 0xe4, 0x32, 0x42, 0x84, 0x4e, 0xae, 0x7c, 0xbe,
0xff, 0x68, 0xd4, 0x3e, 0x1c, 0x48, 0x3e, 0x8b, 0x00, 0xc0, 0x34, 0xa9, 0xcc, 0x94, 0xf0, 0x1d,
0x74, 0x7d, 0x50, 0x2e, 0x12, 0xfb, 0xc7, 0xcf, 0x93, 0x7f, 0xa6, 0x90, 0x2c, 0x8d, 0x64, 0x04,
0xe3, 0x11, 0x6c, 0x90, 0xc9, 0x58, 0x76, 0x3d, 0xa7, 0x82, 0x8a, 0xef, 0xb0, 0x9d, 0x2e, 0x3e,
0x15, 0xb3, 0x40, 0xae, 0xf2, 0xbc, 0xaa, 0xde, 0x9a, 0x7a, 0x32, 0x18, 0x9f, 0x42, 0xb7, 0x30,
0x19, 0x2d, 0xd8, 0xb5, 0x23, 0x63, 0x70, 0x5f, 0xe1, 0xc6, 0x4a, 0x85, 0xaf, 0x61, 0x57, 0xaa,
0xdb, 0xd4, 0x29, 0xe3, 0x95, 0x0e, 0x85, 0x35, 0x15, 0x2a, 0x53, 0x41, 0xb1, 0xe1, 0x40, 0xf2,
0x59, 0x7c, 0x81, 0xc1, 0x84, 0x4c, 0x26, 0xc9, 0x97, 0xd6, 0x78, 0xc2, 0x03, 0xe8, 0x91, 0x73,
0xd6, 0x8d, 0x6d, 0x46, 0x0c, 0xec, 0xca, 0xbf, 0x17, 0x28, 0x60, 0xc0, 0xc1, 0x67, 0xf2, 0x5e,
0x4d, 0x89, 0x93, 0xe8, 0xc9, 0x07, 0x77, 0xa2, 0x0f, 0xbd, 0x71, 0xae, 0x0a, 0x33, 0x29, 0x49,
0x8b, 0x2d, 0xe8, 0x7e, 0x9c, 0x97, 0xe1, 0xe7, 0xf1, 0xef, 0x0e, 0x3c, 0x19, 0xc7, 0x01, 0xa6,
0x8b, 0x49, 0x70, 0xa4, 0xe6, 0xe4, 0x30, 0x85, 0xdd, 0x53, 0x0a, 0xe7, 0x2a, 0x90, 0x0f, 0x5c,
0x28, 0x8e, 0x6a, 0xda, 0x70, 0x2f, 0x39, 0x5c, 0xd3, 0x28, 0xd1, 0xc2, 0xaf, 0xb0, 0x7d, 0x4a,
0x4b, 0xbd, 0x35, 0xe8, 0xe1, 0xab, 0x3a, 0xbf, 0x98, 0x2b, 0xc3, 0x44, 0x0b, 0xbf, 0xc1, 0xce,
0x9d, 0x64, 0xdc, 0x98, 0x97, 0xff, 0xd3, 0x65, 0x48, 0x43, 0xe9, 0xa3, 0x36, 0x5e, 0x70, 0x17,
0x56, 0x27, 0xf5, 0xa2, 0x86, 0x7a, 0xb7, 0x3c, 0xc3, 0x37, 0x35, 0x80, 0x87, 0x13, 0x17, 0x2d,
0xbc, 0x84, 0xc7, 0xd5, 0x7c, 0x57, 0xc5, 0x9b, 0x71, 0x6b, 0xd3, 0x5f, 0x5d, 0x17, 0xd1, 0xc2,
0x94, 0x3b, 0x73, 0x5e, 0x7d, 0xb4, 0xec, 0xcc, 0x5c, 0x5b, 0x3c, 0xa8, 0xe1, 0xf1, 0x1e, 0x34,
0x54, 0x3d, 0xe9, 0x5f, 0xf4, 0x22, 0xc0, 0x95, 0xfa, 0x6a, 0x93, 0x7f, 0xfa, 0xdb, 0x3f, 0x01,
0x00, 0x00, 0xff, 0xff, 0x80, 0xe5, 0x1a, 0xff, 0x28, 0x04, 0x00, 0x00,
// 607 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x54, 0x41, 0x6f, 0x13, 0x3d,
0x10, 0x4d, 0xbe, 0x26, 0x6d, 0x33, 0x49, 0xfb, 0x09, 0x8b, 0xa2, 0x28, 0x54, 0x10, 0x0c, 0x48,
0xe5, 0xb2, 0xaa, 0x0a, 0xfc, 0x00, 0x1a, 0xa0, 0xaa, 0x54, 0x24, 0x70, 0x02, 0x87, 0x72, 0xa8,
0xdc, 0xf5, 0xb4, 0xbb, 0x34, 0x59, 0x5b, 0xb6, 0x93, 0x06, 0x8e, 0xfc, 0x39, 0xfe, 0x16, 0xf2,
0xec, 0xa6, 0xdd, 0x08, 0x96, 0xe6, 0xe6, 0xf1, 0xbe, 0x79, 0xcf, 0x33, 0x6f, 0x66, 0x61, 0xcb,
0xa1, 0x9d, 0xa5, 0x31, 0x46, 0xc6, 0x6a, 0xaf, 0xd9, 0x4e, 0x2c, 0x5d, 0x12, 0xfd, 0x88, 0xae,
0xe5, 0x78, 0x8c, 0x3e, 0x72, 0xea, 0x2a, 0xb2, 0x26, 0xee, 0xed, 0xc4, 0x7a, 0x62, 0x64, 0xec,
0xcf, 0x2e, 0xb4, 0x9d, 0x48, 0xef, 0x72, 0x34, 0x7f, 0x0d, 0x1b, 0x87, 0x63, 0x1d, 0x5f, 0x1d,
0xbf, 0x65, 0x0f, 0x60, 0x3d, 0xc1, 0xf4, 0x32, 0xf1, 0xdd, 0x7a, 0xbf, 0xbe, 0xd7, 0x10, 0x45,
0xc4, 0x18, 0x34, 0x12, 0xe9, 0x92, 0xee, 0x7f, 0xfd, 0xfa, 0x5e, 0x47, 0xd0, 0x99, 0x7b, 0x00,
0x4a, 0x13, 0x32, 0xbb, 0x44, 0xf6, 0x0a, 0x9a, 0xce, 0x4b, 0x9b, 0x27, 0xb6, 0x0f, 0x1e, 0x45,
0x7f, 0x7d, 0x42, 0x54, 0x08, 0x89, 0x1c, 0xcc, 0xf6, 0x61, 0x0d, 0x33, 0x45, 0xb4, 0x77, 0xe7,
0x04, 0x28, 0xff, 0x06, 0x9b, 0xa3, 0xf9, 0xfb, 0x74, 0xec, 0xd1, 0x06, 0xcd, 0xf3, 0xf0, 0x6d,
0x55, 0x4d, 0x02, 0xb3, 0xfb, 0xd0, 0x4c, 0x33, 0x85, 0x73, 0x52, 0x6d, 0x88, 0x3c, 0xb8, 0xa9,
0x70, 0xad, 0x54, 0xe1, 0x33, 0xd8, 0x16, 0xf2, 0x7a, 0x64, 0x65, 0xe6, 0x64, 0xec, 0x53, 0x9d,
0x05, 0x94, 0x92, 0x5e, 0x92, 0x60, 0x47, 0xd0, 0x99, 0x7f, 0x84, 0xce, 0x10, 0x33, 0x25, 0xd0,
0x19, 0x9d, 0x39, 0x64, 0xbb, 0xd0, 0x42, 0x6b, 0xb5, 0x1d, 0x68, 0x85, 0x04, 0x6c, 0x8a, 0xdb,
0x0b, 0xc6, 0xa1, 0x43, 0xc1, 0x07, 0x74, 0x4e, 0x5e, 0x22, 0x3d, 0xa2, 0x25, 0x96, 0xee, 0x78,
0x1b, 0x5a, 0x83, 0x44, 0xa6, 0xd9, 0xd0, 0x60, 0xcc, 0x37, 0xa0, 0xf9, 0x6e, 0x62, 0xfc, 0x77,
0x7e, 0x0e, 0x70, 0x12, 0xcc, 0x50, 0xc7, 0xd9, 0x85, 0x66, 0x5d, 0xd8, 0x98, 0xa1, 0x75, 0xa9,
0xce, 0x48, 0xa3, 0x25, 0x16, 0x61, 0xf0, 0x70, 0x86, 0x99, 0xd2, 0xb6, 0xe0, 0x2e, 0xa2, 0xa0,
0xec, 0xa5, 0x52, 0x76, 0x38, 0x35, 0x46, 0x5b, 0x4f, 0x95, 0x6e, 0x8a, 0xa5, 0x3b, 0x1e, 0x01,
0xa3, 0x72, 0x8d, 0xb4, 0x98, 0xf9, 0x37, 0x4a, 0x59, 0x74, 0x2e, 0x68, 0xc9, 0xfc, 0xb8, 0xd0,
0x2a, 0x42, 0xfe, 0xab, 0x0e, 0x8d, 0xcf, 0x7e, 0xae, 0xd9, 0x60, 0x19, 0xd2, 0x3e, 0x78, 0x51,
0x61, 0xc6, 0x9f, 0xf4, 0x37, 0x6c, 0xa1, 0xbb, 0x7e, 0x9e, 0xaa, 0xc5, 0x94, 0x85, 0x33, 0xeb,
0x43, 0x5b, 0x4f, 0xbd, 0x99, 0xfa, 0x63, 0xf2, 0x6c, 0x8d, 0x3c, 0x2b, 0x5f, 0x85, 0x7a, 0x5d,
0x6c, 0x53, 0xe3, 0xbb, 0x0d, 0xca, 0x2b, 0xa2, 0xe0, 0xf3, 0x4c, 0x8e, 0xa7, 0xd8, 0x6d, 0xe6,
0x3e, 0x53, 0x50, 0x9a, 0xf0, 0xf5, 0xf2, 0x84, 0x1f, 0xfc, 0x6c, 0xc2, 0xbd, 0x41, 0xbe, 0x1e,
0xa3, 0xf9, 0xd0, 0x5b, 0x94, 0x13, 0xb4, 0x6c, 0x04, 0xdb, 0x47, 0xe8, 0x4f, 0xa4, 0x47, 0xe7,
0x69, 0x8c, 0x58, 0xbf, 0xa2, 0xae, 0x1b, 0xc3, 0x7a, 0x77, 0x8c, 0x21, 0xaf, 0xb1, 0x4f, 0xb0,
0x79, 0x84, 0x05, 0xdf, 0x1d, 0xe8, 0xde, 0xd3, 0x2a, 0xbd, 0xfc, 0xad, 0x04, 0xe3, 0x35, 0xf6,
0x15, 0xb6, 0x16, 0x94, 0xf9, 0x3e, 0x3e, 0xf9, 0x17, 0x2f, 0x41, 0x56, 0xa4, 0xde, 0xaf, 0xb3,
0x53, 0xea, 0x42, 0x79, 0x0f, 0x1e, 0x57, 0xb9, 0x5b, 0xac, 0x66, 0xef, 0x79, 0x05, 0x60, 0x79,
0x9f, 0x78, 0x8d, 0x9d, 0xc1, 0xff, 0x61, 0x7b, 0xca, 0xe4, 0xab, 0xe5, 0x56, 0x3e, 0xbf, 0xbc,
0x8c, 0xbc, 0xc6, 0xbe, 0x50, 0xb3, 0xc3, 0x90, 0x3a, 0xb6, 0xfa, 0x50, 0xf6, 0x1e, 0x56, 0x40,
0x03, 0x11, 0x35, 0x45, 0x50, 0xc7, 0x4b, 0x1b, 0xb9, 0x5b, 0x91, 0x41, 0xdb, 0xdb, 0xab, 0xf2,
0xe3, 0x96, 0x80, 0xd7, 0x0e, 0xdb, 0xa7, 0xad, 0xfc, 0xb3, 0x35, 0xf1, 0xf9, 0x3a, 0xfd, 0x9d,
0x5f, 0xfe, 0x0e, 0x00, 0x00, 0xff, 0xff, 0xc7, 0x3d, 0x76, 0xac, 0xdc, 0x05, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@ -386,12 +572,17 @@ const _ = grpc.SupportPackageIsVersion4
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type CompactTxStreamerClient interface {
// Compact Blocks
GetLatestBlock(ctx context.Context, in *ChainSpec, opts ...grpc.CallOption) (*BlockID, error)
GetBlock(ctx context.Context, in *BlockID, opts ...grpc.CallOption) (*CompactBlock, error)
GetBlockRange(ctx context.Context, in *BlockRange, opts ...grpc.CallOption) (CompactTxStreamer_GetBlockRangeClient, error)
// Transactions
GetTransaction(ctx context.Context, in *TxFilter, opts ...grpc.CallOption) (*RawTransaction, error)
SendTransaction(ctx context.Context, in *RawTransaction, opts ...grpc.CallOption) (*SendResponse, error)
GetLightdInfo(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*SendResponse, error)
// t-Address support
GetUtxos(ctx context.Context, in *TransparentAddress, opts ...grpc.CallOption) (CompactTxStreamer_GetUtxosClient, error)
// Misc
GetLightdInfo(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*LightdInfo, error)
}
type compactTxStreamerClient struct {
@ -470,8 +661,40 @@ func (c *compactTxStreamerClient) SendTransaction(ctx context.Context, in *RawTr
return out, nil
}
func (c *compactTxStreamerClient) GetLightdInfo(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*SendResponse, error) {
out := new(SendResponse)
func (c *compactTxStreamerClient) GetUtxos(ctx context.Context, in *TransparentAddress, opts ...grpc.CallOption) (CompactTxStreamer_GetUtxosClient, error) {
stream, err := c.cc.NewStream(ctx, &_CompactTxStreamer_serviceDesc.Streams[1], "/cash.z.wallet.sdk.rpc.CompactTxStreamer/GetUtxos", opts...)
if err != nil {
return nil, err
}
x := &compactTxStreamerGetUtxosClient{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
}
type CompactTxStreamer_GetUtxosClient interface {
Recv() (*Utxo, error)
grpc.ClientStream
}
type compactTxStreamerGetUtxosClient struct {
grpc.ClientStream
}
func (x *compactTxStreamerGetUtxosClient) Recv() (*Utxo, error) {
m := new(Utxo)
if err := x.ClientStream.RecvMsg(m); err != nil {
return nil, err
}
return m, nil
}
func (c *compactTxStreamerClient) GetLightdInfo(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*LightdInfo, error) {
out := new(LightdInfo)
err := c.cc.Invoke(ctx, "/cash.z.wallet.sdk.rpc.CompactTxStreamer/GetLightdInfo", in, out, opts...)
if err != nil {
return nil, err
@ -481,12 +704,17 @@ func (c *compactTxStreamerClient) GetLightdInfo(ctx context.Context, in *Empty,
// CompactTxStreamerServer is the server API for CompactTxStreamer service.
type CompactTxStreamerServer interface {
// Compact Blocks
GetLatestBlock(context.Context, *ChainSpec) (*BlockID, error)
GetBlock(context.Context, *BlockID) (*CompactBlock, error)
GetBlockRange(*BlockRange, CompactTxStreamer_GetBlockRangeServer) error
// Transactions
GetTransaction(context.Context, *TxFilter) (*RawTransaction, error)
SendTransaction(context.Context, *RawTransaction) (*SendResponse, error)
GetLightdInfo(context.Context, *Empty) (*SendResponse, error)
// t-Address support
GetUtxos(*TransparentAddress, CompactTxStreamer_GetUtxosServer) error
// Misc
GetLightdInfo(context.Context, *Empty) (*LightdInfo, error)
}
// UnimplementedCompactTxStreamerServer can be embedded to have forward compatible implementations.
@ -508,7 +736,10 @@ func (*UnimplementedCompactTxStreamerServer) GetTransaction(ctx context.Context,
func (*UnimplementedCompactTxStreamerServer) SendTransaction(ctx context.Context, req *RawTransaction) (*SendResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method SendTransaction not implemented")
}
func (*UnimplementedCompactTxStreamerServer) GetLightdInfo(ctx context.Context, req *Empty) (*SendResponse, error) {
func (*UnimplementedCompactTxStreamerServer) GetUtxos(req *TransparentAddress, srv CompactTxStreamer_GetUtxosServer) error {
return status.Errorf(codes.Unimplemented, "method GetUtxos not implemented")
}
func (*UnimplementedCompactTxStreamerServer) GetLightdInfo(ctx context.Context, req *Empty) (*LightdInfo, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetLightdInfo not implemented")
}
@ -609,6 +840,27 @@ func _CompactTxStreamer_SendTransaction_Handler(srv interface{}, ctx context.Con
return interceptor(ctx, in, info, handler)
}
func _CompactTxStreamer_GetUtxos_Handler(srv interface{}, stream grpc.ServerStream) error {
m := new(TransparentAddress)
if err := stream.RecvMsg(m); err != nil {
return err
}
return srv.(CompactTxStreamerServer).GetUtxos(m, &compactTxStreamerGetUtxosServer{stream})
}
type CompactTxStreamer_GetUtxosServer interface {
Send(*Utxo) error
grpc.ServerStream
}
type compactTxStreamerGetUtxosServer struct {
grpc.ServerStream
}
func (x *compactTxStreamerGetUtxosServer) Send(m *Utxo) error {
return x.ServerStream.SendMsg(m)
}
func _CompactTxStreamer_GetLightdInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(Empty)
if err := dec(in); err != nil {
@ -658,6 +910,11 @@ var _CompactTxStreamer_serviceDesc = grpc.ServiceDesc{
Handler: _CompactTxStreamer_GetBlockRange_Handler,
ServerStreams: true,
},
{
StreamName: "GetUtxos",
Handler: _CompactTxStreamer_GetUtxos_Handler,
ServerStreams: true,
},
},
Metadata: "service.proto",
}

29
walletrpc/service.proto

@ -42,11 +42,38 @@ message ChainSpec {}
message Empty {}
message LightdInfo {
string version = 1;
string vendor = 2;
bool taddrSupport = 3;
}
message TransparentAddress {
string address = 1;
}
message Utxo {
TransparentAddress address = 1;
bytes txid = 2;
uint64 outputIndex = 3;
bytes script = 4;
uint64 value = 5;
uint64 height = 6;
}
service CompactTxStreamer {
// Compact Blocks
rpc GetLatestBlock(ChainSpec) returns (BlockID) {}
rpc GetBlock(BlockID) returns (CompactBlock) {}
rpc GetBlockRange(BlockRange) returns (stream CompactBlock) {}
// Transactions
rpc GetTransaction(TxFilter) returns (RawTransaction) {}
rpc SendTransaction(RawTransaction) returns (SendResponse) {}
rpc GetLightdInfo(Empty) returns (SendResponse) {}
// t-Address support
rpc GetUtxos(TransparentAddress) returns (stream Utxo) {}
// Misc
rpc GetLightdInfo(Empty) returns (LightdInfo) {}
}

Loading…
Cancel
Save