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
2e4b635d
Commit
2e4b635d
authored
Nov 25, 2019
by
pengjun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
#627 remove collateralize close; add collateralize retrieve
parent
5523229c
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
141 additions
and
111 deletions
+141
-111
cmd.go
plugin/dapp/collateralize/commands/cmd.go
+13
-10
collateralize_test.go
plugin/dapp/collateralize/executor/collateralize_test.go
+5
-4
collateralizedb.go
plugin/dapp/collateralize/executor/collateralizedb.go
+68
-49
exec.go
plugin/dapp/collateralize/executor/exec.go
+3
-3
exec_del_local.go
plugin/dapp/collateralize/executor/exec_del_local.go
+11
-9
exec_local.go
plugin/dapp/collateralize/executor/exec_local.go
+9
-7
collateralize.proto
plugin/dapp/collateralize/proto/collateralize.proto
+10
-9
collateralize.go
plugin/dapp/collateralize/types/collateralize.go
+17
-16
collateralize.pb.go
plugin/dapp/collateralize/types/collateralize.pb.go
+0
-0
tx.go
plugin/dapp/collateralize/types/tx.go
+3
-2
types.go
plugin/dapp/collateralize/types/types.go
+2
-2
No files found.
plugin/dapp/collateralize/commands/cmd.go
View file @
2e4b635d
...
...
@@ -24,7 +24,7 @@ func CollateralizeCmd() *cobra.Command {
CollateralizeAppendRawTxCmd
(),
CollateralizeRepayRawTxCmd
(),
CollateralizePriceFeedRawTxCmd
(),
Collateralize
Clos
eRawTxCmd
(),
Collateralize
Retriev
eRawTxCmd
(),
CollateralizeManageRawTxCmd
(),
CollateralizeQueryCmd
(),
)
...
...
@@ -233,22 +233,24 @@ func CollateralizePriceFeed(cmd *cobra.Command, args []string) {
}
// CollateralizeCloseRawTxCmd 生成开始交易命令行
func
Collateralize
Clos
eRawTxCmd
()
*
cobra
.
Command
{
func
Collateralize
Retriev
eRawTxCmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
Use
:
"
clos
e"
,
Short
:
"
close a collateraliz
e"
,
Run
:
Collateralize
Clos
e
,
Use
:
"
retriev
e"
,
Short
:
"
retrieve balanc
e"
,
Run
:
Collateralize
Retriev
e
,
}
addCollateralize
Clos
eFlags
(
cmd
)
addCollateralize
Retriev
eFlags
(
cmd
)
return
cmd
}
func
addCollateralize
Clos
eFlags
(
cmd
*
cobra
.
Command
)
{
func
addCollateralize
Retriev
eFlags
(
cmd
*
cobra
.
Command
)
{
cmd
.
Flags
()
.
StringP
(
"collateralizeID"
,
"g"
,
""
,
"collateralize ID"
)
cmd
.
MarkFlagRequired
(
"collateralizeID"
)
cmd
.
Flags
()
.
StringP
(
"balance"
,
"b"
,
""
,
"retrieve balance"
)
cmd
.
MarkFlagRequired
(
"balance"
)
}
func
Collateralize
Clos
e
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
func
Collateralize
Retriev
e
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
title
,
_
:=
cmd
.
Flags
()
.
GetString
(
"title"
)
cfg
:=
types
.
GetCliSysParam
(
title
)
if
cfg
==
nil
{
...
...
@@ -257,11 +259,12 @@ func CollateralizeClose(cmd *cobra.Command, args []string) {
rpcLaddr
,
_
:=
cmd
.
Flags
()
.
GetString
(
"rpc_laddr"
)
collateralizeID
,
_
:=
cmd
.
Flags
()
.
GetString
(
"collateralizeID"
)
balance
,
_
:=
cmd
.
Flags
()
.
GetInt64
(
"balance"
)
params
:=
&
rpctypes
.
CreateTxIn
{
Execer
:
cfg
.
ExecName
(
pkt
.
CollateralizeX
),
ActionName
:
"Collateralize
Clos
e"
,
Payload
:
[]
byte
(
fmt
.
Sprintf
(
"{
\"
collateralizeID
\"
:
\"
%s
\"
}"
,
collateralizeID
)),
ActionName
:
"Collateralize
Retriev
e"
,
Payload
:
[]
byte
(
fmt
.
Sprintf
(
"{
\"
collateralizeID
\"
:
\"
%s
\"
,
\"
balance
\"
: %d}"
,
collateralizeID
,
balance
)),
}
var
res
string
...
...
plugin/dapp/collateralize/executor/collateralize_test.go
View file @
2e4b635d
...
...
@@ -528,11 +528,12 @@ func TestCollateralize(t *testing.T) {
assert
.
NotNil
(
t
,
res
)
// collateralize
clos
e
p11
:=
&
pkt
.
Collateralize
Clos
eTx
{
// collateralize
retriev
e
p11
:=
&
pkt
.
Collateralize
Retriev
eTx
{
CollateralizeID
:
common
.
ToHex
(
collateralizeID
),
Balance
:
100
,
}
createTx
,
err
=
pkt
.
CreateRawCollateralize
Clos
eTx
(
env
.
cfg
,
p11
)
createTx
,
err
=
pkt
.
CreateRawCollateralize
Retriev
eTx
(
env
.
cfg
,
p11
)
if
err
!=
nil
{
t
.
Error
(
"RPC_Default_Process"
,
"err"
,
err
)
}
...
...
@@ -558,7 +559,7 @@ func TestCollateralize(t *testing.T) {
env
.
kvdb
.
Set
(
kv
.
Key
,
kv
.
Value
)
}
// query collateralize by status
res
,
err
=
exec
.
Query
(
"CollateralizeByStatus"
,
types
.
Encode
(
&
pkt
.
ReqCollateralizeByStatus
{
Status
:
2
}))
res
,
err
=
exec
.
Query
(
"CollateralizeByStatus"
,
types
.
Encode
(
&
pkt
.
ReqCollateralizeByStatus
{
Status
:
1
}))
assert
.
Nil
(
t
,
err
)
assert
.
NotNil
(
t
,
res
)
}
...
...
plugin/dapp/collateralize/executor/collateralizedb.go
View file @
2e4b635d
...
...
@@ -206,7 +206,7 @@ func (action *Action) GetFeedReceiptLog(collateralize *pty.Collateralize, record
// GetCloseReceiptLog generate logs for Collateralize close action
func
(
action
*
Action
)
GetCloseReceiptLog
(
collateralize
*
pty
.
Collateralize
)
*
types
.
ReceiptLog
{
log
:=
&
types
.
ReceiptLog
{}
log
.
Ty
=
pty
.
TyLogCollateralize
Clos
e
log
.
Ty
=
pty
.
TyLogCollateralize
Retriev
e
c
:=
&
pty
.
ReceiptCollateralize
{}
c
.
CollateralizeId
=
collateralize
.
CollateralizeId
...
...
@@ -368,18 +368,16 @@ func (action *Action) CollateralizeCreate(create *pty.CollateralizeCreate) (*typ
return
nil
,
pty
.
ErrPermissionDeny
}
collateralizeID
:=
common
.
ToHex
(
action
.
txhash
)
// 检查ccny余额
if
!
action
.
CheckExecTokenAccount
(
action
.
fromaddr
,
create
.
TotalBalance
,
false
)
{
clog
.
Error
(
"CollateralizeCreate"
,
"fromaddr"
,
action
.
fromaddr
,
"balance"
,
create
.
TotalBalance
,
"error"
,
types
.
ErrInsufficientBalance
)
return
nil
,
types
.
ErrInsufficientBalance
}
//
查找ID是否重复
_
,
err
:=
queryCollateralizeByID
(
action
.
db
,
collateralizeID
)
//
根据地址查找ID
collateralizeIDs
,
err
:=
queryCollateralizeByAddr
(
action
.
localDB
,
action
.
fromaddr
,
pty
.
CollateralizeStatusCreated
,
0
)
if
err
!=
types
.
ErrNotFound
{
clog
.
Error
(
"CollateralizeCreate
"
,
"CollateralizeCreate repeated"
,
collateralizeID
)
clog
.
Error
(
"CollateralizeCreate
.queryCollateralizeByAddr"
,
"addr"
,
action
.
fromaddr
)
return
nil
,
pty
.
ErrCollateralizeRepeatHash
}
...
...
@@ -392,35 +390,46 @@ func (action *Action) CollateralizeCreate(create *pty.CollateralizeCreate) (*typ
logs
=
append
(
logs
,
receipt
.
Logs
...
)
kv
=
append
(
kv
,
receipt
.
KV
...
)
// 获取借贷配置
var
collcfg
*
pty
.
CollateralizeManage
cfg
,
err
:=
getCollateralizeConfig
(
action
.
db
)
if
cfg
==
nil
{
collcfg
=
&
pty
.
CollateralizeManage
{
DebtCeiling
:
DefaultDebtCeiling
,
LiquidationRatio
:
DefaultLiquidationRatio
,
StabilityFeeRatio
:
DefaultStabilityFeeRation
,
Period
:
DefaultPeriod
,
CollTotalBalance
:
DefaultCollTotalBalance
,
var
collateralizeID
string
coll
:=
&
CollateralizeDB
{}
if
collateralizeIDs
==
nil
{
collateralizeID
=
common
.
ToHex
(
action
.
txhash
)
// 获取借贷配置
var
collcfg
*
pty
.
CollateralizeManage
cfg
,
_
:=
getCollateralizeConfig
(
action
.
db
)
if
cfg
==
nil
{
collcfg
=
&
pty
.
CollateralizeManage
{
DebtCeiling
:
DefaultDebtCeiling
,
LiquidationRatio
:
DefaultLiquidationRatio
,
StabilityFeeRatio
:
DefaultStabilityFeeRation
,
Period
:
DefaultPeriod
,
CollTotalBalance
:
DefaultCollTotalBalance
,
}
}
else
{
collcfg
=
cfg
}
// 构造coll结构
coll
.
CollateralizeId
=
collateralizeID
coll
.
LiquidationRatio
=
collcfg
.
LiquidationRatio
coll
.
TotalBalance
=
create
.
TotalBalance
coll
.
DebtCeiling
=
collcfg
.
DebtCeiling
coll
.
StabilityFeeRatio
=
collcfg
.
StabilityFeeRatio
coll
.
Period
=
collcfg
.
Period
coll
.
Balance
=
create
.
TotalBalance
coll
.
CreateAddr
=
action
.
fromaddr
coll
.
Status
=
pty
.
CollateralizeActionCreate
coll
.
Index
=
action
.
GetIndex
()
coll
.
CollBalance
=
0
}
else
{
collcfg
=
cfg
collateralize
,
err
:=
queryCollateralizeByID
(
action
.
db
,
collateralizeIDs
[
0
])
if
err
!=
nil
{
clog
.
Error
(
"CollateralizeCreate.queryCollateralizeByID"
,
"addr"
,
action
.
fromaddr
,
"execaddr"
,
action
.
execaddr
,
"collId"
,
collateralizeIDs
[
0
])
return
nil
,
err
}
coll
.
Collateralize
=
*
collateralize
coll
.
TotalBalance
+=
create
.
TotalBalance
}
// 构造coll结构
coll
:=
&
CollateralizeDB
{}
coll
.
CollateralizeId
=
collateralizeID
coll
.
LiquidationRatio
=
collcfg
.
LiquidationRatio
coll
.
TotalBalance
=
create
.
TotalBalance
coll
.
DebtCeiling
=
collcfg
.
DebtCeiling
coll
.
StabilityFeeRatio
=
collcfg
.
StabilityFeeRatio
coll
.
Period
=
collcfg
.
Period
coll
.
Balance
=
create
.
TotalBalance
coll
.
CreateAddr
=
action
.
fromaddr
coll
.
Status
=
pty
.
CollateralizeActionCreate
coll
.
Index
=
action
.
GetIndex
()
coll
.
CollBalance
=
0
clog
.
Debug
(
"CollateralizeCreate created"
,
"CollateralizeID"
,
collateralizeID
,
"TotalBalance"
,
coll
.
TotalBalance
)
// 保存
...
...
@@ -1077,45 +1086,55 @@ func (action *Action) CollateralizeFeed(feed *pty.CollateralizeFeed) (*types.Rec
return
receipt
,
nil
}
// Collateralize
Close 终止借
贷
func
(
action
*
Action
)
Collateralize
Close
(
close
*
pty
.
CollateralizeClos
e
)
(
*
types
.
Receipt
,
error
)
{
// Collateralize
Retrieve 收回未放
贷
func
(
action
*
Action
)
Collateralize
Retrieve
(
retrieve
*
pty
.
CollateralizeRetriev
e
)
(
*
types
.
Receipt
,
error
)
{
var
logs
[]
*
types
.
ReceiptLog
var
kv
[]
*
types
.
KeyValue
var
receipt
*
types
.
Receipt
collateralize
,
err
:=
queryCollateralizeByID
(
action
.
db
,
clos
e
.
CollateralizeId
)
collateralize
,
err
:=
queryCollateralizeByID
(
action
.
db
,
retriev
e
.
CollateralizeId
)
if
err
!=
nil
{
clog
.
Error
(
"Collateralize
Close"
,
"CollateralizeId"
,
clos
e
.
CollateralizeId
,
"err"
,
err
)
clog
.
Error
(
"Collateralize
Retrieve"
,
"CollateralizeId"
,
retriev
e
.
CollateralizeId
,
"err"
,
err
)
return
nil
,
err
}
if
action
.
fromaddr
!=
collateralize
.
CreateAddr
{
clog
.
Error
(
"Collateralize
Close"
,
"CollateralizeId"
,
clos
e
.
CollateralizeId
,
"err"
,
"account error"
,
"create"
,
collateralize
.
CreateAddr
,
"from"
,
action
.
fromaddr
)
clog
.
Error
(
"Collateralize
Retrieve"
,
"CollateralizeId"
,
retriev
e
.
CollateralizeId
,
"err"
,
"account error"
,
"create"
,
collateralize
.
CreateAddr
,
"from"
,
action
.
fromaddr
)
return
nil
,
pty
.
ErrPermissionDeny
}
for
_
,
borrowRecord
:=
range
collateralize
.
BorrowRecords
{
if
borrowRecord
.
Status
!=
pty
.
CollateralizeUserStatusClose
{
clog
.
Error
(
"CollateralizeClose"
,
"CollateralizeId"
,
clos
e
.
CollateralizeId
,
"addr"
,
action
.
fromaddr
,
"execaddr"
,
action
.
execaddr
,
"err"
,
pty
.
ErrCollateralizeRecordNotEmpty
)
return
nil
,
pty
.
ErrCollateralizeRecordNotEmpty
}
}
//
for _, borrowRecord := range collateralize.BorrowRecords {
//
if borrowRecord.Status != pty.CollateralizeUserStatusClose {
// clog.Error("CollateralizeRetrieve", "CollateralizeId", retriev
e.CollateralizeId, "addr", action.fromaddr, "execaddr", action.execaddr, "err", pty.ErrCollateralizeRecordNotEmpty)
//
return nil, pty.ErrCollateralizeRecordNotEmpty
//
}
//
}
// 收回金额不能大于待放出金额
if
retrieve
.
Balance
>
collateralize
.
Balance
{
clog
.
Error
(
"CollateralizeRetrieve"
,
"CollateralizeId"
,
retrieve
.
CollateralizeId
,
"err"
,
"balance error"
,
"retrieve balance"
,
retrieve
.
Balance
,
"available balance"
,
collateralize
.
Balance
)
return
nil
,
pty
.
ErrPermissionDeny
}
// 解冻ccny
receipt
,
err
=
action
.
tokenAccount
.
ExecActive
(
action
.
fromaddr
,
action
.
execaddr
,
collateraliz
e
.
Balance
*
Coin
)
receipt
,
err
=
action
.
tokenAccount
.
ExecActive
(
action
.
fromaddr
,
action
.
execaddr
,
retriev
e
.
Balance
*
Coin
)
if
err
!=
nil
{
clog
.
Error
(
"IssuanceClose.ExecActive"
,
"addr"
,
action
.
fromaddr
,
"execaddr"
,
action
.
execaddr
,
"
amount"
,
collateralize
.
Total
Balance
)
clog
.
Error
(
"IssuanceClose.ExecActive"
,
"addr"
,
action
.
fromaddr
,
"execaddr"
,
action
.
execaddr
,
"
balance"
,
retrieve
.
Balance
)
return
nil
,
err
}
logs
=
append
(
logs
,
receipt
.
Logs
...
)
kv
=
append
(
kv
,
receipt
.
KV
...
)
clog
.
Debug
(
"Collateralize
Close"
,
"ID"
,
close
.
CollateralizeId
)
clog
.
Debug
(
"Collateralize
Retrieve"
,
"ID"
,
retrieve
.
CollateralizeId
,
"balance"
,
retrieve
.
Balance
)
coll
:=
&
CollateralizeDB
{
*
collateralize
}
coll
.
Status
=
pty
.
CollateralizeStatusClose
coll
.
PreIndex
=
coll
.
Index
coll
.
Index
=
action
.
GetIndex
()
coll
.
TotalBalance
-=
retrieve
.
Balance
coll
.
Balance
-=
retrieve
.
Balance
if
coll
.
TotalBalance
==
0
{
coll
.
PreIndex
=
coll
.
Index
coll
.
Index
=
action
.
GetIndex
()
coll
.
Status
=
pty
.
CollateralizeStatusClose
}
coll
.
Save
(
action
.
db
)
kv
=
append
(
kv
,
coll
.
GetKVSet
()
...
)
...
...
plugin/dapp/collateralize/executor/exec.go
View file @
2e4b635d
...
...
@@ -39,10 +39,10 @@ func (c *Collateralize) Exec_Feed(payload *pty.CollateralizeFeed, tx *types.Tran
return
actiondb
.
CollateralizeFeed
(
payload
)
}
// Exec_
Clos
e Action
func
(
c
*
Collateralize
)
Exec_
Close
(
payload
*
pty
.
CollateralizeClos
e
,
tx
*
types
.
Transaction
,
index
int
)
(
*
types
.
Receipt
,
error
)
{
// Exec_
Retriev
e Action
func
(
c
*
Collateralize
)
Exec_
Retrieve
(
payload
*
pty
.
CollateralizeRetriev
e
,
tx
*
types
.
Transaction
,
index
int
)
(
*
types
.
Receipt
,
error
)
{
actiondb
:=
NewCollateralizeAction
(
c
,
tx
,
index
)
return
actiondb
.
Collateralize
Clos
e
(
payload
)
return
actiondb
.
Collateralize
Retriev
e
(
payload
)
}
// Exec_Close Action
...
...
plugin/dapp/collateralize/executor/exec_del_local.go
View file @
2e4b635d
...
...
@@ -13,7 +13,7 @@ func (c *Collateralize) execDelLocal(tx *types.Transaction, receiptData *types.R
set
:=
&
types
.
LocalDBSet
{}
for
_
,
item
:=
range
receiptData
.
Logs
{
if
item
.
Ty
==
pty
.
TyLogCollateralizeCreate
||
item
.
Ty
==
pty
.
TyLogCollateralizeBorrow
||
item
.
Ty
==
pty
.
TyLogCollateralizeAppend
||
item
.
Ty
==
pty
.
TyLogCollateralizeRepay
||
item
.
Ty
==
pty
.
TyLogCollateralizeFeed
||
item
.
Ty
==
pty
.
TyLogCollateralize
Clos
e
{
item
.
Ty
==
pty
.
TyLogCollateralizeRepay
||
item
.
Ty
==
pty
.
TyLogCollateralizeFeed
||
item
.
Ty
==
pty
.
TyLogCollateralize
Retriev
e
{
var
collateralizeLog
pty
.
ReceiptCollateralize
err
:=
types
.
Decode
(
item
.
Log
,
&
collateralizeLog
)
if
err
!=
nil
{
...
...
@@ -57,12 +57,14 @@ func (c *Collateralize) execDelLocal(tx *types.Transaction, receiptData *types.R
// set.KV = append(set.KV, c.deleteCollateralizeRecordAddr(collateralizeLog.AccountAddr, collateralizeLog.Index)...)
//}
break
case
pty
.
TyLogCollateralizeClose
:
set
.
KV
=
append
(
set
.
KV
,
c
.
deleteCollateralizeStatus
(
collateralizeLog
.
Status
,
collateralizeLog
.
Index
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
addCollateralizeStatus
(
pty
.
CollateralizeStatusCreated
,
collateralizeLog
.
CollateralizeId
,
collateralizeLog
.
PreIndex
)
...
)
//set.KV = append(set.KV, c.addCollateralizeAddr(collateralizeLog.CreateAddr, collateralizeLog.CollateralizeId,
// collateralizeLog.PreStatus, collateralizeLog.PreIndex)...)
case
pty
.
TyLogCollateralizeRetrieve
:
if
collateralizeLog
.
Status
==
pty
.
CollateralizeStatusClose
{
set
.
KV
=
append
(
set
.
KV
,
c
.
deleteCollateralizeStatus
(
collateralizeLog
.
Status
,
collateralizeLog
.
Index
)
...
)
set
.
KV
=
append
(
set
.
KV
,
c
.
addCollateralizeStatus
(
pty
.
CollateralizeStatusCreated
,
collateralizeLog
.
CollateralizeId
,
collateralizeLog
.
PreIndex
)
...
)
//set.KV = append(set.KV, c.addCollateralizeAddr(collateralizeLog.CreateAddr, collateralizeLog.CollateralizeId,
// collateralizeLog.PreStatus, collateralizeLog.PreIndex)...)
}
break
}
}
...
...
@@ -96,8 +98,8 @@ func (c *Collateralize) ExecDelLocal_Feed(payload *pty.CollateralizeFeed, tx *ty
return
c
.
execDelLocal
(
tx
,
receiptData
)
}
// ExecDelLocal_
Clos
e Action
func
(
c
*
Collateralize
)
ExecDelLocal_
Close
(
payload
*
pty
.
CollateralizeClos
e
,
tx
*
types
.
Transaction
,
receiptData
*
types
.
ReceiptData
,
index
int
)
(
*
types
.
LocalDBSet
,
error
)
{
// ExecDelLocal_
Retriev
e Action
func
(
c
*
Collateralize
)
ExecDelLocal_
Retrieve
(
payload
*
pty
.
CollateralizeRetriev
e
,
tx
*
types
.
Transaction
,
receiptData
*
types
.
ReceiptData
,
index
int
)
(
*
types
.
LocalDBSet
,
error
)
{
return
c
.
execDelLocal
(
tx
,
receiptData
)
}
...
...
plugin/dapp/collateralize/executor/exec_local.go
View file @
2e4b635d
...
...
@@ -14,7 +14,7 @@ func (c *Collateralize) execLocal(tx *types.Transaction, receipt *types.ReceiptD
set
:=
&
types
.
LocalDBSet
{}
for
_
,
item
:=
range
receipt
.
Logs
{
if
item
.
Ty
==
pty
.
TyLogCollateralizeCreate
||
item
.
Ty
==
pty
.
TyLogCollateralizeBorrow
||
item
.
Ty
==
pty
.
TyLogCollateralizeAppend
||
item
.
Ty
==
pty
.
TyLogCollateralizeRepay
||
item
.
Ty
==
pty
.
TyLogCollateralizeFeed
||
item
.
Ty
==
pty
.
TyLogCollateralize
Clos
e
{
item
.
Ty
==
pty
.
TyLogCollateralizeRepay
||
item
.
Ty
==
pty
.
TyLogCollateralizeFeed
||
item
.
Ty
==
pty
.
TyLogCollateralize
Retriev
e
{
var
collateralizeLog
pty
.
ReceiptCollateralize
err
:=
types
.
Decode
(
item
.
Log
,
&
collateralizeLog
)
if
err
!=
nil
{
...
...
@@ -59,10 +59,12 @@ func (c *Collateralize) execLocal(tx *types.Transaction, receipt *types.ReceiptD
// collateralizeLog.RecordId, collateralizeLog.Index)...)
//}
break
case
pty
.
TyLogCollateralizeClose
:
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.deleteCollateralizeAddr(collateralizeLog.CreateAddr, collateralizeLog.PreIndex)...)
case
pty
.
TyLogCollateralizeRetrieve
:
if
collateralizeLog
.
Status
==
pty
.
CollateralizeStatusClose
{
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.deleteCollateralizeAddr(collateralizeLog.CreateAddr, collateralizeLog.PreIndex)...)
}
break
}
}
...
...
@@ -95,8 +97,8 @@ func (c *Collateralize) ExecLocal_Feed(payload *pty.CollateralizeFeed, tx *types
return
c
.
execLocal
(
tx
,
receiptData
)
}
// ExecLocal_
Clos
e Action
func
(
c
*
Collateralize
)
ExecLocal_
Close
(
payload
*
pty
.
CollateralizeClos
e
,
tx
*
types
.
Transaction
,
receiptData
*
types
.
ReceiptData
,
index
int
)
(
*
types
.
LocalDBSet
,
error
)
{
// ExecLocal_
Retriev
e Action
func
(
c
*
Collateralize
)
ExecLocal_
Retrieve
(
payload
*
pty
.
CollateralizeRetriev
e
,
tx
*
types
.
Transaction
,
receiptData
*
types
.
ReceiptData
,
index
int
)
(
*
types
.
LocalDBSet
,
error
)
{
return
c
.
execLocal
(
tx
,
receiptData
)
}
...
...
plugin/dapp/collateralize/proto/collateralize.proto
View file @
2e4b635d
...
...
@@ -51,13 +51,13 @@ message AssetPriceRecord {
// action
message
CollateralizeAction
{
oneof
value
{
CollateralizeCreate
create
=
1
;
//创建一期借贷
CollateralizeBorrow
borrow
=
2
;
//借贷
CollateralizeRepay
repay
=
3
;
//清算
CollateralizeAppend
append
=
4
;
//追加
CollateralizeFeed
feed
=
5
;
//喂价
Collateralize
Close
close
=
6
;
//关闭
CollateralizeManage
manage
=
7
;
//全局配置
CollateralizeCreate
create
=
1
;
//创建一期借贷
CollateralizeBorrow
borrow
=
2
;
//借贷
CollateralizeRepay
repay
=
3
;
//清算
CollateralizeAppend
append
=
4
;
//追加
CollateralizeFeed
feed
=
5
;
//喂价
Collateralize
Retrieve
retrieve
=
6
;
//收回
CollateralizeManage
manage
=
7
;
//全局配置
}
int32
ty
=
10
;
}
...
...
@@ -105,9 +105,10 @@ message CollateralizeFeed {
repeated
int64
volume
=
3
;
//成交量
}
//
放贷关闭
message
Collateralize
Clos
e
{
//
收回
message
Collateralize
Retriev
e
{
string
collateralizeId
=
1
;
//借贷期数ID
int64
balance
=
2
;
//收回金额
}
// exec_local 放贷信息
...
...
plugin/dapp/collateralize/types/collateralize.go
View file @
2e4b635d
...
...
@@ -57,7 +57,7 @@ func (collateralize *CollateralizeType) GetLogMap() map[int64]*types.LogInfo {
TyLogCollateralizeRepay
:
{
Ty
:
reflect
.
TypeOf
(
ReceiptCollateralize
{}),
Name
:
"LogCollateralizeRepay"
},
TyLogCollateralizeAppend
:
{
Ty
:
reflect
.
TypeOf
(
ReceiptCollateralize
{}),
Name
:
"LogCollateralizeAppend"
},
TyLogCollateralizeFeed
:
{
Ty
:
reflect
.
TypeOf
(
ReceiptCollateralize
{}),
Name
:
"LogCollateralizeFeed"
},
TyLogCollateralize
Close
:
{
Ty
:
reflect
.
TypeOf
(
ReceiptCollateralize
{}),
Name
:
"LogCollateralizeClos
e"
},
TyLogCollateralize
Retrieve
:
{
Ty
:
reflect
.
TypeOf
(
ReceiptCollateralize
{}),
Name
:
"LogCollateralizeRetriev
e"
},
}
}
...
...
@@ -111,14 +111,14 @@ func (collateralize CollateralizeType) CreateTx(action string, message json.RawM
return
nil
,
types
.
ErrInvalidParam
}
return
CreateRawCollateralizeFeedTx
(
cfg
,
&
param
)
}
else
if
action
==
"Collateralize
Clos
e"
{
var
param
Collateralize
Clos
eTx
}
else
if
action
==
"Collateralize
Retriv
e"
{
var
param
Collateralize
Retriev
eTx
err
:=
json
.
Unmarshal
(
message
,
&
param
)
if
err
!=
nil
{
llog
.
Error
(
"CreateTx"
,
"Error"
,
err
)
return
nil
,
types
.
ErrInvalidParam
}
return
CreateRawCollateralize
Clos
eTx
(
cfg
,
&
param
)
return
CreateRawCollateralize
Retriev
eTx
(
cfg
,
&
param
)
}
else
if
action
==
"CollateralizeManage"
{
var
param
CollateralizeManageTx
err
:=
json
.
Unmarshal
(
message
,
&
param
)
...
...
@@ -135,13 +135,13 @@ func (collateralize CollateralizeType) CreateTx(action string, message json.RawM
// GetTypeMap method
func
(
collateralize
CollateralizeType
)
GetTypeMap
()
map
[
string
]
int32
{
return
map
[
string
]
int32
{
"Create"
:
CollateralizeActionCreate
,
"Borrow"
:
CollateralizeActionBorrow
,
"Repay"
:
CollateralizeActionRepay
,
"Append"
:
CollateralizeActionAppend
,
"Feed"
:
CollateralizeActionFeed
,
"
Close"
:
CollateralizeActionClos
e
,
"Manage"
:
CollateralizeActionManage
,
"Create"
:
CollateralizeActionCreate
,
"Borrow"
:
CollateralizeActionBorrow
,
"Repay"
:
CollateralizeActionRepay
,
"Append"
:
CollateralizeActionAppend
,
"Feed"
:
CollateralizeActionFeed
,
"
Retrieve"
:
CollateralizeActionRetriev
e
,
"Manage"
:
CollateralizeActionManage
,
}
}
...
...
@@ -290,19 +290,20 @@ func CreateRawCollateralizeFeedTx(cfg *types.Chain33Config, parm *CollateralizeF
return
tx
,
nil
}
// CreateRawCollateralize
Clos
eTx method
func
CreateRawCollateralize
CloseTx
(
cfg
*
types
.
Chain33Config
,
parm
*
CollateralizeClos
eTx
)
(
*
types
.
Transaction
,
error
)
{
// CreateRawCollateralize
Retriev
eTx method
func
CreateRawCollateralize
RetrieveTx
(
cfg
*
types
.
Chain33Config
,
parm
*
CollateralizeRetriev
eTx
)
(
*
types
.
Transaction
,
error
)
{
if
parm
==
nil
{
llog
.
Error
(
"CreateRawCollateralizeCloseTx"
,
"parm"
,
parm
)
return
nil
,
types
.
ErrInvalidParam
}
v
:=
&
Collateralize
Clos
e
{
v
:=
&
Collateralize
Retriev
e
{
CollateralizeId
:
parm
.
CollateralizeID
,
Balance
:
parm
.
Balance
,
}
close
:=
&
CollateralizeAction
{
Ty
:
CollateralizeAction
Clos
e
,
Value
:
&
CollateralizeAction_
Clos
e
{
v
},
Ty
:
CollateralizeAction
Retriev
e
,
Value
:
&
CollateralizeAction_
Retriev
e
{
v
},
}
tx
:=
&
types
.
Transaction
{
Execer
:
[]
byte
(
cfg
.
ExecName
(
CollateralizeX
)),
...
...
plugin/dapp/collateralize/types/collateralize.pb.go
View file @
2e4b635d
This diff is collapsed.
Click to expand it.
plugin/dapp/collateralize/types/tx.go
View file @
2e4b635d
...
...
@@ -39,9 +39,10 @@ type CollateralizeFeedTx struct {
Fee
int64
`json:"fee"`
}
// Collateralize
Clos
eTx for construction
type
Collateralize
Clos
eTx
struct
{
// Collateralize
Retriev
eTx for construction
type
Collateralize
Retriev
eTx
struct
{
CollateralizeID
string
`json:"collateralizeId"`
Balance
int64
`json:"Balance"`
Fee
int64
`json:"fee"`
}
...
...
plugin/dapp/collateralize/types/types.go
View file @
2e4b635d
...
...
@@ -11,7 +11,7 @@ const (
CollateralizeActionRepay
CollateralizeActionAppend
CollateralizeActionFeed
CollateralizeAction
Clos
e
CollateralizeAction
Retriev
e
CollateralizeActionManage
//log for Collateralize
...
...
@@ -20,7 +20,7 @@ const (
TyLogCollateralizeRepay
=
733
TyLogCollateralizeAppend
=
734
TyLogCollateralizeFeed
=
735
TyLogCollateralize
Close
=
736
TyLogCollateralize
Retrieve
=
736
)
// Collateralize name
...
...
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