Commit c9fbaf73 authored by pengjun's avatar pengjun

#627 add query interfaces

parent 6cd7e2b2
...@@ -771,7 +771,7 @@ func (action *Action) CollateralizeFeed(feed *pty.CollateralizeFeed) (*types.Rec ...@@ -771,7 +771,7 @@ func (action *Action) CollateralizeFeed(feed *pty.CollateralizeFeed) (*types.Rec
return nil, pty.ErrPriceInvalid return nil, pty.ErrPriceInvalid
} }
collIDRecords, err := queryCollateralizes(action.localDB) collIDRecords, err := queryCollateralizeByStatus(action.localDB, pty.CollateralizeStatusCreated)
if err != nil { if err != nil {
clog.Error("CollateralizePriceFeed", "get collateralize record error", err) clog.Error("CollateralizePriceFeed", "get collateralize record error", err)
return nil, err return nil, err
...@@ -871,10 +871,10 @@ func queryCollateralizeByID(db dbm.KV, CollateralizeID string) (*pty.Collaterali ...@@ -871,10 +871,10 @@ func queryCollateralizeByID(db dbm.KV, CollateralizeID string) (*pty.Collaterali
return &coll, nil return &coll, nil
} }
func queryCollateralizes(localdb dbm.Lister) ([]*pty.CollateralizeRecord, error) { func queryCollateralizeByStatus(localdb dbm.Lister, status int32) ([]*pty.CollateralizeRecord, error) {
data, err := localdb.List(calcCollateralizePrefix(), nil, DefultCount, ListDESC) data, err := localdb.List(calcCollateralizeStatusPrefix(status), nil, DefultCount, ListDESC)
if err != nil { if err != nil {
clog.Debug("queryCollateralizes", "error", err) clog.Debug("queryCollateralizesByStatus", "error", err)
return nil, err return nil, err
} }
...@@ -883,11 +883,53 @@ func queryCollateralizes(localdb dbm.Lister) ([]*pty.CollateralizeRecord, error) ...@@ -883,11 +883,53 @@ func queryCollateralizes(localdb dbm.Lister) ([]*pty.CollateralizeRecord, error)
for _, collBytes := range data { for _, collBytes := range data {
err = types.Decode(collBytes, &coll) err = types.Decode(collBytes, &coll)
if err != nil { if err != nil {
clog.Debug("queryCollateralizeByID", "decode", err) clog.Debug("queryCollateralizesByStatus", "decode", err)
return nil, err return nil, err
} }
colls = append(colls, &coll) colls = append(colls, &coll)
} }
return colls, nil return colls, nil
} }
\ No newline at end of file
func queryCollateralizeByAddr(localdb dbm.Lister, addr string) ([]*pty.CollateralizeRecord, error) {
data, err := localdb.List(calcCollateralizeAddrPrefix(addr), nil, DefultCount, ListDESC)
if err != nil {
clog.Debug("queryCollateralizesByAddr", "error", err)
return nil, err
}
var colls []*pty.CollateralizeRecord
var coll pty.CollateralizeRecord
for _, collBytes := range data {
err = types.Decode(collBytes, &coll)
if err != nil {
clog.Debug("queryCollateralizesByAddr", "decode", err)
return nil, err
}
colls = append(colls, &coll)
}
return colls, nil
}
func queryCollateralizeRecordByStatus(localdb dbm.Lister, status int32) ([]*pty.CollateralizeRecord, error) {
data, err := localdb.List(calcCollateralizeRecordStatusPrefix(status), nil, DefultCount, ListDESC)
if err != nil {
clog.Debug("queryCollateralizeRecordByStatus", "error", err)
return nil, err
}
var colls []*pty.CollateralizeRecord
var coll pty.CollateralizeRecord
for _, collBytes := range data {
err = types.Decode(collBytes, &coll)
if err != nil {
clog.Debug("queryCollateralizesByStatus", "decode", err)
return nil, err
}
colls = append(colls, &coll)
}
return colls, nil
}
...@@ -5,7 +5,6 @@ ...@@ -5,7 +5,6 @@
package executor package executor
import ( import (
//"github.com/33cn/chain33/common"
"github.com/33cn/chain33/types" "github.com/33cn/chain33/types"
pty "github.com/33cn/plugin/plugin/dapp/collateralize/types" pty "github.com/33cn/plugin/plugin/dapp/collateralize/types"
) )
......
...@@ -3,3 +3,134 @@ ...@@ -3,3 +3,134 @@
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
package executor package executor
import (
"github.com/33cn/chain33/types"
pty "github.com/33cn/plugin/plugin/dapp/collateralize/types"
)
func (c *Collateralize) Query_CollateralizeInfoByID(req *pty.ReqCollateralizeInfo) (types.Message, error) {
coll,err := queryCollateralizeByID(c.GetStateDB(), req.CollateralizeId)
if err != nil {
clog.Error("Query_CollateralizeInfoByID", "id", req.CollateralizeId, "error", err)
return nil, err
}
return &pty.RepCollateralizeCurrentInfo{
Status: coll.Status,
TotalBalance: coll.TotalBalance,
DebtCeiling: coll.DebtCeiling,
LiquidationRatio: coll.LiquidationRatio,
LiquidationPenalty: coll.LiquidationPenalty,
StabilityFee: coll.StabilityFee,
CreateAddr: coll.CreateAddr,
Balance: coll.Balance,
}, nil
}
func (c *Collateralize) Query_CollateralizeInfoByIDs(req *pty.ReqCollateralizeInfos) (types.Message, error) {
infos := &pty.RepCollateralizeCurrentInfos{}
for _, id := range req.CollateralizeIds {
coll,err := queryCollateralizeByID(c.GetStateDB(), id)
if err != nil {
clog.Error("Query_CollateralizeInfoByID", "id", id, "error", err)
return nil, err
}
infos.Infos = append(infos.Infos, &pty.RepCollateralizeCurrentInfo{
Status: coll.Status,
TotalBalance: coll.TotalBalance,
DebtCeiling: coll.DebtCeiling,
LiquidationRatio: coll.LiquidationRatio,
LiquidationPenalty: coll.LiquidationPenalty,
StabilityFee: coll.StabilityFee,
CreateAddr: coll.CreateAddr,
Balance: coll.Balance,
})
}
return infos, nil
}
func (c *Collateralize) Query_CollateralizeByStatus(req *pty.ReqCollateralizeByStatus) (types.Message, error) {
ids := &pty.RepCollateralizeIDs{}
collIDRecords, err := queryCollateralizeByStatus(c.GetLocalDB(), pty.CollateralizeStatusCreated)
if err != nil {
clog.Error("Query_CollateralizeByStatus", "get collateralize record error", err)
return nil, err
}
for _, record := range collIDRecords {
ids.IDs = append(ids.IDs, record.CollateralizeId)
}
return ids, nil
}
func (c *Collateralize) Query_CollateralizeByAddr(req *pty.ReqCollateralizeByAddr) (types.Message, error) {
ids := &pty.RepCollateralizeIDs{}
collIDRecords, err := queryCollateralizeByAddr(c.GetLocalDB(), req.Addr)
if err != nil {
clog.Error("Query_CollateralizeByAddr", "get collateralize record error", err)
return nil, err
}
for _, record := range collIDRecords {
ids.IDs = append(ids.IDs, record.CollateralizeId)
}
return ids, nil
}
func (c *Collateralize) Query_CollateralizeBorrowInfoByAddr(req *pty.ReqCollateralizeBorrowInfoByAddr) (types.Message, error) {
records, err := queryCollateralizeByAddr(c.GetLocalDB(), req.Addr)
if err != nil {
clog.Error("Query_CollateralizeBorrowInfoByAddr", "get collateralize record error", err)
return nil, err
}
for _, record := range records {
if record.CollateralizeId == req.CollateralizeId {
coll, err := queryCollateralizeByID(c.GetStateDB(), record.CollateralizeId)
if err != nil {
clog.Error("Query_CollateralizeBorrowInfoByAddr", "get collateralize record error", err)
return nil, err
}
for _, borrowRecord := range coll.BorrowRecords {
if borrowRecord.AccountAddr == req.Addr {
ret := &pty.RepCollateralizeBorrowInfo{}
ret.Record = borrowRecord
return ret, nil
}
}
}
}
return nil, pty.ErrRecordNotExist
}
func (c *Collateralize) Query_CollateralizeBorrowInfoByStatus(req *pty.ReqCollateralizeBorrowInfoByStatus) (types.Message, error) {
records, err := queryCollateralizeRecordByStatus(c.GetLocalDB(), req.Status)
if err != nil {
clog.Error("Query_CollateralizeBorrowInfoByAddr", "get collateralize record error", err)
return nil, err
}
ret := &pty.RepCollateralizeBorrowInfos{}
for _, record := range records {
coll, err := queryCollateralizeByID(c.GetStateDB(), record.CollateralizeId)
if err != nil {
clog.Error("Query_CollateralizeBorrowInfoByAddr", "get collateralize record error", err)
return nil, err
}
for _, borrowRecord := range coll.BorrowRecords {
if borrowRecord.Status == req.Status {
ret.Record = append(ret.Record, borrowRecord)
}
}
}
return ret, nil
}
\ No newline at end of file
...@@ -86,12 +86,12 @@ message CollateralizeFeed { ...@@ -86,12 +86,12 @@ message CollateralizeFeed {
repeated int64 volume = 3; //成交量 repeated int64 volume = 3; //成交量
} }
// 喂价关闭 // 借贷关闭
message CollateralizeClose { message CollateralizeClose {
string collateralizeId = 1; //借贷期数ID string collateralizeId = 1; //借贷期数ID
} }
// exec_local记录信息 // exec_local 借贷信息
message ReceiptCollateralize { message ReceiptCollateralize {
string collateralizeId = 1; string collateralizeId = 1;
string createAddr = 2; string createAddr = 2;
...@@ -102,28 +102,25 @@ message ReceiptCollateralize { ...@@ -102,28 +102,25 @@ message ReceiptCollateralize {
int32 recordStatus = 7; int32 recordStatus = 7;
} }
message ReqCollateralizeInfo { // exec_local 借贷记录信息
string collateralizeId = 1; message CollateralizeRecord {
}
message ReqCollateralizeBorrowInfo {
string collateralizeId = 1; string collateralizeId = 1;
string addr = 2; string addr = 2;
int64 index = 3;
} }
message ReqCollateralizeBadDebt { // exec_local 借贷记录信息列表
string collateralizeId = 1; message CollateralizeRecords {
repeated CollateralizeRecord records = 1;
} }
message ReqCollateralizeBorrowHistory { // 根据ID查询一期借贷信息
message ReqCollateralizeInfo {
string collateralizeId = 1; string collateralizeId = 1;
string addr = 2;
int32 count = 4;
int32 direction = 5;
int64 index = 6;
} }
message ReplyCollateralizeCurrentInfo { // 返回一期借贷信息
message RepCollateralizeCurrentInfo {
int32 status = 1;//当期借贷的状态,是否关闭 int32 status = 1;//当期借贷的状态,是否关闭
int64 totalBalance = 2; //当期可借贷的总金额(ccny) int64 totalBalance = 2; //当期可借贷的总金额(ccny)
int64 debtCeiling = 3; //单用户可借出的限额(ccny) int64 debtCeiling = 3; //单用户可借出的限额(ccny)
...@@ -134,17 +131,49 @@ message ReplyCollateralizeCurrentInfo { ...@@ -134,17 +131,49 @@ message ReplyCollateralizeCurrentInfo {
int64 balance = 8; //剩余可借贷金额(ccny) int64 balance = 8; //剩余可借贷金额(ccny)
} }
message ReplyCollateralizeBadDebt { // 根据ID列表查询多期借贷信息
repeated BorrowRecord records = 1; message ReqCollateralizeInfos {
repeated string collateralizeIds = 1;
} }
// used for execlocal // 返回多期借贷信息
message CollateralizeRecord { message RepCollateralizeCurrentInfos {
repeated RepCollateralizeCurrentInfo infos = 1;
}
// 根据借贷状态查询
message ReqCollateralizeByStatus {
int32 status = 1;
}
// 根据用户地址查询
message ReqCollateralizeByAddr {
string addr = 1;
}
// 返回借贷ID列表
message RepCollateralizeIDs {
repeated string IDs = 1;
}
// 根据地址和借贷ID混合查询具体借贷记录
message ReqCollateralizeBorrowInfoByAddr {
string collateralizeId = 1; string collateralizeId = 1;
string addr = 2; string addr = 2;
int64 index = 3;
} }
message CollateralizeRecords { // 返回借贷记录
repeated CollateralizeRecord records = 1; message RepCollateralizeBorrowInfo {
BorrowRecord record = 1;
}
// 根据状态和借贷ID混合查询具体借贷记录
message ReqCollateralizeBorrowInfoByStatus {
string collateralizeId = 1;
int32 status = 2;
}
// 返回借贷记录
message RepCollateralizeBorrowInfos {
repeated BorrowRecord record = 1;
} }
...@@ -737,7 +737,7 @@ func (m *CollateralizeFeed) GetVolume() []int64 { ...@@ -737,7 +737,7 @@ func (m *CollateralizeFeed) GetVolume() []int64 {
return nil return nil
} }
// 喂价关闭 // 借贷关闭
type CollateralizeClose struct { type CollateralizeClose struct {
CollateralizeId string `protobuf:"bytes,1,opt,name=collateralizeId,proto3" json:"collateralizeId,omitempty"` CollateralizeId string `protobuf:"bytes,1,opt,name=collateralizeId,proto3" json:"collateralizeId,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
...@@ -777,7 +777,7 @@ func (m *CollateralizeClose) GetCollateralizeId() string { ...@@ -777,7 +777,7 @@ func (m *CollateralizeClose) GetCollateralizeId() string {
return "" return ""
} }
// exec_local记录信息 // exec_local 借贷信息
type ReceiptCollateralize struct { type ReceiptCollateralize struct {
CollateralizeId string `protobuf:"bytes,1,opt,name=collateralizeId,proto3" json:"collateralizeId,omitempty"` CollateralizeId string `protobuf:"bytes,1,opt,name=collateralizeId,proto3" json:"collateralizeId,omitempty"`
CreateAddr string `protobuf:"bytes,2,opt,name=createAddr,proto3" json:"createAddr,omitempty"` CreateAddr string `protobuf:"bytes,2,opt,name=createAddr,proto3" json:"createAddr,omitempty"`
...@@ -865,203 +865,144 @@ func (m *ReceiptCollateralize) GetRecordStatus() int32 { ...@@ -865,203 +865,144 @@ func (m *ReceiptCollateralize) GetRecordStatus() int32 {
return 0 return 0
} }
type ReqCollateralizeInfo struct { // exec_local 借贷记录信息
type CollateralizeRecord struct {
CollateralizeId string `protobuf:"bytes,1,opt,name=collateralizeId,proto3" json:"collateralizeId,omitempty"` CollateralizeId string `protobuf:"bytes,1,opt,name=collateralizeId,proto3" json:"collateralizeId,omitempty"`
Addr string `protobuf:"bytes,2,opt,name=addr,proto3" json:"addr,omitempty"`
Index int64 `protobuf:"varint,3,opt,name=index,proto3" json:"index,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"` XXX_sizecache int32 `json:"-"`
} }
func (m *ReqCollateralizeInfo) Reset() { *m = ReqCollateralizeInfo{} } func (m *CollateralizeRecord) Reset() { *m = CollateralizeRecord{} }
func (m *ReqCollateralizeInfo) String() string { return proto.CompactTextString(m) } func (m *CollateralizeRecord) String() string { return proto.CompactTextString(m) }
func (*ReqCollateralizeInfo) ProtoMessage() {} func (*CollateralizeRecord) ProtoMessage() {}
func (*ReqCollateralizeInfo) Descriptor() ([]byte, []int) { func (*CollateralizeRecord) Descriptor() ([]byte, []int) {
return fileDescriptor_a988fb4a61381972, []int{11} return fileDescriptor_a988fb4a61381972, []int{11}
} }
func (m *ReqCollateralizeInfo) XXX_Unmarshal(b []byte) error { func (m *CollateralizeRecord) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqCollateralizeInfo.Unmarshal(m, b) return xxx_messageInfo_CollateralizeRecord.Unmarshal(m, b)
} }
func (m *ReqCollateralizeInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { func (m *CollateralizeRecord) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ReqCollateralizeInfo.Marshal(b, m, deterministic) return xxx_messageInfo_CollateralizeRecord.Marshal(b, m, deterministic)
} }
func (m *ReqCollateralizeInfo) XXX_Merge(src proto.Message) { func (m *CollateralizeRecord) XXX_Merge(src proto.Message) {
xxx_messageInfo_ReqCollateralizeInfo.Merge(m, src) xxx_messageInfo_CollateralizeRecord.Merge(m, src)
} }
func (m *ReqCollateralizeInfo) XXX_Size() int { func (m *CollateralizeRecord) XXX_Size() int {
return xxx_messageInfo_ReqCollateralizeInfo.Size(m) return xxx_messageInfo_CollateralizeRecord.Size(m)
} }
func (m *ReqCollateralizeInfo) XXX_DiscardUnknown() { func (m *CollateralizeRecord) XXX_DiscardUnknown() {
xxx_messageInfo_ReqCollateralizeInfo.DiscardUnknown(m) xxx_messageInfo_CollateralizeRecord.DiscardUnknown(m)
} }
var xxx_messageInfo_ReqCollateralizeInfo proto.InternalMessageInfo var xxx_messageInfo_CollateralizeRecord proto.InternalMessageInfo
func (m *ReqCollateralizeInfo) GetCollateralizeId() string { func (m *CollateralizeRecord) GetCollateralizeId() string {
if m != nil { if m != nil {
return m.CollateralizeId return m.CollateralizeId
} }
return "" return ""
} }
type ReqCollateralizeBorrowInfo struct { func (m *CollateralizeRecord) GetAddr() string {
CollateralizeId string `protobuf:"bytes,1,opt,name=collateralizeId,proto3" json:"collateralizeId,omitempty"`
Addr string `protobuf:"bytes,2,opt,name=addr,proto3" json:"addr,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ReqCollateralizeBorrowInfo) Reset() { *m = ReqCollateralizeBorrowInfo{} }
func (m *ReqCollateralizeBorrowInfo) String() string { return proto.CompactTextString(m) }
func (*ReqCollateralizeBorrowInfo) ProtoMessage() {}
func (*ReqCollateralizeBorrowInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_a988fb4a61381972, []int{12}
}
func (m *ReqCollateralizeBorrowInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqCollateralizeBorrowInfo.Unmarshal(m, b)
}
func (m *ReqCollateralizeBorrowInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ReqCollateralizeBorrowInfo.Marshal(b, m, deterministic)
}
func (m *ReqCollateralizeBorrowInfo) XXX_Merge(src proto.Message) {
xxx_messageInfo_ReqCollateralizeBorrowInfo.Merge(m, src)
}
func (m *ReqCollateralizeBorrowInfo) XXX_Size() int {
return xxx_messageInfo_ReqCollateralizeBorrowInfo.Size(m)
}
func (m *ReqCollateralizeBorrowInfo) XXX_DiscardUnknown() {
xxx_messageInfo_ReqCollateralizeBorrowInfo.DiscardUnknown(m)
}
var xxx_messageInfo_ReqCollateralizeBorrowInfo proto.InternalMessageInfo
func (m *ReqCollateralizeBorrowInfo) GetCollateralizeId() string {
if m != nil { if m != nil {
return m.CollateralizeId return m.Addr
} }
return "" return ""
} }
func (m *ReqCollateralizeBorrowInfo) GetAddr() string { func (m *CollateralizeRecord) GetIndex() int64 {
if m != nil { if m != nil {
return m.Addr return m.Index
} }
return "" return 0
} }
type ReqCollateralizeBadDebt struct { // exec_local 借贷记录信息列表
CollateralizeId string `protobuf:"bytes,1,opt,name=collateralizeId,proto3" json:"collateralizeId,omitempty"` type CollateralizeRecords struct {
XXX_NoUnkeyedLiteral struct{} `json:"-"` Records []*CollateralizeRecord `protobuf:"bytes,1,rep,name=records,proto3" json:"records,omitempty"`
XXX_unrecognized []byte `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_sizecache int32 `json:"-"` XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
} }
func (m *ReqCollateralizeBadDebt) Reset() { *m = ReqCollateralizeBadDebt{} } func (m *CollateralizeRecords) Reset() { *m = CollateralizeRecords{} }
func (m *ReqCollateralizeBadDebt) String() string { return proto.CompactTextString(m) } func (m *CollateralizeRecords) String() string { return proto.CompactTextString(m) }
func (*ReqCollateralizeBadDebt) ProtoMessage() {} func (*CollateralizeRecords) ProtoMessage() {}
func (*ReqCollateralizeBadDebt) Descriptor() ([]byte, []int) { func (*CollateralizeRecords) Descriptor() ([]byte, []int) {
return fileDescriptor_a988fb4a61381972, []int{13} return fileDescriptor_a988fb4a61381972, []int{12}
} }
func (m *ReqCollateralizeBadDebt) XXX_Unmarshal(b []byte) error { func (m *CollateralizeRecords) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqCollateralizeBadDebt.Unmarshal(m, b) return xxx_messageInfo_CollateralizeRecords.Unmarshal(m, b)
} }
func (m *ReqCollateralizeBadDebt) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { func (m *CollateralizeRecords) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ReqCollateralizeBadDebt.Marshal(b, m, deterministic) return xxx_messageInfo_CollateralizeRecords.Marshal(b, m, deterministic)
} }
func (m *ReqCollateralizeBadDebt) XXX_Merge(src proto.Message) { func (m *CollateralizeRecords) XXX_Merge(src proto.Message) {
xxx_messageInfo_ReqCollateralizeBadDebt.Merge(m, src) xxx_messageInfo_CollateralizeRecords.Merge(m, src)
} }
func (m *ReqCollateralizeBadDebt) XXX_Size() int { func (m *CollateralizeRecords) XXX_Size() int {
return xxx_messageInfo_ReqCollateralizeBadDebt.Size(m) return xxx_messageInfo_CollateralizeRecords.Size(m)
} }
func (m *ReqCollateralizeBadDebt) XXX_DiscardUnknown() { func (m *CollateralizeRecords) XXX_DiscardUnknown() {
xxx_messageInfo_ReqCollateralizeBadDebt.DiscardUnknown(m) xxx_messageInfo_CollateralizeRecords.DiscardUnknown(m)
} }
var xxx_messageInfo_ReqCollateralizeBadDebt proto.InternalMessageInfo var xxx_messageInfo_CollateralizeRecords proto.InternalMessageInfo
func (m *ReqCollateralizeBadDebt) GetCollateralizeId() string { func (m *CollateralizeRecords) GetRecords() []*CollateralizeRecord {
if m != nil { if m != nil {
return m.CollateralizeId return m.Records
} }
return "" return nil
} }
type ReqCollateralizeBorrowHistory struct { // 根据ID查询一期借贷信息
type ReqCollateralizeInfo struct {
CollateralizeId string `protobuf:"bytes,1,opt,name=collateralizeId,proto3" json:"collateralizeId,omitempty"` CollateralizeId string `protobuf:"bytes,1,opt,name=collateralizeId,proto3" json:"collateralizeId,omitempty"`
Addr string `protobuf:"bytes,2,opt,name=addr,proto3" json:"addr,omitempty"`
Count int32 `protobuf:"varint,4,opt,name=count,proto3" json:"count,omitempty"`
Direction int32 `protobuf:"varint,5,opt,name=direction,proto3" json:"direction,omitempty"`
Index int64 `protobuf:"varint,6,opt,name=index,proto3" json:"index,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"` XXX_sizecache int32 `json:"-"`
} }
func (m *ReqCollateralizeBorrowHistory) Reset() { *m = ReqCollateralizeBorrowHistory{} } func (m *ReqCollateralizeInfo) Reset() { *m = ReqCollateralizeInfo{} }
func (m *ReqCollateralizeBorrowHistory) String() string { return proto.CompactTextString(m) } func (m *ReqCollateralizeInfo) String() string { return proto.CompactTextString(m) }
func (*ReqCollateralizeBorrowHistory) ProtoMessage() {} func (*ReqCollateralizeInfo) ProtoMessage() {}
func (*ReqCollateralizeBorrowHistory) Descriptor() ([]byte, []int) { func (*ReqCollateralizeInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_a988fb4a61381972, []int{14} return fileDescriptor_a988fb4a61381972, []int{13}
} }
func (m *ReqCollateralizeBorrowHistory) XXX_Unmarshal(b []byte) error { func (m *ReqCollateralizeInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqCollateralizeBorrowHistory.Unmarshal(m, b) return xxx_messageInfo_ReqCollateralizeInfo.Unmarshal(m, b)
} }
func (m *ReqCollateralizeBorrowHistory) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { func (m *ReqCollateralizeInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ReqCollateralizeBorrowHistory.Marshal(b, m, deterministic) return xxx_messageInfo_ReqCollateralizeInfo.Marshal(b, m, deterministic)
} }
func (m *ReqCollateralizeBorrowHistory) XXX_Merge(src proto.Message) { func (m *ReqCollateralizeInfo) XXX_Merge(src proto.Message) {
xxx_messageInfo_ReqCollateralizeBorrowHistory.Merge(m, src) xxx_messageInfo_ReqCollateralizeInfo.Merge(m, src)
} }
func (m *ReqCollateralizeBorrowHistory) XXX_Size() int { func (m *ReqCollateralizeInfo) XXX_Size() int {
return xxx_messageInfo_ReqCollateralizeBorrowHistory.Size(m) return xxx_messageInfo_ReqCollateralizeInfo.Size(m)
} }
func (m *ReqCollateralizeBorrowHistory) XXX_DiscardUnknown() { func (m *ReqCollateralizeInfo) XXX_DiscardUnknown() {
xxx_messageInfo_ReqCollateralizeBorrowHistory.DiscardUnknown(m) xxx_messageInfo_ReqCollateralizeInfo.DiscardUnknown(m)
} }
var xxx_messageInfo_ReqCollateralizeBorrowHistory proto.InternalMessageInfo var xxx_messageInfo_ReqCollateralizeInfo proto.InternalMessageInfo
func (m *ReqCollateralizeBorrowHistory) GetCollateralizeId() string { func (m *ReqCollateralizeInfo) GetCollateralizeId() string {
if m != nil { if m != nil {
return m.CollateralizeId return m.CollateralizeId
} }
return "" return ""
} }
func (m *ReqCollateralizeBorrowHistory) GetAddr() string { // 返回一期借贷信息
if m != nil { type RepCollateralizeCurrentInfo struct {
return m.Addr
}
return ""
}
func (m *ReqCollateralizeBorrowHistory) GetCount() int32 {
if m != nil {
return m.Count
}
return 0
}
func (m *ReqCollateralizeBorrowHistory) GetDirection() int32 {
if m != nil {
return m.Direction
}
return 0
}
func (m *ReqCollateralizeBorrowHistory) GetIndex() int64 {
if m != nil {
return m.Index
}
return 0
}
type ReplyCollateralizeCurrentInfo struct {
Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"`
TotalBalance int64 `protobuf:"varint,2,opt,name=totalBalance,proto3" json:"totalBalance,omitempty"` TotalBalance int64 `protobuf:"varint,2,opt,name=totalBalance,proto3" json:"totalBalance,omitempty"`
DebtCeiling int64 `protobuf:"varint,3,opt,name=debtCeiling,proto3" json:"debtCeiling,omitempty"` DebtCeiling int64 `protobuf:"varint,3,opt,name=debtCeiling,proto3" json:"debtCeiling,omitempty"`
...@@ -1075,217 +1016,459 @@ type ReplyCollateralizeCurrentInfo struct { ...@@ -1075,217 +1016,459 @@ type ReplyCollateralizeCurrentInfo struct {
XXX_sizecache int32 `json:"-"` XXX_sizecache int32 `json:"-"`
} }
func (m *ReplyCollateralizeCurrentInfo) Reset() { *m = ReplyCollateralizeCurrentInfo{} } func (m *RepCollateralizeCurrentInfo) Reset() { *m = RepCollateralizeCurrentInfo{} }
func (m *ReplyCollateralizeCurrentInfo) String() string { return proto.CompactTextString(m) } func (m *RepCollateralizeCurrentInfo) String() string { return proto.CompactTextString(m) }
func (*ReplyCollateralizeCurrentInfo) ProtoMessage() {} func (*RepCollateralizeCurrentInfo) ProtoMessage() {}
func (*ReplyCollateralizeCurrentInfo) Descriptor() ([]byte, []int) { func (*RepCollateralizeCurrentInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_a988fb4a61381972, []int{15} return fileDescriptor_a988fb4a61381972, []int{14}
} }
func (m *ReplyCollateralizeCurrentInfo) XXX_Unmarshal(b []byte) error { func (m *RepCollateralizeCurrentInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReplyCollateralizeCurrentInfo.Unmarshal(m, b) return xxx_messageInfo_RepCollateralizeCurrentInfo.Unmarshal(m, b)
} }
func (m *ReplyCollateralizeCurrentInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { func (m *RepCollateralizeCurrentInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ReplyCollateralizeCurrentInfo.Marshal(b, m, deterministic) return xxx_messageInfo_RepCollateralizeCurrentInfo.Marshal(b, m, deterministic)
} }
func (m *ReplyCollateralizeCurrentInfo) XXX_Merge(src proto.Message) { func (m *RepCollateralizeCurrentInfo) XXX_Merge(src proto.Message) {
xxx_messageInfo_ReplyCollateralizeCurrentInfo.Merge(m, src) xxx_messageInfo_RepCollateralizeCurrentInfo.Merge(m, src)
} }
func (m *ReplyCollateralizeCurrentInfo) XXX_Size() int { func (m *RepCollateralizeCurrentInfo) XXX_Size() int {
return xxx_messageInfo_ReplyCollateralizeCurrentInfo.Size(m) return xxx_messageInfo_RepCollateralizeCurrentInfo.Size(m)
} }
func (m *ReplyCollateralizeCurrentInfo) XXX_DiscardUnknown() { func (m *RepCollateralizeCurrentInfo) XXX_DiscardUnknown() {
xxx_messageInfo_ReplyCollateralizeCurrentInfo.DiscardUnknown(m) xxx_messageInfo_RepCollateralizeCurrentInfo.DiscardUnknown(m)
} }
var xxx_messageInfo_ReplyCollateralizeCurrentInfo proto.InternalMessageInfo var xxx_messageInfo_RepCollateralizeCurrentInfo proto.InternalMessageInfo
func (m *ReplyCollateralizeCurrentInfo) GetStatus() int32 { func (m *RepCollateralizeCurrentInfo) GetStatus() int32 {
if m != nil { if m != nil {
return m.Status return m.Status
} }
return 0 return 0
} }
func (m *ReplyCollateralizeCurrentInfo) GetTotalBalance() int64 { func (m *RepCollateralizeCurrentInfo) GetTotalBalance() int64 {
if m != nil { if m != nil {
return m.TotalBalance return m.TotalBalance
} }
return 0 return 0
} }
func (m *ReplyCollateralizeCurrentInfo) GetDebtCeiling() int64 { func (m *RepCollateralizeCurrentInfo) GetDebtCeiling() int64 {
if m != nil { if m != nil {
return m.DebtCeiling return m.DebtCeiling
} }
return 0 return 0
} }
func (m *ReplyCollateralizeCurrentInfo) GetLiquidationRatio() float32 { func (m *RepCollateralizeCurrentInfo) GetLiquidationRatio() float32 {
if m != nil { if m != nil {
return m.LiquidationRatio return m.LiquidationRatio
} }
return 0 return 0
} }
func (m *ReplyCollateralizeCurrentInfo) GetStabilityFee() int64 { func (m *RepCollateralizeCurrentInfo) GetStabilityFee() int64 {
if m != nil { if m != nil {
return m.StabilityFee return m.StabilityFee
} }
return 0 return 0
} }
func (m *ReplyCollateralizeCurrentInfo) GetLiquidationPenalty() int64 { func (m *RepCollateralizeCurrentInfo) GetLiquidationPenalty() int64 {
if m != nil { if m != nil {
return m.LiquidationPenalty return m.LiquidationPenalty
} }
return 0 return 0
} }
func (m *ReplyCollateralizeCurrentInfo) GetCreateAddr() string { func (m *RepCollateralizeCurrentInfo) GetCreateAddr() string {
if m != nil { if m != nil {
return m.CreateAddr return m.CreateAddr
} }
return "" return ""
} }
func (m *ReplyCollateralizeCurrentInfo) GetBalance() int64 { func (m *RepCollateralizeCurrentInfo) GetBalance() int64 {
if m != nil { if m != nil {
return m.Balance return m.Balance
} }
return 0 return 0
} }
type ReplyCollateralizeBadDebt struct { // 根据ID列表查询多期借贷信息
Records []*BorrowRecord `protobuf:"bytes,1,rep,name=records,proto3" json:"records,omitempty"` type ReqCollateralizeInfos struct {
XXX_NoUnkeyedLiteral struct{} `json:"-"` CollateralizeIds []string `protobuf:"bytes,1,rep,name=collateralizeIds,proto3" json:"collateralizeIds,omitempty"`
XXX_unrecognized []byte `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_sizecache int32 `json:"-"` XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
} }
func (m *ReplyCollateralizeBadDebt) Reset() { *m = ReplyCollateralizeBadDebt{} } func (m *ReqCollateralizeInfos) Reset() { *m = ReqCollateralizeInfos{} }
func (m *ReplyCollateralizeBadDebt) String() string { return proto.CompactTextString(m) } func (m *ReqCollateralizeInfos) String() string { return proto.CompactTextString(m) }
func (*ReplyCollateralizeBadDebt) ProtoMessage() {} func (*ReqCollateralizeInfos) ProtoMessage() {}
func (*ReplyCollateralizeBadDebt) Descriptor() ([]byte, []int) { func (*ReqCollateralizeInfos) Descriptor() ([]byte, []int) {
return fileDescriptor_a988fb4a61381972, []int{15}
}
func (m *ReqCollateralizeInfos) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqCollateralizeInfos.Unmarshal(m, b)
}
func (m *ReqCollateralizeInfos) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ReqCollateralizeInfos.Marshal(b, m, deterministic)
}
func (m *ReqCollateralizeInfos) XXX_Merge(src proto.Message) {
xxx_messageInfo_ReqCollateralizeInfos.Merge(m, src)
}
func (m *ReqCollateralizeInfos) XXX_Size() int {
return xxx_messageInfo_ReqCollateralizeInfos.Size(m)
}
func (m *ReqCollateralizeInfos) XXX_DiscardUnknown() {
xxx_messageInfo_ReqCollateralizeInfos.DiscardUnknown(m)
}
var xxx_messageInfo_ReqCollateralizeInfos proto.InternalMessageInfo
func (m *ReqCollateralizeInfos) GetCollateralizeIds() []string {
if m != nil {
return m.CollateralizeIds
}
return nil
}
// 返回多期借贷信息
type RepCollateralizeCurrentInfos struct {
Infos []*RepCollateralizeCurrentInfo `protobuf:"bytes,1,rep,name=infos,proto3" json:"infos,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *RepCollateralizeCurrentInfos) Reset() { *m = RepCollateralizeCurrentInfos{} }
func (m *RepCollateralizeCurrentInfos) String() string { return proto.CompactTextString(m) }
func (*RepCollateralizeCurrentInfos) ProtoMessage() {}
func (*RepCollateralizeCurrentInfos) Descriptor() ([]byte, []int) {
return fileDescriptor_a988fb4a61381972, []int{16} return fileDescriptor_a988fb4a61381972, []int{16}
} }
func (m *ReplyCollateralizeBadDebt) XXX_Unmarshal(b []byte) error { func (m *RepCollateralizeCurrentInfos) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReplyCollateralizeBadDebt.Unmarshal(m, b) return xxx_messageInfo_RepCollateralizeCurrentInfos.Unmarshal(m, b)
} }
func (m *ReplyCollateralizeBadDebt) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { func (m *RepCollateralizeCurrentInfos) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ReplyCollateralizeBadDebt.Marshal(b, m, deterministic) return xxx_messageInfo_RepCollateralizeCurrentInfos.Marshal(b, m, deterministic)
} }
func (m *ReplyCollateralizeBadDebt) XXX_Merge(src proto.Message) { func (m *RepCollateralizeCurrentInfos) XXX_Merge(src proto.Message) {
xxx_messageInfo_ReplyCollateralizeBadDebt.Merge(m, src) xxx_messageInfo_RepCollateralizeCurrentInfos.Merge(m, src)
} }
func (m *ReplyCollateralizeBadDebt) XXX_Size() int { func (m *RepCollateralizeCurrentInfos) XXX_Size() int {
return xxx_messageInfo_ReplyCollateralizeBadDebt.Size(m) return xxx_messageInfo_RepCollateralizeCurrentInfos.Size(m)
} }
func (m *ReplyCollateralizeBadDebt) XXX_DiscardUnknown() { func (m *RepCollateralizeCurrentInfos) XXX_DiscardUnknown() {
xxx_messageInfo_ReplyCollateralizeBadDebt.DiscardUnknown(m) xxx_messageInfo_RepCollateralizeCurrentInfos.DiscardUnknown(m)
} }
var xxx_messageInfo_ReplyCollateralizeBadDebt proto.InternalMessageInfo var xxx_messageInfo_RepCollateralizeCurrentInfos proto.InternalMessageInfo
func (m *ReplyCollateralizeBadDebt) GetRecords() []*BorrowRecord { func (m *RepCollateralizeCurrentInfos) GetInfos() []*RepCollateralizeCurrentInfo {
if m != nil { if m != nil {
return m.Records return m.Infos
} }
return nil return nil
} }
// used for execlocal // 根据借贷状态查询
type CollateralizeRecord struct { type ReqCollateralizeByStatus struct {
Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ReqCollateralizeByStatus) Reset() { *m = ReqCollateralizeByStatus{} }
func (m *ReqCollateralizeByStatus) String() string { return proto.CompactTextString(m) }
func (*ReqCollateralizeByStatus) ProtoMessage() {}
func (*ReqCollateralizeByStatus) Descriptor() ([]byte, []int) {
return fileDescriptor_a988fb4a61381972, []int{17}
}
func (m *ReqCollateralizeByStatus) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqCollateralizeByStatus.Unmarshal(m, b)
}
func (m *ReqCollateralizeByStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ReqCollateralizeByStatus.Marshal(b, m, deterministic)
}
func (m *ReqCollateralizeByStatus) XXX_Merge(src proto.Message) {
xxx_messageInfo_ReqCollateralizeByStatus.Merge(m, src)
}
func (m *ReqCollateralizeByStatus) XXX_Size() int {
return xxx_messageInfo_ReqCollateralizeByStatus.Size(m)
}
func (m *ReqCollateralizeByStatus) XXX_DiscardUnknown() {
xxx_messageInfo_ReqCollateralizeByStatus.DiscardUnknown(m)
}
var xxx_messageInfo_ReqCollateralizeByStatus proto.InternalMessageInfo
func (m *ReqCollateralizeByStatus) GetStatus() int32 {
if m != nil {
return m.Status
}
return 0
}
// 根据用户地址查询
type ReqCollateralizeByAddr struct {
Addr string `protobuf:"bytes,1,opt,name=addr,proto3" json:"addr,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ReqCollateralizeByAddr) Reset() { *m = ReqCollateralizeByAddr{} }
func (m *ReqCollateralizeByAddr) String() string { return proto.CompactTextString(m) }
func (*ReqCollateralizeByAddr) ProtoMessage() {}
func (*ReqCollateralizeByAddr) Descriptor() ([]byte, []int) {
return fileDescriptor_a988fb4a61381972, []int{18}
}
func (m *ReqCollateralizeByAddr) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqCollateralizeByAddr.Unmarshal(m, b)
}
func (m *ReqCollateralizeByAddr) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ReqCollateralizeByAddr.Marshal(b, m, deterministic)
}
func (m *ReqCollateralizeByAddr) XXX_Merge(src proto.Message) {
xxx_messageInfo_ReqCollateralizeByAddr.Merge(m, src)
}
func (m *ReqCollateralizeByAddr) XXX_Size() int {
return xxx_messageInfo_ReqCollateralizeByAddr.Size(m)
}
func (m *ReqCollateralizeByAddr) XXX_DiscardUnknown() {
xxx_messageInfo_ReqCollateralizeByAddr.DiscardUnknown(m)
}
var xxx_messageInfo_ReqCollateralizeByAddr proto.InternalMessageInfo
func (m *ReqCollateralizeByAddr) GetAddr() string {
if m != nil {
return m.Addr
}
return ""
}
// 返回借贷ID列表
type RepCollateralizeIDs struct {
IDs []string `protobuf:"bytes,1,rep,name=IDs,proto3" json:"IDs,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *RepCollateralizeIDs) Reset() { *m = RepCollateralizeIDs{} }
func (m *RepCollateralizeIDs) String() string { return proto.CompactTextString(m) }
func (*RepCollateralizeIDs) ProtoMessage() {}
func (*RepCollateralizeIDs) Descriptor() ([]byte, []int) {
return fileDescriptor_a988fb4a61381972, []int{19}
}
func (m *RepCollateralizeIDs) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RepCollateralizeIDs.Unmarshal(m, b)
}
func (m *RepCollateralizeIDs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_RepCollateralizeIDs.Marshal(b, m, deterministic)
}
func (m *RepCollateralizeIDs) XXX_Merge(src proto.Message) {
xxx_messageInfo_RepCollateralizeIDs.Merge(m, src)
}
func (m *RepCollateralizeIDs) XXX_Size() int {
return xxx_messageInfo_RepCollateralizeIDs.Size(m)
}
func (m *RepCollateralizeIDs) XXX_DiscardUnknown() {
xxx_messageInfo_RepCollateralizeIDs.DiscardUnknown(m)
}
var xxx_messageInfo_RepCollateralizeIDs proto.InternalMessageInfo
func (m *RepCollateralizeIDs) GetIDs() []string {
if m != nil {
return m.IDs
}
return nil
}
// 根据地址和借贷ID混合查询具体借贷记录
type ReqCollateralizeBorrowInfoByAddr struct {
CollateralizeId string `protobuf:"bytes,1,opt,name=collateralizeId,proto3" json:"collateralizeId,omitempty"` CollateralizeId string `protobuf:"bytes,1,opt,name=collateralizeId,proto3" json:"collateralizeId,omitempty"`
Addr string `protobuf:"bytes,2,opt,name=addr,proto3" json:"addr,omitempty"` Addr string `protobuf:"bytes,2,opt,name=addr,proto3" json:"addr,omitempty"`
Index int64 `protobuf:"varint,3,opt,name=index,proto3" json:"index,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"` XXX_sizecache int32 `json:"-"`
} }
func (m *CollateralizeRecord) Reset() { *m = CollateralizeRecord{} } func (m *ReqCollateralizeBorrowInfoByAddr) Reset() { *m = ReqCollateralizeBorrowInfoByAddr{} }
func (m *CollateralizeRecord) String() string { return proto.CompactTextString(m) } func (m *ReqCollateralizeBorrowInfoByAddr) String() string { return proto.CompactTextString(m) }
func (*CollateralizeRecord) ProtoMessage() {} func (*ReqCollateralizeBorrowInfoByAddr) ProtoMessage() {}
func (*CollateralizeRecord) Descriptor() ([]byte, []int) { func (*ReqCollateralizeBorrowInfoByAddr) Descriptor() ([]byte, []int) {
return fileDescriptor_a988fb4a61381972, []int{17} return fileDescriptor_a988fb4a61381972, []int{20}
} }
func (m *CollateralizeRecord) XXX_Unmarshal(b []byte) error { func (m *ReqCollateralizeBorrowInfoByAddr) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CollateralizeRecord.Unmarshal(m, b) return xxx_messageInfo_ReqCollateralizeBorrowInfoByAddr.Unmarshal(m, b)
} }
func (m *CollateralizeRecord) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { func (m *ReqCollateralizeBorrowInfoByAddr) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CollateralizeRecord.Marshal(b, m, deterministic) return xxx_messageInfo_ReqCollateralizeBorrowInfoByAddr.Marshal(b, m, deterministic)
} }
func (m *CollateralizeRecord) XXX_Merge(src proto.Message) { func (m *ReqCollateralizeBorrowInfoByAddr) XXX_Merge(src proto.Message) {
xxx_messageInfo_CollateralizeRecord.Merge(m, src) xxx_messageInfo_ReqCollateralizeBorrowInfoByAddr.Merge(m, src)
} }
func (m *CollateralizeRecord) XXX_Size() int { func (m *ReqCollateralizeBorrowInfoByAddr) XXX_Size() int {
return xxx_messageInfo_CollateralizeRecord.Size(m) return xxx_messageInfo_ReqCollateralizeBorrowInfoByAddr.Size(m)
} }
func (m *CollateralizeRecord) XXX_DiscardUnknown() { func (m *ReqCollateralizeBorrowInfoByAddr) XXX_DiscardUnknown() {
xxx_messageInfo_CollateralizeRecord.DiscardUnknown(m) xxx_messageInfo_ReqCollateralizeBorrowInfoByAddr.DiscardUnknown(m)
} }
var xxx_messageInfo_CollateralizeRecord proto.InternalMessageInfo var xxx_messageInfo_ReqCollateralizeBorrowInfoByAddr proto.InternalMessageInfo
func (m *CollateralizeRecord) GetCollateralizeId() string { func (m *ReqCollateralizeBorrowInfoByAddr) GetCollateralizeId() string {
if m != nil { if m != nil {
return m.CollateralizeId return m.CollateralizeId
} }
return "" return ""
} }
func (m *CollateralizeRecord) GetAddr() string { func (m *ReqCollateralizeBorrowInfoByAddr) GetAddr() string {
if m != nil { if m != nil {
return m.Addr return m.Addr
} }
return "" return ""
} }
func (m *CollateralizeRecord) GetIndex() int64 { // 返回借贷记录
type RepCollateralizeBorrowInfo struct {
Record *BorrowRecord `protobuf:"bytes,1,opt,name=record,proto3" json:"record,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *RepCollateralizeBorrowInfo) Reset() { *m = RepCollateralizeBorrowInfo{} }
func (m *RepCollateralizeBorrowInfo) String() string { return proto.CompactTextString(m) }
func (*RepCollateralizeBorrowInfo) ProtoMessage() {}
func (*RepCollateralizeBorrowInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_a988fb4a61381972, []int{21}
}
func (m *RepCollateralizeBorrowInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RepCollateralizeBorrowInfo.Unmarshal(m, b)
}
func (m *RepCollateralizeBorrowInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_RepCollateralizeBorrowInfo.Marshal(b, m, deterministic)
}
func (m *RepCollateralizeBorrowInfo) XXX_Merge(src proto.Message) {
xxx_messageInfo_RepCollateralizeBorrowInfo.Merge(m, src)
}
func (m *RepCollateralizeBorrowInfo) XXX_Size() int {
return xxx_messageInfo_RepCollateralizeBorrowInfo.Size(m)
}
func (m *RepCollateralizeBorrowInfo) XXX_DiscardUnknown() {
xxx_messageInfo_RepCollateralizeBorrowInfo.DiscardUnknown(m)
}
var xxx_messageInfo_RepCollateralizeBorrowInfo proto.InternalMessageInfo
func (m *RepCollateralizeBorrowInfo) GetRecord() *BorrowRecord {
if m != nil { if m != nil {
return m.Index return m.Record
}
return nil
}
// 根据地址和借贷ID混合查询具体借贷记录
type ReqCollateralizeBorrowInfoByStatus struct {
CollateralizeId string `protobuf:"bytes,1,opt,name=collateralizeId,proto3" json:"collateralizeId,omitempty"`
Status int32 `protobuf:"varint,2,opt,name=status,proto3" json:"status,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ReqCollateralizeBorrowInfoByStatus) Reset() { *m = ReqCollateralizeBorrowInfoByStatus{} }
func (m *ReqCollateralizeBorrowInfoByStatus) String() string { return proto.CompactTextString(m) }
func (*ReqCollateralizeBorrowInfoByStatus) ProtoMessage() {}
func (*ReqCollateralizeBorrowInfoByStatus) Descriptor() ([]byte, []int) {
return fileDescriptor_a988fb4a61381972, []int{22}
}
func (m *ReqCollateralizeBorrowInfoByStatus) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqCollateralizeBorrowInfoByStatus.Unmarshal(m, b)
}
func (m *ReqCollateralizeBorrowInfoByStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ReqCollateralizeBorrowInfoByStatus.Marshal(b, m, deterministic)
}
func (m *ReqCollateralizeBorrowInfoByStatus) XXX_Merge(src proto.Message) {
xxx_messageInfo_ReqCollateralizeBorrowInfoByStatus.Merge(m, src)
}
func (m *ReqCollateralizeBorrowInfoByStatus) XXX_Size() int {
return xxx_messageInfo_ReqCollateralizeBorrowInfoByStatus.Size(m)
}
func (m *ReqCollateralizeBorrowInfoByStatus) XXX_DiscardUnknown() {
xxx_messageInfo_ReqCollateralizeBorrowInfoByStatus.DiscardUnknown(m)
}
var xxx_messageInfo_ReqCollateralizeBorrowInfoByStatus proto.InternalMessageInfo
func (m *ReqCollateralizeBorrowInfoByStatus) GetCollateralizeId() string {
if m != nil {
return m.CollateralizeId
}
return ""
}
func (m *ReqCollateralizeBorrowInfoByStatus) GetStatus() int32 {
if m != nil {
return m.Status
} }
return 0 return 0
} }
type CollateralizeRecords struct { // 返回借贷记录
Records []*CollateralizeRecord `protobuf:"bytes,1,rep,name=records,proto3" json:"records,omitempty"` type RepCollateralizeBorrowInfos struct {
XXX_NoUnkeyedLiteral struct{} `json:"-"` Record []*BorrowRecord `protobuf:"bytes,1,rep,name=record,proto3" json:"record,omitempty"`
XXX_unrecognized []byte `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_sizecache int32 `json:"-"` XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
} }
func (m *CollateralizeRecords) Reset() { *m = CollateralizeRecords{} } func (m *RepCollateralizeBorrowInfos) Reset() { *m = RepCollateralizeBorrowInfos{} }
func (m *CollateralizeRecords) String() string { return proto.CompactTextString(m) } func (m *RepCollateralizeBorrowInfos) String() string { return proto.CompactTextString(m) }
func (*CollateralizeRecords) ProtoMessage() {} func (*RepCollateralizeBorrowInfos) ProtoMessage() {}
func (*CollateralizeRecords) Descriptor() ([]byte, []int) { func (*RepCollateralizeBorrowInfos) Descriptor() ([]byte, []int) {
return fileDescriptor_a988fb4a61381972, []int{18} return fileDescriptor_a988fb4a61381972, []int{23}
} }
func (m *CollateralizeRecords) XXX_Unmarshal(b []byte) error { func (m *RepCollateralizeBorrowInfos) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CollateralizeRecords.Unmarshal(m, b) return xxx_messageInfo_RepCollateralizeBorrowInfos.Unmarshal(m, b)
} }
func (m *CollateralizeRecords) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { func (m *RepCollateralizeBorrowInfos) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CollateralizeRecords.Marshal(b, m, deterministic) return xxx_messageInfo_RepCollateralizeBorrowInfos.Marshal(b, m, deterministic)
} }
func (m *CollateralizeRecords) XXX_Merge(src proto.Message) { func (m *RepCollateralizeBorrowInfos) XXX_Merge(src proto.Message) {
xxx_messageInfo_CollateralizeRecords.Merge(m, src) xxx_messageInfo_RepCollateralizeBorrowInfos.Merge(m, src)
} }
func (m *CollateralizeRecords) XXX_Size() int { func (m *RepCollateralizeBorrowInfos) XXX_Size() int {
return xxx_messageInfo_CollateralizeRecords.Size(m) return xxx_messageInfo_RepCollateralizeBorrowInfos.Size(m)
} }
func (m *CollateralizeRecords) XXX_DiscardUnknown() { func (m *RepCollateralizeBorrowInfos) XXX_DiscardUnknown() {
xxx_messageInfo_CollateralizeRecords.DiscardUnknown(m) xxx_messageInfo_RepCollateralizeBorrowInfos.DiscardUnknown(m)
} }
var xxx_messageInfo_CollateralizeRecords proto.InternalMessageInfo var xxx_messageInfo_RepCollateralizeBorrowInfos proto.InternalMessageInfo
func (m *CollateralizeRecords) GetRecords() []*CollateralizeRecord { func (m *RepCollateralizeBorrowInfos) GetRecord() []*BorrowRecord {
if m != nil { if m != nil {
return m.Records return m.Record
} }
return nil return nil
} }
...@@ -1302,76 +1485,85 @@ func init() { ...@@ -1302,76 +1485,85 @@ func init() {
proto.RegisterType((*CollateralizeFeed)(nil), "types.CollateralizeFeed") proto.RegisterType((*CollateralizeFeed)(nil), "types.CollateralizeFeed")
proto.RegisterType((*CollateralizeClose)(nil), "types.CollateralizeClose") proto.RegisterType((*CollateralizeClose)(nil), "types.CollateralizeClose")
proto.RegisterType((*ReceiptCollateralize)(nil), "types.ReceiptCollateralize") proto.RegisterType((*ReceiptCollateralize)(nil), "types.ReceiptCollateralize")
proto.RegisterType((*ReqCollateralizeInfo)(nil), "types.ReqCollateralizeInfo")
proto.RegisterType((*ReqCollateralizeBorrowInfo)(nil), "types.ReqCollateralizeBorrowInfo")
proto.RegisterType((*ReqCollateralizeBadDebt)(nil), "types.ReqCollateralizeBadDebt")
proto.RegisterType((*ReqCollateralizeBorrowHistory)(nil), "types.ReqCollateralizeBorrowHistory")
proto.RegisterType((*ReplyCollateralizeCurrentInfo)(nil), "types.ReplyCollateralizeCurrentInfo")
proto.RegisterType((*ReplyCollateralizeBadDebt)(nil), "types.ReplyCollateralizeBadDebt")
proto.RegisterType((*CollateralizeRecord)(nil), "types.CollateralizeRecord") proto.RegisterType((*CollateralizeRecord)(nil), "types.CollateralizeRecord")
proto.RegisterType((*CollateralizeRecords)(nil), "types.CollateralizeRecords") proto.RegisterType((*CollateralizeRecords)(nil), "types.CollateralizeRecords")
proto.RegisterType((*ReqCollateralizeInfo)(nil), "types.ReqCollateralizeInfo")
proto.RegisterType((*RepCollateralizeCurrentInfo)(nil), "types.RepCollateralizeCurrentInfo")
proto.RegisterType((*ReqCollateralizeInfos)(nil), "types.ReqCollateralizeInfos")
proto.RegisterType((*RepCollateralizeCurrentInfos)(nil), "types.RepCollateralizeCurrentInfos")
proto.RegisterType((*ReqCollateralizeByStatus)(nil), "types.ReqCollateralizeByStatus")
proto.RegisterType((*ReqCollateralizeByAddr)(nil), "types.ReqCollateralizeByAddr")
proto.RegisterType((*RepCollateralizeIDs)(nil), "types.RepCollateralizeIDs")
proto.RegisterType((*ReqCollateralizeBorrowInfoByAddr)(nil), "types.ReqCollateralizeBorrowInfoByAddr")
proto.RegisterType((*RepCollateralizeBorrowInfo)(nil), "types.RepCollateralizeBorrowInfo")
proto.RegisterType((*ReqCollateralizeBorrowInfoByStatus)(nil), "types.ReqCollateralizeBorrowInfoByStatus")
proto.RegisterType((*RepCollateralizeBorrowInfos)(nil), "types.RepCollateralizeBorrowInfos")
} }
func init() { proto.RegisterFile("collateralize.proto", fileDescriptor_a988fb4a61381972) } func init() { proto.RegisterFile("collateralize.proto", fileDescriptor_a988fb4a61381972) }
var fileDescriptor_a988fb4a61381972 = []byte{ var fileDescriptor_a988fb4a61381972 = []byte{
// 922 bytes of a gzipped FileDescriptorProto // 990 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x57, 0x41, 0x6f, 0xe3, 0x44, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x57, 0xcd, 0x6e, 0xe4, 0x44,
0x14, 0x5e, 0xdb, 0x71, 0xb2, 0x79, 0x69, 0x61, 0x99, 0x46, 0x8b, 0x37, 0x5a, 0x56, 0x91, 0xc5, 0x10, 0x5e, 0xdb, 0xf3, 0xb3, 0x53, 0x93, 0x40, 0xe8, 0x84, 0xc8, 0x84, 0x68, 0x35, 0x6a, 0x21,
0xc1, 0x42, 0x22, 0x12, 0x61, 0x85, 0xc4, 0x05, 0x91, 0x06, 0xad, 0x5a, 0xd4, 0x03, 0x72, 0x0b, 0x31, 0x02, 0x34, 0x12, 0xc3, 0x0a, 0xc1, 0x05, 0x91, 0xcc, 0x6a, 0xb5, 0x83, 0xf6, 0x80, 0xbc,
0x07, 0x24, 0x0e, 0x13, 0x7b, 0x0a, 0x96, 0x5c, 0xdb, 0x1d, 0x4f, 0x0a, 0xe6, 0x0f, 0x21, 0x21, 0x01, 0x71, 0x41, 0xc2, 0x63, 0x77, 0xc0, 0x92, 0xd7, 0xf6, 0xb6, 0x7b, 0x16, 0xcc, 0x23, 0x21,
0xee, 0xfc, 0x18, 0x2e, 0x9c, 0xf8, 0x01, 0xfc, 0x02, 0x34, 0x6f, 0x26, 0x89, 0xc7, 0x76, 0xa4, 0xae, 0x3c, 0x0d, 0x17, 0x4e, 0x3c, 0x00, 0x4f, 0x80, 0xba, 0xba, 0x1d, 0xbb, 0xdb, 0x9e, 0x30,
0x84, 0x1e, 0xf7, 0x52, 0x65, 0xde, 0x7b, 0xf3, 0xe6, 0xbd, 0xef, 0x7d, 0xfe, 0x66, 0x0a, 0x67, 0x4b, 0x8e, 0x7b, 0x89, 0xa6, 0xeb, 0xa7, 0xab, 0xea, 0xab, 0xaf, 0xab, 0x1c, 0x38, 0x8e, 0xf2,
0x51, 0x9e, 0xa6, 0x54, 0x30, 0x4e, 0xd3, 0xe4, 0x57, 0x36, 0x2b, 0x78, 0x2e, 0x72, 0xe2, 0x8a, 0x34, 0x0d, 0x05, 0xe3, 0x61, 0x9a, 0xfc, 0xca, 0x16, 0x05, 0xcf, 0x45, 0x4e, 0x86, 0xa2, 0x2a,
0xaa, 0x60, 0xa5, 0xff, 0xb7, 0x03, 0xa7, 0xcb, 0xba, 0x9b, 0x04, 0xf0, 0xae, 0x11, 0x7f, 0x19, 0x58, 0x49, 0xff, 0xf2, 0xe0, 0x70, 0xd5, 0x56, 0x93, 0x39, 0xbc, 0x69, 0xd8, 0xaf, 0x63, 0xdf,
0x7b, 0xd6, 0xd4, 0x0a, 0x86, 0x61, 0xd3, 0x4c, 0x7c, 0x38, 0x11, 0xb9, 0xa0, 0xe9, 0x39, 0x4d, 0x99, 0x39, 0xf3, 0x49, 0x60, 0x8b, 0x09, 0x85, 0x03, 0x91, 0x8b, 0x30, 0xbd, 0x0c, 0xd3, 0x30,
0x69, 0x16, 0x31, 0xcf, 0x9e, 0x5a, 0x81, 0x13, 0x1a, 0x36, 0x32, 0x85, 0x51, 0xcc, 0x56, 0x62, 0x8b, 0x98, 0xef, 0xce, 0x9c, 0xb9, 0x17, 0x18, 0x32, 0x32, 0x83, 0x69, 0xcc, 0x36, 0x62, 0xc5,
0xc9, 0x92, 0x34, 0xc9, 0x7e, 0xf4, 0x1c, 0x0c, 0xa9, 0x9b, 0xc8, 0x47, 0xf0, 0x2c, 0x4d, 0xee, 0x92, 0x34, 0xc9, 0x7e, 0xf4, 0x3d, 0x34, 0x69, 0x8b, 0xc8, 0x07, 0x70, 0x94, 0x26, 0x2f, 0xb6,
0xd7, 0x49, 0x4c, 0x45, 0x92, 0x67, 0xa1, 0xfc, 0xeb, 0xf5, 0xa6, 0x56, 0x60, 0x87, 0x2d, 0xbb, 0x49, 0x1c, 0x8a, 0x24, 0xcf, 0x02, 0xf9, 0xd7, 0x1f, 0xcc, 0x9c, 0xb9, 0x1b, 0x74, 0xe4, 0x32,
0x3c, 0xb1, 0x14, 0x74, 0x95, 0xa4, 0x89, 0xa8, 0xde, 0x30, 0xe6, 0xb9, 0xea, 0xc4, 0xba, 0x8d, 0x62, 0x29, 0xc2, 0x4d, 0x92, 0x26, 0xa2, 0x7a, 0xcc, 0x98, 0x3f, 0x54, 0x11, 0xdb, 0x32, 0xb2,
0xcc, 0x80, 0xd4, 0xf6, 0x7d, 0xc3, 0x32, 0x9a, 0x8a, 0xca, 0xeb, 0x63, 0x64, 0x87, 0x87, 0xbc, 0x00, 0xd2, 0xf2, 0xfb, 0x9a, 0x65, 0x61, 0x2a, 0x2a, 0x7f, 0x84, 0x96, 0x3d, 0x1a, 0xf2, 0x00,
0x02, 0x88, 0x38, 0xa3, 0x82, 0x2d, 0xe2, 0x98, 0x7b, 0x03, 0x6c, 0xb5, 0x66, 0x21, 0x1e, 0x0c, 0x20, 0xe2, 0x2c, 0x14, 0xec, 0x22, 0x8e, 0xb9, 0x3f, 0xc6, 0x52, 0x5b, 0x12, 0xe2, 0xc3, 0x78,
0x56, 0xba, 0xc1, 0xa7, 0x98, 0x64, 0xb3, 0x24, 0x9f, 0xc3, 0xe9, 0x2a, 0xe7, 0x3c, 0xff, 0x39, 0xa3, 0x0b, 0xbc, 0x8f, 0x97, 0xd4, 0x47, 0xf2, 0x39, 0x1c, 0x6e, 0x72, 0xce, 0xf3, 0x9f, 0x03,
0x64, 0x51, 0xce, 0xe3, 0xd2, 0x1b, 0x4e, 0x9d, 0x60, 0x34, 0x3f, 0x9b, 0x21, 0xb4, 0xb3, 0xf3, 0x16, 0xe5, 0x3c, 0x2e, 0xfd, 0xc9, 0xcc, 0x9b, 0x4f, 0x97, 0xc7, 0x0b, 0x84, 0x76, 0x71, 0xd9,
0x9a, 0x2f, 0x34, 0x23, 0xc9, 0x73, 0xe8, 0x97, 0x82, 0x8a, 0x75, 0xe9, 0xc1, 0xd4, 0x0a, 0xdc, 0xd2, 0x05, 0xa6, 0x25, 0x39, 0x85, 0x51, 0x29, 0x42, 0xb1, 0x2d, 0x7d, 0x98, 0x39, 0xf3, 0x61,
0x50, 0xaf, 0xc8, 0x04, 0x9e, 0x4a, 0x94, 0x6f, 0xaa, 0x82, 0x79, 0x23, 0xf4, 0x6c, 0xd7, 0xe4, 0xa0, 0x4f, 0xe4, 0x0c, 0xee, 0x4b, 0x94, 0xaf, 0xaa, 0x82, 0xf9, 0x53, 0xd4, 0xdc, 0x9c, 0xc9,
0x33, 0x78, 0x2e, 0xe1, 0x2f, 0xc5, 0x55, 0xad, 0x09, 0x9e, 0x44, 0xcc, 0x3b, 0x41, 0xb8, 0xf6, 0xa7, 0x70, 0x2a, 0xe1, 0x2f, 0xc5, 0xd3, 0x56, 0x11, 0x3c, 0x89, 0x98, 0x7f, 0x80, 0x70, 0xed,
0x78, 0xfd, 0xdf, 0x6d, 0x38, 0xa9, 0xd7, 0x22, 0x67, 0x42, 0xa3, 0x28, 0x5f, 0x67, 0x02, 0x5b, 0xd0, 0xd2, 0xdf, 0x5c, 0x38, 0x68, 0xe7, 0x22, 0x7b, 0x12, 0x46, 0x51, 0xbe, 0xcd, 0x04, 0x96,
0x56, 0xd3, 0xad, 0x9b, 0xc8, 0x4b, 0x18, 0x96, 0x82, 0x72, 0x71, 0x93, 0xdc, 0x6d, 0xc6, 0xba, 0xac, 0xba, 0xdb, 0x16, 0x91, 0x73, 0x98, 0x94, 0x22, 0xe4, 0xe2, 0x2a, 0x79, 0x5e, 0xb7, 0xb5,
0x33, 0x98, 0x0c, 0xf9, 0x8e, 0xa6, 0x6b, 0xa6, 0xe7, 0xda, 0x34, 0x9b, 0x91, 0xaa, 0x56, 0x35, 0x11, 0x98, 0x0c, 0xf9, 0x36, 0x4c, 0xb7, 0x4c, 0xf7, 0xd5, 0x16, 0x9b, 0x96, 0x2a, 0x57, 0xd5,
0xda, 0xa6, 0x59, 0x9e, 0x28, 0x49, 0xa1, 0xb2, 0xa9, 0xb1, 0xee, 0x0c, 0x0d, 0x8e, 0xa8, 0x44, 0x5a, 0x5b, 0x2c, 0x23, 0x4a, 0x52, 0xa8, 0xdb, 0x54, 0x5b, 0x1b, 0x81, 0xc5, 0x11, 0x75, 0xd1,
0xfd, 0x16, 0x47, 0x54, 0xa6, 0x1d, 0xb4, 0x03, 0x03, 0xda, 0x0f, 0xe1, 0x74, 0x13, 0xcb, 0xb0, 0xa8, 0xc3, 0x11, 0x75, 0x53, 0x03, 0xed, 0xd8, 0x80, 0xf6, 0x3d, 0x38, 0xac, 0x6d, 0x19, 0xd6,
0x2f, 0x35, 0x4d, 0xd3, 0xe8, 0xff, 0x61, 0xc1, 0xb3, 0x45, 0x59, 0x32, 0x81, 0xc9, 0x34, 0x60, 0xa5, 0xba, 0x69, 0x0a, 0xe9, 0xef, 0x0e, 0x1c, 0x5d, 0x94, 0x25, 0x13, 0x78, 0x99, 0x06, 0xec,
0xaf, 0x00, 0x38, 0xfe, 0xc2, 0x7d, 0x16, 0xee, 0xab, 0x59, 0xe4, 0xd4, 0x56, 0xa2, 0x52, 0x65, 0x01, 0x00, 0xc7, 0x5f, 0xe8, 0xe7, 0xa0, 0x5f, 0x4b, 0x22, 0xbb, 0xb6, 0x11, 0x95, 0x4a, 0xcb,
0xd9, 0x58, 0xd6, 0x76, 0xad, 0x7c, 0x91, 0xf2, 0x39, 0x1b, 0x5f, 0xb4, 0xf5, 0x31, 0xf1, 0x53, 0xc5, 0xb4, 0x6e, 0xce, 0x4a, 0x17, 0x29, 0x9d, 0x57, 0xeb, 0xa2, 0x1b, 0x1d, 0x13, 0x3f, 0xb5,
0x1d, 0x97, 0xed, 0x5a, 0x96, 0x5b, 0x70, 0x5d, 0x00, 0x1e, 0xab, 0x40, 0x31, 0x8d, 0xfe, 0x3f, 0x71, 0xb9, 0x39, 0xcb, 0x74, 0x0b, 0xae, 0x13, 0xc0, 0xb0, 0x0a, 0x14, 0x53, 0x48, 0xff, 0x76,
0x36, 0x9c, 0x19, 0x9f, 0xef, 0x22, 0x92, 0x48, 0x90, 0xd7, 0xd0, 0x57, 0x14, 0xc6, 0x6a, 0x47, 0xe1, 0xd8, 0x78, 0xbe, 0x17, 0x91, 0x44, 0x82, 0x3c, 0x84, 0x91, 0xa2, 0x30, 0x66, 0x3b, 0x5d,
0xf3, 0x89, 0xe6, 0xa4, 0x11, 0xbb, 0xc4, 0x88, 0x8b, 0x27, 0xa1, 0x8e, 0x95, 0xbb, 0x14, 0x4d, 0x9e, 0x69, 0x4e, 0x1a, 0xb6, 0x2b, 0xb4, 0x78, 0x72, 0x2f, 0xd0, 0xb6, 0xd2, 0x4b, 0xd1, 0x14,
0xb1, 0x8b, 0x3d, 0xbb, 0x14, 0x95, 0xe4, 0x2e, 0x15, 0x4b, 0x3e, 0x01, 0x97, 0xb3, 0x82, 0x56, 0xab, 0xd8, 0xe1, 0xa5, 0xa8, 0x24, 0xbd, 0x94, 0x2d, 0xf9, 0x18, 0x86, 0x9c, 0x15, 0x61, 0x85,
0xd8, 0xde, 0x68, 0xfe, 0xa2, 0x6b, 0x53, 0x28, 0x03, 0x2e, 0x9e, 0x84, 0x2a, 0x52, 0x1e, 0x44, 0xe5, 0x4d, 0x97, 0xef, 0xf4, 0x39, 0x05, 0xd2, 0xe0, 0xc9, 0xbd, 0x40, 0x59, 0xca, 0x40, 0x61,
0x8b, 0x82, 0x65, 0x31, 0xb6, 0xbd, 0xe7, 0xa0, 0x05, 0x46, 0xc8, 0x83, 0x54, 0x2c, 0x99, 0x41, 0x51, 0xb0, 0x2c, 0xc6, 0xb2, 0x77, 0x04, 0xba, 0x40, 0x0b, 0x19, 0x48, 0xd9, 0x92, 0x05, 0x0c,
0xef, 0x96, 0xb1, 0x18, 0x91, 0x18, 0xcd, 0xbd, 0xae, 0x3d, 0x6f, 0x18, 0x93, 0x3b, 0x30, 0x4e, 0xae, 0x19, 0x8b, 0x11, 0x89, 0xe9, 0xd2, 0xef, 0xf3, 0x79, 0xcc, 0x98, 0xf4, 0x40, 0x3b, 0x99,
0x16, 0x16, 0xa5, 0x79, 0xa9, 0xa8, 0xb2, 0xa7, 0xb0, 0xa5, 0x0c, 0x90, 0x85, 0x61, 0x24, 0x79, 0x58, 0x94, 0xe6, 0xa5, 0xa2, 0xca, 0x8e, 0xc4, 0x56, 0xd2, 0x40, 0x26, 0x86, 0x96, 0xe4, 0x0d,
0x07, 0x6c, 0x51, 0xe9, 0x6f, 0xd2, 0x16, 0xd5, 0xf9, 0x00, 0xdc, 0x07, 0xc9, 0x40, 0xff, 0x2f, 0x70, 0x45, 0xa5, 0xdf, 0xa4, 0x2b, 0xaa, 0xcb, 0x31, 0x0c, 0x5f, 0x4a, 0x06, 0xd2, 0x3f, 0x1d,
0xab, 0x01, 0xb4, 0x02, 0xaf, 0xa9, 0x6f, 0xd6, 0x61, 0xfa, 0x66, 0x1f, 0xa8, 0x6f, 0xce, 0xc1, 0x0b, 0x68, 0x05, 0x9e, 0x3d, 0xdf, 0x9c, 0xfd, 0xe6, 0x9b, 0xbb, 0xe7, 0x7c, 0xf3, 0xf6, 0x9e,
0xfa, 0xd6, 0xdb, 0xab, 0x6f, 0x4d, 0x95, 0x76, 0xdb, 0x2a, 0xed, 0x7f, 0xdb, 0x68, 0x4e, 0xcd, 0x6f, 0x83, 0x9d, 0xf3, 0xcd, 0x9e, 0xd2, 0xc3, 0xee, 0x94, 0xa6, 0xdf, 0x58, 0xc5, 0xa9, 0x1e,
0xf8, 0x88, 0xab, 0x60, 0xac, 0x71, 0xd2, 0x62, 0xa1, 0x41, 0xbb, 0x01, 0xd2, 0x66, 0xc1, 0xa3, 0xbf, 0xc2, 0x2a, 0x38, 0xd1, 0x38, 0xe9, 0x61, 0xa1, 0x41, 0xbb, 0x02, 0xd2, 0x65, 0xc1, 0x9d,
0xb3, 0x26, 0x4d, 0xca, 0x2b, 0x76, 0x1c, 0x9e, 0xb6, 0x43, 0xbf, 0xec, 0x4e, 0xfd, 0xf2, 0x7f, 0x6f, 0x4d, 0x6c, 0xca, 0x2b, 0x76, 0xec, 0x7f, 0x6d, 0xcf, 0xfc, 0x72, 0x7b, 0xe7, 0x17, 0xfd,
0x80, 0xf7, 0x5a, 0xf4, 0x32, 0x34, 0xda, 0x6a, 0x68, 0xf4, 0x18, 0xdc, 0x42, 0xcb, 0x80, 0x13, 0x1e, 0xde, 0xea, 0xd0, 0xcb, 0x98, 0xd1, 0x8e, 0x35, 0xa3, 0x4f, 0x60, 0x58, 0xe8, 0x31, 0xe0,
0xd8, 0xa1, 0x5a, 0x48, 0x49, 0x7a, 0xc8, 0xd3, 0xf5, 0x9d, 0x1c, 0xa8, 0x13, 0x38, 0xa1, 0x5e, 0xcd, 0xdd, 0x40, 0x1d, 0xe4, 0x48, 0x7a, 0x99, 0xa7, 0xdb, 0xe7, 0xb2, 0xa1, 0xde, 0xdc, 0x0b,
0xf9, 0x5f, 0x34, 0xf0, 0x41, 0x32, 0x1e, 0xde, 0x88, 0xff, 0xaf, 0x05, 0xe3, 0x90, 0x45, 0x2c, 0xf4, 0x89, 0x7e, 0x61, 0xe1, 0x83, 0x64, 0xdc, 0xbf, 0x10, 0xfa, 0x8f, 0x03, 0x27, 0x01, 0x8b,
0x29, 0xc4, 0xff, 0xbd, 0xc3, 0xcd, 0xdb, 0xcf, 0x6e, 0xdd, 0x7e, 0x8d, 0xbb, 0xc2, 0x69, 0xdf, 0x58, 0x52, 0x88, 0xff, 0xbb, 0xc3, 0xcd, 0xed, 0xe7, 0x76, 0xb6, 0x9f, 0xb5, 0x2b, 0xbc, 0xee,
0x15, 0x3b, 0xbd, 0xed, 0x19, 0x7a, 0xfb, 0x12, 0x86, 0x05, 0x67, 0xd7, 0xca, 0xe5, 0xa2, 0x6b, 0xae, 0x68, 0xe6, 0xed, 0xc0, 0x98, 0xb7, 0xe7, 0x30, 0x29, 0x38, 0x7b, 0xa6, 0x54, 0x43, 0x54,
0x67, 0x90, 0x40, 0x25, 0x59, 0xcc, 0x7e, 0xd1, 0x17, 0xb3, 0x5a, 0x48, 0xae, 0x2a, 0x59, 0xbd, 0x35, 0x02, 0x09, 0x54, 0x92, 0xc5, 0xec, 0x17, 0xbd, 0x98, 0xd5, 0x41, 0x72, 0x55, 0x8d, 0xd5,
0xae, 0x2b, 0xb8, 0x61, 0xf3, 0xbf, 0x94, 0x3d, 0xdf, 0x1b, 0xfd, 0x5e, 0x66, 0xb7, 0xf9, 0x11, 0x67, 0xed, 0x09, 0x6e, 0xc8, 0x3a, 0xed, 0xd7, 0x33, 0x7a, 0xff, 0x92, 0x09, 0x0c, 0xc2, 0xa6,
0xb0, 0x7d, 0x0f, 0x93, 0x66, 0x06, 0x45, 0xf8, 0xe3, 0xf2, 0x10, 0x02, 0x3d, 0xba, 0x43, 0x0d, 0x58, 0xfc, 0xdd, 0xa4, 0xe3, 0xb5, 0xd2, 0xa1, 0x4f, 0xe1, 0xa4, 0x27, 0x54, 0x49, 0x1e, 0xc2,
0x7f, 0xfb, 0x4b, 0x78, 0xbf, 0x95, 0x9b, 0xc6, 0x5f, 0xb1, 0x95, 0x38, 0xa2, 0xc0, 0xdf, 0x2c, 0x98, 0xeb, 0x95, 0xef, 0xe0, 0xca, 0x3f, 0xeb, 0x9f, 0x79, 0xb8, 0xf9, 0x6b, 0x53, 0xfa, 0xa5,
0xf8, 0xa0, 0xbb, 0xc2, 0x8b, 0xa4, 0x14, 0x39, 0xaf, 0x1e, 0x57, 0xa4, 0x04, 0x1f, 0xe7, 0xa7, 0x6c, 0xd6, 0x0b, 0xc3, 0x64, 0x9d, 0x5d, 0xe7, 0xaf, 0xd0, 0xef, 0x3f, 0x5c, 0x78, 0x37, 0x60,
0x27, 0xa6, 0x16, 0x78, 0x05, 0x27, 0x9c, 0xe1, 0x05, 0xb2, 0x19, 0xd8, 0xd6, 0xd0, 0x3d, 0x30, 0x85, 0xc9, 0x99, 0x2d, 0xe7, 0x2c, 0x13, 0x78, 0x53, 0xd3, 0x0a, 0xc7, 0x68, 0xc5, 0x6b, 0xfe,
0xff, 0x4f, 0x5b, 0x56, 0x5a, 0xa4, 0x95, 0xc9, 0xe3, 0x35, 0xe7, 0x2c, 0x13, 0x08, 0xe7, 0x8e, 0xa1, 0x46, 0x57, 0xf0, 0x76, 0x1f, 0xf2, 0xa5, 0x2c, 0xc9, 0xc2, 0x58, 0x75, 0x74, 0x12, 0x74,
0x1e, 0x96, 0x41, 0x8f, 0xb7, 0xfc, 0xf1, 0xe8, 0x7f, 0x0d, 0x2f, 0xda, 0xc0, 0x6d, 0xa8, 0xf2, 0xe4, 0xf4, 0x3b, 0x38, 0xbf, 0x05, 0xfb, 0x92, 0x7c, 0x26, 0x29, 0x74, 0x9d, 0xd7, 0x94, 0xa0,
0x31, 0x0c, 0xb8, 0x7e, 0x53, 0x5a, 0xfb, 0xdf, 0x94, 0x9b, 0x98, 0x96, 0x22, 0xea, 0x67, 0xcb, 0x9a, 0x12, 0xb7, 0xf8, 0x04, 0xca, 0x81, 0x2e, 0xc1, 0xb7, 0xd3, 0xbb, 0xac, 0xf4, 0x3b, 0xd9,
0xa3, 0x49, 0xa2, 0x06, 0xee, 0xd4, 0x07, 0x7e, 0x05, 0xe3, 0x8e, 0xa3, 0x4a, 0xf2, 0xba, 0x59, 0xd1, 0x52, 0xfa, 0x11, 0x9c, 0x76, 0x7d, 0x10, 0x86, 0x9a, 0xde, 0x4e, 0x43, 0x6f, 0xfa, 0x3e,
0xf1, 0xa4, 0xfb, 0x19, 0x60, 0x14, 0xbe, 0xea, 0xe3, 0xff, 0x22, 0x9f, 0xfe, 0x17, 0x00, 0x00, 0x1c, 0xdb, 0x79, 0xac, 0x1f, 0x95, 0xe4, 0x08, 0xbc, 0xf5, 0xa3, 0xba, 0x62, 0xf9, 0x93, 0xfe,
0xff, 0xff, 0x2e, 0xf8, 0x38, 0x08, 0xa2, 0x0c, 0x00, 0x00, 0x00, 0xb3, 0xce, 0xb5, 0xb8, 0x0b, 0x64, 0xbe, 0x3a, 0xc0, 0x9d, 0x5e, 0x1a, 0x5d, 0xc3, 0x99,
0x9d, 0x4a, 0x13, 0x81, 0x7c, 0x08, 0x23, 0xf5, 0x5c, 0xf4, 0x77, 0x4b, 0xef, 0xb7, 0xb4, 0x36,
0xa1, 0xd7, 0x40, 0x6f, 0x4b, 0x56, 0x23, 0xb8, 0x7f, 0xba, 0x0d, 0xd6, 0xae, 0x81, 0xf5, 0x57,
0xdd, 0x57, 0xd7, 0xc4, 0x29, 0x8d, 0x9c, 0xbd, 0xff, 0xc8, 0x79, 0x33, 0xc2, 0xff, 0xbe, 0x3e,
0xf9, 0x37, 0x00, 0x00, 0xff, 0xff, 0x40, 0x4f, 0xe4, 0x50, 0x94, 0x0d, 0x00, 0x00,
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment