Commit f2dc03fd authored by pengjun's avatar pengjun

#627 add user balance query api

parent 749115d7
...@@ -360,6 +360,38 @@ func CollateralizeQueryPrice(cmd *cobra.Command, args []string) { ...@@ -360,6 +360,38 @@ func CollateralizeQueryPrice(cmd *cobra.Command, args []string) {
ctx.Run() ctx.Run()
} }
func CollateralizeQueryUserBalanceCmd() *cobra.Command {
cmd := &cobra.Command{
Use: "balance",
Short: "Query user balance",
Run: CollateralizeQueryUserBalance,
}
addCollateralizeQueryBalanceFlags(cmd)
return cmd
}
func addCollateralizeQueryBalanceFlags(cmd *cobra.Command) {
cmd.Flags().StringP("address", "a", "", "address")
cmd.MarkFlagRequired("address")
}
func CollateralizeQueryUserBalance(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
addr, _ := cmd.Flags().GetString("address")
var params rpctypes.Query4Jrpc
params.Execer = pkt.CollateralizeX
params.FuncName = "CollateralizeUserBalance"
req := &pkt.ReqCollateralizeRecordByAddr{
Addr: addr,
}
params.Payload = types.MustPBToJSON(req)
var res pkt.RepCollateralizeUserBalance
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{
...@@ -371,6 +403,7 @@ func CollateralizeQueryCmd() *cobra.Command { ...@@ -371,6 +403,7 @@ func CollateralizeQueryCmd() *cobra.Command {
cmd.AddCommand( cmd.AddCommand(
CollateralizeQueryCfgCmd(), CollateralizeQueryCfgCmd(),
CollateralizeQueryPriceCmd(), CollateralizeQueryPriceCmd(),
CollateralizeQueryUserBalanceCmd(),
) )
return cmd return cmd
} }
......
...@@ -314,6 +314,11 @@ func TestCollateralize(t *testing.T) { ...@@ -314,6 +314,11 @@ func TestCollateralize(t *testing.T) {
types.Encode(&pkt.ReqCollateralizeRecordByAddr{Addr: string(Nodes[1]), Status: 1})) types.Encode(&pkt.ReqCollateralizeRecordByAddr{Addr: string(Nodes[1]), Status: 1}))
assert.Nil(t, err) assert.Nil(t, err)
assert.NotNil(t, res) assert.NotNil(t, res)
// query collateralize user balance
res, err = exec.Query("CollateralizeUserBalance",
types.Encode(&pkt.ReqCollateralizeRecordByAddr{Addr: string(Nodes[1]), Status: 1}))
assert.Nil(t, err)
assert.Equal(t, int64(100), res.(*pkt.RepCollateralizeUserBalance).Balance)
// collateralize append // collateralize append
p5 := &pkt.CollateralizeAppendTx{ p5 := &pkt.CollateralizeAppendTx{
...@@ -406,6 +411,11 @@ func TestCollateralize(t *testing.T) { ...@@ -406,6 +411,11 @@ func TestCollateralize(t *testing.T) {
types.Encode(&pkt.ReqCollateralizeRecordByAddr{Addr: string(Nodes[1]), Status: 6})) types.Encode(&pkt.ReqCollateralizeRecordByAddr{Addr: string(Nodes[1]), Status: 6}))
assert.Nil(t, err) assert.Nil(t, err)
assert.NotNil(t, res) assert.NotNil(t, res)
// query collateralize user balance
res, err = exec.Query("CollateralizeUserBalance",
types.Encode(&pkt.ReqCollateralizeRecordByAddr{Addr: string(Nodes[1]), Status: 1}))
assert.Nil(t, err)
assert.Equal(t, int64(0), res.(*pkt.RepCollateralizeUserBalance).Balance)
// collateralize liquidate // collateralize liquidate
p7 := &pkt.CollateralizeBorrowTx{ p7 := &pkt.CollateralizeBorrowTx{
......
...@@ -21,7 +21,7 @@ import ( ...@@ -21,7 +21,7 @@ import (
const ( const (
ListDESC = int32(0) // list降序 ListDESC = int32(0) // list降序
ListASC = int32(1) // list升序 ListASC = int32(1) // list升序
DefultCount = int32(20) // 默认一次取多少条记录 DefaultCount = int32(20) // 默认一次取多少条记录
MaxCount = int32(100) // 最多取100条 MaxCount = int32(100) // 最多取100条
) )
...@@ -1172,7 +1172,7 @@ func queryCollateralizeByStatus(localdb dbm.KVDB, status int32, collID string) ( ...@@ -1172,7 +1172,7 @@ func queryCollateralizeByStatus(localdb dbm.KVDB, status int32, collID string) (
CollateralizeId: collID, CollateralizeId: collID,
Status: status, Status: status,
} }
rows, err := query.List("status", data, primary, DefultCount, ListDESC) rows, err := query.List("status", data, primary, DefaultCount, ListDESC)
if err != nil { if err != nil {
clog.Debug("queryCollateralizeByStatus.List", "error", err) clog.Debug("queryCollateralizeByStatus.List", "error", err)
return nil, err return nil, err
...@@ -1201,13 +1201,13 @@ func queryCollateralizeByAddr(localdb dbm.KVDB, addr string, status int32, collI ...@@ -1201,13 +1201,13 @@ func queryCollateralizeByAddr(localdb dbm.KVDB, addr string, status int32, collI
var rows []*table.Row var rows []*table.Row
var err error var err error
if status == 0 { if status == 0 {
rows, err = query.List("addr", data, primary, DefultCount, ListDESC) rows, err = query.List("addr", data, primary, DefaultCount, ListDESC)
if err != nil { if err != nil {
clog.Debug("queryCollateralizeByAddr.List", "index", "addr", "error", err) clog.Debug("queryCollateralizeByAddr.List", "index", "addr", "error", err)
return nil, err return nil, err
} }
} else { } else {
rows, err = query.List("addr_status", data, primary, DefultCount, ListDESC) rows, err = query.List("addr_status", data, primary, DefaultCount, ListDESC)
if err != nil { if err != nil {
clog.Debug("queryCollateralizeByAddr.List", "index", "addr_status", "error", err) clog.Debug("queryCollateralizeByAddr.List", "index", "addr_status", "error", err)
return nil, err return nil, err
...@@ -1260,19 +1260,19 @@ func queryCollateralizeRecordByAddr(db dbm.KV, localdb dbm.KVDB, addr string, st ...@@ -1260,19 +1260,19 @@ func queryCollateralizeRecordByAddr(db dbm.KV, localdb dbm.KVDB, addr string, st
var rows []*table.Row var rows []*table.Row
var err error var err error
if len(collID) != 0 { if len(collID) != 0 {
rows, err = query.List("id_addr", data, primary, DefultCount, ListDESC) rows, err = query.List("id_addr", data, primary, DefaultCount, ListDESC)
if err != nil { if err != nil {
clog.Debug("queryCollateralizeRecordByAddr.List", "index", "id_addr", "error", err) clog.Debug("queryCollateralizeRecordByAddr.List", "index", "id_addr", "error", err)
return nil, err return nil, err
} }
} else if status != 0 { } else if status != 0 {
rows, err = query.List("addr_status", data, primary, DefultCount, ListDESC) rows, err = query.List("addr_status", data, primary, DefaultCount, ListDESC)
if err != nil { if err != nil {
clog.Debug("queryCollateralizeRecordByAddr.List", "index", "addr_status", "error", err) clog.Debug("queryCollateralizeRecordByAddr.List", "index", "addr_status", "error", err)
return nil, err return nil, err
} }
} else { } else {
rows, err = query.List("addr", data, primary, DefultCount, ListDESC) rows, err = query.List("addr", data, primary, DefaultCount, ListDESC)
if err != nil { if err != nil {
clog.Debug("queryCollateralizeRecordByAddr.List", "index", "addr", "error", err) clog.Debug("queryCollateralizeRecordByAddr.List", "index", "addr", "error", err)
return nil, err return nil, err
...@@ -1307,13 +1307,13 @@ func queryCollateralizeRecordByStatus(db dbm.KV, localdb dbm.KVDB, status int32, ...@@ -1307,13 +1307,13 @@ func queryCollateralizeRecordByStatus(db dbm.KV, localdb dbm.KVDB, status int32,
var rows []*table.Row var rows []*table.Row
var err error var err error
if len(collID) == 0 { if len(collID) == 0 {
rows, err = query.List("status", data, primary, DefultCount, ListDESC) rows, err = query.List("status", data, primary, DefaultCount, ListDESC)
if err != nil { if err != nil {
clog.Debug("queryCollateralizeRecordByStatus.List", "index", "status", "error", err) clog.Debug("queryCollateralizeRecordByStatus.List", "index", "status", "error", err)
return nil, err return nil, err
} }
} else { } else {
rows, err = query.List("id_status", data, primary, DefultCount, ListDESC) rows, err = query.List("id_status", data, primary, DefaultCount, ListDESC)
if err != nil { if err != nil {
clog.Debug("queryCollateralizeRecordByStatus.List", "index", "id_status", "error", err) clog.Debug("queryCollateralizeRecordByStatus.List", "index", "id_status", "error", err)
return nil, err return nil, err
...@@ -1332,3 +1332,67 @@ func queryCollateralizeRecordByStatus(db dbm.KV, localdb dbm.KVDB, status int32, ...@@ -1332,3 +1332,67 @@ func queryCollateralizeRecordByStatus(db dbm.KV, localdb dbm.KVDB, status int32,
return records, nil return records, nil
} }
func queryCollateralizeUserBalanceStatus(db dbm.KV, localdb dbm.KVDB, addr string, status int32) (int64, error) {
var totalBalance int64
query := pty.NewRecordTable(localdb).GetQuery(localdb)
var primary []byte
var data = &pty.ReceiptCollateralize{
AccountAddr: addr,
Status: status,
}
var rows []*table.Row
var err error
for {
rows, err = query.List("addr_status", data, primary, DefaultCount, ListDESC)
if err != nil {
clog.Debug("queryCollateralizeRecordByAddr.List", "index", "addr", "error", err)
return -1, err
}
for _, row := range rows {
record, err := queryCollateralizeRecordByID(db, row.Data.(*pty.ReceiptCollateralize).CollateralizeId, row.Data.(*pty.ReceiptCollateralize).RecordId)
if err != nil {
clog.Debug("queryCollateralizeRecordByStatus.queryCollateralizeRecordByID", "error", err)
continue
}
totalBalance += record.DebtValue
}
if len(rows) < int(DefaultCount) {
break
}
primary = []byte(rows[DefaultCount-1].Data.(*pty.ReceiptCollateralize).RecordId)
}
return totalBalance,nil
}
func queryCollateralizeUserBalance(db dbm.KV, localdb dbm.KVDB, addr string) (int64, error) {
var totalBalance int64
balance, err := queryCollateralizeUserBalanceStatus(db, localdb, addr, pty.CollateralizeUserStatusCreate)
if err != nil {
clog.Error("queryCollateralizeUserBalance", "err", err)
} else {
totalBalance += balance
}
balance, err = queryCollateralizeUserBalanceStatus(db, localdb, addr, pty.CollateralizeUserStatusWarning)
if err != nil {
clog.Error("queryCollateralizeUserBalance", "err", err)
} else {
totalBalance += balance
}
balance, err = queryCollateralizeUserBalanceStatus(db, localdb, addr, pty.CollateralizeUserStatusExpire)
if err != nil {
clog.Error("queryCollateralizeUserBalance", "err", err)
} else {
totalBalance += balance
}
return totalBalance, nil
}
\ No newline at end of file
...@@ -167,3 +167,13 @@ func (c *Collateralize) Query_CollateralizePrice(req *pty.ReqCollateralizeRecord ...@@ -167,3 +167,13 @@ func (c *Collateralize) Query_CollateralizePrice(req *pty.ReqCollateralizeRecord
return &pty.RepCollateralizePrice{Price: price}, nil return &pty.RepCollateralizePrice{Price: price}, nil
} }
func (c *Collateralize) Query_CollateralizeUserBalance(req *pty.ReqCollateralizeRecordByAddr) (types.Message, error) {
balance, err := queryCollateralizeUserBalance(c.GetStateDB(), c.GetLocalDB(), req.Addr)
if err != nil {
clog.Error("Query_CollateralizeRecordByAddr", "get collateralize record error", err)
return nil, err
}
return &pty.RepCollateralizeUserBalance{Balance:balance}, nil
}
...@@ -215,3 +215,8 @@ message RepCollateralizeConfig { ...@@ -215,3 +215,8 @@ message RepCollateralizeConfig {
message RepCollateralizePrice { message RepCollateralizePrice {
int64 price = 1; //当前抵押物最新价格 int64 price = 1; //当前抵押物最新价格
} }
// 返回用户借贷总额
message RepCollateralizeUserBalance {
int64 balance = 1; //返回用户借贷总额
}
\ No newline at end of file
...@@ -291,6 +291,38 @@ func IssuanceQueryPrice(cmd *cobra.Command, args []string) { ...@@ -291,6 +291,38 @@ func IssuanceQueryPrice(cmd *cobra.Command, args []string) {
ctx.Run() ctx.Run()
} }
func IssuanceQueryUserBalanceCmd() *cobra.Command {
cmd := &cobra.Command{
Use: "balance",
Short: "Query user balance",
Run: IssuanceQueryUserBalance,
}
addIssuanceQueryBalanceFlags(cmd)
return cmd
}
func addIssuanceQueryBalanceFlags(cmd *cobra.Command) {
cmd.Flags().StringP("address", "a", "", "address")
cmd.MarkFlagRequired("address")
}
func IssuanceQueryUserBalance(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
addr, _ := cmd.Flags().GetString("address")
var params rpctypes.Query4Jrpc
params.Execer = pkt.IssuanceX
params.FuncName = "IssuanceUserBalance"
req := &pkt.ReqIssuanceRecords{
Addr: addr,
}
params.Payload = types.MustPBToJSON(req)
var res pkt.RepIssuanceUserBalance
ctx := jsonrpc.NewRPCCtx(rpcLaddr, "Chain33.Query", params, &res)
ctx.Run()
}
// IssuanceQueryCmd 查询命令行 // IssuanceQueryCmd 查询命令行
func IssuanceQueryCmd() *cobra.Command { func IssuanceQueryCmd() *cobra.Command {
cmd := &cobra.Command{ cmd := &cobra.Command{
...@@ -301,6 +333,7 @@ func IssuanceQueryCmd() *cobra.Command { ...@@ -301,6 +333,7 @@ func IssuanceQueryCmd() *cobra.Command {
addIssuanceQueryFlags(cmd) addIssuanceQueryFlags(cmd)
cmd.AddCommand( cmd.AddCommand(
IssuacneQueryPriceCmd(), IssuacneQueryPriceCmd(),
IssuanceQueryUserBalanceCmd(),
) )
return cmd return cmd
} }
...@@ -319,21 +352,11 @@ func IssuanceQuery(cmd *cobra.Command, args []string) { ...@@ -319,21 +352,11 @@ func IssuanceQuery(cmd *cobra.Command, args []string) {
issuanceID, _ := cmd.Flags().GetString("issuanceID") issuanceID, _ := cmd.Flags().GetString("issuanceID")
address, _ := cmd.Flags().GetString("address") address, _ := cmd.Flags().GetString("address")
statusStr, _ := cmd.Flags().GetString("status") statusStr, _ := cmd.Flags().GetString("status")
// indexstr, _ := cmd.Flags().GetString("index")
issuanceIDs, _ := cmd.Flags().GetString("issuanceIDs") issuanceIDs, _ := cmd.Flags().GetString("issuanceIDs")
debtID, _ := cmd.Flags().GetString("debtID") debtID, _ := cmd.Flags().GetString("debtID")
var params rpctypes.Query4Jrpc var params rpctypes.Query4Jrpc
params.Execer = pkt.IssuanceX params.Execer = pkt.IssuanceX
//if indexstr != "" {
// index, err := strconv.ParseInt(indexstr, 10, 64)
// if err != nil {
// fmt.Println(err)
// cmd.Help()
// return
// }
// req.Index = index
//}
var status int64 var status int64
var err error var err error
......
...@@ -291,6 +291,11 @@ func TestIssuance(t *testing.T) { ...@@ -291,6 +291,11 @@ func TestIssuance(t *testing.T) {
types.Encode(&pkt.ReqIssuanceRecords{Addr: string(Nodes[1]), Status: 1})) types.Encode(&pkt.ReqIssuanceRecords{Addr: string(Nodes[1]), Status: 1}))
assert.Nil(t, err) assert.Nil(t, err)
assert.NotNil(t, res) assert.NotNil(t, res)
// query issuance user balance
res, err = exec.Query("IssuanceUserBalance",
types.Encode(&pkt.ReqIssuanceRecords{Addr: string(Nodes[1]), Status: 1}))
assert.Nil(t, err)
assert.Equal(t, 100 * types.Coin, res.(*pkt.RepIssuanceUserBalance).Balance)
// issuance repay // issuance repay
p5 := &pkt.IssuanceRepayTx{ p5 := &pkt.IssuanceRepayTx{
...@@ -336,6 +341,11 @@ func TestIssuance(t *testing.T) { ...@@ -336,6 +341,11 @@ func TestIssuance(t *testing.T) {
types.Encode(&pkt.ReqIssuanceRecords{Addr: string(Nodes[1]), Status: 6})) types.Encode(&pkt.ReqIssuanceRecords{Addr: string(Nodes[1]), Status: 6}))
assert.Nil(t, err) assert.Nil(t, err)
assert.NotNil(t, res) assert.NotNil(t, res)
// query issuance user balance
res, err = exec.Query("IssuanceUserBalance",
types.Encode(&pkt.ReqIssuanceRecords{Addr: string(Nodes[1]), Status: 1}))
assert.Nil(t, err)
assert.Equal(t, int64(0), res.(*pkt.RepIssuanceUserBalance).Balance)
// issuance liquidate // issuance liquidate
p6 := &pkt.IssuanceDebtTx{ p6 := &pkt.IssuanceDebtTx{
......
...@@ -19,7 +19,7 @@ import ( ...@@ -19,7 +19,7 @@ import (
const ( const (
ListDESC = int32(0) // list降序 ListDESC = int32(0) // list降序
ListASC = int32(1) // list升序 ListASC = int32(1) // list升序
DefultCount = int32(20) // 默认一次取多少条记录 DefaultCount = int32(20) // 默认一次取多少条记录
MaxCount = int32(100) // 最多取100条 MaxCount = int32(100) // 最多取100条
) )
...@@ -973,7 +973,7 @@ func queryIssuanceByStatus(localdb dbm.KVDB, status int32, issuanceID string) ([ ...@@ -973,7 +973,7 @@ func queryIssuanceByStatus(localdb dbm.KVDB, status int32, issuanceID string) ([
IssuanceId: issuanceID, IssuanceId: issuanceID,
Status: status, Status: status,
} }
rows, err := query.List("status", data, primary, DefultCount, ListDESC) rows, err := query.List("status", data, primary, DefaultCount, ListDESC)
if err != nil { if err != nil {
clog.Error("queryIssuanceByStatus.List", "error", err) clog.Error("queryIssuanceByStatus.List", "error", err)
return nil, err return nil, err
...@@ -1021,7 +1021,7 @@ func queryIssuanceRecordsByStatus(db dbm.KV, localdb dbm.KVDB, status int32, deb ...@@ -1021,7 +1021,7 @@ func queryIssuanceRecordsByStatus(db dbm.KV, localdb dbm.KVDB, status int32, deb
var data = &pty.ReceiptIssuance{ var data = &pty.ReceiptIssuance{
Status: status, Status: status,
} }
rows, err := query.List("status", data, primary, DefultCount, ListDESC) rows, err := query.List("status", data, primary, DefaultCount, ListDESC)
if err != nil { if err != nil {
clog.Error("queryIssuanceRecordsByStatus.List", "index", "status", "error", err) clog.Error("queryIssuanceRecordsByStatus.List", "index", "status", "error", err)
return nil, err return nil, err
...@@ -1056,13 +1056,13 @@ func queryIssuanceRecordByAddr(db dbm.KV, localdb dbm.KVDB, addr string, status ...@@ -1056,13 +1056,13 @@ func queryIssuanceRecordByAddr(db dbm.KV, localdb dbm.KVDB, addr string, status
var rows []*table.Row var rows []*table.Row
var err error var err error
if status == 0 { if status == 0 {
rows, err = query.List("addr", data, primary, DefultCount, ListDESC) rows, err = query.List("addr", data, primary, DefaultCount, ListDESC)
if err != nil { if err != nil {
clog.Error("queryIssuanceRecordByAddr.List", "index", "addr", "error", err) clog.Error("queryIssuanceRecordByAddr.List", "index", "addr", "error", err)
return nil, err return nil, err
} }
} else { } else {
rows, err = query.List("addr_status", data, primary, DefultCount, ListDESC) rows, err = query.List("addr_status", data, primary, DefaultCount, ListDESC)
if err != nil { if err != nil {
clog.Error("queryIssuanceRecordByAddr.List", "index", "addr_status", "error", err) clog.Error("queryIssuanceRecordByAddr.List", "index", "addr_status", "error", err)
return nil, err return nil, err
...@@ -1081,3 +1081,67 @@ func queryIssuanceRecordByAddr(db dbm.KV, localdb dbm.KVDB, addr string, status ...@@ -1081,3 +1081,67 @@ func queryIssuanceRecordByAddr(db dbm.KV, localdb dbm.KVDB, addr string, status
return records, nil return records, nil
} }
func queryIssuanceUserBalanceStatus(db dbm.KV, localdb dbm.KVDB, addr string, status int32) (int64, error) {
var totalBalance int64
query := pty.NewRecordTable(localdb).GetQuery(localdb)
var primary []byte
var data = &pty.ReceiptIssuance{
AccountAddr: addr,
Status: status,
}
var rows []*table.Row
var err error
for {
rows, err = query.List("addr_status", data, primary, DefaultCount, ListDESC)
if err != nil {
clog.Debug("queryIssuanceRecordByAddr.List", "index", "addr", "error", err)
return -1, err
}
for _, row := range rows {
record, err := queryIssuanceRecordByID(db, row.Data.(*pty.ReceiptIssuance).IssuanceId, row.Data.(*pty.ReceiptIssuance).DebtId)
if err != nil {
clog.Debug("queryIssuanceRecordByStatus.queryIssuanceRecordByID", "error", err)
continue
}
totalBalance += record.DebtValue
}
if len(rows) < int(DefaultCount) {
break
}
primary = []byte(rows[DefaultCount-1].Data.(*pty.ReceiptIssuance).DebtId)
}
return totalBalance,nil
}
func queryIssuanceUserBalance(db dbm.KV, localdb dbm.KVDB, addr string) (int64, error) {
var totalBalance int64
balance, err := queryIssuanceUserBalanceStatus(db, localdb, addr, pty.IssuanceUserStatusCreate)
if err != nil {
clog.Error("queryIssuanceUserBalance", "err", err)
} else {
totalBalance += balance
}
balance, err = queryIssuanceUserBalanceStatus(db, localdb, addr, pty.IssuanceUserStatusWarning)
if err != nil {
clog.Error("queryIssuanceUserBalance", "err", err)
} else {
totalBalance += balance
}
balance, err = queryIssuanceUserBalanceStatus(db, localdb, addr, pty.IssuanceUserStatusExpire)
if err != nil {
clog.Error("queryIssuanceUserBalance", "err", err)
} else {
totalBalance += balance
}
return totalBalance, nil
}
\ No newline at end of file
...@@ -116,9 +116,19 @@ func (c *Issuance) Query_IssuanceRecordsByStatus(req *pty.ReqIssuanceRecords) (t ...@@ -116,9 +116,19 @@ func (c *Issuance) Query_IssuanceRecordsByStatus(req *pty.ReqIssuanceRecords) (t
func (c *Issuance) Query_IssuancePrice(req *pty.ReqIssuanceRecords) (types.Message, error) { func (c *Issuance) Query_IssuancePrice(req *pty.ReqIssuanceRecords) (types.Message, error) {
price, err := getLatestPrice(c.GetStateDB()) price, err := getLatestPrice(c.GetStateDB())
if err != nil { if err != nil {
clog.Error("Query_CollateralizePrice", "error", err) clog.Error("Query_IssuancePrice", "error", err)
return nil, err return nil, err
} }
return &pty.RepIssuancePrice{Price: price}, nil return &pty.RepIssuancePrice{Price: price}, nil
} }
func (c *Issuance) Query_IssuanceUserBalance(req *pty.ReqIssuanceRecords) (types.Message, error) {
balance, err := queryIssuanceUserBalance(c.GetStateDB(), c.GetLocalDB(), req.Addr)
if err != nil {
clog.Error("Query_IssuanceRecordByAddr", "get issuance record error", err)
return nil, err
}
return &pty.RepIssuanceUserBalance{Balance:balance}, nil
}
\ No newline at end of file
...@@ -173,3 +173,8 @@ message RepIssuanceDebtInfo { ...@@ -173,3 +173,8 @@ message RepIssuanceDebtInfo {
message RepIssuancePrice { message RepIssuancePrice {
int64 price = 1; //当前抵押物最新价格 int64 price = 1; //当前抵押物最新价格
} }
// 返回用户发行总额
message RepIssuanceUserBalance {
int64 balance = 1; //返回用户发行总额
}
\ No newline at end of file
This diff is collapsed.
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