clmrpc: add DepositAccount RPC

This commit is contained in:
Wilmer Paulino 2020-06-09 16:52:50 -07:00
parent 7c0a5070ea
commit f521327cb5
6 changed files with 501 additions and 215 deletions

View file

@ -194,7 +194,7 @@ func (m *ListAccountsResponse) GetAccounts() []*Account {
type Output struct {
// The value, in satoshis, of the output.
Value uint64 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"`
ValueSat uint64 `protobuf:"varint,1,opt,name=value_sat,json=valueSat,proto3" json:"value_sat,omitempty"`
// The address corresponding to the output.
Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
@ -227,9 +227,9 @@ func (m *Output) XXX_DiscardUnknown() {
var xxx_messageInfo_Output proto.InternalMessageInfo
func (m *Output) GetValue() uint64 {
func (m *Output) GetValueSat() uint64 {
if m != nil {
return m.Value
return m.ValueSat
}
return 0
}
@ -443,6 +443,116 @@ func (m *WithdrawAccountResponse) GetWithdrawTxid() []byte {
return nil
}
type DepositAccountRequest struct {
//
//The trader key associated with the account that funds will be deposited
//into.
TraderKey []byte `protobuf:"bytes,1,opt,name=trader_key,json=traderKey,proto3" json:"trader_key,omitempty"`
// The amount in satoshis to deposit into the account.
AmountSat uint64 `protobuf:"varint,2,opt,name=amount_sat,json=amountSat,proto3" json:"amount_sat,omitempty"`
//
//The fee rate, in satoshis per vbyte, to use for the deposit transaction.
SatPerVbyte uint32 `protobuf:"varint,3,opt,name=sat_per_vbyte,json=satPerVbyte,proto3" json:"sat_per_vbyte,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *DepositAccountRequest) Reset() { *m = DepositAccountRequest{} }
func (m *DepositAccountRequest) String() string { return proto.CompactTextString(m) }
func (*DepositAccountRequest) ProtoMessage() {}
func (*DepositAccountRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_b8f61804588c75fe, []int{8}
}
func (m *DepositAccountRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DepositAccountRequest.Unmarshal(m, b)
}
func (m *DepositAccountRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_DepositAccountRequest.Marshal(b, m, deterministic)
}
func (m *DepositAccountRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_DepositAccountRequest.Merge(m, src)
}
func (m *DepositAccountRequest) XXX_Size() int {
return xxx_messageInfo_DepositAccountRequest.Size(m)
}
func (m *DepositAccountRequest) XXX_DiscardUnknown() {
xxx_messageInfo_DepositAccountRequest.DiscardUnknown(m)
}
var xxx_messageInfo_DepositAccountRequest proto.InternalMessageInfo
func (m *DepositAccountRequest) GetTraderKey() []byte {
if m != nil {
return m.TraderKey
}
return nil
}
func (m *DepositAccountRequest) GetAmountSat() uint64 {
if m != nil {
return m.AmountSat
}
return 0
}
func (m *DepositAccountRequest) GetSatPerVbyte() uint32 {
if m != nil {
return m.SatPerVbyte
}
return 0
}
type DepositAccountResponse struct {
// The state of the account after processing the deposit.
Account *Account `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"`
// The transaction used to deposit funds into the account.
DepositTxid []byte `protobuf:"bytes,2,opt,name=deposit_txid,json=depositTxid,proto3" json:"deposit_txid,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *DepositAccountResponse) Reset() { *m = DepositAccountResponse{} }
func (m *DepositAccountResponse) String() string { return proto.CompactTextString(m) }
func (*DepositAccountResponse) ProtoMessage() {}
func (*DepositAccountResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_b8f61804588c75fe, []int{9}
}
func (m *DepositAccountResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DepositAccountResponse.Unmarshal(m, b)
}
func (m *DepositAccountResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_DepositAccountResponse.Marshal(b, m, deterministic)
}
func (m *DepositAccountResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_DepositAccountResponse.Merge(m, src)
}
func (m *DepositAccountResponse) XXX_Size() int {
return xxx_messageInfo_DepositAccountResponse.Size(m)
}
func (m *DepositAccountResponse) XXX_DiscardUnknown() {
xxx_messageInfo_DepositAccountResponse.DiscardUnknown(m)
}
var xxx_messageInfo_DepositAccountResponse proto.InternalMessageInfo
func (m *DepositAccountResponse) GetAccount() *Account {
if m != nil {
return m.Account
}
return nil
}
func (m *DepositAccountResponse) GetDepositTxid() []byte {
if m != nil {
return m.DepositTxid
}
return nil
}
type Account struct {
//
//The identifying component of an account. This is the key used for the trader
@ -469,7 +579,7 @@ func (m *Account) Reset() { *m = Account{} }
func (m *Account) String() string { return proto.CompactTextString(m) }
func (*Account) ProtoMessage() {}
func (*Account) Descriptor() ([]byte, []int) {
return fileDescriptor_b8f61804588c75fe, []int{8}
return fileDescriptor_b8f61804588c75fe, []int{10}
}
func (m *Account) XXX_Unmarshal(b []byte) error {
@ -546,7 +656,7 @@ func (m *SubmitOrderRequest) Reset() { *m = SubmitOrderRequest{} }
func (m *SubmitOrderRequest) String() string { return proto.CompactTextString(m) }
func (*SubmitOrderRequest) ProtoMessage() {}
func (*SubmitOrderRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_b8f61804588c75fe, []int{9}
return fileDescriptor_b8f61804588c75fe, []int{11}
}
func (m *SubmitOrderRequest) XXX_Unmarshal(b []byte) error {
@ -626,7 +736,7 @@ func (m *SubmitOrderResponse) Reset() { *m = SubmitOrderResponse{} }
func (m *SubmitOrderResponse) String() string { return proto.CompactTextString(m) }
func (*SubmitOrderResponse) ProtoMessage() {}
func (*SubmitOrderResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_b8f61804588c75fe, []int{10}
return fileDescriptor_b8f61804588c75fe, []int{12}
}
func (m *SubmitOrderResponse) XXX_Unmarshal(b []byte) error {
@ -702,7 +812,7 @@ func (m *ListOrdersRequest) Reset() { *m = ListOrdersRequest{} }
func (m *ListOrdersRequest) String() string { return proto.CompactTextString(m) }
func (*ListOrdersRequest) ProtoMessage() {}
func (*ListOrdersRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_b8f61804588c75fe, []int{11}
return fileDescriptor_b8f61804588c75fe, []int{13}
}
func (m *ListOrdersRequest) XXX_Unmarshal(b []byte) error {
@ -735,7 +845,7 @@ func (m *ListOrdersResponse) Reset() { *m = ListOrdersResponse{} }
func (m *ListOrdersResponse) String() string { return proto.CompactTextString(m) }
func (*ListOrdersResponse) ProtoMessage() {}
func (*ListOrdersResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_b8f61804588c75fe, []int{12}
return fileDescriptor_b8f61804588c75fe, []int{14}
}
func (m *ListOrdersResponse) XXX_Unmarshal(b []byte) error {
@ -781,7 +891,7 @@ func (m *CancelOrderRequest) Reset() { *m = CancelOrderRequest{} }
func (m *CancelOrderRequest) String() string { return proto.CompactTextString(m) }
func (*CancelOrderRequest) ProtoMessage() {}
func (*CancelOrderRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_b8f61804588c75fe, []int{13}
return fileDescriptor_b8f61804588c75fe, []int{15}
}
func (m *CancelOrderRequest) XXX_Unmarshal(b []byte) error {
@ -819,7 +929,7 @@ func (m *CancelOrderResponse) Reset() { *m = CancelOrderResponse{} }
func (m *CancelOrderResponse) String() string { return proto.CompactTextString(m) }
func (*CancelOrderResponse) ProtoMessage() {}
func (*CancelOrderResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_b8f61804588c75fe, []int{14}
return fileDescriptor_b8f61804588c75fe, []int{16}
}
func (m *CancelOrderResponse) XXX_Unmarshal(b []byte) error {
@ -877,7 +987,7 @@ func (m *Order) Reset() { *m = Order{} }
func (m *Order) String() string { return proto.CompactTextString(m) }
func (*Order) ProtoMessage() {}
func (*Order) Descriptor() ([]byte, []int) {
return fileDescriptor_b8f61804588c75fe, []int{15}
return fileDescriptor_b8f61804588c75fe, []int{17}
}
func (m *Order) XXX_Unmarshal(b []byte) error {
@ -975,7 +1085,7 @@ func (m *Bid) Reset() { *m = Bid{} }
func (m *Bid) String() string { return proto.CompactTextString(m) }
func (*Bid) ProtoMessage() {}
func (*Bid) Descriptor() ([]byte, []int) {
return fileDescriptor_b8f61804588c75fe, []int{16}
return fileDescriptor_b8f61804588c75fe, []int{18}
}
func (m *Bid) XXX_Unmarshal(b []byte) error {
@ -1038,7 +1148,7 @@ func (m *Ask) Reset() { *m = Ask{} }
func (m *Ask) String() string { return proto.CompactTextString(m) }
func (*Ask) ProtoMessage() {}
func (*Ask) Descriptor() ([]byte, []int) {
return fileDescriptor_b8f61804588c75fe, []int{17}
return fileDescriptor_b8f61804588c75fe, []int{19}
}
func (m *Ask) XXX_Unmarshal(b []byte) error {
@ -1090,7 +1200,7 @@ func (m *RecoverAccountsRequest) Reset() { *m = RecoverAccountsRequest{}
func (m *RecoverAccountsRequest) String() string { return proto.CompactTextString(m) }
func (*RecoverAccountsRequest) ProtoMessage() {}
func (*RecoverAccountsRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_b8f61804588c75fe, []int{18}
return fileDescriptor_b8f61804588c75fe, []int{20}
}
func (m *RecoverAccountsRequest) XXX_Unmarshal(b []byte) error {
@ -1123,7 +1233,7 @@ func (m *RecoverAccountsResponse) Reset() { *m = RecoverAccountsResponse
func (m *RecoverAccountsResponse) String() string { return proto.CompactTextString(m) }
func (*RecoverAccountsResponse) ProtoMessage() {}
func (*RecoverAccountsResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_b8f61804588c75fe, []int{19}
return fileDescriptor_b8f61804588c75fe, []int{21}
}
func (m *RecoverAccountsResponse) XXX_Unmarshal(b []byte) error {
@ -1161,6 +1271,8 @@ func init() {
proto.RegisterType((*CloseAccountResponse)(nil), "clmrpc.CloseAccountResponse")
proto.RegisterType((*WithdrawAccountRequest)(nil), "clmrpc.WithdrawAccountRequest")
proto.RegisterType((*WithdrawAccountResponse)(nil), "clmrpc.WithdrawAccountResponse")
proto.RegisterType((*DepositAccountRequest)(nil), "clmrpc.DepositAccountRequest")
proto.RegisterType((*DepositAccountResponse)(nil), "clmrpc.DepositAccountResponse")
proto.RegisterType((*Account)(nil), "clmrpc.Account")
proto.RegisterType((*SubmitOrderRequest)(nil), "clmrpc.SubmitOrderRequest")
proto.RegisterType((*SubmitOrderResponse)(nil), "clmrpc.SubmitOrderResponse")
@ -1178,81 +1290,85 @@ func init() {
func init() { proto.RegisterFile("trader.proto", fileDescriptor_b8f61804588c75fe) }
var fileDescriptor_b8f61804588c75fe = []byte{
// 1179 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0x5d, 0x6f, 0xdb, 0x36,
0x17, 0x8e, 0xe3, 0xaf, 0xe4, 0xf8, 0xa3, 0x2a, 0xed, 0xa6, 0xaa, 0xdb, 0x34, 0x81, 0xfa, 0xf6,
0x9d, 0x97, 0x0c, 0x31, 0x9a, 0xad, 0xc0, 0xb0, 0x5d, 0xe5, 0xc3, 0x5d, 0x82, 0x15, 0x89, 0xa1,
0xa4, 0xe9, 0x80, 0x01, 0xd3, 0x68, 0x89, 0x49, 0x08, 0xcb, 0x92, 0x27, 0x51, 0x8e, 0x83, 0xa2,
0x37, 0x03, 0x7a, 0x3d, 0x0c, 0xfb, 0x69, 0xfb, 0x0b, 0x05, 0xf6, 0x37, 0x06, 0x52, 0xa4, 0x25,
0xcb, 0x0e, 0xba, 0x5d, 0xec, 0x4e, 0x3c, 0xcf, 0xe1, 0x79, 0x1e, 0x92, 0x0f, 0x79, 0x04, 0x55,
0x16, 0x60, 0x87, 0x04, 0x3b, 0xa3, 0xc0, 0x67, 0x3e, 0x2a, 0xd9, 0xee, 0x30, 0x18, 0xd9, 0xad,
0x27, 0x57, 0xbe, 0x7f, 0xe5, 0x92, 0x0e, 0x1e, 0xd1, 0x0e, 0xf6, 0x3c, 0x9f, 0x61, 0x46, 0x7d,
0x2f, 0x8c, 0xb3, 0x5a, 0x1a, 0x8e, 0x6c, 0x3e, 0x26, 0x6a, 0x9e, 0xf1, 0x33, 0xa0, 0x63, 0x8f,
0xb2, 0x3d, 0xdb, 0xf6, 0x23, 0x8f, 0x99, 0xe4, 0x97, 0x88, 0x84, 0x0c, 0x3d, 0x83, 0x1a, 0x8e,
0x23, 0xd6, 0x18, 0xbb, 0x11, 0xd1, 0x73, 0x9b, 0xb9, 0x76, 0xc1, 0xac, 0xca, 0xe0, 0x05, 0x8f,
0xa1, 0xe7, 0x50, 0x57, 0x49, 0x64, 0x32, 0xa2, 0xc1, 0xad, 0xbe, 0xbc, 0x99, 0x6b, 0xd7, 0x4c,
0x35, 0xb5, 0x2b, 0x82, 0xc6, 0x03, 0x68, 0xbc, 0xa6, 0xa1, 0x62, 0x08, 0x25, 0x85, 0x71, 0x00,
0xcd, 0xd9, 0x70, 0x38, 0xf2, 0xbd, 0x90, 0xa0, 0x6d, 0x58, 0x91, 0xf3, 0x43, 0x3d, 0xb7, 0x99,
0x6f, 0x57, 0x76, 0xef, 0xed, 0xc4, 0x6b, 0xdb, 0x51, 0x22, 0xa7, 0x09, 0xc6, 0xd7, 0x50, 0x3a,
0x8d, 0xd8, 0x28, 0x62, 0xa8, 0x09, 0xc5, 0xb4, 0xd2, 0x78, 0x80, 0x74, 0x28, 0x63, 0xc7, 0x09,
0x48, 0x18, 0x0a, 0x6d, 0xab, 0xa6, 0x1a, 0x1a, 0x3f, 0x41, 0xe3, 0xc0, 0xf5, 0x43, 0x92, 0x59,
0xf8, 0x3a, 0x40, 0xbc, 0xad, 0xd6, 0x80, 0xdc, 0x8a, 0x5a, 0x55, 0x73, 0x35, 0x8e, 0x7c, 0x4f,
0x6e, 0x51, 0x1b, 0xca, 0xbe, 0xe0, 0xe3, 0xf5, 0xb8, 0xb6, 0xba, 0xd2, 0x16, 0xcb, 0x30, 0x15,
0x6c, 0xbc, 0x84, 0xe6, 0x6c, 0x7d, 0xb9, 0xbc, 0x75, 0x00, 0x9b, 0xc7, 0x2d, 0x36, 0xa1, 0x8e,
0x22, 0x10, 0x91, 0xf3, 0x09, 0x75, 0x8c, 0x0f, 0x39, 0x58, 0x7b, 0x4b, 0xd9, 0xb5, 0x13, 0xe0,
0x9b, 0xff, 0x48, 0x1a, 0x32, 0xa0, 0x16, 0x62, 0x66, 0x8d, 0x48, 0x60, 0x8d, 0xfb, 0xb7, 0x8c,
0xe8, 0x79, 0xb1, 0x65, 0x95, 0x10, 0xb3, 0x1e, 0x09, 0x2e, 0x78, 0xc8, 0xa0, 0xf0, 0x70, 0x4e,
0x86, 0x5c, 0xc1, 0xe7, 0x50, 0x96, 0xfb, 0x2f, 0x44, 0x2c, 0x38, 0x1f, 0x85, 0x73, 0x1b, 0xdd,
0xc8, 0x2a, 0xf1, 0x7a, 0x97, 0x85, 0xea, 0xaa, 0x0a, 0x8a, 0x25, 0x7f, 0xcc, 0x41, 0x59, 0xce,
0xfc, 0xd4, 0x1a, 0xbf, 0x80, 0x15, 0xbe, 0x08, 0x9f, 0x7a, 0x4c, 0x94, 0xaa, 0xec, 0x6a, 0xa9,
0x45, 0xf6, 0x78, 0xdc, 0x9c, 0x66, 0x24, 0x96, 0xc8, 0xa7, 0x2d, 0xb1, 0x0d, 0xf7, 0x85, 0x5b,
0xc5, 0xbd, 0xb0, 0xae, 0x09, 0xbd, 0xba, 0x66, 0x7a, 0x41, 0x18, 0x57, 0x4b, 0x80, 0x23, 0x11,
0x47, 0x5b, 0x50, 0x0c, 0x19, 0x66, 0x44, 0x2f, 0x6e, 0xe6, 0xda, 0xf5, 0xdd, 0x66, 0x66, 0xa5,
0x67, 0x1c, 0x33, 0xe3, 0x94, 0xcc, 0xc9, 0x96, 0xb2, 0x27, 0x8b, 0x01, 0x9d, 0x45, 0xfd, 0x21,
0x65, 0xa7, 0x81, 0x43, 0x02, 0x75, 0xa8, 0x1b, 0x90, 0xc7, 0xe1, 0x40, 0x6e, 0x64, 0x65, 0x5a,
0x3e, 0x1c, 0x1c, 0x2d, 0x99, 0x1c, 0xe1, 0x09, 0x7d, 0xb9, 0x71, 0xa9, 0x84, 0x7d, 0xea, 0xf0,
0x84, 0x3e, 0x75, 0xf6, 0x57, 0xa1, 0xec, 0x10, 0x86, 0xa9, 0x1b, 0x1a, 0xbf, 0xe7, 0xa0, 0x31,
0xc3, 0x21, 0x4f, 0xec, 0x5b, 0xa8, 0x51, 0x6f, 0x8c, 0x5d, 0xea, 0x58, 0x3e, 0x07, 0x24, 0xdd,
0x74, 0x35, 0xc7, 0x31, 0x28, 0x26, 0x1d, 0x2d, 0x99, 0x55, 0x9a, 0x1a, 0xa3, 0x5d, 0x68, 0x62,
0xdb, 0x26, 0x23, 0x46, 0xe4, 0x6c, 0xcb, 0xf3, 0x3d, 0x9b, 0xc4, 0x47, 0x79, 0xb4, 0x64, 0x22,
0x85, 0x8a, 0xf4, 0x13, 0x8e, 0xa5, 0x35, 0x35, 0xe0, 0x3e, 0xbf, 0xe6, 0x02, 0x9c, 0xde, 0xfd,
0x0b, 0x40, 0xe9, 0xa0, 0x94, 0xb9, 0x01, 0x05, 0x1c, 0x0e, 0xd4, 0xad, 0x4f, 0x6f, 0x86, 0x29,
0x00, 0x9e, 0xd0, 0xa7, 0x8e, 0xf2, 0x77, 0x7a, 0x33, 0x4c, 0x01, 0x18, 0x2f, 0x01, 0x1d, 0x60,
0xcf, 0x26, 0x6e, 0x66, 0x8f, 0x2b, 0x69, 0xe1, 0xb1, 0xab, 0xc0, 0x9f, 0xca, 0xe5, 0x2f, 0xd4,
0xcc, 0xb4, 0x58, 0x8f, 0xf1, 0xdb, 0x32, 0x14, 0xe3, 0x3d, 0xf8, 0x84, 0x2d, 0xd7, 0x01, 0x02,
0xcc, 0x88, 0x75, 0x49, 0x27, 0xc4, 0x91, 0x8f, 0xe0, 0x2a, 0x8f, 0xbc, 0xe2, 0x01, 0xa4, 0x41,
0x1e, 0x0f, 0x99, 0x74, 0x21, 0xff, 0x44, 0x6d, 0xd0, 0x2e, 0x23, 0xcf, 0xa1, 0xde, 0x95, 0x75,
0x49, 0x88, 0xc5, 0x53, 0x85, 0x05, 0x0b, 0x66, 0x5d, 0xc6, 0x5f, 0x11, 0x62, 0x72, 0x53, 0x65,
0xb4, 0x17, 0xb3, 0xda, 0x51, 0x5b, 0x39, 0xb4, 0x24, 0x1c, 0x8a, 0xa6, 0xf7, 0x81, 0xa7, 0xcc,
0xf8, 0xb3, 0x09, 0xc5, 0xc8, 0xa3, 0x2c, 0xd4, 0xcb, 0x42, 0x60, 0x3c, 0xe0, 0xd7, 0x41, 0x7c,
0x58, 0x91, 0x77, 0x19, 0xb9, 0x97, 0xd4, 0x75, 0x89, 0xa3, 0xaf, 0xc4, 0xd7, 0x41, 0x00, 0x6f,
0x92, 0xb8, 0x31, 0x81, 0xfc, 0x3e, 0x75, 0xd0, 0x67, 0xd3, 0xe3, 0x95, 0x4e, 0xaa, 0xcd, 0xb0,
0x9a, 0x0a, 0x45, 0x3b, 0xd0, 0x18, 0x52, 0xcf, 0x72, 0x22, 0x79, 0xdb, 0xfa, 0xae, 0x6f, 0x0f,
0x42, 0xb9, 0x43, 0xf7, 0x87, 0xd4, 0x3b, 0x94, 0xc8, 0xbe, 0x00, 0xf8, 0x73, 0x3d, 0x26, 0x41,
0x48, 0x7d, 0x4f, 0xec, 0x56, 0xcd, 0x54, 0x43, 0xce, 0xbc, 0x17, 0x0e, 0xfe, 0x1d, 0x33, 0x9e,
0xdc, 0xc9, 0x8c, 0x27, 0xff, 0x98, 0x59, 0x87, 0x35, 0x93, 0xd8, 0xfe, 0x98, 0x04, 0xd9, 0x0e,
0x76, 0x0a, 0x0f, 0xe7, 0x10, 0x69, 0xe5, 0xaf, 0x60, 0xcd, 0x8b, 0x86, 0x56, 0x10, 0xc3, 0xc4,
0xb1, 0x52, 0x2d, 0x8d, 0x57, 0x6f, 0x7a, 0xd1, 0xd0, 0x54, 0xa0, 0x9a, 0xbd, 0x35, 0x80, 0x6a,
0xfa, 0x61, 0x41, 0x1a, 0x54, 0x7b, 0xdd, 0x93, 0xc3, 0xe3, 0x93, 0xef, 0xac, 0xd3, 0x5e, 0xf7,
0x44, 0x5b, 0x42, 0x08, 0xea, 0x2a, 0xf2, 0xa6, 0x77, 0xb8, 0x77, 0xde, 0xd5, 0x72, 0x68, 0x05,
0x0a, 0x02, 0x5d, 0x46, 0x15, 0x28, 0x77, 0x7f, 0xe8, 0x1d, 0x9b, 0xdd, 0x43, 0x2d, 0x9f, 0x4e,
0x3d, 0x78, 0x7d, 0x7a, 0xd6, 0x3d, 0xd4, 0x0a, 0x08, 0xa0, 0x24, 0xbf, 0x8b, 0xbb, 0x7f, 0x95,
0xa0, 0x74, 0x2e, 0x2c, 0x8c, 0xde, 0x42, 0x25, 0xf5, 0x0f, 0x80, 0x5a, 0xc9, 0xbb, 0x90, 0xfd,
0x31, 0x68, 0x65, 0xdf, 0x7a, 0xe3, 0xf1, 0xaf, 0x7f, 0x7e, 0xfc, 0x63, 0xf9, 0x81, 0xa1, 0x75,
0xc6, 0x2f, 0x3a, 0xb6, 0x3b, 0xec, 0xa8, 0x95, 0x7e, 0x93, 0xdb, 0x42, 0x36, 0x54, 0xd3, 0x3d,
0x1e, 0x3d, 0x56, 0xb3, 0x17, 0xfc, 0x10, 0xb4, 0x9e, 0x2c, 0x06, 0xe5, 0x65, 0xd4, 0x05, 0x0f,
0x42, 0x73, 0x3c, 0x68, 0x04, 0xd5, 0x74, 0xa7, 0x4d, 0x48, 0x16, 0xf4, 0xf7, 0x84, 0x64, 0x51,
0x73, 0x36, 0x9e, 0x0b, 0x92, 0x8d, 0xad, 0xf5, 0x2c, 0x49, 0xe7, 0x5d, 0x72, 0xff, 0xdf, 0xa3,
0x0f, 0x39, 0xb8, 0x97, 0xe9, 0x8e, 0xe8, 0xa9, 0x2a, 0xbc, 0xb8, 0x7b, 0xb7, 0x36, 0xee, 0xc4,
0x25, 0xf7, 0x0b, 0xc1, 0xbd, 0x6d, 0xfc, 0x7f, 0x8e, 0x5b, 0x75, 0xcb, 0x19, 0x11, 0x7c, 0x7b,
0x6f, 0xe0, 0x5e, 0xc6, 0x80, 0x89, 0x8c, 0xc5, 0x9e, 0x4d, 0x64, 0xdc, 0xe1, 0x5c, 0xe3, 0x99,
0x90, 0xb1, 0x6e, 0xe8, 0x73, 0x32, 0xa4, 0x99, 0x39, 0x31, 0x86, 0x4a, 0xaa, 0xcf, 0x24, 0x86,
0x99, 0x6f, 0x70, 0xad, 0xc7, 0x0b, 0x31, 0x49, 0xf6, 0x48, 0x90, 0x35, 0x8c, 0xba, 0x22, 0x13,
0x0f, 0x9b, 0xb0, 0xce, 0x8f, 0x00, 0x49, 0x8b, 0x40, 0x8f, 0xd2, 0xde, 0x98, 0xe9, 0x25, 0xad,
0xd6, 0x22, 0x48, 0xd6, 0x5f, 0x13, 0xf5, 0x35, 0x94, 0xa9, 0x8f, 0x5c, 0xa8, 0xa4, 0x1e, 0xfc,
0x44, 0xff, 0x7c, 0xf3, 0x48, 0xf4, 0x2f, 0xea, 0x10, 0xff, 0x13, 0xf5, 0x9f, 0x6e, 0x3d, 0x99,
0xad, 0xdf, 0x79, 0x97, 0x7a, 0xb3, 0xdf, 0xf7, 0x4b, 0xe2, 0x4f, 0xfb, 0xcb, 0xbf, 0x03, 0x00,
0x00, 0xff, 0xff, 0x2c, 0xf4, 0x78, 0xd0, 0xb1, 0x0b, 0x00, 0x00,
// 1247 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x57, 0xdd, 0x6e, 0x1b, 0x45,
0x14, 0x8e, 0xe3, 0xbf, 0xf8, 0xf8, 0xa7, 0xdb, 0xb1, 0x9b, 0x6e, 0x9d, 0xa6, 0x0d, 0x5b, 0x10,
0x26, 0x45, 0xb1, 0x08, 0xf4, 0x06, 0x2e, 0x50, 0x13, 0xbb, 0x24, 0xa2, 0x4a, 0xac, 0x4d, 0x7f,
0x90, 0x90, 0x58, 0xc6, 0xbb, 0xe3, 0x74, 0xe4, 0xf5, 0xae, 0xd9, 0x9d, 0x75, 0x1d, 0x21, 0x6e,
0x90, 0xb8, 0x46, 0x88, 0x37, 0xe2, 0x15, 0x78, 0x85, 0x3e, 0x08, 0x9a, 0xd9, 0x19, 0x7b, 0xbd,
0xde, 0x10, 0x7a, 0xc1, 0x9d, 0xf7, 0x7c, 0x67, 0xce, 0x77, 0xce, 0x9c, 0xbf, 0x31, 0xd4, 0x58,
0x80, 0x1d, 0x12, 0x1c, 0x4c, 0x03, 0x9f, 0xf9, 0xa8, 0x64, 0xbb, 0x93, 0x60, 0x6a, 0xb7, 0xef,
0x5f, 0xfa, 0xfe, 0xa5, 0x4b, 0xba, 0x78, 0x4a, 0xbb, 0xd8, 0xf3, 0x7c, 0x86, 0x19, 0xf5, 0xbd,
0x30, 0xd6, 0x6a, 0x6b, 0x38, 0xb2, 0xf9, 0x37, 0x51, 0xe7, 0x8c, 0x1f, 0x01, 0x9d, 0x7a, 0x94,
0x3d, 0xb5, 0x6d, 0x3f, 0xf2, 0x98, 0x49, 0x7e, 0x8a, 0x48, 0xc8, 0xd0, 0x23, 0xa8, 0xe3, 0x58,
0x62, 0xcd, 0xb0, 0x1b, 0x11, 0x3d, 0xb7, 0x97, 0xeb, 0x14, 0xcc, 0x9a, 0x14, 0xbe, 0xe2, 0x32,
0xf4, 0x11, 0x34, 0x94, 0x12, 0x99, 0x4f, 0x69, 0x70, 0xa5, 0x6f, 0xee, 0xe5, 0x3a, 0x75, 0x53,
0x1d, 0xed, 0x0b, 0xa1, 0x71, 0x07, 0x9a, 0xcf, 0x69, 0xa8, 0x18, 0x42, 0x49, 0x61, 0x1c, 0x43,
0x6b, 0x55, 0x1c, 0x4e, 0x7d, 0x2f, 0x24, 0xe8, 0x31, 0x6c, 0xc9, 0xf3, 0xa1, 0x9e, 0xdb, 0xcb,
0x77, 0xaa, 0x87, 0xb7, 0x0e, 0xe2, 0xd8, 0x0e, 0x94, 0x93, 0x0b, 0x05, 0xe3, 0x6b, 0x28, 0x9d,
0x47, 0x6c, 0x1a, 0x31, 0xb4, 0x03, 0x15, 0xe1, 0xa9, 0x15, 0x62, 0x26, 0xbd, 0xdd, 0x12, 0x82,
0x0b, 0xcc, 0x90, 0x0e, 0x65, 0xec, 0x38, 0x01, 0x09, 0x43, 0xe1, 0x62, 0xc5, 0x54, 0x9f, 0xc6,
0x0f, 0xd0, 0x3c, 0x76, 0xfd, 0x90, 0xa4, 0xe2, 0xdf, 0x05, 0x88, 0x6f, 0xd7, 0x1a, 0x93, 0x2b,
0x61, 0xae, 0x66, 0x56, 0x62, 0xc9, 0xb7, 0xe4, 0x0a, 0x75, 0xa0, 0xec, 0x0b, 0x5a, 0x6e, 0x8f,
0xbb, 0xd8, 0x50, 0x2e, 0xc6, 0xde, 0x98, 0x0a, 0x36, 0x9e, 0x40, 0x6b, 0xd5, 0xbe, 0x8c, 0x72,
0x17, 0xc0, 0xe6, 0x72, 0x8b, 0xcd, 0xa9, 0xa3, 0x08, 0x84, 0xe4, 0xc5, 0x9c, 0x3a, 0xc6, 0x6f,
0x39, 0xd8, 0x7e, 0x4d, 0xd9, 0x1b, 0x27, 0xc0, 0x6f, 0xff, 0x27, 0xd7, 0x90, 0x01, 0xf5, 0x10,
0x33, 0x6b, 0x4a, 0x02, 0x6b, 0x36, 0xbc, 0x62, 0x44, 0xcf, 0x8b, 0x5b, 0xab, 0x86, 0x98, 0x0d,
0x48, 0xf0, 0x8a, 0x8b, 0x0c, 0x0a, 0x77, 0xd7, 0xdc, 0x90, 0x11, 0x7c, 0x02, 0x65, 0x99, 0x06,
0xe1, 0x44, 0x46, 0x9a, 0x14, 0xce, 0xab, 0xe9, 0xad, 0xb4, 0x12, 0xc7, 0xbb, 0x29, 0xbc, 0xae,
0x29, 0xa1, 0x08, 0xf9, 0x0a, 0xee, 0xf4, 0xc8, 0xd4, 0x0f, 0xd7, 0x6a, 0xf1, 0x86, 0x80, 0x77,
0x01, 0xf0, 0x44, 0x14, 0x21, 0xcf, 0xfc, 0xa6, 0x88, 0xa1, 0x12, 0x4b, 0x78, 0xea, 0x33, 0xa3,
0xac, 0xaf, 0x46, 0x39, 0x82, 0xed, 0x34, 0xf5, 0xfb, 0x07, 0xf9, 0x01, 0xd4, 0x9c, 0xd8, 0x48,
0x32, 0xc6, 0xaa, 0x94, 0x89, 0x10, 0xdf, 0xe5, 0xa0, 0x2c, 0xcf, 0xdd, 0x14, 0xd5, 0xa7, 0xb0,
0xc5, 0xf3, 0xe4, 0x53, 0x2f, 0x8e, 0xa9, 0x7a, 0xa8, 0x25, 0xf2, 0x38, 0xe0, 0x72, 0x73, 0xa1,
0x81, 0x5a, 0x50, 0x8c, 0xdb, 0x34, 0x4e, 0x61, 0xfc, 0x81, 0x1e, 0xc3, 0x6d, 0xd1, 0x97, 0x62,
0x02, 0x58, 0x6f, 0x08, 0xbd, 0x7c, 0xc3, 0xf4, 0x82, 0x08, 0x5f, 0x5b, 0x02, 0x27, 0x42, 0x8e,
0xf6, 0xa1, 0x18, 0x32, 0xcc, 0x88, 0x5e, 0xdc, 0xcb, 0x75, 0x1a, 0x87, 0xad, 0x54, 0x9c, 0x17,
0x1c, 0x33, 0x63, 0x95, 0x54, 0xf1, 0x96, 0xd2, 0xc5, 0x8b, 0x01, 0x5d, 0x44, 0xc3, 0x09, 0x65,
0xe7, 0x81, 0x43, 0x02, 0x95, 0xc6, 0x87, 0x90, 0xc7, 0xe1, 0x58, 0x5e, 0x63, 0x75, 0x61, 0x3e,
0x1c, 0x9f, 0x6c, 0x98, 0x1c, 0xe1, 0x0a, 0x43, 0x79, 0x6f, 0x09, 0x85, 0x23, 0xea, 0x70, 0x85,
0x21, 0x75, 0x8e, 0x2a, 0x50, 0x76, 0x08, 0xc3, 0xd4, 0x0d, 0x8d, 0x3f, 0x72, 0xd0, 0x5c, 0xe1,
0x90, 0xf9, 0xfa, 0x0a, 0xea, 0xd4, 0x9b, 0x61, 0x97, 0x3a, 0x96, 0xcf, 0x01, 0x49, 0xb7, 0x88,
0xe6, 0x34, 0x06, 0xc5, 0xa1, 0x93, 0x0d, 0xb3, 0x46, 0x13, 0xdf, 0xe8, 0x10, 0x5a, 0xd8, 0xb6,
0xc9, 0x94, 0x11, 0x79, 0xda, 0xf2, 0x7c, 0xcf, 0x26, 0x71, 0x26, 0x4f, 0x36, 0x4c, 0xa4, 0x50,
0xa1, 0x7e, 0xc6, 0xb1, 0xa4, 0x4f, 0x4d, 0xb8, 0xcd, 0x07, 0x9a, 0x00, 0x17, 0x53, 0xee, 0x15,
0xa0, 0xa4, 0x50, 0xba, 0xf9, 0x10, 0x0a, 0x38, 0x1c, 0xab, 0xf9, 0x96, 0xbc, 0x0c, 0x53, 0x00,
0x5c, 0x61, 0x48, 0x1d, 0xd5, 0xc2, 0xc9, 0xcb, 0x30, 0x05, 0x60, 0x3c, 0x01, 0x74, 0x8c, 0x3d,
0x9b, 0xb8, 0xa9, 0x3b, 0xae, 0x26, 0x1d, 0x8f, 0xab, 0x0a, 0xfc, 0x85, 0xbb, 0x7c, 0x16, 0xaf,
0x1c, 0x8b, 0xfd, 0x31, 0x7e, 0xdf, 0x84, 0x62, 0x7c, 0x07, 0x37, 0x37, 0x5b, 0x80, 0x19, 0xb1,
0x46, 0x74, 0x4e, 0x1c, 0x39, 0xee, 0x2b, 0x5c, 0xf2, 0x8c, 0x0b, 0x90, 0x06, 0x79, 0x3c, 0x61,
0xb2, 0x0a, 0xf9, 0x4f, 0xd4, 0x01, 0x6d, 0x14, 0x79, 0x0e, 0xf5, 0x2e, 0xad, 0x11, 0x21, 0x16,
0x57, 0x15, 0x25, 0x58, 0x30, 0x1b, 0x52, 0xfe, 0x8c, 0x10, 0x93, 0x17, 0x55, 0xca, 0xf7, 0x62,
0xda, 0x77, 0xd4, 0x51, 0x15, 0x5a, 0x12, 0x15, 0x8a, 0x16, 0xfd, 0xc0, 0x55, 0x56, 0xea, 0xb3,
0x05, 0xc5, 0xc8, 0xa3, 0x2c, 0xd4, 0xcb, 0xc2, 0xc1, 0xf8, 0x83, 0xb7, 0x83, 0xf8, 0x61, 0x45,
0xde, 0x28, 0x72, 0x47, 0xd4, 0x75, 0x89, 0xa3, 0x6f, 0xc5, 0xed, 0x20, 0x80, 0x97, 0x4b, 0xb9,
0x31, 0x87, 0xfc, 0x11, 0x75, 0xd0, 0xc7, 0x8b, 0xf4, 0xca, 0x4a, 0xaa, 0xaf, 0xb0, 0x9a, 0x0a,
0x45, 0x07, 0xd0, 0x9c, 0x50, 0xcf, 0x72, 0x22, 0xd9, 0x6d, 0x43, 0xd7, 0xb7, 0xc7, 0xa1, 0xbc,
0xa1, 0xdb, 0x13, 0xea, 0xf5, 0x24, 0x72, 0x24, 0x00, 0xbe, 0x91, 0x66, 0x24, 0x08, 0xa9, 0xef,
0xc9, 0x81, 0xa4, 0x3e, 0x39, 0xf3, 0xd3, 0x70, 0xfc, 0x7e, 0xcc, 0x78, 0x7e, 0x2d, 0x33, 0x9e,
0xff, 0x67, 0x66, 0x1d, 0xb6, 0x4d, 0x62, 0xfb, 0x33, 0x12, 0xa4, 0x77, 0xf5, 0x39, 0xdc, 0x5d,
0x43, 0x64, 0x29, 0x7f, 0x01, 0xdb, 0x5e, 0x34, 0xb1, 0x82, 0x18, 0x26, 0x8e, 0x95, 0x58, 0xde,
0xdc, 0x7a, 0xcb, 0x8b, 0x26, 0xa6, 0x02, 0xd5, 0xe9, 0xfd, 0x31, 0xd4, 0x92, 0x83, 0x05, 0x69,
0x50, 0x1b, 0xf4, 0xcf, 0x7a, 0xa7, 0x67, 0xdf, 0x58, 0xe7, 0x83, 0xfe, 0x99, 0xb6, 0x81, 0x10,
0x34, 0x94, 0xe4, 0xe5, 0xa0, 0xf7, 0xf4, 0x45, 0x5f, 0xcb, 0xa1, 0x2d, 0x28, 0x08, 0x74, 0x13,
0x55, 0xa1, 0xdc, 0xff, 0x6e, 0x70, 0x6a, 0xf6, 0x7b, 0x5a, 0x3e, 0xa9, 0x7a, 0xfc, 0xfc, 0xfc,
0xa2, 0xdf, 0xd3, 0x0a, 0x08, 0xa0, 0x24, 0x7f, 0x17, 0x0f, 0xff, 0x2a, 0x43, 0xe9, 0x85, 0x28,
0x61, 0xf4, 0x1a, 0xaa, 0x89, 0xd7, 0x0e, 0x6a, 0x2f, 0xe7, 0x42, 0x7a, 0xed, 0xb4, 0xd3, 0x93,
0xde, 0xd8, 0xf9, 0xf5, 0xef, 0x77, 0x7f, 0x6e, 0xde, 0x31, 0xb4, 0xee, 0xec, 0xb3, 0xae, 0xed,
0x4e, 0xba, 0x2a, 0xd2, 0x2f, 0x73, 0xfb, 0xc8, 0x86, 0x5a, 0xf2, 0x35, 0x83, 0x76, 0xd4, 0xe9,
0x8c, 0xa7, 0x4f, 0xfb, 0x7e, 0x36, 0x28, 0x9b, 0x51, 0x17, 0x3c, 0x08, 0xad, 0xf1, 0x70, 0x92,
0xe4, 0x63, 0x62, 0x49, 0x92, 0xf1, 0x84, 0x59, 0x92, 0x64, 0xbd, 0x3f, 0x14, 0xc9, 0xfe, 0x3a,
0xc9, 0x1c, 0x6e, 0xa5, 0x56, 0x3e, 0x7a, 0xa0, 0x4c, 0x65, 0x3f, 0x49, 0xda, 0x0f, 0xaf, 0xc5,
0x25, 0xdb, 0x87, 0x82, 0xed, 0x81, 0x71, 0x2f, 0xcd, 0xd6, 0x55, 0x4f, 0x00, 0x7e, 0x87, 0x0c,
0x1a, 0xab, 0x6b, 0x18, 0xed, 0x2a, 0xc3, 0x99, 0x2f, 0x83, 0xf6, 0x83, 0xeb, 0x60, 0x49, 0xfb,
0x48, 0xd0, 0xee, 0x1a, 0xfa, 0x1a, 0xad, 0xdc, 0xca, 0x9c, 0xf5, 0x2d, 0xdc, 0x4a, 0xd5, 0xf6,
0x32, 0xde, 0xec, 0x76, 0x58, 0xc6, 0x7b, 0x4d, 0x53, 0xfc, 0x0b, 0xb1, 0xec, 0x13, 0x4e, 0x8c,
0xa1, 0x9a, 0x58, 0x61, 0xcb, 0x5a, 0x5c, 0xdf, 0x9d, 0xed, 0x9d, 0x4c, 0x4c, 0x92, 0xdd, 0x13,
0x64, 0x4d, 0xa3, 0xa1, 0xc8, 0xc4, 0xcc, 0x14, 0x55, 0xf9, 0x3d, 0xc0, 0x72, 0xfb, 0xa0, 0x7b,
0xc9, 0xb2, 0x5b, 0x59, 0x53, 0xed, 0x76, 0x16, 0x24, 0xed, 0x6f, 0x0b, 0xfb, 0x1a, 0x4a, 0xd9,
0x47, 0x2e, 0x54, 0x13, 0xbb, 0x64, 0xe9, 0xff, 0xfa, 0x5e, 0x5a, 0xfa, 0x9f, 0xb5, 0x7c, 0x64,
0x71, 0xec, 0xdf, 0x5f, 0xb5, 0xdf, 0xfd, 0x39, 0xb1, 0x0e, 0x7e, 0x19, 0x96, 0xc4, 0xdf, 0x95,
0xcf, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0xd4, 0xfd, 0xa2, 0x2b, 0xf6, 0x0c, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@ -1271,6 +1387,7 @@ type TraderClient interface {
ListAccounts(ctx context.Context, in *ListAccountsRequest, opts ...grpc.CallOption) (*ListAccountsResponse, error)
CloseAccount(ctx context.Context, in *CloseAccountRequest, opts ...grpc.CallOption) (*CloseAccountResponse, error)
WithdrawAccount(ctx context.Context, in *WithdrawAccountRequest, opts ...grpc.CallOption) (*WithdrawAccountResponse, error)
DepositAccount(ctx context.Context, in *DepositAccountRequest, opts ...grpc.CallOption) (*DepositAccountResponse, error)
RecoverAccounts(ctx context.Context, in *RecoverAccountsRequest, opts ...grpc.CallOption) (*RecoverAccountsResponse, error)
SubmitOrder(ctx context.Context, in *SubmitOrderRequest, opts ...grpc.CallOption) (*SubmitOrderResponse, error)
ListOrders(ctx context.Context, in *ListOrdersRequest, opts ...grpc.CallOption) (*ListOrdersResponse, error)
@ -1321,6 +1438,15 @@ func (c *traderClient) WithdrawAccount(ctx context.Context, in *WithdrawAccountR
return out, nil
}
func (c *traderClient) DepositAccount(ctx context.Context, in *DepositAccountRequest, opts ...grpc.CallOption) (*DepositAccountResponse, error) {
out := new(DepositAccountResponse)
err := c.cc.Invoke(ctx, "/clmrpc.Trader/DepositAccount", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *traderClient) RecoverAccounts(ctx context.Context, in *RecoverAccountsRequest, opts ...grpc.CallOption) (*RecoverAccountsResponse, error) {
out := new(RecoverAccountsResponse)
err := c.cc.Invoke(ctx, "/clmrpc.Trader/RecoverAccounts", in, out, opts...)
@ -1363,6 +1489,7 @@ type TraderServer interface {
ListAccounts(context.Context, *ListAccountsRequest) (*ListAccountsResponse, error)
CloseAccount(context.Context, *CloseAccountRequest) (*CloseAccountResponse, error)
WithdrawAccount(context.Context, *WithdrawAccountRequest) (*WithdrawAccountResponse, error)
DepositAccount(context.Context, *DepositAccountRequest) (*DepositAccountResponse, error)
RecoverAccounts(context.Context, *RecoverAccountsRequest) (*RecoverAccountsResponse, error)
SubmitOrder(context.Context, *SubmitOrderRequest) (*SubmitOrderResponse, error)
ListOrders(context.Context, *ListOrdersRequest) (*ListOrdersResponse, error)
@ -1385,6 +1512,9 @@ func (*UnimplementedTraderServer) CloseAccount(ctx context.Context, req *CloseAc
func (*UnimplementedTraderServer) WithdrawAccount(ctx context.Context, req *WithdrawAccountRequest) (*WithdrawAccountResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method WithdrawAccount not implemented")
}
func (*UnimplementedTraderServer) DepositAccount(ctx context.Context, req *DepositAccountRequest) (*DepositAccountResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method DepositAccount not implemented")
}
func (*UnimplementedTraderServer) RecoverAccounts(ctx context.Context, req *RecoverAccountsRequest) (*RecoverAccountsResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method RecoverAccounts not implemented")
}
@ -1474,6 +1604,24 @@ func _Trader_WithdrawAccount_Handler(srv interface{}, ctx context.Context, dec f
return interceptor(ctx, in, info, handler)
}
func _Trader_DepositAccount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(DepositAccountRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(TraderServer).DepositAccount(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/clmrpc.Trader/DepositAccount",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(TraderServer).DepositAccount(ctx, req.(*DepositAccountRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Trader_RecoverAccounts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(RecoverAccountsRequest)
if err := dec(in); err != nil {
@ -1566,6 +1714,10 @@ var _Trader_serviceDesc = grpc.ServiceDesc{
MethodName: "WithdrawAccount",
Handler: _Trader_WithdrawAccount_Handler,
},
{
MethodName: "DepositAccount",
Handler: _Trader_DepositAccount_Handler,
},
{
MethodName: "RecoverAccounts",
Handler: _Trader_RecoverAccounts_Handler,

View file

@ -84,31 +84,13 @@ func local_request_Trader_ListAccounts_0(ctx context.Context, marshaler runtime.
}
var (
filter_Trader_CloseAccount_0 = &utilities.DoubleArray{Encoding: map[string]int{"trader_key": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}}
filter_Trader_CloseAccount_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)}
)
func request_Trader_CloseAccount_0(ctx context.Context, marshaler runtime.Marshaler, client TraderClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq CloseAccountRequest
var metadata runtime.ServerMetadata
var (
val string
ok bool
err error
_ = err
)
val, ok = pathParams["trader_key"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "trader_key")
}
protoReq.TraderKey, err = runtime.Bytes(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "trader_key", err)
}
if err := req.ParseForm(); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
@ -125,24 +107,6 @@ func local_request_Trader_CloseAccount_0(ctx context.Context, marshaler runtime.
var protoReq CloseAccountRequest
var metadata runtime.ServerMetadata
var (
val string
ok bool
err error
_ = err
)
val, ok = pathParams["trader_key"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "trader_key")
}
protoReq.TraderKey, err = runtime.Bytes(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "trader_key", err)
}
if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_Trader_CloseAccount_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
@ -164,24 +128,6 @@ func request_Trader_WithdrawAccount_0(ctx context.Context, marshaler runtime.Mar
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
var (
val string
ok bool
err error
_ = err
)
val, ok = pathParams["trader_key"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "trader_key")
}
protoReq.TraderKey, err = runtime.Bytes(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "trader_key", err)
}
msg, err := client.WithdrawAccount(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
@ -199,29 +145,45 @@ func local_request_Trader_WithdrawAccount_0(ctx context.Context, marshaler runti
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
var (
val string
ok bool
err error
_ = err
)
val, ok = pathParams["trader_key"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "trader_key")
}
protoReq.TraderKey, err = runtime.Bytes(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "trader_key", err)
}
msg, err := server.WithdrawAccount(ctx, &protoReq)
return msg, metadata, err
}
func request_Trader_DepositAccount_0(ctx context.Context, marshaler runtime.Marshaler, client TraderClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq DepositAccountRequest
var metadata runtime.ServerMetadata
newReader, berr := utilities.IOReaderFactory(req.Body)
if berr != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
}
if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
msg, err := client.DepositAccount(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
}
func local_request_Trader_DepositAccount_0(ctx context.Context, marshaler runtime.Marshaler, server TraderServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq DepositAccountRequest
var metadata runtime.ServerMetadata
newReader, berr := utilities.IOReaderFactory(req.Body)
if berr != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
}
if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
msg, err := server.DepositAccount(ctx, &protoReq)
return msg, metadata, err
}
func request_Trader_RecoverAccounts_0(ctx context.Context, marshaler runtime.Marshaler, client TraderClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq RecoverAccountsRequest
var metadata runtime.ServerMetadata
@ -447,6 +409,26 @@ func RegisterTraderHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser
})
mux.Handle("POST", pattern_Trader_DepositAccount_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
resp, md, err := local_request_Trader_DepositAccount_0(rctx, inboundMarshaler, server, req, pathParams)
ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
forward_Trader_DepositAccount_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
})
mux.Handle("POST", pattern_Trader_RecoverAccounts_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
@ -648,6 +630,26 @@ func RegisterTraderHandlerClient(ctx context.Context, mux *runtime.ServeMux, cli
})
mux.Handle("POST", pattern_Trader_DepositAccount_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateContext(ctx, mux, req)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
resp, md, err := request_Trader_DepositAccount_0(rctx, inboundMarshaler, client, req, pathParams)
ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
forward_Trader_DepositAccount_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
})
mux.Handle("POST", pattern_Trader_RecoverAccounts_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
@ -736,9 +738,11 @@ var (
pattern_Trader_ListAccounts_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"v1", "clm", "accounts"}, "", runtime.AssumeColonVerbOpt(true)))
pattern_Trader_CloseAccount_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"v1", "clm", "accounts", "trader_key"}, "", runtime.AssumeColonVerbOpt(true)))
pattern_Trader_CloseAccount_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"v1", "clm", "accounts"}, "", runtime.AssumeColonVerbOpt(true)))
pattern_Trader_WithdrawAccount_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"v1", "clm", "accounts", "withdraw", "trader_key"}, "", runtime.AssumeColonVerbOpt(true)))
pattern_Trader_WithdrawAccount_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"v1", "clm", "accounts", "withdraw"}, "", runtime.AssumeColonVerbOpt(true)))
pattern_Trader_DepositAccount_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"v1", "clm", "accounts", "deposit"}, "", runtime.AssumeColonVerbOpt(true)))
pattern_Trader_RecoverAccounts_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"v1", "clm", "accounts", "recover"}, "", runtime.AssumeColonVerbOpt(true)))
@ -758,6 +762,8 @@ var (
forward_Trader_WithdrawAccount_0 = runtime.ForwardResponseMessage
forward_Trader_DepositAccount_0 = runtime.ForwardResponseMessage
forward_Trader_RecoverAccounts_0 = runtime.ForwardResponseMessage
forward_Trader_SubmitOrder_0 = runtime.ForwardResponseMessage

View file

@ -21,13 +21,20 @@ service Trader {
rpc CloseAccount (CloseAccountRequest) returns (CloseAccountResponse) {
option (google.api.http) = {
delete: "/v1/clm/accounts/{trader_key}"
delete: "/v1/clm/accounts"
};
};
rpc WithdrawAccount (WithdrawAccountRequest) returns (WithdrawAccountResponse) {
option (google.api.http) = {
post: "/v1/clm/accounts/withdraw/{trader_key}"
post: "/v1/clm/accounts/withdraw"
body: "*"
};
};
rpc DepositAccount (DepositAccountRequest) returns (DepositAccountResponse) {
option (google.api.http) = {
post: "/v1/clm/accounts/deposit"
body: "*"
};
};
@ -72,7 +79,7 @@ message ListAccountsResponse {
message Output {
// The value, in satoshis, of the output.
uint64 value = 1;
uint64 value_sat = 1;
// The address corresponding to the output.
string address = 2;
@ -117,6 +124,29 @@ message WithdrawAccountResponse {
bytes withdraw_txid = 2;
}
message DepositAccountRequest {
/*
The trader key associated with the account that funds will be deposited
into.
*/
bytes trader_key = 1;
// The amount in satoshis to deposit into the account.
uint64 amount_sat = 2;
/*
The fee rate, in satoshis per vbyte, to use for the deposit transaction.
*/
uint32 sat_per_vbyte = 3;
}
message DepositAccountResponse {
// The state of the account after processing the deposit.
Account account = 1;
// The transaction used to deposit funds into the account.
bytes deposit_txid = 2;
}
enum AccountState {
// The state of an account when it is pending its confirmation on-chain.
PENDING_OPEN = 0;
@ -295,4 +325,4 @@ message RecoverAccountsRequest {
message RecoverAccountsResponse {
// The number of accounts that were recovered.
uint32 num_recovered_accounts = 1;
}
}

View file

@ -32,6 +32,36 @@
"Trader"
]
},
"delete": {
"operationId": "CloseAccount",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/clmrpcCloseAccountResponse"
}
},
"default": {
"description": "An unexpected error response",
"schema": {
"$ref": "#/definitions/gatewayruntimeError"
}
}
},
"parameters": [
{
"name": "trader_key",
"description": "The trader key associated with the account that will be closed.",
"in": "query",
"required": false,
"type": "string",
"format": "byte"
}
],
"tags": [
"Trader"
]
},
"post": {
"operationId": "InitAccount",
"responses": {
@ -63,6 +93,38 @@
]
}
},
"/v1/clm/accounts/deposit": {
"post": {
"operationId": "DepositAccount",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/clmrpcDepositAccountResponse"
}
},
"default": {
"description": "An unexpected error response",
"schema": {
"$ref": "#/definitions/gatewayruntimeError"
}
}
},
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/clmrpcDepositAccountRequest"
}
}
],
"tags": [
"Trader"
]
}
},
"/v1/clm/accounts/recover": {
"post": {
"operationId": "RecoverAccounts",
@ -95,7 +157,7 @@
]
}
},
"/v1/clm/accounts/withdraw/{trader_key}": {
"/v1/clm/accounts/withdraw": {
"post": {
"operationId": "WithdrawAccount",
"responses": {
@ -113,14 +175,6 @@
}
},
"parameters": [
{
"name": "trader_key",
"description": "The trader key associated with the account that funds will be withdrawed\nfrom.",
"in": "path",
"required": true,
"type": "string",
"format": "byte"
},
{
"name": "body",
"in": "body",
@ -135,38 +189,6 @@
]
}
},
"/v1/clm/accounts/{trader_key}": {
"delete": {
"operationId": "CloseAccount",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/clmrpcCloseAccountResponse"
}
},
"default": {
"description": "An unexpected error response",
"schema": {
"$ref": "#/definitions/gatewayruntimeError"
}
}
},
"parameters": [
{
"name": "trader_key",
"description": "The trader key associated with the account that will be closed.",
"in": "path",
"required": true,
"type": "string",
"format": "byte"
}
],
"tags": [
"Trader"
]
}
},
"/v1/clm/orders": {
"get": {
"operationId": "ListOrders",
@ -356,6 +378,40 @@
}
}
},
"clmrpcDepositAccountRequest": {
"type": "object",
"properties": {
"trader_key": {
"type": "string",
"format": "byte",
"description": "The trader key associated with the account that funds will be deposited\ninto."
},
"amount_sat": {
"type": "string",
"format": "uint64",
"description": "The amount in satoshis to deposit into the account."
},
"sat_per_vbyte": {
"type": "integer",
"format": "int64",
"description": "The fee rate, in satoshis per vbyte, to use for the deposit transaction."
}
}
},
"clmrpcDepositAccountResponse": {
"type": "object",
"properties": {
"account": {
"$ref": "#/definitions/clmrpcAccount",
"description": "The state of the account after processing the deposit."
},
"deposit_txid": {
"type": "string",
"format": "byte",
"description": "The transaction used to deposit funds into the account."
}
}
},
"clmrpcInitAccountRequest": {
"type": "object",
"properties": {
@ -487,7 +543,7 @@
"clmrpcOutput": {
"type": "object",
"properties": {
"value": {
"value_sat": {
"type": "string",
"format": "uint64",
"description": "The value, in satoshis, of the output."

View file

@ -205,8 +205,8 @@ func withdrawAccount(ctx *cli.Context) error {
TraderKey: traderKey,
Outputs: []*clmrpc.Output{
{
Value: amt,
Address: addr,
ValueSat: amt,
Address: addr,
},
},
SatPerVbyte: satPerVByte,

View file

@ -737,6 +737,48 @@ func marshallAccount(a *account.Account) (*clmrpc.Account, error) {
}, nil
}
// DepositAccount handles a trader's request to deposit funds into the specified
// account by spending the specified inputs.
func (s *rpcServer) DepositAccount(ctx context.Context,
req *clmrpc.DepositAccountRequest) (*clmrpc.DepositAccountResponse, error) {
// Ensure the trader key is well formed.
traderKey, err := btcec.ParsePubKey(req.TraderKey, btcec.S256())
if err != nil {
return nil, err
}
// Enforce a minimum fee rate of 1 sat/vbyte.
feeRate := chainfee.SatPerKVByte(req.SatPerVbyte * 1000).FeePerKWeight()
if feeRate < chainfee.FeePerKwFloor {
log.Debugf("Manual fee rate input of %d sat/kw is too low, "+
"using %d sat/kw instead", feeRate,
chainfee.FeePerKwFloor)
feeRate = chainfee.FeePerKwFloor
}
// Proceed to process the deposit and map its response to the RPC's
// response.
modifiedAccount, tx, err := s.accountManager.DepositAccount(
ctx, traderKey, btcutil.Amount(req.AmountSat), feeRate,
atomic.LoadUint32(&s.bestHeight),
)
if err != nil {
return nil, err
}
rpcModifiedAccount, err := marshallAccount(modifiedAccount)
if err != nil {
return nil, err
}
txHash := tx.TxHash()
return &clmrpc.DepositAccountResponse{
Account: rpcModifiedAccount,
DepositTxid: txHash[:],
}, nil
}
// WithdrawAccount handles a trader's request to withdraw funds from the
// specified account by spending the current account output to the specified
// outputs.
@ -761,7 +803,7 @@ func (s *rpcServer) WithdrawAccount(ctx context.Context,
// Enforce a minimum fee rate of 1 sat/vbyte.
feeRate := chainfee.SatPerKVByte(req.SatPerVbyte * 1000).FeePerKWeight()
if feeRate < chainfee.FeePerKwFloor {
log.Infof("Manual fee rate input of %d sat/kw is too low, "+
log.Debugf("Manual fee rate input of %d sat/kw is too low, "+
"using %d sat/kw instead", feeRate,
chainfee.FeePerKwFloor)
feeRate = chainfee.FeePerKwFloor
@ -844,7 +886,7 @@ func (s *rpcServer) parseRPCOutputs(outputs []*clmrpc.Output) ([]*wire.TxOut,
}
res = append(res, &wire.TxOut{
Value: int64(output.Value),
Value: int64(output.ValueSat),
PkScript: outputScript,
})
}