Commit b48db05f authored by pengjun's avatar pengjun

#627 fix test error

parent 1330dd41
...@@ -285,6 +285,7 @@ func addCollateralizeManageFlags(cmd *cobra.Command) { ...@@ -285,6 +285,7 @@ func addCollateralizeManageFlags(cmd *cobra.Command) {
cmd.Flags().Float32P("liquidationRatio", "l", 0, "liquidationRatio") cmd.Flags().Float32P("liquidationRatio", "l", 0, "liquidationRatio")
cmd.Flags().Float32P("stabilityFeeRatio", "s", 0, "stabilityFeeRatio") cmd.Flags().Float32P("stabilityFeeRatio", "s", 0, "stabilityFeeRatio")
cmd.Flags().Uint64P("period", "p", 0, "period") cmd.Flags().Uint64P("period", "p", 0, "period")
cmd.Flags().Uint64P("totalBalance", "t", 0, "totalBalance")
} }
func CollateralizeManage(cmd *cobra.Command, args []string) { func CollateralizeManage(cmd *cobra.Command, args []string) {
...@@ -299,12 +300,13 @@ func CollateralizeManage(cmd *cobra.Command, args []string) { ...@@ -299,12 +300,13 @@ func CollateralizeManage(cmd *cobra.Command, args []string) {
liquidationRatio, _ := cmd.Flags().GetFloat32("liquidationRatio") liquidationRatio, _ := cmd.Flags().GetFloat32("liquidationRatio")
stabilityFeeRatio, _ := cmd.Flags().GetFloat32("stabilityFeeRatio") stabilityFeeRatio, _ := cmd.Flags().GetFloat32("stabilityFeeRatio")
period, _ := cmd.Flags().GetUint64("period") period, _ := cmd.Flags().GetUint64("period")
totalBalance, _ := cmd.Flags().GetUint64("totalBalance")
params := &rpctypes.CreateTxIn{ params := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(pkt.CollateralizeX), Execer: cfg.ExecName(pkt.CollateralizeX),
ActionName: "CollateralizeManage", ActionName: "CollateralizeManage",
Payload: []byte(fmt.Sprintf("{\"debtCeiling\":%d, \"liquidationRatio\":%f, \"stabilityFeeRatio\":%f, \"period\":%d}", Payload: []byte(fmt.Sprintf("{\"debtCeiling\":%d, \"liquidationRatio\":%f, \"stabilityFeeRatio\":%f, \"period\":%d, \"totalBalance\":%d,}",
debtCeiling, liquidationRatio, stabilityFeeRatio, period)), debtCeiling, liquidationRatio, stabilityFeeRatio, period, totalBalance)),
} }
var res string var res string
...@@ -312,6 +314,27 @@ func CollateralizeManage(cmd *cobra.Command, args []string) { ...@@ -312,6 +314,27 @@ func CollateralizeManage(cmd *cobra.Command, args []string) {
ctx.RunWithoutMarshal() ctx.RunWithoutMarshal()
} }
func CollateralizeQueryCfgCmd() *cobra.Command {
cmd := &cobra.Command{
Use: "config",
Short: "Query config result",
Run: CollateralizeQueryConfig,
}
return cmd
}
func CollateralizeQueryConfig(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
var params rpctypes.Query4Jrpc
params.Execer = pkt.CollateralizeX
params.FuncName = "CollateralizeConfig"
var res pkt.RepCollateralizeConfig
ctx := jsonrpc.NewRPCCtx(rpcLaddr, "Chain33.Query", params, &res)
ctx.Run()
}
// CollateralizeQueryCmd 查询命令行 // CollateralizeQueryCmd 查询命令行
func CollateralizeQueryCmd() *cobra.Command { func CollateralizeQueryCmd() *cobra.Command {
cmd := &cobra.Command{ cmd := &cobra.Command{
...@@ -320,6 +343,9 @@ func CollateralizeQueryCmd() *cobra.Command { ...@@ -320,6 +343,9 @@ func CollateralizeQueryCmd() *cobra.Command {
Run: CollateralizeQuery, Run: CollateralizeQuery,
} }
addCollateralizeQueryFlags(cmd) addCollateralizeQueryFlags(cmd)
cmd.AddCommand(
CollateralizeQueryCfgCmd(),
)
return cmd return cmd
} }
...@@ -437,7 +463,7 @@ func CollateralizeQuery(cmd *cobra.Command, args []string) { ...@@ -437,7 +463,7 @@ func CollateralizeQuery(cmd *cobra.Command, args []string) {
ctx := jsonrpc.NewRPCCtx(rpcLaddr, "Chain33.Query", params, &res) ctx := jsonrpc.NewRPCCtx(rpcLaddr, "Chain33.Query", params, &res)
ctx.Run() ctx.Run()
} else { } else {
fmt.Println("Error: requeres at least one of gameID, address or status") fmt.Println("Error: requeres at least one of collId, address or status")
cmd.Help() cmd.Help()
} }
} }
...@@ -30,6 +30,7 @@ const ( ...@@ -30,6 +30,7 @@ const (
DefaultLiquidationRatio = 0.4 // 默认质押比 DefaultLiquidationRatio = 0.4 // 默认质押比
DefaultStabilityFeeRation = 0.08 // 默认稳定费 DefaultStabilityFeeRation = 0.08 // 默认稳定费
DefaultPeriod = 3600 * 24 * 365 // 默认合约限期 DefaultPeriod = 3600 * 24 * 365 // 默认合约限期
DefaultCollTotalBalance = 0 // 默认放贷总额
PriceWarningRate = 1.3 // 价格提前预警率 PriceWarningRate = 1.3 // 价格提前预警率
ExpireWarningTime = 3600 * 24 * 10 // 提前10天超时预警 ExpireWarningTime = 3600 * 24 * 10 // 提前10天超时预警
) )
...@@ -265,29 +266,46 @@ func (action *Action) CollateralizeManage(manage *pty.CollateralizeManage) (*typ ...@@ -265,29 +266,46 @@ func (action *Action) CollateralizeManage(manage *pty.CollateralizeManage) (*typ
return nil, pty.ErrRiskParam return nil, pty.ErrRiskParam
} }
collConfig := &pty.CollateralizeManage{} var collConfig *pty.CollateralizeManage
manConfig, _ := getCollateralizeConfig(action.db)
if manConfig == nil {
manConfig = &pty.CollateralizeManage{
DebtCeiling: DefaultDebtCeiling,
LiquidationRatio: DefaultLiquidationRatio,
StabilityFeeRatio: DefaultStabilityFeeRation,
Period: DefaultPeriod,
CollTotalBalance: DefaultCollTotalBalance,
}
}
if manage.StabilityFeeRatio != 0 { if manage.StabilityFeeRatio != 0 {
collConfig.StabilityFeeRatio = manage.StabilityFeeRatio collConfig.StabilityFeeRatio = manage.StabilityFeeRatio
} else { } else {
collConfig.StabilityFeeRatio = DefaultStabilityFeeRation collConfig.StabilityFeeRatio = manConfig.StabilityFeeRatio
} }
if manage.Period != 0 { if manage.Period != 0 {
collConfig.Period = manage.Period collConfig.Period = manage.Period
} else { } else {
collConfig.Period = DefaultPeriod collConfig.Period = manConfig.Period
} }
if manage.LiquidationRatio != 0 { if manage.LiquidationRatio != 0 {
collConfig.LiquidationRatio = manage.LiquidationRatio collConfig.LiquidationRatio = manage.LiquidationRatio
} else { } else {
collConfig.LiquidationRatio = DefaultLiquidationRatio collConfig.LiquidationRatio = manConfig.LiquidationRatio
} }
if manage.DebtCeiling != 0 { if manage.DebtCeiling != 0 {
collConfig.DebtCeiling = manage.DebtCeiling collConfig.DebtCeiling = manage.DebtCeiling
} else { } else {
collConfig.DebtCeiling = DefaultDebtCeiling collConfig.DebtCeiling = manConfig.DebtCeiling
}
if manage.CollTotalBalance != 0 {
collConfig.CollTotalBalance = manage.CollTotalBalance
} else {
collConfig.CollTotalBalance = manConfig.CollTotalBalance
} }
value := types.Encode(collConfig) value := types.Encode(collConfig)
...@@ -298,8 +316,8 @@ func (action *Action) CollateralizeManage(manage *pty.CollateralizeManage) (*typ ...@@ -298,8 +316,8 @@ func (action *Action) CollateralizeManage(manage *pty.CollateralizeManage) (*typ
return receipt, nil return receipt, nil
} }
func (action *Action) getCollateralizeConfig() (*pty.CollateralizeManage, error) { func getCollateralizeConfig(db dbm.KV) (*pty.CollateralizeManage, error) {
data, err := action.db.Get(ConfigKey()) data, err := db.Get(ConfigKey())
if err != nil { if err != nil {
clog.Debug("getCollateralizeConfig", "error", err) clog.Debug("getCollateralizeConfig", "error", err)
return nil, err return nil, err
...@@ -375,9 +393,15 @@ func (action *Action) CollateralizeCreate(create *pty.CollateralizeCreate) (*typ ...@@ -375,9 +393,15 @@ func (action *Action) CollateralizeCreate(create *pty.CollateralizeCreate) (*typ
// 获取借贷配置 // 获取借贷配置
var collcfg *pty.CollateralizeManage var collcfg *pty.CollateralizeManage
cfg, err := action.getCollateralizeConfig() cfg, err := getCollateralizeConfig(action.db)
if err != nil { if cfg == nil {
collcfg = &pty.CollateralizeManage{DebtCeiling:DefaultDebtCeiling, LiquidationRatio:DefaultLiquidationRatio, StabilityFeeRatio:DefaultStabilityFeeRation, Period:DefaultPeriod} collcfg = &pty.CollateralizeManage{
DebtCeiling:DefaultDebtCeiling,
LiquidationRatio:DefaultLiquidationRatio,
StabilityFeeRatio:DefaultStabilityFeeRation,
Period:DefaultPeriod,
CollTotalBalance:DefaultCollTotalBalance,
}
} else { } else {
collcfg = cfg collcfg = cfg
} }
...@@ -835,9 +859,9 @@ func (action *Action) systemLiquidation(coll *pty.Collateralize, price float32) ...@@ -835,9 +859,9 @@ func (action *Action) systemLiquidation(coll *pty.Collateralize, price float32)
collDB := &CollateralizeDB{*coll} collDB := &CollateralizeDB{*coll}
for index, borrowRecord := range coll.BorrowRecords { for index, borrowRecord := range coll.BorrowRecords {
if borrowRecord.LiquidationPrice * PriceWarningRate < price { if borrowRecord.LiquidationPrice * PriceWarningRate < price {
if borrowRecord.Status == pty.CollateralizeUserStatusSystemLiquidate { if borrowRecord.Status == pty.CollateralizeUserStatusWarning {
borrowRecord.Status = borrowRecord.PreStatus borrowRecord.PreStatus = borrowRecord.Status
borrowRecord.PreStatus = pty.CollateralizeUserStatusSystemLiquidate borrowRecord.Status = pty.CollateralizeUserStatusCreate
} }
continue continue
} }
......
...@@ -37,32 +37,32 @@ func (c *Collateralize) execLocal(tx *types.Transaction, receipt *types.ReceiptD ...@@ -37,32 +37,32 @@ func (c *Collateralize) execLocal(tx *types.Transaction, receipt *types.ReceiptD
set.KV = append(set.KV, c.deleteCollateralizeRecordStatus(collateralizeLog.PreStatus, collateralizeLog.PreIndex)...) set.KV = append(set.KV, c.deleteCollateralizeRecordStatus(collateralizeLog.PreStatus, collateralizeLog.PreIndex)...)
set.KV = append(set.KV, c.addCollateralizeRecordStatus(collateralizeLog.Status, collateralizeLog.CollateralizeId, set.KV = append(set.KV, c.addCollateralizeRecordStatus(collateralizeLog.Status, collateralizeLog.CollateralizeId,
collateralizeLog.RecordId, collateralizeLog.Index)...) collateralizeLog.RecordId, collateralizeLog.Index)...)
set.KV = append(set.KV, c.deleteCollateralizeRecordAddr(collateralizeLog.AccountAddr, collateralizeLog.PreIndex)...) //set.KV = append(set.KV, c.deleteCollateralizeRecordAddr(collateralizeLog.AccountAddr, collateralizeLog.PreIndex)...)
set.KV = append(set.KV, c.addCollateralizeRecordAddr(collateralizeLog.AccountAddr, collateralizeLog.CollateralizeId, //set.KV = append(set.KV, c.addCollateralizeRecordAddr(collateralizeLog.AccountAddr, collateralizeLog.CollateralizeId,
collateralizeLog.RecordId, collateralizeLog.Index)...) // collateralizeLog.RecordId, collateralizeLog.Index)...)
} }
break break
case pty.TyLogCollateralizeRepay: case pty.TyLogCollateralizeRepay:
set.KV = append(set.KV, c.deleteCollateralizeRecordStatus(collateralizeLog.PreStatus, collateralizeLog.PreIndex)...) set.KV = append(set.KV, c.deleteCollateralizeRecordStatus(collateralizeLog.PreStatus, collateralizeLog.PreIndex)...)
set.KV = append(set.KV, c.addCollateralizeRecordStatus(collateralizeLog.Status, collateralizeLog.CollateralizeId, set.KV = append(set.KV, c.addCollateralizeRecordStatus(collateralizeLog.Status, collateralizeLog.CollateralizeId,
collateralizeLog.RecordId, collateralizeLog.Index)...) collateralizeLog.RecordId, collateralizeLog.Index)...)
set.KV = append(set.KV, c.deleteCollateralizeRecordAddr(collateralizeLog.AccountAddr, collateralizeLog.PreIndex)...) //set.KV = append(set.KV, c.deleteCollateralizeRecordAddr(collateralizeLog.AccountAddr, collateralizeLog.PreIndex)...)
break break
case pty.TyLogCollateralizeFeed: case pty.TyLogCollateralizeFeed:
set.KV = append(set.KV, c.deleteCollateralizeRecordStatus(collateralizeLog.PreStatus, collateralizeLog.PreIndex)...) set.KV = append(set.KV, c.deleteCollateralizeRecordStatus(collateralizeLog.PreStatus, collateralizeLog.PreIndex)...)
set.KV = append(set.KV, c.addCollateralizeRecordStatus(collateralizeLog.Status, collateralizeLog.CollateralizeId, set.KV = append(set.KV, c.addCollateralizeRecordStatus(collateralizeLog.Status, collateralizeLog.CollateralizeId,
collateralizeLog.RecordId, collateralizeLog.Index)...) collateralizeLog.RecordId, collateralizeLog.Index)...)
set.KV = append(set.KV, c.deleteCollateralizeRecordAddr(collateralizeLog.AccountAddr, collateralizeLog.PreIndex)...) //set.KV = append(set.KV, c.deleteCollateralizeRecordAddr(collateralizeLog.AccountAddr, collateralizeLog.PreIndex)...)
// 如果没有被清算,需要把地址索引更新 //// 如果没有被清算,需要把地址索引更新
if collateralizeLog.Status == pty.CollateralizeUserStatusWarning || collateralizeLog.Status == pty.CollateralizeUserStatusExpire { //if collateralizeLog.Status == pty.CollateralizeUserStatusWarning || collateralizeLog.Status == pty.CollateralizeUserStatusExpire {
set.KV = append(set.KV, c.addCollateralizeRecordAddr(collateralizeLog.AccountAddr, collateralizeLog.CollateralizeId, // set.KV = append(set.KV, c.addCollateralizeRecordAddr(collateralizeLog.AccountAddr, collateralizeLog.CollateralizeId,
collateralizeLog.RecordId, collateralizeLog.Index)...) // collateralizeLog.RecordId, collateralizeLog.Index)...)
} //}
break break
case pty.TyLogCollateralizeClose: case pty.TyLogCollateralizeClose:
set.KV = append(set.KV, c.addCollateralizeStatus(collateralizeLog.Status, collateralizeLog.CollateralizeId, collateralizeLog.Index)...) set.KV = append(set.KV, c.addCollateralizeStatus(collateralizeLog.Status, collateralizeLog.CollateralizeId, collateralizeLog.Index)...)
set.KV = append(set.KV, c.deleteCollateralizeStatus(collateralizeLog.PreStatus, collateralizeLog.PreIndex)...) set.KV = append(set.KV, c.deleteCollateralizeStatus(collateralizeLog.PreStatus, collateralizeLog.PreIndex)...)
set.KV = append(set.KV, c.deleteCollateralizeAddr(collateralizeLog.CreateAddr, collateralizeLog.PreIndex)...) //set.KV = append(set.KV, c.deleteCollateralizeAddr(collateralizeLog.CreateAddr, collateralizeLog.PreIndex)...)
break break
} }
} }
......
...@@ -24,6 +24,7 @@ func (c *Collateralize) Query_CollateralizeInfoByID(req *pty.ReqCollateralizeInf ...@@ -24,6 +24,7 @@ func (c *Collateralize) Query_CollateralizeInfoByID(req *pty.ReqCollateralizeInf
StabilityFeeRatio: coll.StabilityFeeRatio, StabilityFeeRatio: coll.StabilityFeeRatio,
CreateAddr: coll.CreateAddr, CreateAddr: coll.CreateAddr,
Balance: coll.Balance, Balance: coll.Balance,
Period: coll.Period,
}, nil }, nil
} }
...@@ -44,6 +45,7 @@ func (c *Collateralize) Query_CollateralizeInfoByIDs(req *pty.ReqCollateralizeIn ...@@ -44,6 +45,7 @@ func (c *Collateralize) Query_CollateralizeInfoByIDs(req *pty.ReqCollateralizeIn
StabilityFeeRatio: coll.StabilityFeeRatio, StabilityFeeRatio: coll.StabilityFeeRatio,
CreateAddr: coll.CreateAddr, CreateAddr: coll.CreateAddr,
Balance: coll.Balance, Balance: coll.Balance,
Period: coll.Period,
}) })
} }
...@@ -98,14 +100,37 @@ func (c *Collateralize) Query_CollateralizeRecordByAddr(req *pty.ReqCollateraliz ...@@ -98,14 +100,37 @@ func (c *Collateralize) Query_CollateralizeRecordByAddr(req *pty.ReqCollateraliz
return ret, nil return ret, nil
} }
func (c *Collateralize) Query_CollateralizeRecordByStatus(req *pty.ReqCollateralizeRecordByStatus) (types.Message, error) { func (c *Collateralize) Query_CollateralizeConfig(req *pty.ReqCollateralizeRecordByAddr) (types.Message, error) {
ret := &pty.RepCollateralizeRecords{} config, err := getCollateralizeConfig(c.GetStateDB())
records, err := queryCollateralizeRecordByStatus(c.GetStateDB(), c.GetLocalDB(), req.Status, req.Index)
if err != nil { if err != nil {
clog.Error("Query_CollateralizeRecordByStatus", "get collateralize record error", err) clog.Error("Query_CollateralizeConfig", "get collateralize config error", err)
return nil, err return nil, err
} }
ret.Records = records collIDRecords, err := queryCollateralizeByStatus(c.GetLocalDB(), pty.CollateralizeStatusCreated, 0)
if err != nil {
clog.Error("Query_CollateralizeByStatus", "get collateralize record error", err)
return nil, err
}
collBalance := config.CollTotalBalance
for _, id := range collIDRecords {
coll, err := queryCollateralizeByID(c.GetStateDB(), id)
if err != nil {
clog.Error("Query_CollateralizeInfoByID", "id", id, "error", err)
return nil, err
}
collBalance -= coll.TotalBalance
}
ret := &pty.RepCollateralizeConfig{
CollTotalBalance:config.CollTotalBalance,
DebtCeiling: config.DebtCeiling,
LiquidationRatio: config.LiquidationRatio,
StabilityFeeRatio: config.StabilityFeeRatio,
Period: config.Period,
CollBalance: collBalance,
}
return ret, nil return ret, nil
} }
\ No newline at end of file
...@@ -65,6 +65,7 @@ message CollateralizeManage { ...@@ -65,6 +65,7 @@ message CollateralizeManage {
float liquidationRatio = 2; //清算比例 float liquidationRatio = 2; //清算比例
float stabilityFeeRatio = 3; //稳定费 float stabilityFeeRatio = 3; //稳定费
int64 period = 4; //合约期限 int64 period = 4; //合约期限
int64 collTotalBalance = 5; //放贷总量
} }
message CollateralizeAddr { message CollateralizeAddr {
...@@ -145,6 +146,7 @@ message RepCollateralizeCurrentInfo { ...@@ -145,6 +146,7 @@ message RepCollateralizeCurrentInfo {
float stabilityFeeRatio = 5; //稳定费 float stabilityFeeRatio = 5; //稳定费
string createAddr = 6; //创建人地址 string createAddr = 6; //创建人地址
int64 balance = 7; //剩余可借贷金额(ccny) int64 balance = 7; //剩余可借贷金额(ccny)
int64 period = 8; //合约期限
} }
// 根据ID列表查询多期借贷信息 // 根据ID列表查询多期借贷信息
...@@ -203,3 +205,13 @@ message ReqCollateralizeRecord { ...@@ -203,3 +205,13 @@ message ReqCollateralizeRecord {
message RepCollateralizeRecord { message RepCollateralizeRecord {
BorrowRecord record = 1; BorrowRecord record = 1;
} }
// 返回放贷配置
message RepCollateralizeConfig {
int64 debtCeiling = 1; //单用户可借出的限额(ccny)
float liquidationRatio = 2; //清算比例
float stabilityFeeRatio = 3; //稳定费
int64 period = 4; //合约期限
int64 collTotalBalance = 5; //放贷总量
int64 collBalance = 6; //剩余放贷额度
}
\ No newline at end of file
...@@ -331,6 +331,7 @@ func CreateRawCollateralizeManageTx(cfg *types.Chain33Config, parm *Collateraliz ...@@ -331,6 +331,7 @@ func CreateRawCollateralizeManageTx(cfg *types.Chain33Config, parm *Collateraliz
LiquidationRatio: parm.LiquidationRatio, LiquidationRatio: parm.LiquidationRatio,
StabilityFeeRatio: parm.StabilityFeeRatio, StabilityFeeRatio: parm.StabilityFeeRatio,
Period: parm.Period, Period: parm.Period,
CollTotalBalance: parm.TotalBalance,
} }
manage := &CollateralizeAction{ manage := &CollateralizeAction{
......
...@@ -541,6 +541,7 @@ type CollateralizeManage struct { ...@@ -541,6 +541,7 @@ type CollateralizeManage struct {
LiquidationRatio float32 `protobuf:"fixed32,2,opt,name=liquidationRatio,proto3" json:"liquidationRatio,omitempty"` LiquidationRatio float32 `protobuf:"fixed32,2,opt,name=liquidationRatio,proto3" json:"liquidationRatio,omitempty"`
StabilityFeeRatio float32 `protobuf:"fixed32,3,opt,name=stabilityFeeRatio,proto3" json:"stabilityFeeRatio,omitempty"` StabilityFeeRatio float32 `protobuf:"fixed32,3,opt,name=stabilityFeeRatio,proto3" json:"stabilityFeeRatio,omitempty"`
Period int64 `protobuf:"varint,4,opt,name=period,proto3" json:"period,omitempty"` Period int64 `protobuf:"varint,4,opt,name=period,proto3" json:"period,omitempty"`
CollTotalBalance int64 `protobuf:"varint,5,opt,name=collTotalBalance,proto3" json:"collTotalBalance,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:"-"`
...@@ -599,6 +600,13 @@ func (m *CollateralizeManage) GetPeriod() int64 { ...@@ -599,6 +600,13 @@ func (m *CollateralizeManage) GetPeriod() int64 {
return 0 return 0
} }
func (m *CollateralizeManage) GetCollTotalBalance() int64 {
if m != nil {
return m.CollTotalBalance
}
return 0
}
type CollateralizeAddr struct { type CollateralizeAddr struct {
SuperAddrs []string `protobuf:"bytes,1,rep,name=superAddrs,proto3" json:"superAddrs,omitempty"` SuperAddrs []string `protobuf:"bytes,1,rep,name=superAddrs,proto3" json:"superAddrs,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
...@@ -1175,6 +1183,7 @@ type RepCollateralizeCurrentInfo struct { ...@@ -1175,6 +1183,7 @@ type RepCollateralizeCurrentInfo struct {
StabilityFeeRatio float32 `protobuf:"fixed32,5,opt,name=stabilityFeeRatio,proto3" json:"stabilityFeeRatio,omitempty"` StabilityFeeRatio float32 `protobuf:"fixed32,5,opt,name=stabilityFeeRatio,proto3" json:"stabilityFeeRatio,omitempty"`
CreateAddr string `protobuf:"bytes,6,opt,name=createAddr,proto3" json:"createAddr,omitempty"` CreateAddr string `protobuf:"bytes,6,opt,name=createAddr,proto3" json:"createAddr,omitempty"`
Balance int64 `protobuf:"varint,7,opt,name=balance,proto3" json:"balance,omitempty"` Balance int64 `protobuf:"varint,7,opt,name=balance,proto3" json:"balance,omitempty"`
Period int64 `protobuf:"varint,8,opt,name=period,proto3" json:"period,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:"-"`
...@@ -1254,6 +1263,13 @@ func (m *RepCollateralizeCurrentInfo) GetBalance() int64 { ...@@ -1254,6 +1263,13 @@ func (m *RepCollateralizeCurrentInfo) GetBalance() int64 {
return 0 return 0
} }
func (m *RepCollateralizeCurrentInfo) GetPeriod() int64 {
if m != nil {
return m.Period
}
return 0
}
// 根据ID列表查询多期借贷信息 // 根据ID列表查询多期借贷信息
type ReqCollateralizeInfos struct { type ReqCollateralizeInfos struct {
CollateralizeIds []string `protobuf:"bytes,1,rep,name=collateralizeIds,proto3" json:"collateralizeIds,omitempty"` CollateralizeIds []string `protobuf:"bytes,1,rep,name=collateralizeIds,proto3" json:"collateralizeIds,omitempty"`
...@@ -1710,6 +1726,86 @@ func (m *RepCollateralizeRecord) GetRecord() *BorrowRecord { ...@@ -1710,6 +1726,86 @@ func (m *RepCollateralizeRecord) GetRecord() *BorrowRecord {
return nil return nil
} }
// 返回放贷配置
type RepCollateralizeConfig struct {
DebtCeiling int64 `protobuf:"varint,1,opt,name=debtCeiling,proto3" json:"debtCeiling,omitempty"`
LiquidationRatio float32 `protobuf:"fixed32,2,opt,name=liquidationRatio,proto3" json:"liquidationRatio,omitempty"`
StabilityFeeRatio float32 `protobuf:"fixed32,3,opt,name=stabilityFeeRatio,proto3" json:"stabilityFeeRatio,omitempty"`
Period int64 `protobuf:"varint,4,opt,name=period,proto3" json:"period,omitempty"`
CollTotalBalance int64 `protobuf:"varint,5,opt,name=collTotalBalance,proto3" json:"collTotalBalance,omitempty"`
CollBalance int64 `protobuf:"varint,6,opt,name=collBalance,proto3" json:"collBalance,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *RepCollateralizeConfig) Reset() { *m = RepCollateralizeConfig{} }
func (m *RepCollateralizeConfig) String() string { return proto.CompactTextString(m) }
func (*RepCollateralizeConfig) ProtoMessage() {}
func (*RepCollateralizeConfig) Descriptor() ([]byte, []int) {
return fileDescriptor_a988fb4a61381972, []int{27}
}
func (m *RepCollateralizeConfig) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RepCollateralizeConfig.Unmarshal(m, b)
}
func (m *RepCollateralizeConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_RepCollateralizeConfig.Marshal(b, m, deterministic)
}
func (m *RepCollateralizeConfig) XXX_Merge(src proto.Message) {
xxx_messageInfo_RepCollateralizeConfig.Merge(m, src)
}
func (m *RepCollateralizeConfig) XXX_Size() int {
return xxx_messageInfo_RepCollateralizeConfig.Size(m)
}
func (m *RepCollateralizeConfig) XXX_DiscardUnknown() {
xxx_messageInfo_RepCollateralizeConfig.DiscardUnknown(m)
}
var xxx_messageInfo_RepCollateralizeConfig proto.InternalMessageInfo
func (m *RepCollateralizeConfig) GetDebtCeiling() int64 {
if m != nil {
return m.DebtCeiling
}
return 0
}
func (m *RepCollateralizeConfig) GetLiquidationRatio() float32 {
if m != nil {
return m.LiquidationRatio
}
return 0
}
func (m *RepCollateralizeConfig) GetStabilityFeeRatio() float32 {
if m != nil {
return m.StabilityFeeRatio
}
return 0
}
func (m *RepCollateralizeConfig) GetPeriod() int64 {
if m != nil {
return m.Period
}
return 0
}
func (m *RepCollateralizeConfig) GetCollTotalBalance() int64 {
if m != nil {
return m.CollTotalBalance
}
return 0
}
func (m *RepCollateralizeConfig) GetCollBalance() int64 {
if m != nil {
return m.CollBalance
}
return 0
}
func init() { func init() {
proto.RegisterType((*Collateralize)(nil), "types.Collateralize") proto.RegisterType((*Collateralize)(nil), "types.Collateralize")
proto.RegisterType((*BorrowRecord)(nil), "types.BorrowRecord") proto.RegisterType((*BorrowRecord)(nil), "types.BorrowRecord")
...@@ -1738,82 +1834,85 @@ func init() { ...@@ -1738,82 +1834,85 @@ func init() {
proto.RegisterType((*RepCollateralizeRecords)(nil), "types.RepCollateralizeRecords") proto.RegisterType((*RepCollateralizeRecords)(nil), "types.RepCollateralizeRecords")
proto.RegisterType((*ReqCollateralizeRecord)(nil), "types.ReqCollateralizeRecord") proto.RegisterType((*ReqCollateralizeRecord)(nil), "types.ReqCollateralizeRecord")
proto.RegisterType((*RepCollateralizeRecord)(nil), "types.RepCollateralizeRecord") proto.RegisterType((*RepCollateralizeRecord)(nil), "types.RepCollateralizeRecord")
proto.RegisterType((*RepCollateralizeConfig)(nil), "types.RepCollateralizeConfig")
} }
func init() { proto.RegisterFile("collateralize.proto", fileDescriptor_a988fb4a61381972) } func init() { proto.RegisterFile("collateralize.proto", fileDescriptor_a988fb4a61381972) }
var fileDescriptor_a988fb4a61381972 = []byte{ var fileDescriptor_a988fb4a61381972 = []byte{
// 1140 bytes of a gzipped FileDescriptorProto // 1181 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x57, 0xdd, 0x6e, 0xdc, 0x44, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x58, 0xdd, 0x6e, 0xdc, 0x44,
0x14, 0xae, 0xed, 0xfd, 0xc9, 0x9e, 0x4d, 0xda, 0x74, 0x12, 0x82, 0x09, 0x51, 0xb4, 0xb2, 0x90, 0x14, 0xae, 0xed, 0xfd, 0xc9, 0x9e, 0x4d, 0xda, 0x74, 0x12, 0x82, 0x09, 0x51, 0xb4, 0xb2, 0x90,
0x58, 0xf1, 0x13, 0x89, 0xb4, 0x42, 0x54, 0x48, 0x88, 0x64, 0xdb, 0x2a, 0x2b, 0x15, 0xa9, 0x32, 0x58, 0xf1, 0x13, 0x89, 0xb4, 0x42, 0x54, 0x48, 0x88, 0x64, 0xdb, 0x2a, 0x2b, 0x15, 0xa9, 0x32,
0x05, 0x21, 0x24, 0x90, 0xbc, 0xf6, 0xa4, 0x58, 0x72, 0x6c, 0x67, 0x3c, 0x1b, 0xb2, 0xdc, 0xd3, 0x05, 0x21, 0x24, 0x90, 0xbc, 0xf6, 0x24, 0x58, 0x72, 0x6c, 0x67, 0x3c, 0x1b, 0xb2, 0xdc, 0xd3,
0x5b, 0x5e, 0x80, 0x17, 0xe0, 0x05, 0x78, 0x0f, 0xde, 0x08, 0xcd, 0x99, 0xf1, 0xdf, 0xd8, 0x8e, 0xa7, 0xe0, 0x9e, 0x37, 0xe0, 0x3d, 0xb8, 0xe0, 0x65, 0xb8, 0x42, 0x73, 0x66, 0xfc, 0x37, 0xb6,
0x76, 0x81, 0x2b, 0x6e, 0x56, 0x3b, 0x67, 0xbe, 0x33, 0x73, 0xe6, 0x3b, 0xdf, 0x9c, 0x33, 0x86, 0xa3, 0x2c, 0x70, 0x03, 0x37, 0xd5, 0xce, 0x99, 0x6f, 0xce, 0x1c, 0x7f, 0xe7, 0x3b, 0xe7, 0x4c,
0x3d, 0x3f, 0x89, 0x22, 0x8f, 0x53, 0xe6, 0x45, 0xe1, 0x2f, 0xf4, 0x24, 0x65, 0x09, 0x4f, 0x48, 0x03, 0x3b, 0x7e, 0x12, 0x45, 0x1e, 0xa7, 0xcc, 0x8b, 0xc2, 0x9f, 0xe8, 0x51, 0xca, 0x12, 0x9e,
0x9f, 0xaf, 0x52, 0x9a, 0x39, 0x7f, 0xf5, 0x60, 0x67, 0x56, 0x9d, 0x26, 0x53, 0x78, 0x50, 0xc3, 0x90, 0x3e, 0x5f, 0xa5, 0x34, 0x73, 0x7e, 0xef, 0xc1, 0xd6, 0xac, 0xba, 0x4d, 0xa6, 0xf0, 0xa0,
0xcf, 0x03, 0xdb, 0x98, 0x18, 0xd3, 0x91, 0xab, 0x9b, 0x89, 0x03, 0xdb, 0x3c, 0xe1, 0x5e, 0x74, 0x86, 0x9f, 0x07, 0xb6, 0x31, 0x31, 0xa6, 0x23, 0x57, 0x37, 0x13, 0x07, 0x36, 0x79, 0xc2, 0xbd,
0xee, 0x45, 0x5e, 0xec, 0x53, 0xdb, 0x9c, 0x18, 0x53, 0xcb, 0xad, 0xd9, 0xc8, 0x04, 0xc6, 0x01, 0xe8, 0xd4, 0x8b, 0xbc, 0xd8, 0xa7, 0xb6, 0x39, 0x31, 0xa6, 0x96, 0x5b, 0xb3, 0x91, 0x09, 0x8c,
0x5d, 0xf0, 0x19, 0x0d, 0xa3, 0x30, 0x7e, 0x6d, 0x5b, 0x08, 0xa9, 0x9a, 0xc8, 0x07, 0xb0, 0x1b, 0x03, 0xba, 0xe0, 0x33, 0x1a, 0x46, 0x61, 0x7c, 0x61, 0x5b, 0x08, 0xa9, 0x9a, 0xc8, 0x7b, 0xb0,
0x85, 0xd7, 0xcb, 0x30, 0xf0, 0x78, 0x98, 0xc4, 0xae, 0xf8, 0xb5, 0x7b, 0x13, 0x63, 0x6a, 0xba, 0x1d, 0x85, 0x57, 0xcb, 0x30, 0xf0, 0x78, 0x98, 0xc4, 0xae, 0xf8, 0xd7, 0xee, 0x4d, 0x8c, 0xa9,
0x0d, 0x3b, 0xf9, 0x08, 0x1e, 0x66, 0xdc, 0x5b, 0x84, 0x51, 0xc8, 0x57, 0xcf, 0x29, 0x95, 0xe0, 0xe9, 0x36, 0xec, 0xe4, 0x03, 0x78, 0x98, 0x71, 0x6f, 0x11, 0x46, 0x21, 0x5f, 0x3d, 0xa7, 0x54,
0x3e, 0x82, 0x9b, 0x13, 0xe4, 0x18, 0xc0, 0x67, 0xd4, 0xe3, 0xf4, 0x2c, 0x08, 0x98, 0x3d, 0xc0, 0x82, 0xfb, 0x08, 0x6e, 0x6e, 0x90, 0x43, 0x00, 0x9f, 0x51, 0x8f, 0xd3, 0x93, 0x20, 0x60, 0xf6,
0x43, 0x54, 0x2c, 0xc4, 0x86, 0xe1, 0x42, 0x85, 0x3e, 0xc4, 0xb8, 0xf2, 0x21, 0x79, 0x02, 0x3b, 0x00, 0x3f, 0xa2, 0x62, 0x21, 0x36, 0x0c, 0x17, 0x2a, 0xf4, 0x21, 0xc6, 0x95, 0x2f, 0xc9, 0x13,
0x8b, 0x84, 0xb1, 0xe4, 0x67, 0x97, 0xfa, 0x09, 0x0b, 0x32, 0x7b, 0x6b, 0x62, 0x4d, 0xc7, 0xa7, 0xd8, 0x5a, 0x24, 0x8c, 0x25, 0x3f, 0xba, 0xd4, 0x4f, 0x58, 0x90, 0xd9, 0x1b, 0x13, 0x6b, 0x3a,
0x7b, 0x27, 0x48, 0xda, 0xc9, 0x79, 0x65, 0xce, 0xad, 0x23, 0xc9, 0xe7, 0x70, 0x7f, 0x1e, 0xdf, 0x3e, 0xde, 0x39, 0x42, 0xd2, 0x8e, 0x4e, 0x2b, 0x7b, 0x6e, 0x1d, 0x49, 0x3e, 0x85, 0xfb, 0xf3,
0x78, 0x51, 0x18, 0xe4, 0xbe, 0xa3, 0x6e, 0x5f, 0x0d, 0x4a, 0x0e, 0x60, 0x90, 0x71, 0x8f, 0x2f, 0xf8, 0xda, 0x8b, 0xc2, 0x20, 0x3f, 0x3b, 0xea, 0x3e, 0xab, 0x41, 0xc9, 0x1e, 0x0c, 0x32, 0xee,
0x33, 0x1b, 0x26, 0xc6, 0xb4, 0xef, 0xaa, 0x11, 0xf9, 0x14, 0x0e, 0x04, 0xf3, 0x19, 0x7f, 0x51, 0xf1, 0x65, 0x66, 0xc3, 0xc4, 0x98, 0xf6, 0x5d, 0xb5, 0x22, 0x1f, 0xc3, 0x9e, 0x60, 0x3e, 0xe3,
0x32, 0xf2, 0x92, 0x85, 0x3e, 0xb5, 0xc7, 0x78, 0xf8, 0x8e, 0x59, 0xb1, 0x5e, 0x4a, 0x59, 0x98, 0x2f, 0x4a, 0x46, 0x5e, 0xb2, 0xd0, 0xa7, 0xf6, 0x18, 0x3f, 0xbe, 0x63, 0x57, 0xf8, 0x4b, 0x29,
0x04, 0xf6, 0x36, 0x1e, 0x50, 0x8d, 0x90, 0x73, 0xf4, 0x78, 0x76, 0x9b, 0x86, 0x8c, 0xbe, 0x0a, 0x0b, 0x93, 0xc0, 0xde, 0xc4, 0x0f, 0x54, 0x2b, 0xe4, 0x1c, 0x4f, 0x3c, 0xbb, 0x49, 0x43, 0x46,
0xaf, 0xa8, 0xbd, 0x83, 0x88, 0x86, 0x9d, 0xec, 0x43, 0x3f, 0x8c, 0x03, 0x7a, 0x6b, 0xdf, 0x47, 0x5f, 0x85, 0x97, 0xd4, 0xde, 0x42, 0x44, 0xc3, 0x4e, 0x76, 0xa1, 0x1f, 0xc6, 0x01, 0xbd, 0xb1,
0x80, 0x1c, 0x90, 0x43, 0xd8, 0x4a, 0x19, 0x9d, 0xe3, 0xc4, 0x03, 0x9c, 0x28, 0xc6, 0xce, 0x9f, 0xef, 0x23, 0x40, 0x2e, 0xc8, 0x3e, 0x6c, 0xa4, 0x8c, 0xce, 0x71, 0xe3, 0x01, 0x6e, 0x14, 0x6b,
0x16, 0x6c, 0x57, 0x8f, 0x29, 0x44, 0xe0, 0xf9, 0x7e, 0xb2, 0x8c, 0x39, 0x66, 0x42, 0xca, 0xa9, 0xe7, 0x37, 0x0b, 0x36, 0xab, 0x9f, 0x29, 0x44, 0xe0, 0xf9, 0x7e, 0xb2, 0x8c, 0x39, 0x66, 0x42,
0x6a, 0x22, 0x47, 0x30, 0xca, 0xb8, 0xc7, 0x38, 0x46, 0x22, 0x75, 0x54, 0x1a, 0xea, 0x92, 0xfc, 0xca, 0xa9, 0x6a, 0x22, 0x07, 0x30, 0xca, 0xb8, 0xc7, 0x38, 0x46, 0x22, 0x75, 0x54, 0x1a, 0xea,
0xd6, 0x8b, 0x96, 0x54, 0x09, 0x49, 0x37, 0xd7, 0x91, 0x92, 0x21, 0xa9, 0x25, 0xdd, 0x2c, 0x76, 0x92, 0xfc, 0xda, 0x8b, 0x96, 0x54, 0x09, 0x49, 0x37, 0xd7, 0x91, 0x92, 0x21, 0xa9, 0x25, 0xdd,
0x14, 0x2a, 0x94, 0xab, 0xf5, 0xe5, 0x8e, 0x85, 0x41, 0x13, 0xa5, 0x5c, 0x68, 0xd0, 0x10, 0x65, 0x2c, 0x6e, 0x14, 0x2a, 0x94, 0xde, 0xfa, 0xf2, 0xc6, 0xc2, 0xa0, 0x89, 0x52, 0x3a, 0x1a, 0x34,
0x41, 0xb2, 0x4a, 0xda, 0xb0, 0x96, 0xb4, 0xf7, 0x60, 0x27, 0xc7, 0x4a, 0x86, 0xb7, 0x70, 0x97, 0x44, 0x59, 0x90, 0xac, 0x92, 0x36, 0xac, 0x25, 0xed, 0x1d, 0xd8, 0xca, 0xb1, 0x92, 0xe1, 0x0d,
0xba, 0x51, 0x88, 0x94, 0x96, 0x49, 0x18, 0x21, 0xa4, 0x62, 0x11, 0x71, 0xa6, 0x8c, 0x7e, 0x5d, 0xbc, 0xa5, 0x6e, 0x14, 0x22, 0xa5, 0x65, 0x12, 0x46, 0x08, 0xa9, 0x58, 0x44, 0x9c, 0x29, 0xa3,
0x55, 0x45, 0x69, 0x10, 0x69, 0x60, 0xc8, 0xf1, 0x3c, 0x40, 0x29, 0x8c, 0xdc, 0x62, 0x5c, 0x26, 0x5f, 0x56, 0x55, 0x51, 0x1a, 0x44, 0x1a, 0x18, 0x72, 0x3c, 0x0f, 0x50, 0x0a, 0x23, 0xb7, 0x58,
0x6e, 0xbb, 0x2b, 0x71, 0x3b, 0x5a, 0xe2, 0xde, 0x18, 0xb0, 0x7b, 0x96, 0x65, 0x94, 0xe3, 0xc1, 0x97, 0x89, 0xdb, 0xec, 0x4a, 0xdc, 0x96, 0x96, 0xb8, 0xd7, 0x06, 0x6c, 0x9f, 0x64, 0x19, 0xe5,
0x54, 0xf2, 0x8e, 0x01, 0xe4, 0x92, 0x18, 0xa0, 0x21, 0x03, 0x2c, 0x2d, 0x62, 0xc1, 0x05, 0x5f, 0xf8, 0x61, 0x2a, 0x79, 0x87, 0x00, 0xd2, 0x25, 0x06, 0x68, 0xc8, 0x00, 0x4b, 0x8b, 0x70, 0xb8,
0x49, 0x8a, 0x4c, 0xa4, 0xa8, 0x18, 0xcb, 0x39, 0x5f, 0xce, 0x59, 0xf9, 0x9c, 0x5f, 0xcc, 0x51, 0xe0, 0x2b, 0x49, 0x91, 0x89, 0x14, 0x15, 0x6b, 0xb9, 0xe7, 0xcb, 0x3d, 0x2b, 0xdf, 0xf3, 0x8b,
0xfe, 0x53, 0x35, 0x47, 0xc5, 0xd8, 0xf9, 0xdd, 0x82, 0xbd, 0x5a, 0x55, 0x3a, 0xf3, 0x05, 0xdf, 0x3d, 0xca, 0x7f, 0xa8, 0xe6, 0xa8, 0x58, 0x3b, 0xbf, 0x58, 0xb0, 0x53, 0xeb, 0x4a, 0x27, 0xbe,
0xe4, 0x31, 0x0c, 0xe4, 0xfd, 0xc5, 0x38, 0xc6, 0xa7, 0x87, 0xea, 0x52, 0xd5, 0xb0, 0x33, 0x44, 0xe0, 0x9b, 0x3c, 0x86, 0x81, 0xac, 0x5f, 0x8c, 0x63, 0x7c, 0xbc, 0xaf, 0x8a, 0xaa, 0x86, 0x9d,
0x5c, 0xdc, 0x73, 0x15, 0x56, 0x78, 0xc9, 0x3b, 0x8a, 0xf1, 0x75, 0x78, 0x49, 0xc1, 0x0a, 0x2f, 0x21, 0xe2, 0xec, 0x9e, 0xab, 0xb0, 0xe2, 0x94, 0xac, 0x51, 0x8c, 0xaf, 0xe3, 0x94, 0x14, 0xac,
0x89, 0x25, 0x9f, 0x40, 0x9f, 0xd1, 0xd4, 0x5b, 0x61, 0xe0, 0xe3, 0xd3, 0x77, 0xda, 0x9c, 0x5c, 0x38, 0x25, 0xb1, 0xe4, 0x23, 0xe8, 0x33, 0x9a, 0x7a, 0x2b, 0x0c, 0x7c, 0x7c, 0xfc, 0x56, 0xdb,
0x01, 0xb8, 0xb8, 0xe7, 0x4a, 0xa4, 0xd8, 0xc8, 0x4b, 0x53, 0x1a, 0x07, 0x78, 0xa0, 0x8e, 0x8d, 0x21, 0x57, 0x00, 0xce, 0xee, 0xb9, 0x12, 0x29, 0x2e, 0xf2, 0xd2, 0x94, 0xc6, 0x01, 0x7e, 0x50,
0xce, 0x10, 0x21, 0x36, 0x92, 0x58, 0x72, 0x02, 0xbd, 0x4b, 0x4a, 0x03, 0x14, 0xe1, 0xf8, 0xd4, 0xc7, 0x45, 0x27, 0x88, 0x10, 0x17, 0x49, 0x2c, 0x39, 0x82, 0xde, 0x39, 0xa5, 0x01, 0x8a, 0x70,
0x6e, 0xf3, 0x79, 0x4e, 0xa9, 0xf0, 0x40, 0x9c, 0x08, 0xcc, 0x8f, 0x92, 0x4c, 0x0a, 0xb2, 0x23, 0x7c, 0x6c, 0xb7, 0x9d, 0x79, 0x4e, 0xa9, 0x38, 0x81, 0x38, 0x11, 0x98, 0x1f, 0x25, 0x99, 0x14,
0xb0, 0x99, 0x00, 0x88, 0xc0, 0x10, 0x29, 0x02, 0xbb, 0xf2, 0x62, 0xef, 0xb5, 0x2c, 0x74, 0x1d, 0x64, 0x47, 0x60, 0x33, 0x01, 0x10, 0x81, 0x21, 0x52, 0x04, 0x76, 0xe9, 0xc5, 0xde, 0x85, 0x6c,
0x81, 0x7d, 0x85, 0x08, 0x11, 0x98, 0xc4, 0x92, 0xfb, 0x60, 0xf2, 0x95, 0xd2, 0x9c, 0xc9, 0x57, 0x74, 0x1d, 0x81, 0x7d, 0x81, 0x08, 0x11, 0x98, 0xc4, 0x92, 0xfb, 0x60, 0xf2, 0x95, 0xd2, 0x9c,
0xe7, 0x43, 0xe8, 0xdf, 0x88, 0xdb, 0xe1, 0xfc, 0x61, 0x68, 0xe9, 0x91, 0xae, 0x7a, 0xb1, 0x37, 0xc9, 0x57, 0xa7, 0x43, 0xe8, 0x5f, 0x8b, 0xea, 0x70, 0xfe, 0x30, 0xb4, 0xf4, 0xc8, 0xa3, 0x7a,
0xd6, 0x2b, 0xf6, 0xe6, 0x26, 0xc5, 0xde, 0xea, 0x2a, 0xf6, 0x65, 0xa9, 0xeb, 0x55, 0x4b, 0x9d, 0xb3, 0x37, 0xee, 0xd6, 0xec, 0xcd, 0x75, 0x9a, 0xbd, 0xd5, 0xd5, 0xec, 0xcb, 0x56, 0xd7, 0xd3,
0xf3, 0x08, 0x1e, 0xd6, 0xe9, 0x17, 0xe5, 0xe6, 0x18, 0x20, 0x5b, 0xa6, 0x94, 0x89, 0x41, 0x66, 0x5b, 0x9d, 0x28, 0xfd, 0x57, 0xd5, 0x41, 0x25, 0xcb, 0xbd, 0x61, 0x77, 0x1e, 0xc1, 0xc3, 0x7a,
0x1b, 0x13, 0x4b, 0x74, 0x86, 0xd2, 0xe2, 0x3c, 0xd1, 0xce, 0x27, 0x25, 0xd5, 0x68, 0x78, 0x46, 0xaa, 0x44, 0x6b, 0x3a, 0x04, 0xc8, 0x96, 0x29, 0x65, 0x62, 0x91, 0xd9, 0xc6, 0xc4, 0x12, 0x53,
0xb3, 0xe1, 0x39, 0xdf, 0x68, 0xae, 0x52, 0x57, 0x1b, 0x74, 0xd5, 0x7d, 0xc5, 0xb2, 0x2a, 0x83, 0xa4, 0xb4, 0x38, 0x4f, 0x34, 0x2e, 0xa4, 0xfc, 0x1a, 0xc3, 0xd1, 0x68, 0x0e, 0x47, 0xe7, 0x2b,
0x8a, 0xf2, 0xef, 0x81, 0x34, 0x95, 0xb7, 0xc1, 0xaa, 0xd5, 0x42, 0x61, 0xd6, 0x0b, 0x85, 0xf3, 0xed, 0xa8, 0xd4, 0xe0, 0x1a, 0x13, 0x78, 0x57, 0x65, 0x44, 0xb5, 0x4c, 0x95, 0x9e, 0x6f, 0x81,
0xab, 0x9e, 0x4e, 0x29, 0xd1, 0xff, 0x66, 0xf5, 0xf5, 0x8b, 0xb7, 0xf3, 0x83, 0x96, 0x2a, 0xa1, 0x34, 0x55, 0xba, 0x86, 0xd7, 0x6a, 0x53, 0x31, 0xeb, 0x4d, 0xc5, 0xf9, 0x59, 0x4f, 0xbd, 0x94,
0x7a, 0xb1, 0xb4, 0xc0, 0xbd, 0x5a, 0xa5, 0x92, 0xef, 0xbe, 0x5b, 0x8c, 0x05, 0x55, 0xa9, 0xaa, 0xf3, 0xbf, 0xe3, 0xfd, 0xee, 0x8d, 0xde, 0xf9, 0x4e, 0x4b, 0x95, 0xa8, 0x10, 0xe1, 0x1a, 0x73,
0x3b, 0xd6, 0xd4, 0x74, 0xe5, 0x40, 0x28, 0xe1, 0x26, 0x89, 0x96, 0x57, 0x62, 0x1f, 0x4b, 0x28, 0xba, 0x4a, 0x25, 0xdf, 0x7d, 0xb7, 0x58, 0x0b, 0xaa, 0x52, 0xd5, 0xa3, 0xac, 0xa9, 0xe9, 0xca,
0x41, 0x8e, 0x9c, 0x2f, 0x34, 0x0a, 0xf1, 0x8e, 0xac, 0x7f, 0x48, 0xe7, 0x8d, 0x09, 0xfb, 0x2e, 0x85, 0x50, 0xcd, 0x75, 0x12, 0x2d, 0x2f, 0xc5, 0x3d, 0x96, 0x50, 0x8d, 0x5c, 0x39, 0x9f, 0x69,
0xf5, 0x69, 0x98, 0xf2, 0x7f, 0xfa, 0x62, 0xaa, 0xbf, 0x48, 0xcc, 0xc6, 0x8b, 0x44, 0x6b, 0x94, 0x14, 0x62, 0x3d, 0xdd, 0xfd, 0x23, 0x9d, 0xd7, 0x26, 0xec, 0xba, 0xd4, 0xa7, 0x61, 0xca, 0xff,
0x56, 0xb3, 0x51, 0x56, 0x99, 0xee, 0x69, 0x4c, 0x97, 0x8d, 0xa8, 0x5f, 0x6b, 0x44, 0x47, 0x30, 0xee, 0xeb, 0xaa, 0xfe, 0x7a, 0x31, 0x1b, 0xaf, 0x17, 0x6d, 0xa8, 0x5a, 0xcd, 0xa1, 0x5a, 0x65,
0x7a, 0x59, 0xb4, 0x90, 0x81, 0x6c, 0x21, 0x85, 0xa1, 0x6c, 0x13, 0xc3, 0xae, 0x36, 0xb1, 0xa5, 0xba, 0xa7, 0x31, 0x5d, 0x0e, 0xad, 0x7e, 0x6d, 0x68, 0x1d, 0xc0, 0xe8, 0x65, 0x31, 0x6e, 0x06,
0xb5, 0x89, 0x86, 0x5e, 0x54, 0xa7, 0x58, 0x9f, 0x07, 0x02, 0x3d, 0xaf, 0x64, 0x00, 0xff, 0xd7, 0x72, 0xdc, 0x14, 0x86, 0x72, 0xa4, 0x0c, 0xbb, 0x46, 0xca, 0x86, 0x36, 0x52, 0x1a, 0x7a, 0x51,
0x4e, 0x66, 0x75, 0xb5, 0xb2, 0x5e, 0x25, 0x46, 0xe7, 0x05, 0xec, 0xb7, 0x84, 0x91, 0x91, 0xc7, 0x53, 0xe5, 0xee, 0x3c, 0x10, 0xe8, 0x79, 0x25, 0x03, 0xf8, 0xbb, 0xf6, 0x65, 0x56, 0xd7, 0xd8,
0x30, 0x64, 0xea, 0xed, 0x65, 0xe0, 0xdb, 0xeb, 0xb0, 0xbd, 0x76, 0xe3, 0x13, 0x2c, 0x87, 0x3a, 0xeb, 0x55, 0x62, 0x74, 0x5e, 0xc0, 0x6e, 0x4b, 0x18, 0x19, 0x79, 0x0c, 0x43, 0xa6, 0xde, 0x69,
0x5f, 0x8a, 0xec, 0x5e, 0xd7, 0x20, 0xf3, 0xf8, 0x32, 0xd9, 0x40, 0x20, 0xbf, 0x99, 0xf0, 0xae, 0x06, 0xbe, 0xd3, 0xf6, 0xdb, 0xfb, 0x3c, 0x3e, 0xd7, 0x72, 0xa8, 0xf3, 0xb9, 0xc8, 0xee, 0x55,
0x4b, 0xd3, 0xba, 0xc8, 0x96, 0x8c, 0xd1, 0x98, 0xe3, 0x4a, 0x65, 0x7e, 0x8c, 0x5a, 0x7e, 0xfe, 0x0d, 0x32, 0x8f, 0xcf, 0x93, 0x35, 0x04, 0xf2, 0xab, 0x09, 0x6f, 0xbb, 0x34, 0xad, 0x8b, 0x6c,
0xb7, 0xef, 0x68, 0x67, 0x06, 0x6f, 0xb5, 0x71, 0x9a, 0x89, 0x60, 0x35, 0xf6, 0xf2, 0x32, 0xdc, 0xc9, 0x18, 0x8d, 0x39, 0x7a, 0x2a, 0xf3, 0x63, 0xd4, 0xf2, 0xf3, 0xff, 0x7d, 0x73, 0x97, 0x0d,
0xb0, 0x3b, 0xdf, 0xc1, 0xd1, 0x1d, 0xac, 0x66, 0xe4, 0x33, 0x21, 0x8e, 0xcb, 0x24, 0x4f, 0xb6, 0x7c, 0xa3, 0xda, 0xc0, 0x9d, 0x19, 0xbc, 0xd1, 0xc6, 0x75, 0x96, 0x77, 0xf6, 0x0a, 0xab, 0x79,
0xa3, 0x92, 0x7d, 0x87, 0x8f, 0x2b, 0x1d, 0x9c, 0x0b, 0xb0, 0xf5, 0xf0, 0xce, 0x57, 0xea, 0x5a, 0x7b, 0x6e, 0xd8, 0x9d, 0x6f, 0xe0, 0xe0, 0x16, 0xb6, 0x33, 0xf2, 0x89, 0x10, 0xcd, 0x79, 0x92,
0x74, 0x25, 0xab, 0x90, 0xa2, 0x59, 0x95, 0xe2, 0x39, 0x1c, 0x34, 0x57, 0x42, 0x72, 0x72, 0xa9, 0x8b, 0xc0, 0x51, 0x22, 0xb8, 0xe5, 0x8c, 0x2b, 0x0f, 0x38, 0x67, 0x60, 0xeb, 0xe1, 0x9d, 0xae,
0x1b, 0x15, 0xa9, 0xb7, 0xaf, 0xf1, 0x3e, 0xec, 0xe9, 0x31, 0xcf, 0x9f, 0x66, 0x64, 0x17, 0xac, 0x54, 0xb9, 0x74, 0x25, 0xb1, 0x90, 0xa8, 0x59, 0x95, 0xe8, 0x29, 0xec, 0x35, 0x3d, 0x21, 0x69,
0xf9, 0xd3, 0x9c, 0x1d, 0xf1, 0xd7, 0x61, 0x82, 0x90, 0xeb, 0x16, 0x31, 0xab, 0x2d, 0xff, 0xdd, 0x79, 0x09, 0x18, 0x95, 0x12, 0x68, 0xf7, 0xf1, 0x2e, 0xec, 0xe8, 0x31, 0xcf, 0x9f, 0x66, 0x64,
0x3d, 0x2c, 0x82, 0xb3, 0xaa, 0xc1, 0xdd, 0xc2, 0x71, 0xd7, 0x9e, 0x8a, 0xb0, 0xf5, 0x77, 0x2d, 0x1b, 0xac, 0xf9, 0xd3, 0x9c, 0x1d, 0xf1, 0xd3, 0x61, 0x82, 0x90, 0xab, 0x16, 0x91, 0xab, 0x2b,
0xa9, 0x35, 0xdb, 0xa9, 0xad, 0xed, 0x7c, 0x01, 0x6f, 0xeb, 0xb4, 0xe4, 0x17, 0xfd, 0x63, 0xfd, 0xff, 0x59, 0x7d, 0x16, 0xc1, 0x59, 0xd5, 0xe0, 0x6e, 0xe0, 0xb0, 0xeb, 0x4e, 0x45, 0xd8, 0xdd,
0xa2, 0xb7, 0x7e, 0x64, 0x15, 0x37, 0xfc, 0xc7, 0x66, 0x92, 0x36, 0xae, 0x5c, 0x77, 0xf5, 0xd1, 0x6f, 0x2d, 0xa9, 0x35, 0xdb, 0xa9, 0xad, 0xdd, 0x7c, 0x06, 0x6f, 0xea, 0xb4, 0xe4, 0x0d, 0xe0,
0x67, 0x62, 0xfd, 0xb6, 0x48, 0xc9, 0x87, 0x30, 0x90, 0x28, 0xf5, 0x6e, 0x6d, 0x8d, 0x53, 0x41, 0x43, 0xbd, 0x01, 0xb4, 0xfe, 0x47, 0xad, 0xa8, 0xfc, 0xef, 0x9b, 0x49, 0x5a, 0xbb, 0xa3, 0xdd,
0x16, 0x03, 0xfc, 0x40, 0x7f, 0xf4, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0x9f, 0x1f, 0x4b, 0x7d, 0x36, 0x5f, 0x9f, 0x09, 0xff, 0x6d, 0x91, 0x92, 0xf7, 0x61, 0x20, 0x51, 0xea, 0xed, 0xdb, 0x1a,
0xb7, 0x0f, 0x00, 0x00, 0xa7, 0x82, 0x38, 0x7f, 0x1a, 0x4d, 0x3f, 0xb3, 0x24, 0x3e, 0x0f, 0x2f, 0xfe, 0xeb, 0x8f, 0x34,
0x11, 0xbf, 0xb0, 0xe5, 0xb0, 0x81, 0x8c, 0xbf, 0x62, 0x5a, 0x0c, 0xf0, 0x2f, 0x1c, 0x8f, 0xfe,
0x0a, 0x00, 0x00, 0xff, 0xff, 0xdc, 0x88, 0x66, 0x50, 0xf8, 0x10, 0x00, 0x00,
} }
...@@ -51,5 +51,6 @@ type CollateralizeManageTx struct { ...@@ -51,5 +51,6 @@ type CollateralizeManageTx struct {
LiquidationRatio float32 `json:"liquidationRatio"` LiquidationRatio float32 `json:"liquidationRatio"`
StabilityFeeRatio float32 `json:"stabilityFeeRatio"` StabilityFeeRatio float32 `json:"stabilityFeeRatio"`
Period int64 `json:"period"` Period int64 `json:"period"`
TotalBalance int64 `json:"totalBalance"`
Fee int64 `json:"fee"` Fee int64 `json:"fee"`
} }
...@@ -382,6 +382,7 @@ func IssuanceQuery(cmd *cobra.Command, args []string) { ...@@ -382,6 +382,7 @@ func IssuanceQuery(cmd *cobra.Command, args []string) {
issuanceIDsS = append(issuanceIDsS, issuanceIDs) issuanceIDsS = append(issuanceIDsS, issuanceIDs)
req := &pkt.ReqIssuanceInfos{IssuanceIds: issuanceIDsS} req := &pkt.ReqIssuanceInfos{IssuanceIds: issuanceIDsS}
params.Payload = types.MustPBToJSON(req) params.Payload = types.MustPBToJSON(req)
fmt.Println(params.Payload)
var res pkt.RepIssuanceCurrentInfos var res pkt.RepIssuanceCurrentInfos
ctx := jsonrpc.NewRPCCtx(rpcLaddr, "Chain33.Query", params, &res) ctx := jsonrpc.NewRPCCtx(rpcLaddr, "Chain33.Query", params, &res)
ctx.Run() ctx.Run()
......
...@@ -32,19 +32,19 @@ func (c *Issuance) execDelLocal(tx *types.Transaction, receiptData *types.Receip ...@@ -32,19 +32,19 @@ func (c *Issuance) execDelLocal(tx *types.Transaction, receiptData *types.Receip
set.KV = append(set.KV, c.addIssuanceRecordStatus(issuanceLog.PreStatus, issuanceLog.AccountAddr, issuanceLog.PreIndex, set.KV = append(set.KV, c.addIssuanceRecordStatus(issuanceLog.PreStatus, issuanceLog.AccountAddr, issuanceLog.PreIndex,
issuanceLog.DebtId, issuanceLog.IssuanceId)...) issuanceLog.DebtId, issuanceLog.IssuanceId)...)
set.KV = append(set.KV, c.deleteIssuanceRecordStatus(issuanceLog.Status, issuanceLog.Index)...) set.KV = append(set.KV, c.deleteIssuanceRecordStatus(issuanceLog.Status, issuanceLog.Index)...)
set.KV = append(set.KV, c.addIssuanceRecordAddr(issuanceLog.AccountAddr, issuanceLog.PreIndex, issuanceLog.DebtId, //set.KV = append(set.KV, c.addIssuanceRecordAddr(issuanceLog.AccountAddr, issuanceLog.PreIndex, issuanceLog.DebtId,
issuanceLog.IssuanceId)...) // issuanceLog.IssuanceId)...)
break break
case pty.TyLogIssuanceFeed: case pty.TyLogIssuanceFeed:
set.KV = append(set.KV, c.addIssuanceRecordStatus(issuanceLog.Status, issuanceLog.AccountAddr, issuanceLog.PreIndex, set.KV = append(set.KV, c.addIssuanceRecordStatus(issuanceLog.Status, issuanceLog.AccountAddr, issuanceLog.PreIndex,
issuanceLog.DebtId, issuanceLog.IssuanceId)...) issuanceLog.DebtId, issuanceLog.IssuanceId)...)
set.KV = append(set.KV, c.deleteIssuanceRecordStatus(issuanceLog.Status, issuanceLog.Index)...) set.KV = append(set.KV, c.deleteIssuanceRecordStatus(issuanceLog.Status, issuanceLog.Index)...)
set.KV = append(set.KV, c.addIssuanceRecordAddr(issuanceLog.AccountAddr, issuanceLog.PreIndex, issuanceLog.DebtId, //set.KV = append(set.KV, c.addIssuanceRecordAddr(issuanceLog.AccountAddr, issuanceLog.PreIndex, issuanceLog.DebtId,
issuanceLog.IssuanceId)...) // issuanceLog.IssuanceId)...)
// 如果没有被清算,需要把地址索引更新 //// 如果没有被清算,需要把地址索引更新
if issuanceLog.Status == pty.IssuanceUserStatusWarning || issuanceLog.Status == pty.IssuanceUserStatusExpire { //if issuanceLog.Status == pty.IssuanceUserStatusWarning || issuanceLog.Status == pty.IssuanceUserStatusExpire {
set.KV = append(set.KV, c.deleteIssuanceRecordAddr(issuanceLog.AccountAddr, issuanceLog.Index)...) // set.KV = append(set.KV, c.deleteIssuanceRecordAddr(issuanceLog.AccountAddr, issuanceLog.Index)...)
} //}
set.KV = append(set.KV, c.deleteIssuancePriceRecord(issuanceLog.RecordTime)...) set.KV = append(set.KV, c.deleteIssuancePriceRecord(issuanceLog.RecordTime)...)
break break
case pty.TyLogIssuanceClose: case pty.TyLogIssuanceClose:
......
...@@ -35,18 +35,18 @@ func (c *Issuance) execLocal(tx *types.Transaction, receipt *types.ReceiptData) ...@@ -35,18 +35,18 @@ func (c *Issuance) execLocal(tx *types.Transaction, receipt *types.ReceiptData)
set.KV = append(set.KV, c.deleteIssuanceRecordStatus(issuanceLog.PreStatus, issuanceLog.PreIndex)...) set.KV = append(set.KV, c.deleteIssuanceRecordStatus(issuanceLog.PreStatus, issuanceLog.PreIndex)...)
set.KV = append(set.KV, c.addIssuanceRecordStatus(issuanceLog.Status, issuanceLog.AccountAddr, issuanceLog.Index, set.KV = append(set.KV, c.addIssuanceRecordStatus(issuanceLog.Status, issuanceLog.AccountAddr, issuanceLog.Index,
issuanceLog.DebtId, issuanceLog.IssuanceId)...) issuanceLog.DebtId, issuanceLog.IssuanceId)...)
set.KV = append(set.KV, c.deleteIssuanceRecordAddr(issuanceLog.AccountAddr, issuanceLog.PreIndex)...) //set.KV = append(set.KV, c.deleteIssuanceRecordAddr(issuanceLog.AccountAddr, issuanceLog.PreIndex)...)
break break
case pty.TyLogIssuanceFeed: case pty.TyLogIssuanceFeed:
set.KV = append(set.KV, c.deleteIssuanceRecordStatus(issuanceLog.PreStatus, issuanceLog.PreIndex)...) set.KV = append(set.KV, c.deleteIssuanceRecordStatus(issuanceLog.PreStatus, issuanceLog.PreIndex)...)
set.KV = append(set.KV, c.addIssuanceRecordStatus(issuanceLog.Status, issuanceLog.AccountAddr, issuanceLog.Index, set.KV = append(set.KV, c.addIssuanceRecordStatus(issuanceLog.Status, issuanceLog.AccountAddr, issuanceLog.Index,
issuanceLog.DebtId, issuanceLog.IssuanceId)...) issuanceLog.DebtId, issuanceLog.IssuanceId)...)
set.KV = append(set.KV, c.deleteIssuanceRecordAddr(issuanceLog.AccountAddr, issuanceLog.PreIndex)...) //set.KV = append(set.KV, c.deleteIssuanceRecordAddr(issuanceLog.AccountAddr, issuanceLog.PreIndex)...)
// 如果没有被清算,需要把地址索引更新 //// 如果没有被清算,需要把地址索引更新
if issuanceLog.Status == pty.IssuanceUserStatusWarning || issuanceLog.Status == pty.IssuanceUserStatusExpire { //if issuanceLog.Status == pty.IssuanceUserStatusWarning || issuanceLog.Status == pty.IssuanceUserStatusExpire {
set.KV = append(set.KV, c.addIssuanceRecordAddr(issuanceLog.AccountAddr, issuanceLog.Index, issuanceLog.DebtId, // set.KV = append(set.KV, c.addIssuanceRecordAddr(issuanceLog.AccountAddr, issuanceLog.Index, issuanceLog.DebtId,
issuanceLog.IssuanceId)...) // issuanceLog.IssuanceId)...)
} //}
set.KV = append(set.KV, c.addIssuancePriceRecord(issuanceLog.RecordTime, issuanceLog.BtyPrice)...) set.KV = append(set.KV, c.addIssuancePriceRecord(issuanceLog.RecordTime, issuanceLog.BtyPrice)...)
break break
case pty.TyLogIssuanceClose: case pty.TyLogIssuanceClose:
......
...@@ -716,9 +716,9 @@ func (action *Action) systemLiquidation(issu *pty.Issuance, price float32) (*typ ...@@ -716,9 +716,9 @@ func (action *Action) systemLiquidation(issu *pty.Issuance, price float32) (*typ
collDB := &IssuanceDB{*issu} collDB := &IssuanceDB{*issu}
for index, debtRecord := range issu.DebtRecords { for index, debtRecord := range issu.DebtRecords {
if debtRecord.LiquidationPrice * PriceWarningRate < price { if debtRecord.LiquidationPrice * PriceWarningRate < price {
if debtRecord.Status == pty.IssuanceUserStatusSystemLiquidate { if debtRecord.Status == pty.IssuanceUserStatusWarning {
debtRecord.Status = debtRecord.PreStatus debtRecord.PreStatus = debtRecord.Status
debtRecord.PreStatus = pty.IssuanceUserStatusSystemLiquidate debtRecord.Status = pty.IssuanceUserStatusCreate
} }
continue continue
} }
......
...@@ -24,6 +24,7 @@ func (c *Issuance) Query_IssuanceInfoByID(req *pty.ReqIssuanceInfo) (types.Messa ...@@ -24,6 +24,7 @@ func (c *Issuance) Query_IssuanceInfoByID(req *pty.ReqIssuanceInfo) (types.Messa
Balance: issu.Balance, Balance: issu.Balance,
CollateralValue: issu.CollateralValue, CollateralValue: issu.CollateralValue,
DebtValue: issu.DebtValue, DebtValue: issu.DebtValue,
Period: issu.Period,
}, nil }, nil
} }
...@@ -44,6 +45,7 @@ func (c *Issuance) Query_IssuanceInfoByIDs(req *pty.ReqIssuanceInfos) (types.Mes ...@@ -44,6 +45,7 @@ func (c *Issuance) Query_IssuanceInfoByIDs(req *pty.ReqIssuanceInfos) (types.Mes
Balance: issu.Balance, Balance: issu.Balance,
CollateralValue: issu.CollateralValue, CollateralValue: issu.CollateralValue,
DebtValue: issu.DebtValue, DebtValue: issu.DebtValue,
Period: issu.Period,
}) })
} }
......
...@@ -135,6 +135,7 @@ message RepIssuanceCurrentInfo { ...@@ -135,6 +135,7 @@ message RepIssuanceCurrentInfo {
int64 balance = 5; //剩余可借贷金额(ccny) int64 balance = 5; //剩余可借贷金额(ccny)
int64 collateralValue = 6; //抵押物总数量(bty) int64 collateralValue = 6; //抵押物总数量(bty)
int64 debtValue = 7; //产生的ccny数量 int64 debtValue = 7; //产生的ccny数量
int64 period = 8;//借贷最大期限
} }
// 根据ID列表查询多期借贷信息 // 根据ID列表查询多期借贷信息
......
...@@ -1073,6 +1073,7 @@ type RepIssuanceCurrentInfo struct { ...@@ -1073,6 +1073,7 @@ type RepIssuanceCurrentInfo struct {
Balance int64 `protobuf:"varint,5,opt,name=balance,proto3" json:"balance,omitempty"` Balance int64 `protobuf:"varint,5,opt,name=balance,proto3" json:"balance,omitempty"`
CollateralValue int64 `protobuf:"varint,6,opt,name=collateralValue,proto3" json:"collateralValue,omitempty"` CollateralValue int64 `protobuf:"varint,6,opt,name=collateralValue,proto3" json:"collateralValue,omitempty"`
DebtValue int64 `protobuf:"varint,7,opt,name=debtValue,proto3" json:"debtValue,omitempty"` DebtValue int64 `protobuf:"varint,7,opt,name=debtValue,proto3" json:"debtValue,omitempty"`
Period int64 `protobuf:"varint,8,opt,name=period,proto3" json:"period,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:"-"`
...@@ -1152,6 +1153,13 @@ func (m *RepIssuanceCurrentInfo) GetDebtValue() int64 { ...@@ -1152,6 +1153,13 @@ func (m *RepIssuanceCurrentInfo) GetDebtValue() int64 {
return 0 return 0
} }
func (m *RepIssuanceCurrentInfo) GetPeriod() int64 {
if m != nil {
return m.Period
}
return 0
}
// 根据ID列表查询多期借贷信息 // 根据ID列表查询多期借贷信息
type ReqIssuanceInfos struct { type ReqIssuanceInfos struct {
IssuanceIds []string `protobuf:"bytes,1,rep,name=issuanceIds,proto3" json:"issuanceIds,omitempty"` IssuanceIds []string `protobuf:"bytes,1,rep,name=issuanceIds,proto3" json:"issuanceIds,omitempty"`
...@@ -1590,72 +1598,73 @@ func init() { ...@@ -1590,72 +1598,73 @@ func init() {
func init() { proto.RegisterFile("issuance.proto", fileDescriptor_7110f4228953d675) } func init() { proto.RegisterFile("issuance.proto", fileDescriptor_7110f4228953d675) }
var fileDescriptor_7110f4228953d675 = []byte{ var fileDescriptor_7110f4228953d675 = []byte{
// 1069 bytes of a gzipped FileDescriptorProto // 1074 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x57, 0xdd, 0x6e, 0xe3, 0x44, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x57, 0xdd, 0x6e, 0xe3, 0x44,
0x14, 0xae, 0xed, 0x38, 0x3f, 0x27, 0x6d, 0xda, 0x9d, 0xed, 0x16, 0x6b, 0x05, 0xab, 0xc8, 0xe2, 0x14, 0xae, 0xed, 0x38, 0x3f, 0x27, 0x6d, 0xda, 0x9d, 0xed, 0x16, 0x6b, 0x05, 0xab, 0xc8, 0xe2,
0x22, 0x0b, 0xa8, 0x85, 0x16, 0x21, 0x71, 0x47, 0xd3, 0x02, 0x8d, 0xc4, 0x22, 0x64, 0x56, 0x2b, 0x22, 0x0b, 0xa8, 0x85, 0x16, 0x21, 0x71, 0x47, 0xd3, 0x02, 0x8d, 0xc4, 0x22, 0x64, 0x56, 0x2b,
0x6e, 0x5d, 0x7b, 0xba, 0x32, 0x72, 0x63, 0xaf, 0x3d, 0xa9, 0x36, 0xf7, 0xdc, 0x73, 0xcf, 0x53, 0x6e, 0x5d, 0x7b, 0xba, 0x32, 0x72, 0x63, 0xaf, 0x3d, 0xa9, 0x36, 0x4f, 0xc1, 0x3d, 0xe2, 0x21,
0xf0, 0x02, 0xbc, 0x15, 0x0f, 0x80, 0xce, 0x99, 0xb1, 0xc7, 0x7f, 0x69, 0x22, 0x2e, 0xf6, 0xa6, 0x78, 0x01, 0xde, 0x8a, 0x07, 0x40, 0xe7, 0xcc, 0xd8, 0xe3, 0xbf, 0x34, 0x11, 0x17, 0x7b, 0x53,
0xca, 0x9c, 0xf9, 0xe6, 0xfc, 0x7e, 0xf3, 0x79, 0x0a, 0x93, 0x28, 0xcf, 0x57, 0xfe, 0x32, 0xe0, 0x65, 0xce, 0x7c, 0x73, 0x7e, 0xbf, 0xf9, 0x3c, 0x85, 0x49, 0x94, 0xe7, 0x2b, 0x7f, 0x19, 0xf0,
0xa7, 0x69, 0x96, 0x88, 0x84, 0xd9, 0x62, 0x9d, 0xf2, 0xdc, 0xfd, 0xb7, 0x07, 0xc3, 0x85, 0xda, 0xd3, 0x34, 0x4b, 0x44, 0xc2, 0x6c, 0xb1, 0x4e, 0x79, 0xee, 0xfe, 0xdb, 0x83, 0xe1, 0x42, 0xed,
0x61, 0x2f, 0x00, 0x0a, 0xd4, 0x22, 0x74, 0x8c, 0xa9, 0x31, 0x1b, 0x79, 0x15, 0x0b, 0x73, 0x61, 0xb0, 0x17, 0x00, 0x05, 0x6a, 0x11, 0x3a, 0xc6, 0xd4, 0x98, 0x8d, 0xbc, 0x8a, 0x85, 0xb9, 0xb0,
0x5f, 0x24, 0xc2, 0x8f, 0xe7, 0x7e, 0x8c, 0x16, 0xc7, 0x9c, 0x1a, 0x33, 0xcb, 0xab, 0xd9, 0xd8, 0x2f, 0x12, 0xe1, 0xc7, 0x73, 0x3f, 0x46, 0x8b, 0x63, 0x4e, 0x8d, 0x99, 0xe5, 0xd5, 0x6c, 0x6c,
0x14, 0xc6, 0x21, 0xbf, 0x15, 0x57, 0x3c, 0x8a, 0xa3, 0xe5, 0x5b, 0xc7, 0x22, 0x48, 0xd5, 0xc4, 0x0a, 0xe3, 0x90, 0xdf, 0x8a, 0x2b, 0x1e, 0xc5, 0xd1, 0xf2, 0xad, 0x63, 0x11, 0xa4, 0x6a, 0x62,
0x3e, 0x83, 0xa3, 0x38, 0x7a, 0xb7, 0x8a, 0x42, 0x5f, 0x44, 0xc9, 0xd2, 0xc3, 0xbf, 0x4e, 0x6f, 0x9f, 0xc1, 0x51, 0x1c, 0xbd, 0x5b, 0x45, 0xa1, 0x2f, 0xa2, 0x64, 0xe9, 0xe1, 0x5f, 0xa7, 0x37,
0x6a, 0xcc, 0x4c, 0xaf, 0x65, 0x67, 0x33, 0x38, 0x0c, 0x92, 0x38, 0xf6, 0x05, 0xcf, 0xfc, 0xf8, 0x35, 0x66, 0xa6, 0xd7, 0xb2, 0xb3, 0x19, 0x1c, 0x06, 0x49, 0x1c, 0xfb, 0x82, 0x67, 0x7e, 0xfc,
0x8d, 0x1f, 0xaf, 0xb8, 0x63, 0x93, 0xc7, 0xa6, 0x99, 0x7d, 0x0c, 0x23, 0x0c, 0x22, 0x31, 0x7d, 0xc6, 0x8f, 0x57, 0xdc, 0xb1, 0xc9, 0x63, 0xd3, 0xcc, 0x3e, 0x86, 0x11, 0x06, 0x91, 0x98, 0x3e,
0xc2, 0x68, 0x03, 0xbb, 0x90, 0x59, 0x79, 0x3c, 0x48, 0xb2, 0x30, 0x77, 0x06, 0x53, 0x6b, 0x36, 0x61, 0xb4, 0x81, 0x5d, 0xc8, 0xac, 0x3c, 0x1e, 0x24, 0x59, 0x98, 0x3b, 0x83, 0xa9, 0x35, 0x1b,
0x3e, 0x7f, 0x72, 0x4a, 0x3d, 0x38, 0xbd, 0x2e, 0x77, 0xbc, 0x2a, 0x8a, 0x7d, 0x0b, 0x93, 0x68, 0x9f, 0x3f, 0x39, 0xa5, 0x1e, 0x9c, 0x5e, 0x97, 0x3b, 0x5e, 0x15, 0xc5, 0xbe, 0x85, 0x49, 0xb4,
0xf9, 0xe0, 0xc7, 0x51, 0x58, 0x9c, 0x1b, 0x6e, 0x3a, 0xd7, 0x00, 0xb2, 0x13, 0xe8, 0xe7, 0xc2, 0x7c, 0xf0, 0xe3, 0x28, 0x2c, 0xce, 0x0d, 0x37, 0x9d, 0x6b, 0x00, 0xd9, 0x09, 0xf4, 0x73, 0xe1,
0x17, 0xab, 0xdc, 0x19, 0x4d, 0x8d, 0x99, 0xed, 0xa9, 0x15, 0xfb, 0x06, 0x4e, 0x30, 0xeb, 0x5c, 0x8b, 0x55, 0xee, 0x8c, 0xa6, 0xc6, 0xcc, 0xf6, 0xd4, 0x8a, 0x7d, 0x03, 0x27, 0x98, 0x75, 0x2e,
0xfc, 0xa4, 0x2b, 0xfd, 0x25, 0x8b, 0x02, 0xee, 0x00, 0x75, 0x60, 0xc3, 0x2e, 0xfa, 0x4b, 0x79, 0x7e, 0xd2, 0x95, 0xfe, 0x92, 0x45, 0x01, 0x77, 0x80, 0x3a, 0xb0, 0x61, 0x17, 0xfd, 0xa5, 0x3c,
0x16, 0x25, 0xa1, 0x33, 0xa6, 0xd2, 0xd4, 0x8a, 0x7a, 0x49, 0x27, 0xbe, 0x7f, 0x9f, 0x46, 0x19, 0x8b, 0x92, 0xd0, 0x19, 0x53, 0x69, 0x6a, 0x45, 0xbd, 0xa4, 0x13, 0xdf, 0xbf, 0x4f, 0xa3, 0x8c,
0x7f, 0x1d, 0xdd, 0x73, 0x67, 0x9f, 0x10, 0x2d, 0x3b, 0x4e, 0x37, 0xc8, 0xb8, 0x2f, 0x24, 0xea, 0xbf, 0x8e, 0xee, 0xb9, 0xb3, 0x4f, 0x88, 0x96, 0x1d, 0xa7, 0x1b, 0x64, 0xdc, 0x17, 0x12, 0x75,
0x80, 0x50, 0x15, 0x0b, 0x73, 0x60, 0x70, 0xab, 0x06, 0x3b, 0xa1, 0xcd, 0x62, 0x59, 0xf0, 0x82, 0x40, 0xa8, 0x8a, 0x85, 0x39, 0x30, 0xb8, 0x55, 0x83, 0x9d, 0xd0, 0x66, 0xb1, 0x2c, 0x78, 0xc1,
0x67, 0x97, 0x61, 0x98, 0x39, 0x87, 0x9a, 0x17, 0xd2, 0xc2, 0x8e, 0xc1, 0x8e, 0x96, 0x21, 0x7f, 0xb3, 0xcb, 0x30, 0xcc, 0x9c, 0x43, 0xcd, 0x0b, 0x69, 0x61, 0xc7, 0x60, 0x47, 0xcb, 0x90, 0xbf,
0xef, 0x1c, 0xd1, 0x39, 0xb9, 0x60, 0xcf, 0x61, 0x98, 0x66, 0x7c, 0x41, 0x1b, 0x4f, 0x68, 0xa3, 0x77, 0x8e, 0xe8, 0x9c, 0x5c, 0xb0, 0xe7, 0x30, 0x4c, 0x33, 0xbe, 0xa0, 0x8d, 0x27, 0xb4, 0x51,
0x5c, 0xbb, 0x7f, 0x5b, 0x00, 0xba, 0x7d, 0x48, 0x1a, 0x3f, 0x08, 0x92, 0xd5, 0x52, 0x50, 0x04, 0xae, 0xdd, 0xbf, 0x2d, 0x00, 0xdd, 0x3e, 0x24, 0x8d, 0x1f, 0x04, 0xc9, 0x6a, 0x29, 0x28, 0x82,
0xc9, 0xbc, 0xaa, 0x09, 0xc7, 0x9b, 0x0b, 0x3f, 0x13, 0x94, 0xbb, 0xe4, 0x9d, 0x36, 0x74, 0xd1, 0x64, 0x5e, 0xd5, 0x84, 0xe3, 0xcd, 0x85, 0x9f, 0x09, 0xca, 0x5d, 0xf2, 0x4e, 0x1b, 0xba, 0x68,
0xc4, 0xea, 0xa6, 0x49, 0x0d, 0x29, 0x3b, 0x2f, 0xb9, 0xd7, 0x34, 0xd7, 0x09, 0x65, 0x37, 0x09, 0x62, 0x75, 0xd3, 0xa4, 0x86, 0x94, 0x9d, 0x97, 0xdc, 0x6b, 0x9a, 0xeb, 0x84, 0xb2, 0x9b, 0x84,
0x55, 0x27, 0xb1, 0x74, 0xd4, 0x6f, 0x91, 0xb8, 0x1c, 0x9e, 0x22, 0xc3, 0xa0, 0x46, 0x86, 0x4f, 0xaa, 0x93, 0x58, 0x3a, 0xea, 0xb7, 0x48, 0x5c, 0x0e, 0x4f, 0x91, 0x61, 0x50, 0x23, 0xc3, 0xa7,
0xe1, 0xa0, 0xc0, 0xca, 0x99, 0x0c, 0x29, 0x4a, 0xdd, 0x88, 0xcd, 0xe7, 0x7a, 0xb8, 0x23, 0x39, 0x70, 0x50, 0x60, 0xe5, 0x4c, 0x86, 0x14, 0xa5, 0x6e, 0xc4, 0xe6, 0x73, 0x3d, 0xdc, 0x91, 0x1c,
0x36, 0x6d, 0xc1, 0x3c, 0xd3, 0x8c, 0xff, 0x2a, 0x03, 0x00, 0x05, 0xd0, 0x06, 0x8c, 0x8d, 0x49, 0x9b, 0xb6, 0x60, 0x9e, 0x69, 0xc6, 0x7f, 0x95, 0x01, 0x80, 0x02, 0x68, 0x03, 0xc6, 0xc6, 0xa4,
0x2f, 0x24, 0x71, 0x46, 0x9e, 0x5a, 0xe9, 0x91, 0xed, 0x6f, 0x1a, 0xd9, 0x41, 0x63, 0x64, 0x6f, 0x17, 0x92, 0x38, 0x23, 0x4f, 0xad, 0xf4, 0xc8, 0xf6, 0x37, 0x8d, 0xec, 0xa0, 0x31, 0xb2, 0x37,
0xc0, 0x29, 0x84, 0xe2, 0x32, 0xcf, 0xb9, 0xa0, 0xda, 0xd4, 0xfc, 0x5e, 0x00, 0x64, 0xf4, 0x8b, 0xe0, 0x14, 0x42, 0x71, 0x99, 0xe7, 0x5c, 0x50, 0x6d, 0x6a, 0x7e, 0x2f, 0x00, 0x32, 0xfa, 0x45,
0x72, 0x34, 0x64, 0x8e, 0xda, 0x82, 0x7e, 0x6f, 0xc5, 0x5a, 0x76, 0xc9, 0xa4, 0x2e, 0x95, 0x6b, 0x39, 0x1a, 0x32, 0x47, 0x6d, 0x41, 0xbf, 0xb7, 0x62, 0x2d, 0xbb, 0x64, 0x52, 0x97, 0xca, 0xb5,
0xf7, 0x1f, 0x13, 0x26, 0xa5, 0xe3, 0x00, 0xbb, 0xc6, 0xce, 0xa0, 0x2f, 0x79, 0x49, 0xae, 0xc6, 0xfb, 0x8f, 0x09, 0x93, 0xd2, 0x71, 0x80, 0x5d, 0x63, 0x67, 0xd0, 0x97, 0xbc, 0x24, 0x57, 0xe3,
0xe7, 0xcf, 0xd4, 0x85, 0x2b, 0x60, 0x57, 0xb4, 0x79, 0xb3, 0xe7, 0x29, 0x18, 0x7b, 0x09, 0x3d, 0xf3, 0x67, 0xea, 0xc2, 0x15, 0xb0, 0x2b, 0xda, 0xbc, 0xd9, 0xf3, 0x14, 0x8c, 0xbd, 0x84, 0x1e,
0xac, 0x8b, 0x7c, 0x8f, 0xcf, 0x9f, 0x36, 0xe0, 0x48, 0xb4, 0x9b, 0x3d, 0x8f, 0x20, 0xec, 0x0b, 0xd6, 0x45, 0xbe, 0xc7, 0xe7, 0x4f, 0x1b, 0x70, 0x24, 0xda, 0xcd, 0x9e, 0x47, 0x10, 0xf6, 0x05,
0xb0, 0x33, 0x9e, 0xfa, 0x6b, 0x22, 0xc8, 0xf8, 0xfc, 0xb8, 0x81, 0xf5, 0x70, 0xef, 0x66, 0xcf, 0xd8, 0x19, 0x4f, 0xfd, 0x35, 0x11, 0x64, 0x7c, 0x7e, 0xdc, 0xc0, 0x7a, 0xb8, 0x77, 0xb3, 0xe7,
0x93, 0x20, 0x74, 0x7c, 0xc7, 0x79, 0x48, 0x1c, 0x69, 0x3b, 0xfe, 0x81, 0xf3, 0x10, 0x1d, 0x23, 0x49, 0x10, 0x3a, 0xbe, 0xe3, 0x3c, 0x24, 0x8e, 0xb4, 0x1d, 0xff, 0xc0, 0x79, 0x88, 0x8e, 0x11,
0x04, 0x1d, 0x07, 0x71, 0x92, 0x4b, 0xae, 0xb4, 0x1d, 0x5f, 0xe1, 0x1e, 0x3a, 0x26, 0x10, 0x96, 0x82, 0x8e, 0x83, 0x38, 0xc9, 0x25, 0x57, 0xda, 0x8e, 0xaf, 0x70, 0x0f, 0x1d, 0x13, 0x08, 0x4b,
0x78, 0xef, 0x2f, 0xfd, 0xb7, 0x92, 0x35, 0xed, 0x12, 0x5f, 0xd1, 0x26, 0x96, 0x28, 0x61, 0x6c, 0xbc, 0xf7, 0x97, 0xfe, 0x5b, 0xc9, 0x9a, 0x76, 0x89, 0xaf, 0x68, 0x13, 0x4b, 0x94, 0x30, 0x36,
0x02, 0xa6, 0x58, 0xab, 0xf9, 0x9a, 0x62, 0x3d, 0x1f, 0x80, 0xfd, 0x80, 0x4c, 0x74, 0xbf, 0xd4, 0x01, 0x53, 0xac, 0xd5, 0x7c, 0x4d, 0xb1, 0x9e, 0x0f, 0xc0, 0x7e, 0x40, 0x26, 0xba, 0x5f, 0xea,
0xed, 0x93, 0x87, 0x70, 0x1a, 0xf9, 0x2a, 0x95, 0x77, 0x33, 0x77, 0x8c, 0xa9, 0x85, 0xd7, 0x55, 0xf6, 0xc9, 0x43, 0x38, 0x8d, 0x7c, 0x95, 0xca, 0xbb, 0x99, 0x3b, 0xc6, 0xd4, 0xc2, 0xeb, 0xaa,
0x5b, 0xdc, 0xbf, 0x0c, 0x7d, 0x44, 0xb6, 0xb2, 0xa5, 0xec, 0xc6, 0x76, 0x65, 0x37, 0x77, 0x53, 0x2d, 0xee, 0x9f, 0x86, 0x3e, 0x22, 0x5b, 0xd9, 0x52, 0x76, 0x63, 0xbb, 0xb2, 0x9b, 0xbb, 0x29,
0x76, 0x6b, 0x83, 0xb2, 0x6b, 0x45, 0xeb, 0x55, 0x15, 0xcd, 0xbd, 0x86, 0xfd, 0xea, 0xdc, 0xb6, 0xbb, 0xb5, 0x41, 0xd9, 0xb5, 0xa2, 0xf5, 0xaa, 0x8a, 0xe6, 0x5e, 0xc3, 0x7e, 0x75, 0x6e, 0x5b,
0x7e, 0x93, 0x8e, 0x55, 0x1f, 0x54, 0x3e, 0xaa, 0x29, 0x3f, 0xc2, 0x41, 0x6d, 0xa2, 0x5b, 0xdd, 0xbf, 0x49, 0xc7, 0xaa, 0x0f, 0x2a, 0x1f, 0xd5, 0x94, 0x1f, 0xe1, 0xa0, 0x36, 0xd1, 0xad, 0x6e,
0xe8, 0x7b, 0x62, 0x56, 0xef, 0x89, 0xfb, 0x9b, 0x4e, 0x07, 0xa7, 0x8d, 0x4c, 0x46, 0xa1, 0x78, 0xf4, 0x3d, 0x31, 0xab, 0xf7, 0xc4, 0xfd, 0x4d, 0xa7, 0x83, 0xd3, 0x46, 0x26, 0xa3, 0x50, 0xbc,
0xbd, 0x4e, 0x65, 0x93, 0x6c, 0xaf, 0x5c, 0x63, 0x2a, 0xa9, 0xa2, 0xb8, 0x35, 0x33, 0x3d, 0xb9, 0x5e, 0xa7, 0xb2, 0x49, 0xb6, 0x57, 0xae, 0x31, 0x95, 0x54, 0x51, 0xdc, 0x9a, 0x99, 0x9e, 0x5c,
0x40, 0xcf, 0x0f, 0x49, 0xbc, 0xba, 0x47, 0x49, 0xb2, 0xb0, 0x50, 0xb9, 0x72, 0xcf, 0x74, 0x8a, 0xa0, 0xe7, 0x87, 0x24, 0x5e, 0xdd, 0xa3, 0x24, 0x59, 0x58, 0xa8, 0x5c, 0xb9, 0x67, 0x3a, 0x45,
0xc4, 0x8d, 0x6d, 0x29, 0xba, 0x7f, 0x9a, 0x70, 0xe8, 0xf1, 0x80, 0x47, 0xa9, 0xd8, 0xf9, 0x8b, 0xe2, 0xc6, 0xb6, 0x14, 0xdd, 0x3f, 0x4c, 0x38, 0xf4, 0x78, 0xc0, 0xa3, 0x54, 0xec, 0xfc, 0xc5,
0xdd, 0x10, 0x56, 0xb3, 0x2d, 0xac, 0xba, 0x70, 0xab, 0x26, 0x10, 0x5a, 0xb4, 0x7a, 0x35, 0xd1, 0x6e, 0x08, 0xab, 0xd9, 0x16, 0x56, 0x5d, 0xb8, 0x55, 0x13, 0x08, 0x2d, 0x5a, 0xbd, 0x9a, 0x68,
0xaa, 0xc9, 0x8d, 0xdd, 0x94, 0x9b, 0x52, 0x56, 0xfa, 0x9b, 0x64, 0x65, 0x50, 0x97, 0x95, 0x86, 0xd5, 0xe4, 0xc6, 0x6e, 0xca, 0x4d, 0x29, 0x2b, 0xfd, 0x4d, 0xb2, 0x32, 0xa8, 0xcb, 0x4a, 0x43,
0x74, 0x0c, 0x1f, 0x95, 0x8e, 0x51, 0x43, 0x3a, 0x32, 0xcd, 0x63, 0x2d, 0x44, 0x8f, 0xf6, 0x83, 0x3a, 0x86, 0x8f, 0x4a, 0xc7, 0xa8, 0x21, 0x1d, 0x99, 0xe6, 0xb1, 0x16, 0xa2, 0x47, 0xfb, 0xc1,
0x41, 0xcf, 0xd7, 0x8d, 0xa0, 0xdf, 0x1b, 0x3b, 0x50, 0xd6, 0xd2, 0xab, 0xd4, 0xe2, 0xce, 0xe1, 0xa0, 0xe7, 0xeb, 0x46, 0xd0, 0xef, 0x8d, 0x1d, 0x28, 0x6b, 0xe9, 0x55, 0x6a, 0x71, 0xe7, 0x70,
0xb0, 0x1e, 0x33, 0x67, 0x67, 0x30, 0xc8, 0xd4, 0x03, 0xc1, 0xa0, 0x07, 0xc2, 0xb3, 0x96, 0xa8, 0x58, 0x8f, 0x99, 0xb3, 0x33, 0x18, 0x64, 0xea, 0x81, 0x60, 0xd0, 0x03, 0xe1, 0x59, 0x4b, 0x54,
0xd0, 0x23, 0xa1, 0x40, 0xb9, 0x5f, 0xe1, 0x20, 0xdf, 0x15, 0xbb, 0x8b, 0xe5, 0x5d, 0xb2, 0x75, 0xe8, 0x91, 0x50, 0xa0, 0xdc, 0xaf, 0x70, 0x90, 0xef, 0x8a, 0xdd, 0xc5, 0xf2, 0x2e, 0xd9, 0x3a,
0xf8, 0x7f, 0x98, 0x70, 0xe2, 0xf1, 0xb4, 0x64, 0xcc, 0x2a, 0xcb, 0xf8, 0x52, 0xd0, 0x51, 0x3d, 0xfc, 0xbf, 0x4c, 0x38, 0xf1, 0x78, 0x5a, 0x32, 0x66, 0x95, 0x65, 0x7c, 0x29, 0xe8, 0xa8, 0x9e,
0x29, 0xa3, 0x36, 0xa9, 0x0f, 0xff, 0x5a, 0xab, 0xbc, 0x20, 0xec, 0xfa, 0x0b, 0xa2, 0xe3, 0x03, 0x94, 0x51, 0x9b, 0xd4, 0x87, 0x7f, 0xad, 0x55, 0x5e, 0x10, 0x76, 0xfd, 0x05, 0xd1, 0xf1, 0x81,
0xdd, 0xdf, 0xe1, 0x1d, 0x37, 0x68, 0x7c, 0x76, 0xdd, 0xaf, 0xe1, 0xa8, 0xd1, 0xb9, 0x1c, 0x6b, 0xee, 0xef, 0xf0, 0x8e, 0x1b, 0x34, 0x3f, 0xbb, 0x5a, 0x35, 0x86, 0x35, 0xd5, 0xf8, 0x1a, 0x8e,
0xd0, 0x8d, 0x2a, 0xf4, 0xae, 0x6a, 0x72, 0x7f, 0x86, 0x8f, 0xba, 0x7b, 0x97, 0xb3, 0x0b, 0x1c, 0x1a, 0x1d, 0xcd, 0xb1, 0x36, 0xdd, 0xc0, 0x42, 0x07, 0xab, 0x26, 0xf7, 0x67, 0xf8, 0xa8, 0xbb,
0xf2, 0x5d, 0x52, 0x4c, 0xee, 0x13, 0x35, 0xb9, 0x6e, 0xb8, 0x27, 0xb1, 0xee, 0x15, 0x3c, 0xad, 0xa7, 0x39, 0xbb, 0xc0, 0xe1, 0xdf, 0x25, 0xc5, 0x44, 0x3f, 0x51, 0x13, 0xed, 0x86, 0x7b, 0x12,
0x64, 0x31, 0x5f, 0xeb, 0x6f, 0x6d, 0xe7, 0x20, 0x4a, 0x22, 0x99, 0x55, 0x22, 0xb9, 0x30, 0xa9, 0xeb, 0x5e, 0xc1, 0xd3, 0x4a, 0x16, 0xf3, 0xb5, 0xfe, 0x06, 0x77, 0x0e, 0xa8, 0x24, 0x98, 0x59,
0x44, 0x59, 0x5c, 0xe7, 0xec, 0x08, 0xac, 0xc5, 0x75, 0x51, 0x00, 0xfe, 0x74, 0x43, 0x70, 0x2a, 0x25, 0x98, 0x0b, 0x93, 0x4a, 0x94, 0xc5, 0x75, 0xce, 0x8e, 0xc0, 0x5a, 0x5c, 0x17, 0x05, 0xe0,
0x81, 0x14, 0xdf, 0xe6, 0x6b, 0xba, 0xb8, 0xff, 0x87, 0xea, 0x65, 0x26, 0x56, 0x35, 0x93, 0xdf, 0x4f, 0x37, 0x04, 0xa7, 0x12, 0x48, 0xf1, 0x70, 0xbe, 0xa6, 0x0b, 0xfd, 0x7f, 0xae, 0x40, 0x99,
0xe1, 0x79, 0x57, 0x14, 0x55, 0xd5, 0x0e, 0xca, 0xa9, 0xaa, 0x36, 0xbb, 0xab, 0xae, 0xc5, 0xba, 0x89, 0x55, 0xcd, 0xe4, 0x77, 0x78, 0xde, 0x15, 0x45, 0x55, 0xb5, 0x83, 0xa2, 0xaa, 0xaa, 0xcd,
0x04, 0x56, 0xa9, 0xba, 0xb8, 0x41, 0x9f, 0x37, 0x6f, 0x50, 0xc7, 0x13, 0xbb, 0xbc, 0x3d, 0xaf, 0xee, 0xaa, 0x6b, 0xb1, 0x2e, 0x81, 0x55, 0xaa, 0x2e, 0x6e, 0xd6, 0xe7, 0xcd, 0x9b, 0xd5, 0xf1,
0x6a, 0xdd, 0x47, 0xc4, 0x2e, 0x37, 0x68, 0xa3, 0xc2, 0x7f, 0x87, 0xee, 0xd2, 0x96, 0xbb, 0x97, 0xf4, 0x2e, 0x6f, 0xd5, 0xab, 0x5a, 0xf7, 0x11, 0xb1, 0xcb, 0xcd, 0xda, 0xa8, 0xfc, 0xdf, 0xa1,
0xd0, 0x97, 0x01, 0xd5, 0x1b, 0xa4, 0x23, 0x23, 0x05, 0xb8, 0xed, 0xd3, 0x7f, 0x54, 0x17, 0xff, 0xbb, 0xb4, 0xe5, 0xee, 0x25, 0xf4, 0x65, 0x40, 0xf5, 0x36, 0xe9, 0xc8, 0x48, 0x01, 0x6e, 0xfb,
0x05, 0x00, 0x00, 0xff, 0xff, 0xc9, 0x46, 0x96, 0x6b, 0x63, 0x0d, 0x00, 0x00, 0xf4, 0x9f, 0xd6, 0xc5, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x87, 0x63, 0xe3, 0x4a, 0x7b, 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