Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
plugin
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
link33
plugin
Commits
adb27358
Commit
adb27358
authored
Oct 24, 2019
by
pengjun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
#627 update issuance & collateralize
parent
550958aa
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
321 additions
and
265 deletions
+321
-265
cmd.go
plugin/dapp/collateralize/commands/cmd.go
+19
-6
collateralize.go
plugin/dapp/collateralize/executor/collateralize.go
+47
-25
collateralizedb.go
plugin/dapp/collateralize/executor/collateralizedb.go
+0
-0
exec_del_local.go
plugin/dapp/collateralize/executor/exec_del_local.go
+21
-11
exec_local.go
plugin/dapp/collateralize/executor/exec_local.go
+20
-9
keys.go
plugin/dapp/collateralize/executor/keys.go
+10
-0
query.go
plugin/dapp/collateralize/executor/query.go
+22
-47
collateralize.proto
plugin/dapp/collateralize/proto/collateralize.proto
+30
-10
collateralize.pb.go
plugin/dapp/collateralize/types/collateralize.pb.go
+0
-0
init.go
plugin/dapp/init/init.go
+1
-0
cmd.go
plugin/dapp/issuance/commands/cmd.go
+20
-15
exec_del_local.go
plugin/dapp/issuance/executor/exec_del_local.go
+19
-13
exec_local.go
plugin/dapp/issuance/executor/exec_local.go
+20
-11
issuance.go
plugin/dapp/issuance/executor/issuance.go
+27
-25
issuancedb.go
plugin/dapp/issuance/executor/issuancedb.go
+0
-0
keys.go
plugin/dapp/issuance/executor/keys.go
+6
-6
query.go
plugin/dapp/issuance/executor/query.go
+16
-58
issuance.proto
plugin/dapp/issuance/proto/issuance.proto
+43
-29
issuance.pb.go
plugin/dapp/issuance/types/issuance.pb.go
+0
-0
No files found.
plugin/dapp/collateralize/commands/cmd.go
View file @
adb27358
...
@@ -284,6 +284,7 @@ func addCollateralizeQueryFlags(cmd *cobra.Command) {
...
@@ -284,6 +284,7 @@ func addCollateralizeQueryFlags(cmd *cobra.Command) {
cmd
.
Flags
()
.
StringP
(
"index"
,
"i"
,
""
,
"index"
)
cmd
.
Flags
()
.
StringP
(
"index"
,
"i"
,
""
,
"index"
)
cmd
.
Flags
()
.
StringP
(
"status"
,
"s"
,
""
,
"status"
)
cmd
.
Flags
()
.
StringP
(
"status"
,
"s"
,
""
,
"status"
)
cmd
.
Flags
()
.
StringP
(
"collateralizeIDs"
,
"d"
,
""
,
"collateralize IDs"
)
cmd
.
Flags
()
.
StringP
(
"collateralizeIDs"
,
"d"
,
""
,
"collateralize IDs"
)
cmd
.
Flags
()
.
StringP
(
"borrowID"
,
"b"
,
""
,
"borrow ID"
)
}
}
func
CollateralizeQuery
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
func
CollateralizeQuery
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
...
@@ -293,6 +294,7 @@ func CollateralizeQuery(cmd *cobra.Command, args []string) {
...
@@ -293,6 +294,7 @@ func CollateralizeQuery(cmd *cobra.Command, args []string) {
statusStr
,
_
:=
cmd
.
Flags
()
.
GetString
(
"status"
)
statusStr
,
_
:=
cmd
.
Flags
()
.
GetString
(
"status"
)
// indexstr, _ := cmd.Flags().GetString("index")
// indexstr, _ := cmd.Flags().GetString("index")
collateralizeIDs
,
_
:=
cmd
.
Flags
()
.
GetString
(
"collateralizeIDs"
)
collateralizeIDs
,
_
:=
cmd
.
Flags
()
.
GetString
(
"collateralizeIDs"
)
borrowID
,
_
:=
cmd
.
Flags
()
.
GetString
(
"borrowID"
)
var
params
rpctypes
.
Query4Jrpc
var
params
rpctypes
.
Query4Jrpc
params
.
Execer
=
pkt
.
CollateralizeX
params
.
Execer
=
pkt
.
CollateralizeX
...
@@ -315,25 +317,36 @@ func CollateralizeQuery(cmd *cobra.Command, args []string) {
...
@@ -315,25 +317,36 @@ func CollateralizeQuery(cmd *cobra.Command, args []string) {
if
collateralizeID
!=
""
{
if
collateralizeID
!=
""
{
if
statusStr
!=
""
{
if
statusStr
!=
""
{
params
.
FuncName
=
"Collateralize
BorrowInfo
ByStatus"
params
.
FuncName
=
"Collateralize
Record
ByStatus"
req
:=
&
pkt
.
ReqCollateralize
BorrowInfo
ByStatus
{
req
:=
&
pkt
.
ReqCollateralize
Record
ByStatus
{
CollateralizeId
:
collateralizeID
,
CollateralizeId
:
collateralizeID
,
Status
:
int32
(
status
),
Status
:
int32
(
status
),
}
}
params
.
Payload
=
types
.
MustPBToJSON
(
req
)
params
.
Payload
=
types
.
MustPBToJSON
(
req
)
var
res
pkt
.
RepCollateralize
BorrowInfo
s
var
res
pkt
.
RepCollateralize
Record
s
ctx
:=
jsonrpc
.
NewRPCCtx
(
rpcLaddr
,
"Chain33.Query"
,
params
,
&
res
)
ctx
:=
jsonrpc
.
NewRPCCtx
(
rpcLaddr
,
"Chain33.Query"
,
params
,
&
res
)
ctx
.
Run
()
ctx
.
Run
()
}
else
if
address
!=
""
{
}
else
if
address
!=
""
{
params
.
FuncName
=
"Collateralize
BorrowInfo
ByAddr"
params
.
FuncName
=
"Collateralize
Record
ByAddr"
req
:=
&
pkt
.
ReqCollateralize
BorrowInfo
ByAddr
{
req
:=
&
pkt
.
ReqCollateralize
Record
ByAddr
{
CollateralizeId
:
collateralizeID
,
CollateralizeId
:
collateralizeID
,
Addr
:
address
,
Addr
:
address
,
}
}
params
.
Payload
=
types
.
MustPBToJSON
(
req
)
params
.
Payload
=
types
.
MustPBToJSON
(
req
)
var
res
pkt
.
RepCollateralizeBorrowInfos
var
res
pkt
.
RepCollateralizeRecords
ctx
:=
jsonrpc
.
NewRPCCtx
(
rpcLaddr
,
"Chain33.Query"
,
params
,
&
res
)
ctx
.
Run
()
}
else
if
borrowID
!=
""
{
params
.
FuncName
=
"CollateralizeRecordByID"
req
:=
&
pkt
.
ReqCollateralizeRecord
{
CollateralizeId
:
collateralizeID
,
RecordId
:
borrowID
,
}
params
.
Payload
=
types
.
MustPBToJSON
(
req
)
var
res
pkt
.
RepCollateralizeRecord
ctx
:=
jsonrpc
.
NewRPCCtx
(
rpcLaddr
,
"Chain33.Query"
,
params
,
&
res
)
ctx
:=
jsonrpc
.
NewRPCCtx
(
rpcLaddr
,
"Chain33.Query"
,
params
,
&
res
)
ctx
.
Run
()
ctx
.
Run
()
}
else
{
}
else
{
...
...
plugin/dapp/collateralize/executor/collateralize.go
View file @
adb27358
...
@@ -59,11 +59,11 @@ func (c *Collateralize) GetDriverName() string {
...
@@ -59,11 +59,11 @@ func (c *Collateralize) GetDriverName() string {
return
pty
.
CollateralizeX
return
pty
.
CollateralizeX
}
}
func
(
c
*
Collateralize
)
addCollateralizeID
(
collateralize
log
*
pty
.
ReceiptCollateralize
)
(
kvs
[]
*
types
.
KeyValue
)
{
func
(
c
*
Collateralize
)
addCollateralizeID
(
collateralize
Id
string
,
index
int64
)
(
kvs
[]
*
types
.
KeyValue
)
{
key
:=
calcCollateralizeKey
(
collateralize
log
.
CollateralizeId
,
collateralizelog
.
I
ndex
)
key
:=
calcCollateralizeKey
(
collateralize
Id
,
i
ndex
)
record
:=
&
pty
.
CollateralizeRecord
{
record
:=
&
pty
.
CollateralizeRecord
{
CollateralizeId
:
collateralize
log
.
Collateralize
Id
,
CollateralizeId
:
collateralizeId
,
Index
:
collateralizelog
.
I
ndex
,
Index
:
i
ndex
,
}
}
kv
:=
&
types
.
KeyValue
{
Key
:
key
,
Value
:
types
.
Encode
(
record
)}
kv
:=
&
types
.
KeyValue
{
Key
:
key
,
Value
:
types
.
Encode
(
record
)}
...
@@ -71,19 +71,19 @@ func (c *Collateralize) addCollateralizeID(collateralizelog *pty.ReceiptCollater
...
@@ -71,19 +71,19 @@ func (c *Collateralize) addCollateralizeID(collateralizelog *pty.ReceiptCollater
return
kvs
return
kvs
}
}
func
(
c
*
Collateralize
)
deleteCollateralizeID
(
collateralize
log
*
pty
.
ReceiptCollateralize
)
(
kvs
[]
*
types
.
KeyValue
)
{
func
(
c
*
Collateralize
)
deleteCollateralizeID
(
collateralize
Id
string
,
index
int64
)
(
kvs
[]
*
types
.
KeyValue
)
{
key
:=
calcCollateralizeKey
(
collateralize
log
.
CollateralizeId
,
collateralizelog
.
I
ndex
)
key
:=
calcCollateralizeKey
(
collateralize
Id
,
i
ndex
)
kv
:=
&
types
.
KeyValue
{
Key
:
key
,
Value
:
nil
}
kv
:=
&
types
.
KeyValue
{
Key
:
key
,
Value
:
nil
}
kvs
=
append
(
kvs
,
kv
)
kvs
=
append
(
kvs
,
kv
)
return
kvs
return
kvs
}
}
func
(
c
*
Collateralize
)
addCollateralizeStatus
(
collateralizelog
*
pty
.
ReceiptCollateralize
)
(
kvs
[]
*
types
.
KeyValue
)
{
func
(
c
*
Collateralize
)
addCollateralizeStatus
(
status
int32
,
collateralizeId
string
,
index
int64
)
(
kvs
[]
*
types
.
KeyValue
)
{
key
:=
calcCollateralizeStatusKey
(
collateralizelog
.
Status
,
collateralizelog
.
I
ndex
)
key
:=
calcCollateralizeStatusKey
(
status
,
i
ndex
)
record
:=
&
pty
.
CollateralizeRecord
{
record
:=
&
pty
.
CollateralizeRecord
{
CollateralizeId
:
collateralize
log
.
Collateralize
Id
,
CollateralizeId
:
collateralizeId
,
Index
:
collateralizelog
.
I
ndex
,
Index
:
i
ndex
,
}
}
kv
:=
&
types
.
KeyValue
{
Key
:
key
,
Value
:
types
.
Encode
(
record
)}
kv
:=
&
types
.
KeyValue
{
Key
:
key
,
Value
:
types
.
Encode
(
record
)}
...
@@ -91,19 +91,19 @@ func (c *Collateralize) addCollateralizeStatus(collateralizelog *pty.ReceiptColl
...
@@ -91,19 +91,19 @@ func (c *Collateralize) addCollateralizeStatus(collateralizelog *pty.ReceiptColl
return
kvs
return
kvs
}
}
func
(
c
*
Collateralize
)
deleteCollateralizeStatus
(
collateralizelog
*
pty
.
ReceiptCollateralize
)
(
kvs
[]
*
types
.
KeyValue
)
{
func
(
c
*
Collateralize
)
deleteCollateralizeStatus
(
status
int32
,
index
int64
)
(
kvs
[]
*
types
.
KeyValue
)
{
key
:=
calcCollateralizeStatusKey
(
collateralizelog
.
Status
,
collateralizelog
.
I
ndex
)
key
:=
calcCollateralizeStatusKey
(
status
,
i
ndex
)
kv
:=
&
types
.
KeyValue
{
Key
:
key
,
Value
:
nil
}
kv
:=
&
types
.
KeyValue
{
Key
:
key
,
Value
:
nil
}
kvs
=
append
(
kvs
,
kv
)
kvs
=
append
(
kvs
,
kv
)
return
kvs
return
kvs
}
}
func
(
c
*
Collateralize
)
addCollateralizeAddr
(
collateralizelog
*
pty
.
ReceiptCollateralize
)
(
kvs
[]
*
types
.
KeyValue
)
{
func
(
c
*
Collateralize
)
addCollateralizeAddr
(
addr
string
,
collateralizeId
string
,
index
int64
)
(
kvs
[]
*
types
.
KeyValue
)
{
key
:=
calcCollateralizeAddrKey
(
collateralizelog
.
AccountAddr
,
collateralizelog
.
I
ndex
)
key
:=
calcCollateralizeAddrKey
(
addr
,
i
ndex
)
record
:=
&
pty
.
CollateralizeRecord
{
record
:=
&
pty
.
CollateralizeRecord
{
CollateralizeId
:
collateralize
log
.
Collateralize
Id
,
CollateralizeId
:
collateralizeId
,
Index
:
collateralizelog
.
I
ndex
,
Index
:
i
ndex
,
}
}
kv
:=
&
types
.
KeyValue
{
Key
:
key
,
Value
:
types
.
Encode
(
record
)}
kv
:=
&
types
.
KeyValue
{
Key
:
key
,
Value
:
types
.
Encode
(
record
)}
...
@@ -111,21 +111,21 @@ func (c *Collateralize) addCollateralizeAddr(collateralizelog *pty.ReceiptCollat
...
@@ -111,21 +111,21 @@ func (c *Collateralize) addCollateralizeAddr(collateralizelog *pty.ReceiptCollat
return
kvs
return
kvs
}
}
func
(
c
*
Collateralize
)
deleteCollateralizeAddr
(
collateralizelog
*
pty
.
ReceiptCollateralize
)
(
kvs
[]
*
types
.
KeyValue
)
{
func
(
c
*
Collateralize
)
deleteCollateralizeAddr
(
addr
string
,
index
int64
)
(
kvs
[]
*
types
.
KeyValue
)
{
key
:=
calcCollateralizeAddrKey
(
collateralizelog
.
AccountAddr
,
collateralizelog
.
I
ndex
)
key
:=
calcCollateralizeAddrKey
(
addr
,
i
ndex
)
kv
:=
&
types
.
KeyValue
{
Key
:
key
,
Value
:
nil
}
kv
:=
&
types
.
KeyValue
{
Key
:
key
,
Value
:
nil
}
kvs
=
append
(
kvs
,
kv
)
kvs
=
append
(
kvs
,
kv
)
return
kvs
return
kvs
}
}
func
(
c
*
Collateralize
)
addCollateralizeRecordStatus
(
collateralizelog
*
pty
.
ReceiptCollateralize
)
(
kvs
[]
*
types
.
KeyValue
)
{
func
(
c
*
Collateralize
)
addCollateralizeRecordStatus
(
recordStatus
int32
,
collateralizeId
string
,
recordId
string
,
index
int64
)
(
kvs
[]
*
types
.
KeyValue
)
{
key
:=
calcCollateralizeRecordStatusKey
(
collateralizelog
.
RecordStatus
,
collateralizelog
.
I
ndex
)
key
:=
calcCollateralizeRecordStatusKey
(
recordStatus
,
i
ndex
)
record
:=
&
pty
.
CollateralizeRecord
{
record
:=
&
pty
.
CollateralizeRecord
{
CollateralizeId
:
collateralize
log
.
Collateralize
Id
,
CollateralizeId
:
collateralizeId
,
Addr
:
collateralizelog
.
AccountAddr
,
RecordId
:
recordId
,
Index
:
collateralizelog
.
I
ndex
,
Index
:
i
ndex
,
}
}
kv
:=
&
types
.
KeyValue
{
Key
:
key
,
Value
:
types
.
Encode
(
record
)}
kv
:=
&
types
.
KeyValue
{
Key
:
key
,
Value
:
types
.
Encode
(
record
)}
...
@@ -133,8 +133,30 @@ func (c *Collateralize) addCollateralizeRecordStatus(collateralizelog *pty.Recei
...
@@ -133,8 +133,30 @@ func (c *Collateralize) addCollateralizeRecordStatus(collateralizelog *pty.Recei
return
kvs
return
kvs
}
}
func
(
c
*
Collateralize
)
deleteCollateralizeRecordStatus
(
collateralizelog
*
pty
.
ReceiptCollateralize
)
(
kvs
[]
*
types
.
KeyValue
)
{
func
(
c
*
Collateralize
)
deleteCollateralizeRecordStatus
(
recordStatus
int32
,
index
int64
)
(
kvs
[]
*
types
.
KeyValue
)
{
key
:=
calcCollateralizeRecordStatusKey
(
collateralizelog
.
RecordStatus
,
collateralizelog
.
Index
)
key
:=
calcCollateralizeRecordStatusKey
(
recordStatus
,
index
)
kv
:=
&
types
.
KeyValue
{
Key
:
key
,
Value
:
nil
}
kvs
=
append
(
kvs
,
kv
)
return
kvs
}
func
(
c
*
Collateralize
)
addCollateralizeRecordAddr
(
recordAddr
string
,
collateralizeId
string
,
recordId
string
,
index
int64
)
(
kvs
[]
*
types
.
KeyValue
)
{
key
:=
calcCollateralizeRecordAddrKey
(
recordAddr
,
index
)
record
:=
&
pty
.
CollateralizeRecord
{
CollateralizeId
:
collateralizeId
,
RecordId
:
recordId
,
Index
:
index
,
}
kv
:=
&
types
.
KeyValue
{
Key
:
key
,
Value
:
types
.
Encode
(
record
)}
kvs
=
append
(
kvs
,
kv
)
return
kvs
}
func
(
c
*
Collateralize
)
deleteCollateralizeRecordAddr
(
recordAddr
string
,
index
int64
)
(
kvs
[]
*
types
.
KeyValue
)
{
key
:=
calcCollateralizeRecordAddrKey
(
recordAddr
,
index
)
kv
:=
&
types
.
KeyValue
{
Key
:
key
,
Value
:
nil
}
kv
:=
&
types
.
KeyValue
{
Key
:
key
,
Value
:
nil
}
kvs
=
append
(
kvs
,
kv
)
kvs
=
append
(
kvs
,
kv
)
...
...
plugin/dapp/collateralize/executor/collateralizedb.go
View file @
adb27358
This diff is collapsed.
Click to expand it.
plugin/dapp/collateralize/executor/exec_del_local.go
View file @
adb27358
...
@@ -20,28 +20,38 @@ func (c *Collateralize) execDelLocal(tx *types.Transaction, receiptData *types.R
...
@@ -20,28 +20,38 @@ func (c *Collateralize) execDelLocal(tx *types.Transaction, receiptData *types.R
switch
item
.
Ty
{
switch
item
.
Ty
{
case
pty
.
TyLogCollateralizeCreate
:
case
pty
.
TyLogCollateralizeCreate
:
kv
:=
c
.
deleteCollateralizeStatus
(
&
collateralizeLog
)
set
.
KV
=
append
(
set
.
KV
,
c
.
deleteCollateralizeStatus
(
collateralizeLog
.
Status
,
collateralizeLog
.
Index
)
...
)
set
.
KV
=
append
(
set
.
KV
,
kv
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
deleteCollateralizeAddr
(
collateralizeLog
.
CreateAddr
,
collateralizeLog
.
Index
)
...
)
break
break
case
pty
.
TyLogCollateralizeBorrow
:
case
pty
.
TyLogCollateralizeBorrow
:
set
.
KV
=
append
(
set
.
KV
,
c
.
deleteCollateralizeRecordStatus
(
&
collateralizeLog
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
deleteCollateralizeRecordStatus
(
collateralizeLog
.
RecordStatus
,
collateralizeLog
.
Index
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
deleteCollateralize
Addr
(
&
collateralizeLog
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
deleteCollateralize
RecordAddr
(
collateralizeLog
.
AccountAddr
,
collateralizeLog
.
Index
)
...
)
break
break
case
pty
.
TyLogCollateralizeAppend
:
// append没有状态变化
case
pty
.
TyLogCollateralizeAppend
:
// append没有状态变化
break
break
case
pty
.
TyLogCollateralizeRepay
:
case
pty
.
TyLogCollateralizeRepay
:
set
.
KV
=
append
(
set
.
KV
,
c
.
deleteCollateralizeRecordStatus
(
&
collateralizeLog
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
addCollateralizeRecordStatus
(
collateralizeLog
.
RecordPreStatus
,
collateralizeLog
.
CollateralizeId
,
set
.
KV
=
append
(
set
.
KV
,
c
.
addCollateralizeAddr
(
&
collateralizeLog
)
...
)
collateralizeLog
.
RecordId
,
collateralizeLog
.
PreIndex
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
deleteCollateralizeRecordStatus
(
collateralizeLog
.
RecordStatus
,
collateralizeLog
.
Index
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
addCollateralizeRecordAddr
(
collateralizeLog
.
AccountAddr
,
collateralizeLog
.
CollateralizeId
,
collateralizeLog
.
RecordId
,
collateralizeLog
.
PreIndex
)
...
)
break
break
case
pty
.
TyLogCollateralizeFeed
:
case
pty
.
TyLogCollateralizeFeed
:
set
.
KV
=
append
(
set
.
KV
,
c
.
deleteCollateralizeRecordStatus
(
&
collateralizeLog
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
addCollateralizeRecordStatus
(
collateralizeLog
.
RecordStatus
,
collateralizeLog
.
CollateralizeId
,
if
collateralizeLog
.
RecordStatus
==
pty
.
CollateralizeUserStatusSystemLiquidate
{
collateralizeLog
.
RecordId
,
collateralizeLog
.
PreIndex
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
addCollateralizeAddr
(
&
collateralizeLog
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
deleteCollateralizeRecordStatus
(
collateralizeLog
.
RecordStatus
,
collateralizeLog
.
Index
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
addCollateralizeRecordAddr
(
collateralizeLog
.
AccountAddr
,
collateralizeLog
.
CollateralizeId
,
collateralizeLog
.
RecordId
,
collateralizeLog
.
PreIndex
)
...
)
// 如果没有被清算,需要把地址索引更新
if
collateralizeLog
.
RecordStatus
==
pty
.
CollateralizeUserStatusWarning
||
collateralizeLog
.
RecordStatus
==
pty
.
CollateralizeUserStatusExpire
{
set
.
KV
=
append
(
set
.
KV
,
c
.
deleteCollateralizeRecordAddr
(
collateralizeLog
.
AccountAddr
,
collateralizeLog
.
Index
)
...
)
}
}
break
break
case
pty
.
TyLogCollateralizeClose
:
case
pty
.
TyLogCollateralizeClose
:
kv
:=
c
.
addCollateralizeStatus
(
&
collateralizeLog
)
set
.
KV
=
append
(
set
.
KV
,
c
.
addCollateralizeStatus
(
pty
.
CollateralizeStatusCreated
,
collateralizeLog
.
CollateralizeId
,
set
.
KV
=
append
(
set
.
KV
,
kv
...
)
collateralizeLog
.
PreIndex
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
addCollateralizeAddr
(
collateralizeLog
.
CreateAddr
,
collateralizeLog
.
CollateralizeId
,
collateralizeLog
.
PreIndex
)
...
)
break
break
}
}
}
}
...
...
plugin/dapp/collateralize/executor/exec_local.go
View file @
adb27358
...
@@ -21,26 +21,37 @@ func (c *Collateralize) execLocal(tx *types.Transaction, receipt *types.ReceiptD
...
@@ -21,26 +21,37 @@ func (c *Collateralize) execLocal(tx *types.Transaction, receipt *types.ReceiptD
switch
item
.
Ty
{
switch
item
.
Ty
{
case
pty
.
TyLogCollateralizeCreate
:
case
pty
.
TyLogCollateralizeCreate
:
set
.
KV
=
append
(
set
.
KV
,
c
.
addCollateralizeStatus
(
&
collateralizeLog
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
addCollateralizeStatus
(
collateralizeLog
.
Status
,
collateralizeLog
.
CollateralizeId
,
collateralizeLog
.
Index
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
addCollateralizeAddr
(
collateralizeLog
.
CreateAddr
,
collateralizeLog
.
CollateralizeId
,
collateralizeLog
.
Index
)
...
)
break
break
case
pty
.
TyLogCollateralizeBorrow
:
case
pty
.
TyLogCollateralizeBorrow
:
set
.
KV
=
append
(
set
.
KV
,
c
.
addCollateralizeRecordStatus
(
&
collateralizeLog
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
addCollateralizeRecordStatus
(
collateralizeLog
.
RecordStatus
,
collateralizeLog
.
CollateralizeId
,
set
.
KV
=
append
(
set
.
KV
,
c
.
addCollateralizeAddr
(
&
collateralizeLog
)
...
)
collateralizeLog
.
RecordId
,
collateralizeLog
.
Index
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
addCollateralizeRecordAddr
(
collateralizeLog
.
AccountAddr
,
collateralizeLog
.
CollateralizeId
,
collateralizeLog
.
RecordId
,
collateralizeLog
.
Index
)
...
)
break
break
case
pty
.
TyLogCollateralizeAppend
:
//append没有状态变化
case
pty
.
TyLogCollateralizeAppend
:
//append没有状态变化
break
break
case
pty
.
TyLogCollateralizeRepay
:
case
pty
.
TyLogCollateralizeRepay
:
set
.
KV
=
append
(
set
.
KV
,
c
.
addCollateralizeRecordStatus
(
&
collateralizeLog
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
deleteCollateralizeRecordStatus
(
collateralizeLog
.
RecordPreStatus
,
collateralizeLog
.
PreIndex
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
deleteCollateralizeAddr
(
&
collateralizeLog
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
addCollateralizeRecordStatus
(
collateralizeLog
.
RecordStatus
,
collateralizeLog
.
CollateralizeId
,
collateralizeLog
.
RecordId
,
collateralizeLog
.
Index
)
...
)
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
.
addCollateralizeRecordStatus
(
&
collateralizeLog
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
deleteCollateralizeRecordStatus
(
collateralizeLog
.
RecordPreStatus
,
collateralizeLog
.
PreIndex
)
...
)
if
collateralizeLog
.
RecordStatus
==
pty
.
CollateralizeUserStatusSystemLiquidate
{
set
.
KV
=
append
(
set
.
KV
,
c
.
addCollateralizeRecordStatus
(
collateralizeLog
.
RecordStatus
,
collateralizeLog
.
CollateralizeId
,
set
.
KV
=
append
(
set
.
KV
,
c
.
deleteCollateralizeAddr
(
&
collateralizeLog
)
...
)
collateralizeLog
.
RecordId
,
collateralizeLog
.
Index
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
deleteCollateralizeRecordAddr
(
collateralizeLog
.
AccountAddr
,
collateralizeLog
.
PreIndex
)
...
)
// 如果没有被清算,需要把地址索引更新
if
collateralizeLog
.
RecordStatus
==
pty
.
CollateralizeUserStatusWarning
||
collateralizeLog
.
RecordStatus
==
pty
.
CollateralizeUserStatusExpire
{
set
.
KV
=
append
(
set
.
KV
,
c
.
addCollateralizeRecordAddr
(
collateralizeLog
.
AccountAddr
,
collateralizeLog
.
CollateralizeId
,
collateralizeLog
.
RecordId
,
collateralizeLog
.
Index
)
...
)
}
}
break
break
case
pty
.
TyLogCollateralizeClose
:
case
pty
.
TyLogCollateralizeClose
:
set
.
KV
=
append
(
set
.
KV
,
c
.
deleteCollateralizeStatus
(
&
collateralizeLog
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
deleteCollateralizeStatus
(
pty
.
CollateralizeStatusCreated
,
collateralizeLog
.
PreIndex
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
deleteCollateralizeAddr
(
collateralizeLog
.
CreateAddr
,
collateralizeLog
.
PreIndex
)
...
)
break
break
}
}
}
}
...
...
plugin/dapp/collateralize/executor/keys.go
View file @
adb27358
...
@@ -41,6 +41,16 @@ func calcCollateralizeLatestPriceKey() []byte {
...
@@ -41,6 +41,16 @@ func calcCollateralizeLatestPriceKey() []byte {
return
[]
byte
(
key
)
return
[]
byte
(
key
)
}
}
func
calcCollateralizeRecordAddrPrefix
(
addr
string
)
[]
byte
{
key
:=
fmt
.
Sprintf
(
"LODB-Collateralize-record-addr:%d"
,
addr
)
return
[]
byte
(
key
)
}
func
calcCollateralizeRecordAddrKey
(
addr
string
,
index
int64
)
[]
byte
{
key
:=
fmt
.
Sprintf
(
"LODB-Collateralize-record-addr:%d:%018d"
,
addr
,
index
)
return
[]
byte
(
key
)
}
func
calcCollateralizeRecordStatusPrefix
(
status
int32
)
[]
byte
{
func
calcCollateralizeRecordStatusPrefix
(
status
int32
)
[]
byte
{
key
:=
fmt
.
Sprintf
(
"LODB-Collateralize-record-status:%d"
,
status
)
key
:=
fmt
.
Sprintf
(
"LODB-Collateralize-record-status:%d"
,
status
)
return
[]
byte
(
key
)
return
[]
byte
(
key
)
...
...
plugin/dapp/collateralize/executor/query.go
View file @
adb27358
...
@@ -80,66 +80,40 @@ func (c *Collateralize) Query_CollateralizeByAddr(req *pty.ReqCollateralizeByAdd
...
@@ -80,66 +80,40 @@ func (c *Collateralize) Query_CollateralizeByAddr(req *pty.ReqCollateralizeByAdd
return
ids
,
nil
return
ids
,
nil
}
}
func
(
c
*
Collateralize
)
Query_Collateralize
BorrowInfoByAddr
(
req
*
pty
.
ReqCollateralizeBorrowInfoByAddr
)
(
types
.
Message
,
error
)
{
func
(
c
*
Collateralize
)
Query_Collateralize
RecordByID
(
req
*
pty
.
ReqCollateralizeRecord
)
(
types
.
Message
,
error
)
{
records
,
err
:=
queryCollateralizeByAddr
(
c
.
GetLocalDB
(),
req
.
Addr
)
issuRecord
,
err
:=
queryCollateralizeRecordByID
(
c
.
GetStateDB
(),
req
.
CollateralizeId
,
req
.
RecordId
)
if
err
!=
nil
{
if
err
!=
nil
{
clog
.
Error
(
"Query_
CollateralizeBorrowInfoByAddr"
,
"get collateraliz
e record error"
,
err
)
clog
.
Error
(
"Query_
IssuanceRecordByID"
,
"get issuanc
e record error"
,
err
)
return
nil
,
err
return
nil
,
err
}
}
ret
:=
&
pty
.
RepCollateralizeBorrowInfos
{}
ret
:=
&
pty
.
RepCollateralizeRecord
{}
for
_
,
record
:=
range
records
{
ret
.
Record
=
issuRecord
if
record
.
CollateralizeId
==
req
.
CollateralizeId
{
return
issuRecord
,
nil
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
.
Record
=
append
(
ret
.
Record
,
borrowRecord
)
}
}
for
_
,
borrowRecord
:=
range
coll
.
InvalidRecords
{
if
borrowRecord
.
AccountAddr
==
req
.
Addr
{
ret
.
Record
=
append
(
ret
.
Record
,
borrowRecord
)
}
}
}
}
return
nil
,
pty
.
ErrRecordNotExist
}
}
func
(
c
*
Collateralize
)
Query_Collateralize
BorrowInfoByStatus
(
req
*
pty
.
ReqCollateralizeBorrowInfoByStatus
)
(
types
.
Message
,
error
)
{
func
(
c
*
Collateralize
)
Query_Collateralize
RecordByAddr
(
req
*
pty
.
ReqCollateralizeRecordByAddr
)
(
types
.
Message
,
error
)
{
records
,
err
:=
queryCollateralizeRecordBy
Status
(
c
.
GetLocalDB
(),
req
.
Status
)
records
,
err
:=
queryCollateralizeRecordBy
Addr
(
c
.
GetStateDB
(),
c
.
GetLocalDB
(),
req
.
Addr
)
if
err
!=
nil
{
if
err
!=
nil
{
clog
.
Error
(
"Query_Collateralize
BorrowInfo
ByAddr"
,
"get collateralize record error"
,
err
)
clog
.
Error
(
"Query_Collateralize
Record
ByAddr"
,
"get collateralize record error"
,
err
)
return
nil
,
err
return
nil
,
err
}
}
ret
:=
&
pty
.
RepCollateralizeBorrowInfos
{}
ret
:=
&
pty
.
RepCollateralizeRecords
{}
for
_
,
record
:=
range
records
{
ret
.
Records
=
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
{
return
ret
,
nil
if
borrowRecord
.
Status
==
req
.
Status
{
}
ret
.
Record
=
append
(
ret
.
Record
,
borrowRecord
)
}
}
for
_
,
borrowRecord
:=
range
coll
.
InvalidRecords
{
func
(
c
*
Collateralize
)
Query_CollateralizeRecordByStatus
(
req
*
pty
.
ReqCollateralizeRecordByStatus
)
(
types
.
Message
,
error
)
{
if
borrowRecord
.
Status
==
req
.
Status
{
records
,
err
:=
queryCollateralizeRecordByStatus
(
c
.
GetStateDB
(),
c
.
GetLocalDB
(),
req
.
Status
)
ret
.
Record
=
append
(
ret
.
Record
,
borrowRecord
)
if
err
!=
nil
{
}
clog
.
Error
(
"Query_CollateralizeRecordByAddr"
,
"get collateralize record error"
,
err
)
}
return
nil
,
err
}
}
ret
:=
&
pty
.
RepCollateralizeRecords
{}
ret
.
Records
=
records
return
ret
,
nil
return
ret
,
nil
}
}
\ No newline at end of file
plugin/dapp/collateralize/proto/collateralize.proto
View file @
adb27358
...
@@ -18,6 +18,9 @@ message Collateralize {
...
@@ -18,6 +18,9 @@ message Collateralize {
float
latestLiquidationPrice
=
12
;
//最高清算价格
float
latestLiquidationPrice
=
12
;
//最高清算价格
int64
period
=
13
;
//借贷最大期限
int64
period
=
13
;
//借贷最大期限
int64
latestExpireTime
=
14
;
//最近超期时间
int64
latestExpireTime
=
14
;
//最近超期时间
int64
index
=
15
;
//当前索引
int64
preIndex
=
16
;
//上一个索引
int64
createIndex
=
17
;
//创建时的索引,用于close删除记录
}
}
// 借出记录
// 借出记录
...
@@ -32,6 +35,7 @@ message BorrowRecord {
...
@@ -32,6 +35,7 @@ message BorrowRecord {
int64
liquidateTime
=
8
;
//清算时间
int64
liquidateTime
=
8
;
//清算时间
int64
expireTime
=
9
;
//超时清算时间
int64
expireTime
=
9
;
//超时清算时间
int32
preStatus
=
10
;
//上一次抵押状态,用于告警恢复
int32
preStatus
=
10
;
//上一次抵押状态,用于告警恢复
string
recordId
=
11
;
//借出id,标识一次借出记录
}
}
// 资产价格记录
// 资产价格记录
...
@@ -80,13 +84,15 @@ message CollateralizeBorrow {
...
@@ -80,13 +84,15 @@ message CollateralizeBorrow {
// 质押清算
// 质押清算
message
CollateralizeRepay
{
message
CollateralizeRepay
{
string
collateralizeId
=
1
;
//借贷期数ID
string
collateralizeId
=
1
;
//借贷期数ID
int64
value
=
2
;
//借贷价值(ccny)
string
recordId
=
2
;
//借贷ID
int64
value
=
3
;
//借贷价值(ccny)
}
}
// 追加抵押物
// 追加抵押物
message
CollateralizeAppend
{
message
CollateralizeAppend
{
string
collateralizeId
=
1
;
//借贷期数ID
string
collateralizeId
=
1
;
//借贷期数ID
int64
collateralValue
=
2
;
//追加价值(bty)
string
recordId
=
2
;
//借贷ID
int64
collateralValue
=
3
;
//追加价值(bty)
}
}
// 喂价
// 喂价
...
@@ -107,16 +113,19 @@ message ReceiptCollateralize {
...
@@ -107,16 +113,19 @@ message ReceiptCollateralize {
string
createAddr
=
2
;
string
createAddr
=
2
;
string
accountAddr
=
3
;
string
accountAddr
=
3
;
int32
status
=
4
;
int32
status
=
4
;
int32
preStatus
=
5
;
int64
index
=
5
;
int64
index
=
6
;
int32
recordStatus
=
6
;
int32
recordStatus
=
7
;
int32
recordPreStatus
=
7
;
string
recordId
=
8
;
int64
preIndex
=
9
;
}
}
// exec_local 借贷记录信息
// exec_local 借贷记录信息
message
CollateralizeRecord
{
message
CollateralizeRecord
{
string
collateralizeId
=
1
;
string
collateralizeId
=
1
;
string
addr
=
2
;
string
addr
=
2
;
int64
index
=
3
;
string
recordId
=
3
;
int64
index
=
4
;
}
}
// exec_local 借贷记录信息列表
// exec_local 借贷记录信息列表
...
@@ -166,18 +175,29 @@ message RepCollateralizeIDs {
...
@@ -166,18 +175,29 @@ message RepCollateralizeIDs {
}
}
// 根据地址和借贷ID混合查询具体借贷记录
// 根据地址和借贷ID混合查询具体借贷记录
message
ReqCollateralize
BorrowInfo
ByAddr
{
message
ReqCollateralize
Record
ByAddr
{
string
collateralizeId
=
1
;
string
collateralizeId
=
1
;
string
addr
=
2
;
string
addr
=
2
;
}
}
// 根据状态和借贷ID混合查询具体借贷记录
// 根据状态和借贷ID混合查询具体借贷记录
message
ReqCollateralize
BorrowInfo
ByStatus
{
message
ReqCollateralize
Record
ByStatus
{
string
collateralizeId
=
1
;
string
collateralizeId
=
1
;
int32
status
=
2
;
int32
status
=
2
;
}
}
// 返回借贷记录
// 返回借贷记录
message
RepCollateralizeBorrowInfos
{
message
RepCollateralizeRecords
{
repeated
BorrowRecord
record
=
1
;
repeated
BorrowRecord
records
=
1
;
}
// 精确查找借贷记录
message
ReqCollateralizeRecord
{
string
collateralizeId
=
1
;
string
recordId
=
2
;
}
// 返回记录
message
RepCollateralizeRecord
{
BorrowRecord
record
=
1
;
}
}
plugin/dapp/collateralize/types/collateralize.pb.go
View file @
adb27358
This diff is collapsed.
Click to expand it.
plugin/dapp/init/init.go
View file @
adb27358
...
@@ -11,6 +11,7 @@ import (
...
@@ -11,6 +11,7 @@ import (
_
"github.com/33cn/plugin/plugin/dapp/game"
//auto gen
_
"github.com/33cn/plugin/plugin/dapp/game"
//auto gen
_
"github.com/33cn/plugin/plugin/dapp/guess"
//auto gen
_
"github.com/33cn/plugin/plugin/dapp/guess"
//auto gen
_
"github.com/33cn/plugin/plugin/dapp/hashlock"
//auto gen
_
"github.com/33cn/plugin/plugin/dapp/hashlock"
//auto gen
_
"github.com/33cn/plugin/plugin/dapp/issuance"
//auto gen
_
"github.com/33cn/plugin/plugin/dapp/js"
//auto gen
_
"github.com/33cn/plugin/plugin/dapp/js"
//auto gen
_
"github.com/33cn/plugin/plugin/dapp/lottery"
//auto gen
_
"github.com/33cn/plugin/plugin/dapp/lottery"
//auto gen
_
"github.com/33cn/plugin/plugin/dapp/multisig"
//auto gen
_
"github.com/33cn/plugin/plugin/dapp/multisig"
//auto gen
...
...
plugin/dapp/issuance/commands/cmd.go
View file @
adb27358
...
@@ -245,7 +245,8 @@ func addIssuanceQueryFlags(cmd *cobra.Command) {
...
@@ -245,7 +245,8 @@ func addIssuanceQueryFlags(cmd *cobra.Command) {
cmd
.
Flags
()
.
StringP
(
"address"
,
"a"
,
""
,
"address"
)
cmd
.
Flags
()
.
StringP
(
"address"
,
"a"
,
""
,
"address"
)
cmd
.
Flags
()
.
StringP
(
"index"
,
"i"
,
""
,
"index"
)
cmd
.
Flags
()
.
StringP
(
"index"
,
"i"
,
""
,
"index"
)
cmd
.
Flags
()
.
StringP
(
"status"
,
"s"
,
""
,
"status"
)
cmd
.
Flags
()
.
StringP
(
"status"
,
"s"
,
""
,
"status"
)
cmd
.
Flags
()
.
StringP
(
"issuanceIDs"
,
"d"
,
""
,
"issuance IDs"
)
cmd
.
Flags
()
.
StringP
(
"issuanceIDs"
,
"e"
,
""
,
"issuance IDs"
)
cmd
.
Flags
()
.
StringP
(
"debtID"
,
"d"
,
""
,
"debt ID"
)
}
}
func
IssuanceQuery
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
func
IssuanceQuery
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
...
@@ -255,6 +256,7 @@ func IssuanceQuery(cmd *cobra.Command, args []string) {
...
@@ -255,6 +256,7 @@ func IssuanceQuery(cmd *cobra.Command, args []string) {
statusStr
,
_
:=
cmd
.
Flags
()
.
GetString
(
"status"
)
statusStr
,
_
:=
cmd
.
Flags
()
.
GetString
(
"status"
)
// indexstr, _ := cmd.Flags().GetString("index")
// indexstr, _ := cmd.Flags().GetString("index")
issuanceIDs
,
_
:=
cmd
.
Flags
()
.
GetString
(
"issuanceIDs"
)
issuanceIDs
,
_
:=
cmd
.
Flags
()
.
GetString
(
"issuanceIDs"
)
debtID
,
_
:=
cmd
.
Flags
()
.
GetString
(
"debtID"
)
var
params
rpctypes
.
Query4Jrpc
var
params
rpctypes
.
Query4Jrpc
params
.
Execer
=
pkt
.
IssuanceX
params
.
Execer
=
pkt
.
IssuanceX
...
@@ -277,25 +279,36 @@ func IssuanceQuery(cmd *cobra.Command, args []string) {
...
@@ -277,25 +279,36 @@ func IssuanceQuery(cmd *cobra.Command, args []string) {
if
issuanceID
!=
""
{
if
issuanceID
!=
""
{
if
statusStr
!=
""
{
if
statusStr
!=
""
{
params
.
FuncName
=
"Issuance
DebtInfo
ByStatus"
params
.
FuncName
=
"Issuance
Records
ByStatus"
req
:=
&
pkt
.
ReqIssuance
DebtInfo
ByStatus
{
req
:=
&
pkt
.
ReqIssuance
Records
ByStatus
{
IssuanceId
:
issuanceID
,
IssuanceId
:
issuanceID
,
Status
:
int32
(
status
),
Status
:
int32
(
status
),
}
}
params
.
Payload
=
types
.
MustPBToJSON
(
req
)
params
.
Payload
=
types
.
MustPBToJSON
(
req
)
var
res
pkt
.
RepIssuance
DebtInfo
s
var
res
pkt
.
RepIssuance
Record
s
ctx
:=
jsonrpc
.
NewRPCCtx
(
rpcLaddr
,
"Chain33.Query"
,
params
,
&
res
)
ctx
:=
jsonrpc
.
NewRPCCtx
(
rpcLaddr
,
"Chain33.Query"
,
params
,
&
res
)
ctx
.
Run
()
ctx
.
Run
()
}
else
if
address
!=
""
{
}
else
if
address
!=
""
{
params
.
FuncName
=
"Issuance
DebtInfo
ByAddr"
params
.
FuncName
=
"Issuance
Records
ByAddr"
req
:=
&
pkt
.
ReqIssuance
DebtInfo
ByAddr
{
req
:=
&
pkt
.
ReqIssuance
Records
ByAddr
{
IssuanceId
:
issuanceID
,
IssuanceId
:
issuanceID
,
Addr
:
address
,
Addr
:
address
,
}
}
params
.
Payload
=
types
.
MustPBToJSON
(
req
)
params
.
Payload
=
types
.
MustPBToJSON
(
req
)
var
res
pkt
.
RepIssuanceDebtInfos
var
res
pkt
.
RepIssuanceDebtInfo
ctx
:=
jsonrpc
.
NewRPCCtx
(
rpcLaddr
,
"Chain33.Query"
,
params
,
&
res
)
ctx
.
Run
()
}
else
if
debtID
!=
""
{
params
.
FuncName
=
"IssuanceRecordByID"
req
:=
&
pkt
.
ReqIssuanceDebtInfo
{
IssuanceId
:
issuanceID
,
DebtId
:
debtID
,
}
params
.
Payload
=
types
.
MustPBToJSON
(
req
)
var
res
pkt
.
RepIssuanceCurrentInfo
ctx
:=
jsonrpc
.
NewRPCCtx
(
rpcLaddr
,
"Chain33.Query"
,
params
,
&
res
)
ctx
:=
jsonrpc
.
NewRPCCtx
(
rpcLaddr
,
"Chain33.Query"
,
params
,
&
res
)
ctx
.
Run
()
ctx
.
Run
()
}
else
{
}
else
{
...
@@ -309,14 +322,6 @@ func IssuanceQuery(cmd *cobra.Command, args []string) {
...
@@ -309,14 +322,6 @@ func IssuanceQuery(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
if
address
!=
""
{
params
.
FuncName
=
"IssuanceByAddr"
req
:=
&
pkt
.
ReqIssuanceByAddr
{
Addr
:
address
}
params
.
Payload
=
types
.
MustPBToJSON
(
req
)
var
res
pkt
.
RepIssuanceIDs
ctx
:=
jsonrpc
.
NewRPCCtx
(
rpcLaddr
,
"Chain33.Query"
,
params
,
&
res
)
ctx
.
Run
()
}
else
if
statusStr
!=
""
{
}
else
if
statusStr
!=
""
{
params
.
FuncName
=
"IssuanceByStatus"
params
.
FuncName
=
"IssuanceByStatus"
...
...
plugin/dapp/issuance/executor/exec_del_local.go
View file @
adb27358
...
@@ -12,34 +12,40 @@ import (
...
@@ -12,34 +12,40 @@ import (
func
(
c
*
Issuance
)
execDelLocal
(
tx
*
types
.
Transaction
,
receiptData
*
types
.
ReceiptData
)
(
*
types
.
LocalDBSet
,
error
)
{
func
(
c
*
Issuance
)
execDelLocal
(
tx
*
types
.
Transaction
,
receiptData
*
types
.
ReceiptData
)
(
*
types
.
LocalDBSet
,
error
)
{
set
:=
&
types
.
LocalDBSet
{}
set
:=
&
types
.
LocalDBSet
{}
for
_
,
item
:=
range
receiptData
.
Logs
{
for
_
,
item
:=
range
receiptData
.
Logs
{
var
I
ssuanceLog
pty
.
ReceiptIssuance
var
i
ssuanceLog
pty
.
ReceiptIssuance
err
:=
types
.
Decode
(
item
.
Log
,
&
I
ssuanceLog
)
err
:=
types
.
Decode
(
item
.
Log
,
&
i
ssuanceLog
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
switch
item
.
Ty
{
switch
item
.
Ty
{
case
pty
.
TyLogIssuanceCreate
:
case
pty
.
TyLogIssuanceCreate
:
kv
:=
c
.
deleteIssuanceStatus
(
&
IssuanceLog
)
set
.
KV
=
append
(
set
.
KV
,
c
.
deleteIssuanceStatus
(
issuanceLog
.
Status
,
issuanceLog
.
Index
)
...
)
set
.
KV
=
append
(
set
.
KV
,
kv
...
)
break
break
case
pty
.
TyLogIssuanceDebt
:
case
pty
.
TyLogIssuanceDebt
:
set
.
KV
=
append
(
set
.
KV
,
c
.
deleteIssuanceRecordStatus
(
&
IssuanceLog
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
deleteIssuanceRecordStatus
(
issuanceLog
.
RecordStatus
,
issuanceLog
.
Index
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
deleteIssuance
Addr
(
&
IssuanceLog
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
deleteIssuance
RecordAddr
(
issuanceLog
.
AccountAddr
,
issuanceLog
.
Index
)
...
)
break
break
case
pty
.
TyLogIssuanceRepay
:
case
pty
.
TyLogIssuanceRepay
:
set
.
KV
=
append
(
set
.
KV
,
c
.
deleteIssuanceRecordStatus
(
&
IssuanceLog
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
addIssuanceRecordStatus
(
issuanceLog
.
RecordPreStatus
,
issuanceLog
.
AccountAddr
,
issuanceLog
.
PreIndex
,
set
.
KV
=
append
(
set
.
KV
,
c
.
addIssuanceAddr
(
&
IssuanceLog
)
...
)
issuanceLog
.
DebtId
,
issuanceLog
.
IssuanceId
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
deleteIssuanceRecordStatus
(
issuanceLog
.
RecordStatus
,
issuanceLog
.
Index
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
addIssuanceRecordAddr
(
issuanceLog
.
AccountAddr
,
issuanceLog
.
PreIndex
,
issuanceLog
.
DebtId
,
issuanceLog
.
IssuanceId
)
...
)
break
break
case
pty
.
TyLogIssuanceFeed
:
case
pty
.
TyLogIssuanceFeed
:
set
.
KV
=
append
(
set
.
KV
,
c
.
deleteIssuanceRecordStatus
(
&
IssuanceLog
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
addIssuanceRecordStatus
(
issuanceLog
.
RecordStatus
,
issuanceLog
.
AccountAddr
,
issuanceLog
.
PreIndex
,
if
IssuanceLog
.
RecordStatus
==
pty
.
IssuanceUserStatusSystemLiquidate
{
issuanceLog
.
DebtId
,
issuanceLog
.
IssuanceId
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
addIssuanceAddr
(
&
IssuanceLog
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
deleteIssuanceRecordStatus
(
issuanceLog
.
RecordStatus
,
issuanceLog
.
Index
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
addIssuanceRecordAddr
(
issuanceLog
.
AccountAddr
,
issuanceLog
.
PreIndex
,
issuanceLog
.
DebtId
,
issuanceLog
.
IssuanceId
)
...
)
// 如果没有被清算,需要把地址索引更新
if
issuanceLog
.
RecordStatus
==
pty
.
IssuanceUserStatusWarning
||
issuanceLog
.
RecordStatus
==
pty
.
IssuanceUserStatusExpire
{
set
.
KV
=
append
(
set
.
KV
,
c
.
deleteIssuanceRecordAddr
(
issuanceLog
.
AccountAddr
,
issuanceLog
.
Index
)
...
)
}
}
break
break
case
pty
.
TyLogIssuanceClose
:
case
pty
.
TyLogIssuanceClose
:
kv
:=
c
.
addIssuanceStatus
(
&
IssuanceLog
)
set
.
KV
=
append
(
set
.
KV
,
c
.
addIssuanceStatus
(
pty
.
IssuanceStatusCreated
,
issuanceLog
.
PreIndex
,
issuanceLog
.
IssuanceId
)
...
)
set
.
KV
=
append
(
set
.
KV
,
kv
...
)
break
break
}
}
}
}
...
...
plugin/dapp/issuance/executor/exec_local.go
View file @
adb27358
...
@@ -13,32 +13,41 @@ import (
...
@@ -13,32 +13,41 @@ import (
func
(
c
*
Issuance
)
execLocal
(
tx
*
types
.
Transaction
,
receipt
*
types
.
ReceiptData
)
(
*
types
.
LocalDBSet
,
error
)
{
func
(
c
*
Issuance
)
execLocal
(
tx
*
types
.
Transaction
,
receipt
*
types
.
ReceiptData
)
(
*
types
.
LocalDBSet
,
error
)
{
set
:=
&
types
.
LocalDBSet
{}
set
:=
&
types
.
LocalDBSet
{}
for
_
,
item
:=
range
receipt
.
Logs
{
for
_
,
item
:=
range
receipt
.
Logs
{
var
I
ssuanceLog
pty
.
ReceiptIssuance
var
i
ssuanceLog
pty
.
ReceiptIssuance
err
:=
types
.
Decode
(
item
.
Log
,
&
I
ssuanceLog
)
err
:=
types
.
Decode
(
item
.
Log
,
&
i
ssuanceLog
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
switch
item
.
Ty
{
switch
item
.
Ty
{
case
pty
.
TyLogIssuanceCreate
:
case
pty
.
TyLogIssuanceCreate
:
set
.
KV
=
append
(
set
.
KV
,
c
.
addIssuanceStatus
(
&
IssuanceLog
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
addIssuanceStatus
(
issuanceLog
.
Status
,
issuanceLog
.
Index
,
issuanceLog
.
IssuanceId
)
...
)
break
break
case
pty
.
TyLogIssuanceDebt
:
case
pty
.
TyLogIssuanceDebt
:
set
.
KV
=
append
(
set
.
KV
,
c
.
addIssuanceRecordStatus
(
&
IssuanceLog
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
addIssuanceRecordStatus
(
issuanceLog
.
RecordStatus
,
issuanceLog
.
AccountAddr
,
issuanceLog
.
Index
,
set
.
KV
=
append
(
set
.
KV
,
c
.
addIssuanceAddr
(
&
IssuanceLog
)
...
)
issuanceLog
.
DebtId
,
issuanceLog
.
IssuanceId
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
addIssuanceRecordAddr
(
issuanceLog
.
AccountAddr
,
issuanceLog
.
Index
,
issuanceLog
.
DebtId
,
issuanceLog
.
IssuanceId
)
...
)
break
break
case
pty
.
TyLogIssuanceRepay
:
case
pty
.
TyLogIssuanceRepay
:
set
.
KV
=
append
(
set
.
KV
,
c
.
addIssuanceRecordStatus
(
&
IssuanceLog
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
deleteIssuanceRecordStatus
(
issuanceLog
.
RecordPreStatus
,
issuanceLog
.
PreIndex
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
deleteIssuanceAddr
(
&
IssuanceLog
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
addIssuanceRecordStatus
(
issuanceLog
.
RecordStatus
,
issuanceLog
.
AccountAddr
,
issuanceLog
.
Index
,
issuanceLog
.
DebtId
,
issuanceLog
.
IssuanceId
)
...
)
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
.
addIssuanceRecordStatus
(
&
IssuanceLog
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
deleteIssuanceRecordStatus
(
issuanceLog
.
RecordPreStatus
,
issuanceLog
.
PreIndex
)
...
)
if
IssuanceLog
.
RecordStatus
==
pty
.
IssuanceUserStatusSystemLiquidate
{
set
.
KV
=
append
(
set
.
KV
,
c
.
addIssuanceRecordStatus
(
issuanceLog
.
RecordStatus
,
issuanceLog
.
AccountAddr
,
issuanceLog
.
Index
,
set
.
KV
=
append
(
set
.
KV
,
c
.
deleteIssuanceAddr
(
&
IssuanceLog
)
...
)
issuanceLog
.
DebtId
,
issuanceLog
.
IssuanceId
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
deleteIssuanceRecordAddr
(
issuanceLog
.
AccountAddr
,
issuanceLog
.
PreIndex
)
...
)
// 如果没有被清算,需要把地址索引更新
if
issuanceLog
.
RecordStatus
==
pty
.
IssuanceUserStatusWarning
||
issuanceLog
.
RecordStatus
==
pty
.
IssuanceUserStatusExpire
{
set
.
KV
=
append
(
set
.
KV
,
c
.
addIssuanceRecordAddr
(
issuanceLog
.
AccountAddr
,
issuanceLog
.
Index
,
issuanceLog
.
DebtId
,
issuanceLog
.
IssuanceId
)
...
)
}
}
break
break
case
pty
.
TyLogIssuanceClose
:
case
pty
.
TyLogIssuanceClose
:
set
.
KV
=
append
(
set
.
KV
,
c
.
deleteIssuanceStatus
(
&
IssuanceLog
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
deleteIssuanceStatus
(
issuanceLog
.
Status
,
issuanceLog
.
PreIndex
)
...
)
break
break
}
}
}
}
...
...
plugin/dapp/issuance/executor/issuance.go
View file @
adb27358
...
@@ -59,11 +59,11 @@ func (c *Issuance) GetDriverName() string {
...
@@ -59,11 +59,11 @@ func (c *Issuance) GetDriverName() string {
return
pty
.
IssuanceX
return
pty
.
IssuanceX
}
}
func
(
c
*
Issuance
)
addIssuanceID
(
i
ssuancelog
*
pty
.
ReceiptIssuance
)
(
kvs
[]
*
types
.
KeyValue
)
{
func
(
c
*
Issuance
)
addIssuanceID
(
i
ndex
int64
,
issuanceId
string
)
(
kvs
[]
*
types
.
KeyValue
)
{
key
:=
calcIssuanceKey
(
issuance
log
.
IssuanceId
,
issuancelog
.
I
ndex
)
key
:=
calcIssuanceKey
(
issuance
Id
,
i
ndex
)
record
:=
&
pty
.
IssuanceRecord
{
record
:=
&
pty
.
IssuanceRecord
{
IssuanceId
:
issuance
log
.
Issuance
Id
,
IssuanceId
:
issuanceId
,
Index
:
i
ssuancelog
.
I
ndex
,
Index
:
index
,
}
}
kv
:=
&
types
.
KeyValue
{
Key
:
key
,
Value
:
types
.
Encode
(
record
)}
kv
:=
&
types
.
KeyValue
{
Key
:
key
,
Value
:
types
.
Encode
(
record
)}
...
@@ -71,19 +71,19 @@ func (c *Issuance) addIssuanceID(issuancelog *pty.ReceiptIssuance) (kvs []*types
...
@@ -71,19 +71,19 @@ func (c *Issuance) addIssuanceID(issuancelog *pty.ReceiptIssuance) (kvs []*types
return
kvs
return
kvs
}
}
func
(
c
*
Issuance
)
deleteIssuanceID
(
i
ssuancelog
*
pty
.
ReceiptIssuance
)
(
kvs
[]
*
types
.
KeyValue
)
{
func
(
c
*
Issuance
)
deleteIssuanceID
(
i
ndex
int64
,
issuanceId
string
)
(
kvs
[]
*
types
.
KeyValue
)
{
key
:=
calcIssuanceKey
(
issuance
log
.
IssuanceId
,
issuancelog
.
I
ndex
)
key
:=
calcIssuanceKey
(
issuance
Id
,
i
ndex
)
kv
:=
&
types
.
KeyValue
{
Key
:
key
,
Value
:
nil
}
kv
:=
&
types
.
KeyValue
{
Key
:
key
,
Value
:
nil
}
kvs
=
append
(
kvs
,
kv
)
kvs
=
append
(
kvs
,
kv
)
return
kvs
return
kvs
}
}
func
(
c
*
Issuance
)
addIssuanceStatus
(
issuancelog
*
pty
.
ReceiptIssuance
)
(
kvs
[]
*
types
.
KeyValue
)
{
func
(
c
*
Issuance
)
addIssuanceStatus
(
status
int32
,
index
int64
,
issuanceId
string
)
(
kvs
[]
*
types
.
KeyValue
)
{
key
:=
calcIssuanceStatusKey
(
issuancelog
.
Status
,
issuancelog
.
I
ndex
)
key
:=
calcIssuanceStatusKey
(
status
,
i
ndex
)
record
:=
&
pty
.
IssuanceRecord
{
record
:=
&
pty
.
IssuanceRecord
{
IssuanceId
:
issuance
log
.
Issuance
Id
,
IssuanceId
:
issuanceId
,
Index
:
i
ssuancelog
.
I
ndex
,
Index
:
index
,
}
}
kv
:=
&
types
.
KeyValue
{
Key
:
key
,
Value
:
types
.
Encode
(
record
)}
kv
:=
&
types
.
KeyValue
{
Key
:
key
,
Value
:
types
.
Encode
(
record
)}
...
@@ -91,19 +91,20 @@ func (c *Issuance) addIssuanceStatus(issuancelog *pty.ReceiptIssuance) (kvs []*t
...
@@ -91,19 +91,20 @@ func (c *Issuance) addIssuanceStatus(issuancelog *pty.ReceiptIssuance) (kvs []*t
return
kvs
return
kvs
}
}
func
(
c
*
Issuance
)
deleteIssuanceStatus
(
issuancelog
*
pty
.
ReceiptIssuance
)
(
kvs
[]
*
types
.
KeyValue
)
{
func
(
c
*
Issuance
)
deleteIssuanceStatus
(
status
int32
,
index
int64
)
(
kvs
[]
*
types
.
KeyValue
)
{
key
:=
calcIssuanceStatusKey
(
issuancelog
.
Status
,
issuancelog
.
I
ndex
)
key
:=
calcIssuanceStatusKey
(
status
,
i
ndex
)
kv
:=
&
types
.
KeyValue
{
Key
:
key
,
Value
:
nil
}
kv
:=
&
types
.
KeyValue
{
Key
:
key
,
Value
:
nil
}
kvs
=
append
(
kvs
,
kv
)
kvs
=
append
(
kvs
,
kv
)
return
kvs
return
kvs
}
}
func
(
c
*
Issuance
)
addIssuance
Addr
(
issuancelog
*
pty
.
ReceiptIssuance
)
(
kvs
[]
*
types
.
KeyValue
)
{
func
(
c
*
Issuance
)
addIssuance
RecordAddr
(
accountAddr
string
,
index
int64
,
debtId
string
,
issuanceId
string
)
(
kvs
[]
*
types
.
KeyValue
)
{
key
:=
calcIssuance
AddrKey
(
issuancelog
.
AccountAddr
,
issuancelog
.
I
ndex
)
key
:=
calcIssuance
RecordAddrKey
(
accountAddr
,
i
ndex
)
record
:=
&
pty
.
IssuanceRecord
{
record
:=
&
pty
.
IssuanceRecord
{
IssuanceId
:
issuancelog
.
IssuanceId
,
IssuanceId
:
issuanceId
,
Index
:
issuancelog
.
Index
,
DebtId
:
debtId
,
Index
:
index
,
}
}
kv
:=
&
types
.
KeyValue
{
Key
:
key
,
Value
:
types
.
Encode
(
record
)}
kv
:=
&
types
.
KeyValue
{
Key
:
key
,
Value
:
types
.
Encode
(
record
)}
...
@@ -111,21 +112,22 @@ func (c *Issuance) addIssuanceAddr(issuancelog *pty.ReceiptIssuance) (kvs []*typ
...
@@ -111,21 +112,22 @@ func (c *Issuance) addIssuanceAddr(issuancelog *pty.ReceiptIssuance) (kvs []*typ
return
kvs
return
kvs
}
}
func
(
c
*
Issuance
)
deleteIssuance
Addr
(
issuancelog
*
pty
.
ReceiptIssuance
)
(
kvs
[]
*
types
.
KeyValue
)
{
func
(
c
*
Issuance
)
deleteIssuance
RecordAddr
(
accountAddr
string
,
index
int64
)
(
kvs
[]
*
types
.
KeyValue
)
{
key
:=
calcIssuance
AddrKey
(
issuancelog
.
AccountAddr
,
issuancelog
.
I
ndex
)
key
:=
calcIssuance
RecordAddrKey
(
accountAddr
,
i
ndex
)
kv
:=
&
types
.
KeyValue
{
Key
:
key
,
Value
:
nil
}
kv
:=
&
types
.
KeyValue
{
Key
:
key
,
Value
:
nil
}
kvs
=
append
(
kvs
,
kv
)
kvs
=
append
(
kvs
,
kv
)
return
kvs
return
kvs
}
}
func
(
c
*
Issuance
)
addIssuanceRecordStatus
(
issuancelog
*
pty
.
ReceiptIssuance
)
(
kvs
[]
*
types
.
KeyValue
)
{
func
(
c
*
Issuance
)
addIssuanceRecordStatus
(
recordStatus
int32
,
accountAddr
string
,
index
int64
,
debtId
string
,
issuanceId
string
)
(
kvs
[]
*
types
.
KeyValue
)
{
key
:=
calcIssuanceRecordStatusKey
(
issuancelog
.
RecordStatus
,
issuancelog
.
I
ndex
)
key
:=
calcIssuanceRecordStatusKey
(
recordStatus
,
i
ndex
)
record
:=
&
pty
.
IssuanceRecord
{
record
:=
&
pty
.
IssuanceRecord
{
IssuanceId
:
issuancelog
.
IssuanceId
,
IssuanceId
:
issuanceId
,
Addr
:
issuancelog
.
AccountAddr
,
DebtId
:
debtId
,
Index
:
issuancelog
.
Index
,
Addr
:
accountAddr
,
Index
:
index
,
}
}
kv
:=
&
types
.
KeyValue
{
Key
:
key
,
Value
:
types
.
Encode
(
record
)}
kv
:=
&
types
.
KeyValue
{
Key
:
key
,
Value
:
types
.
Encode
(
record
)}
...
@@ -133,8 +135,8 @@ func (c *Issuance) addIssuanceRecordStatus(issuancelog *pty.ReceiptIssuance) (kv
...
@@ -133,8 +135,8 @@ func (c *Issuance) addIssuanceRecordStatus(issuancelog *pty.ReceiptIssuance) (kv
return
kvs
return
kvs
}
}
func
(
c
*
Issuance
)
deleteIssuanceRecordStatus
(
issuancelog
*
pty
.
ReceiptIssuance
)
(
kvs
[]
*
types
.
KeyValue
)
{
func
(
c
*
Issuance
)
deleteIssuanceRecordStatus
(
status
int32
,
index
int64
)
(
kvs
[]
*
types
.
KeyValue
)
{
key
:=
calcIssuanceRecordStatusKey
(
issuancelog
.
RecordStatus
,
issuancelog
.
I
ndex
)
key
:=
calcIssuanceRecordStatusKey
(
status
,
i
ndex
)
kv
:=
&
types
.
KeyValue
{
Key
:
key
,
Value
:
nil
}
kv
:=
&
types
.
KeyValue
{
Key
:
key
,
Value
:
nil
}
kvs
=
append
(
kvs
,
kv
)
kvs
=
append
(
kvs
,
kv
)
...
...
plugin/dapp/issuance/executor/issuancedb.go
View file @
adb27358
This diff is collapsed.
Click to expand it.
plugin/dapp/issuance/executor/keys.go
View file @
adb27358
...
@@ -21,13 +21,13 @@ func calcIssuanceStatusKey(status int32, index int64) []byte {
...
@@ -21,13 +21,13 @@ func calcIssuanceStatusKey(status int32, index int64) []byte {
return
[]
byte
(
key
)
return
[]
byte
(
key
)
}
}
func
calcIssuanceAddrPrefix
(
addr
string
)
[]
byte
{
func
calcIssuance
Record
AddrPrefix
(
addr
string
)
[]
byte
{
key
:=
fmt
.
Sprintf
(
"LODB-Issuance-addr:%s"
,
addr
)
key
:=
fmt
.
Sprintf
(
"LODB-Issuance-
record-
addr:%s"
,
addr
)
return
[]
byte
(
key
)
return
[]
byte
(
key
)
}
}
func
calcIssuanceAddrKey
(
addr
string
,
index
int64
)
[]
byte
{
func
calcIssuance
Record
AddrKey
(
addr
string
,
index
int64
)
[]
byte
{
key
:=
fmt
.
Sprintf
(
"LODB-Issuance-addr:%s:%018d"
,
addr
,
index
)
key
:=
fmt
.
Sprintf
(
"LODB-Issuance-
record-
addr:%s:%018d"
,
addr
,
index
)
return
[]
byte
(
key
)
return
[]
byte
(
key
)
}
}
...
@@ -41,8 +41,8 @@ func calcIssuanceLatestPriceKey() []byte {
...
@@ -41,8 +41,8 @@ func calcIssuanceLatestPriceKey() []byte {
return
[]
byte
(
key
)
return
[]
byte
(
key
)
}
}
func
calcIssuanceRecordStatusPrefix
(
status
int32
)
[]
byte
{
func
calcIssuanceRecordStatusPrefix
(
status
string
)
[]
byte
{
key
:=
fmt
.
Sprintf
(
"LODB-Issuance-record-status:%
d
"
,
status
)
key
:=
fmt
.
Sprintf
(
"LODB-Issuance-record-status:%
s
"
,
status
)
return
[]
byte
(
key
)
return
[]
byte
(
key
)
}
}
...
...
plugin/dapp/issuance/executor/query.go
View file @
adb27358
...
@@ -61,81 +61,38 @@ func (c *Issuance) Query_IssuanceByStatus(req *pty.ReqIssuanceByStatus) (types.M
...
@@ -61,81 +61,38 @@ func (c *Issuance) Query_IssuanceByStatus(req *pty.ReqIssuanceByStatus) (types.M
return
ids
,
nil
return
ids
,
nil
}
}
func
(
c
*
Issuance
)
Query_IssuanceByAddr
(
req
*
pty
.
ReqIssuanceByAddr
)
(
types
.
Message
,
error
)
{
func
(
c
*
Issuance
)
Query_IssuanceRecordByID
(
req
*
pty
.
ReqIssuanceDebtInfo
)
(
types
.
Message
,
error
)
{
ids
:=
&
pty
.
RepIssuanceIDs
{}
issuRecord
,
err
:=
queryIssuanceRecordByID
(
c
.
GetStateDB
(),
req
.
IssuanceId
,
req
.
DebtId
)
issuIDRecords
,
err
:=
queryIssuanceByAddr
(
c
.
GetLocalDB
(),
req
.
Addr
)
if
err
!=
nil
{
if
err
!=
nil
{
clog
.
Error
(
"Query_Issuance
ByAddr
"
,
"get issuance record error"
,
err
)
clog
.
Error
(
"Query_Issuance
RecordByID
"
,
"get issuance record error"
,
err
)
return
nil
,
err
return
nil
,
err
}
}
for
_
,
record
:=
range
issuIDRecords
{
ret
:=
&
pty
.
RepIssuanceDebtInfo
{}
ids
.
IDs
=
append
(
ids
.
IDs
,
record
.
IssuanceId
)
ret
.
Record
=
issuRecord
}
return
issuRecord
,
nil
return
ids
,
nil
}
}
func
(
c
*
Issuance
)
Query_Issuance
DebtInfoByAddr
(
req
*
pty
.
ReqIssuanceDebtInfo
ByAddr
)
(
types
.
Message
,
error
)
{
func
(
c
*
Issuance
)
Query_Issuance
RecordsByAddr
(
req
*
pty
.
ReqIssuanceRecords
ByAddr
)
(
types
.
Message
,
error
)
{
records
,
err
:=
queryIssuance
ByAddr
(
c
.
GetLocalDB
(),
req
.
Addr
)
records
,
err
:=
queryIssuance
RecordByAddr
(
c
.
GetStateDB
(),
c
.
GetLocalDB
(),
req
.
Addr
)
if
err
!=
nil
{
if
err
!=
nil
{
clog
.
Error
(
"Query_IssuanceDebtInfoByAddr"
,
"get issuance record error"
,
err
)
clog
.
Error
(
"Query_IssuanceDebtInfoByAddr"
,
"get issuance record error"
,
err
)
return
nil
,
err
return
nil
,
err
}
}
ret
:=
&
pty
.
RepIssuanceDebtInfos
{}
ret
:=
&
pty
.
RepIssuanceRecords
{}
for
_
,
record
:=
range
records
{
ret
.
Records
=
records
if
record
.
IssuanceId
==
req
.
IssuanceId
{
return
ret
,
nil
issu
,
err
:=
queryIssuanceByID
(
c
.
GetStateDB
(),
record
.
IssuanceId
)
if
err
!=
nil
{
clog
.
Error
(
"Query_IssuanceDebtInfoByAddr"
,
"get issuance record error"
,
err
)
return
nil
,
err
}
for
_
,
borrowRecord
:=
range
issu
.
DebtRecords
{
if
borrowRecord
.
AccountAddr
==
req
.
Addr
{
ret
.
Record
=
append
(
ret
.
Record
,
borrowRecord
)
}
}
for
_
,
borrowRecord
:=
range
issu
.
InvalidRecords
{
if
borrowRecord
.
AccountAddr
==
req
.
Addr
{
ret
.
Record
=
append
(
ret
.
Record
,
borrowRecord
)
}
}
}
}
return
nil
,
pty
.
ErrRecordNotExist
}
}
func
(
c
*
Issuance
)
Query_Issuance
DebtInfoByStatus
(
req
*
pty
.
ReqIssuanceDebtInfo
ByStatus
)
(
types
.
Message
,
error
)
{
func
(
c
*
Issuance
)
Query_Issuance
RecordsByStatus
(
req
*
pty
.
ReqIssuanceRecords
ByStatus
)
(
types
.
Message
,
error
)
{
records
,
err
:=
queryIssuanceRecord
ByStatus
(
c
.
GetLocalDB
(),
req
.
Status
)
records
,
err
:=
queryIssuanceRecord
sByStatus
(
c
.
GetStateDB
(),
c
.
GetLocalDB
(),
req
.
Status
)
if
err
!=
nil
{
if
err
!=
nil
{
clog
.
Error
(
"Query_IssuanceDebtInfoByAddr"
,
"get issuance record error"
,
err
)
clog
.
Error
(
"Query_IssuanceDebtInfoByAddr"
,
"get issuance record error"
,
err
)
return
nil
,
err
return
nil
,
err
}
}
ret
:=
&
pty
.
RepIssuanceDebtInfos
{}
ret
:=
&
pty
.
RepIssuanceRecords
{}
for
_
,
record
:=
range
records
{
ret
.
Records
=
records
issu
,
err
:=
queryIssuanceByID
(
c
.
GetStateDB
(),
record
.
IssuanceId
)
if
err
!=
nil
{
clog
.
Error
(
"Query_IssuanceDebtInfoByAddr"
,
"get issuance record error"
,
err
)
return
nil
,
err
}
for
_
,
borrowRecord
:=
range
issu
.
DebtRecords
{
if
borrowRecord
.
Status
==
req
.
Status
{
ret
.
Record
=
append
(
ret
.
Record
,
borrowRecord
)
}
}
for
_
,
borrowRecord
:=
range
issu
.
InvalidRecords
{
if
borrowRecord
.
Status
==
req
.
Status
{
ret
.
Record
=
append
(
ret
.
Record
,
borrowRecord
)
}
}
}
return
ret
,
nil
return
ret
,
nil
}
}
\ No newline at end of file
plugin/dapp/issuance/proto/issuance.proto
View file @
adb27358
...
@@ -19,6 +19,9 @@ message Issuance {
...
@@ -19,6 +19,9 @@ message Issuance {
int64
createTime
=
13
;
//创建时间
int64
createTime
=
13
;
//创建时间
int64
balance
=
14
;
//剩余可发行ccny
int64
balance
=
14
;
//剩余可发行ccny
string
issuerAddr
=
15
;
//发行地址
string
issuerAddr
=
15
;
//发行地址
int64
index
=
16
;
//当前索引
int64
preIndex
=
17
;
//上级索引
int64
createIndex
=
18
;
//创建索引,用于close删除状态
}
}
// 抵押记录
// 抵押记录
...
@@ -33,10 +36,11 @@ message DebtRecord {
...
@@ -33,10 +36,11 @@ message DebtRecord {
int64
liquidateTime
=
8
;
//清算时间
int64
liquidateTime
=
8
;
//清算时间
int64
expireTime
=
9
;
//超时清算时间
int64
expireTime
=
9
;
//超时清算时间
int32
preStatus
=
10
;
//上一次抵押状态,用于告警恢复
int32
preStatus
=
10
;
//上一次抵押状态,用于告警恢复
string
debtId
=
11
;
//借贷id
}
}
// 资产价格记录
// 资产价格记录
message
AssetPriceRecord
{
message
Issuance
AssetPriceRecord
{
int64
recordTime
=
1
;
//价格记录时间
int64
recordTime
=
1
;
//价格记录时间
float
btyPrice
=
2
;
//bty价格
float
btyPrice
=
2
;
//bty价格
}
}
...
@@ -68,13 +72,14 @@ message IssuanceCreate {
...
@@ -68,13 +72,14 @@ message IssuanceCreate {
// 质押借出
// 质押借出
message
IssuanceDebt
{
message
IssuanceDebt
{
string
I
ssuanceId
=
1
;
//借贷期数ID
string
i
ssuanceId
=
1
;
//借贷期数ID
int64
value
=
2
;
//借贷价值(ccny)
int64
value
=
2
;
//借贷价值(ccny)
}
}
// 质押清算
// 质押清算
message
IssuanceRepay
{
message
IssuanceRepay
{
string
IssuanceId
=
1
;
//借贷期数ID
string
issuanceId
=
1
;
//借贷期数ID
string
debtId
=
2
;
//借贷ID
}
}
// 喂价
// 喂价
...
@@ -86,24 +91,27 @@ message IssuanceFeed {
...
@@ -86,24 +91,27 @@ message IssuanceFeed {
// 借贷关闭
// 借贷关闭
message
IssuanceClose
{
message
IssuanceClose
{
string
I
ssuanceId
=
1
;
//借贷期数ID
string
i
ssuanceId
=
1
;
//借贷期数ID
}
}
// exec_local 借贷信息
// exec_local 借贷信息
message
ReceiptIssuance
{
message
ReceiptIssuance
{
string
IssuanceId
=
1
;
string
issuanceId
=
1
;
string
accountAddr
=
2
;
string
accountAddr
=
2
;
int32
status
=
3
;
int32
status
=
3
;
int32
preStatus
=
4
;
string
debtId
=
4
;
int64
index
=
5
;
int32
recordStatus
=
5
;
int32
recordStatus
=
6
;
int32
recordPreStatus
=
6
;
int64
index
=
7
;
int64
preIndex
=
8
;
}
}
// exec_local 借贷记录信息
// exec_local 借贷记录信息
message
IssuanceRecord
{
message
IssuanceRecord
{
string
I
ssuanceId
=
1
;
string
i
ssuanceId
=
1
;
string
addr
=
2
;
string
addr
=
2
;
int64
index
=
3
;
string
debtId
=
3
;
int64
index
=
4
;
}
}
// exec_local 借贷记录信息列表
// exec_local 借贷记录信息列表
...
@@ -113,7 +121,7 @@ message IssuanceRecords {
...
@@ -113,7 +121,7 @@ message IssuanceRecords {
// 根据ID查询一期借贷信息
// 根据ID查询一期借贷信息
message
ReqIssuanceInfo
{
message
ReqIssuanceInfo
{
string
I
ssuanceId
=
1
;
string
i
ssuanceId
=
1
;
}
}
// 返回一期借贷信息
// 返回一期借贷信息
...
@@ -129,7 +137,7 @@ message RepIssuanceCurrentInfo {
...
@@ -129,7 +137,7 @@ message RepIssuanceCurrentInfo {
// 根据ID列表查询多期借贷信息
// 根据ID列表查询多期借贷信息
message
ReqIssuanceInfos
{
message
ReqIssuanceInfos
{
repeated
string
I
ssuanceIds
=
1
;
repeated
string
i
ssuanceIds
=
1
;
}
}
// 返回多期借贷信息
// 返回多期借贷信息
...
@@ -137,34 +145,40 @@ message RepIssuanceCurrentInfos {
...
@@ -137,34 +145,40 @@ message RepIssuanceCurrentInfos {
repeated
RepIssuanceCurrentInfo
infos
=
1
;
repeated
RepIssuanceCurrentInfo
infos
=
1
;
}
}
// 根据
借贷
状态查询
// 根据
发行
状态查询
message
ReqIssuanceByStatus
{
message
ReqIssuanceByStatus
{
int32
status
=
1
;
int32
status
=
1
;
}
}
// 根据用户地址查询
message
ReqIssuanceByAddr
{
string
addr
=
1
;
}
// 返回借贷ID列表
// 返回借贷ID列表
message
RepIssuanceIDs
{
message
RepIssuanceIDs
{
repeated
string
IDs
=
1
;
repeated
string
IDs
=
1
;
}
}
// 根据
地址和借贷ID混合查询具体借贷
记录
// 根据
用户地址查询发行
记录
message
ReqIssuance
DebtInfo
ByAddr
{
message
ReqIssuance
Records
ByAddr
{
string
I
ssuanceId
=
1
;
string
i
ssuanceId
=
1
;
string
addr
=
2
;
string
addr
=
2
;
}
}
// 根据状态
和借贷ID混合查询具体借贷
记录
// 根据状态
查询发行
记录
message
ReqIssuance
DebtInfo
ByStatus
{
message
ReqIssuance
Records
ByStatus
{
string
I
ssuanceId
=
1
;
string
i
ssuanceId
=
1
;
int32
status
=
2
;
int32
status
=
2
;
}
}
// 返回借贷记录
// 返回记录列表
message
RepIssuanceDebtInfos
{
message
RepIssuanceRecords
{
repeated
DebtRecord
record
=
1
;
repeated
DebtRecord
records
=
1
;
}
// 精确查找发行记录
message
ReqIssuanceDebtInfo
{
string
issuanceId
=
1
;
string
debtId
=
2
;
}
// 返回记录
message
RepIssuanceDebtInfo
{
DebtRecord
record
=
1
;
}
}
plugin/dapp/issuance/types/issuance.pb.go
View file @
adb27358
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment