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
4e9e7064
Commit
4e9e7064
authored
Dec 10, 2018
by
heyubin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add by hyb for bug
parent
d23433af
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
75 additions
and
45 deletions
+75
-45
multisig.go
plugin/dapp/multisig/commands/multisig.go
+2
-3
action.go
plugin/dapp/multisig/executor/action.go
+3
-3
exec.go
plugin/dapp/multisig/executor/exec.go
+2
-2
exec_del_local.go
plugin/dapp/multisig/executor/exec_del_local.go
+2
-2
exec_local.go
plugin/dapp/multisig/executor/exec_local.go
+2
-2
exec_test.go
plugin/dapp/multisig/executor/exec_test.go
+16
-13
multisig.go
plugin/dapp/multisig/executor/multisig.go
+30
-12
multisig.proto
plugin/dapp/multisig/proto/multisig.proto
+14
-4
jrpc_channel_test.go
plugin/dapp/multisig/rpc/jrpc_channel_test.go
+2
-2
rpc.go
plugin/dapp/multisig/rpc/rpc.go
+2
-2
multisig.pb.go
plugin/dapp/multisig/types/multisig.pb.go
+0
-0
No files found.
plugin/dapp/multisig/commands/multisig.go
View file @
4e9e7064
...
@@ -516,12 +516,11 @@ func createMultiSigAccTransferIn(cmd *cobra.Command, args []string) {
...
@@ -516,12 +516,11 @@ func createMultiSigAccTransferIn(cmd *cobra.Command, args []string) {
fmt
.
Fprintln
(
os
.
Stderr
,
types
.
ErrAmount
)
fmt
.
Fprintln
(
os
.
Stderr
,
types
.
ErrAmount
)
return
return
}
}
params
:=
&
mty
.
MultiSigExecTransfer
{
params
:=
&
mty
.
MultiSigExecTransfer
To
{
Symbol
:
symbol
,
Symbol
:
symbol
,
Amount
:
int64
(
math
.
Trunc
((
amount
+
0.0000001
)
*
1e4
))
*
1e4
,
Amount
:
int64
(
math
.
Trunc
((
amount
+
0.0000001
)
*
1e4
))
*
1e4
,
Note
:
note
,
Note
:
note
,
Execname
:
execer
,
Execname
:
execer
,
From
:
""
,
To
:
to
,
To
:
to
,
}
}
var
res
string
var
res
string
...
@@ -573,7 +572,7 @@ func createMultiSigAccTransferOut(cmd *cobra.Command, args []string) {
...
@@ -573,7 +572,7 @@ func createMultiSigAccTransferOut(cmd *cobra.Command, args []string) {
fmt
.
Fprintln
(
os
.
Stderr
,
types
.
ErrAmount
)
fmt
.
Fprintln
(
os
.
Stderr
,
types
.
ErrAmount
)
return
return
}
}
params
:=
&
mty
.
MultiSigExecTransfer
{
params
:=
&
mty
.
MultiSigExecTransfer
From
{
Symbol
:
symbol
,
Symbol
:
symbol
,
Amount
:
int64
(
math
.
Trunc
((
amount
+
0.0000001
)
*
1e4
))
*
1e4
,
Amount
:
int64
(
math
.
Trunc
((
amount
+
0.0000001
)
*
1e4
))
*
1e4
,
Note
:
note
,
Note
:
note
,
...
...
plugin/dapp/multisig/executor/action.go
View file @
4e9e7064
...
@@ -201,7 +201,7 @@ func (a *action) MultiSigOwnerOperate(AccOwnerOperate *mty.MultiSigOwnerOperate)
...
@@ -201,7 +201,7 @@ func (a *action) MultiSigOwnerOperate(AccOwnerOperate *mty.MultiSigOwnerOperate)
//MultiSigExecTransferFrom 首先判断转账的额度是否大于每日限量,小于就直接执行交易,调用ExecTransferFrozen进行转账
//MultiSigExecTransferFrom 首先判断转账的额度是否大于每日限量,小于就直接执行交易,调用ExecTransferFrozen进行转账
//大于每日限量只需要将交易信息记录
//大于每日限量只需要将交易信息记录
//合约中多重签名账户转账到外部账户,multiSigAddr--->Addr
//合约中多重签名账户转账到外部账户,multiSigAddr--->Addr
func
(
a
*
action
)
MultiSigExecTransferFrom
(
multiSigAccTransfer
*
mty
.
MultiSigExecTransfer
)
(
*
types
.
Receipt
,
error
)
{
func
(
a
*
action
)
MultiSigExecTransferFrom
(
multiSigAccTransfer
*
mty
.
MultiSigExecTransfer
From
)
(
*
types
.
Receipt
,
error
)
{
//首先从statedb中获取MultiSigAccAddr的状态信息
//首先从statedb中获取MultiSigAccAddr的状态信息
multiSigAccAddr
:=
multiSigAccTransfer
.
From
multiSigAccAddr
:=
multiSigAccTransfer
.
From
...
@@ -247,7 +247,7 @@ func (a *action) MultiSigExecTransferFrom(multiSigAccTransfer *mty.MultiSigExecT
...
@@ -247,7 +247,7 @@ func (a *action) MultiSigExecTransferFrom(multiSigAccTransfer *mty.MultiSigExecT
//MultiSigExecTransferTo 将合约中外部账户转账上的Execname.Symbol资产转到多重签名账户上,from:Addr --->to:multiSigAddr
//MultiSigExecTransferTo 将合约中外部账户转账上的Execname.Symbol资产转到多重签名账户上,from:Addr --->to:multiSigAddr
// from地址使用tx中的签名的地址,payload中from地址不使用在 TransferTo交易中
// from地址使用tx中的签名的地址,payload中from地址不使用在 TransferTo交易中
func
(
a
*
action
)
MultiSigExecTransferTo
(
execTransfer
*
mty
.
MultiSigExecTransfer
)
(
*
types
.
Receipt
,
error
)
{
func
(
a
*
action
)
MultiSigExecTransferTo
(
execTransfer
*
mty
.
MultiSigExecTransfer
To
)
(
*
types
.
Receipt
,
error
)
{
//from地址校验必须不是多重签名账户地址
//from地址校验必须不是多重签名账户地址
multiSigAccFrom
,
_
:=
getMultiSigAccFromDb
(
a
.
db
,
a
.
fromaddr
)
multiSigAccFrom
,
_
:=
getMultiSigAccFromDb
(
a
.
db
,
a
.
fromaddr
)
...
@@ -728,7 +728,7 @@ func (a *action) receiptMultiSigTx(multiSigTx *mty.MultiSigTx, owner *mty.Owner,
...
@@ -728,7 +728,7 @@ func (a *action) receiptMultiSigTx(multiSigTx *mty.MultiSigTx, owner *mty.Owner,
}
}
//确认并执行转账交易:区分submitTx和confirmtx阶段。
//确认并执行转账交易:区分submitTx和confirmtx阶段。
func
(
a
*
action
)
executeTransferTx
(
multiSigAcc
*
mty
.
MultiSig
,
newMultiSigTx
*
mty
.
MultiSigTx
,
transfer
*
mty
.
MultiSigExecTransfer
,
confOwner
*
mty
.
Owner
,
subOrConfirm
bool
)
(
*
types
.
Receipt
,
error
)
{
func
(
a
*
action
)
executeTransferTx
(
multiSigAcc
*
mty
.
MultiSig
,
newMultiSigTx
*
mty
.
MultiSigTx
,
transfer
*
mty
.
MultiSigExecTransfer
From
,
confOwner
*
mty
.
Owner
,
subOrConfirm
bool
)
(
*
types
.
Receipt
,
error
)
{
//获取对应资产的每日限额信息
//获取对应资产的每日限额信息
var
findindex
int
var
findindex
int
...
...
plugin/dapp/multisig/executor/exec.go
View file @
4e9e7064
...
@@ -34,13 +34,13 @@ func (m *MultiSig) Exec_MultiSigConfirmTx(payload *mty.MultiSigConfirmTx, tx *ty
...
@@ -34,13 +34,13 @@ func (m *MultiSig) Exec_MultiSigConfirmTx(payload *mty.MultiSigConfirmTx, tx *ty
}
}
//Exec_MultiSigExecTransferTo 合约中外部账户转账到多重签名账户,Addr --->multiSigAddr
//Exec_MultiSigExecTransferTo 合约中外部账户转账到多重签名账户,Addr --->multiSigAddr
func
(
m
*
MultiSig
)
Exec_MultiSigExecTransferTo
(
payload
*
mty
.
MultiSigExecTransfer
,
tx
*
types
.
Transaction
,
index
int
)
(
*
types
.
Receipt
,
error
)
{
func
(
m
*
MultiSig
)
Exec_MultiSigExecTransferTo
(
payload
*
mty
.
MultiSigExecTransfer
To
,
tx
*
types
.
Transaction
,
index
int
)
(
*
types
.
Receipt
,
error
)
{
action
:=
newAction
(
m
,
tx
,
int32
(
index
))
action
:=
newAction
(
m
,
tx
,
int32
(
index
))
return
action
.
MultiSigExecTransferTo
(
payload
)
return
action
.
MultiSigExecTransferTo
(
payload
)
}
}
//Exec_MultiSigExecTransferFrom 合约中多重签名账户转账到外部账户,multiSigAddr--->Addr
//Exec_MultiSigExecTransferFrom 合约中多重签名账户转账到外部账户,multiSigAddr--->Addr
func
(
m
*
MultiSig
)
Exec_MultiSigExecTransferFrom
(
payload
*
mty
.
MultiSigExecTransfer
,
tx
*
types
.
Transaction
,
index
int
)
(
*
types
.
Receipt
,
error
)
{
func
(
m
*
MultiSig
)
Exec_MultiSigExecTransferFrom
(
payload
*
mty
.
MultiSigExecTransfer
From
,
tx
*
types
.
Transaction
,
index
int
)
(
*
types
.
Receipt
,
error
)
{
action
:=
newAction
(
m
,
tx
,
int32
(
index
))
action
:=
newAction
(
m
,
tx
,
int32
(
index
))
return
action
.
MultiSigExecTransferFrom
(
payload
)
return
action
.
MultiSigExecTransferFrom
(
payload
)
}
}
plugin/dapp/multisig/executor/exec_del_local.go
View file @
4e9e7064
...
@@ -62,7 +62,7 @@ func (m *MultiSig) ExecDelLocal_MultiSigConfirmTx(payload *mty.MultiSigConfirmTx
...
@@ -62,7 +62,7 @@ func (m *MultiSig) ExecDelLocal_MultiSigConfirmTx(payload *mty.MultiSigConfirmTx
}
}
//ExecDelLocal_MultiSigExecTransferTo 合约中外部账户转账到多重签名账户,Addr --->multiSigAddr
//ExecDelLocal_MultiSigExecTransferTo 合约中外部账户转账到多重签名账户,Addr --->multiSigAddr
func
(
m
*
MultiSig
)
ExecDelLocal_MultiSigExecTransferTo
(
payload
*
mty
.
MultiSigExecTransfer
,
tx
*
types
.
Transaction
,
receiptData
*
types
.
ReceiptData
,
index
int
)
(
*
types
.
LocalDBSet
,
error
)
{
func
(
m
*
MultiSig
)
ExecDelLocal_MultiSigExecTransferTo
(
payload
*
mty
.
MultiSigExecTransfer
To
,
tx
*
types
.
Transaction
,
receiptData
*
types
.
ReceiptData
,
index
int
)
(
*
types
.
LocalDBSet
,
error
)
{
if
receiptData
.
GetTy
()
!=
types
.
ExecOk
{
if
receiptData
.
GetTy
()
!=
types
.
ExecOk
{
return
&
types
.
LocalDBSet
{},
nil
return
&
types
.
LocalDBSet
{},
nil
}
}
...
@@ -75,7 +75,7 @@ func (m *MultiSig) ExecDelLocal_MultiSigExecTransferTo(payload *mty.MultiSigExec
...
@@ -75,7 +75,7 @@ func (m *MultiSig) ExecDelLocal_MultiSigExecTransferTo(payload *mty.MultiSigExec
}
}
//ExecDelLocal_MultiSigExecTransferFrom 合约中多重签名账户转账到外部账户,multiSigAddr--->Addr
//ExecDelLocal_MultiSigExecTransferFrom 合约中多重签名账户转账到外部账户,multiSigAddr--->Addr
func
(
m
*
MultiSig
)
ExecDelLocal_MultiSigExecTransferFrom
(
payload
*
mty
.
MultiSigExecTransfer
,
tx
*
types
.
Transaction
,
receiptData
*
types
.
ReceiptData
,
index
int
)
(
*
types
.
LocalDBSet
,
error
)
{
func
(
m
*
MultiSig
)
ExecDelLocal_MultiSigExecTransferFrom
(
payload
*
mty
.
MultiSigExecTransfer
From
,
tx
*
types
.
Transaction
,
receiptData
*
types
.
ReceiptData
,
index
int
)
(
*
types
.
LocalDBSet
,
error
)
{
if
receiptData
.
GetTy
()
!=
types
.
ExecOk
{
if
receiptData
.
GetTy
()
!=
types
.
ExecOk
{
return
&
types
.
LocalDBSet
{},
nil
return
&
types
.
LocalDBSet
{},
nil
}
}
...
...
plugin/dapp/multisig/executor/exec_local.go
View file @
4e9e7064
...
@@ -65,7 +65,7 @@ func (m *MultiSig) ExecLocal_MultiSigConfirmTx(payload *mty.MultiSigConfirmTx, t
...
@@ -65,7 +65,7 @@ func (m *MultiSig) ExecLocal_MultiSigConfirmTx(payload *mty.MultiSigConfirmTx, t
}
}
//ExecLocal_MultiSigExecTransferTo 合约中外部账户转账到多重签名账户,Addr --->multiSigAddr
//ExecLocal_MultiSigExecTransferTo 合约中外部账户转账到多重签名账户,Addr --->multiSigAddr
func
(
m
*
MultiSig
)
ExecLocal_MultiSigExecTransferTo
(
payload
*
mty
.
MultiSigExecTransfer
,
tx
*
types
.
Transaction
,
receiptData
*
types
.
ReceiptData
,
index
int
)
(
*
types
.
LocalDBSet
,
error
)
{
func
(
m
*
MultiSig
)
ExecLocal_MultiSigExecTransferTo
(
payload
*
mty
.
MultiSigExecTransfer
To
,
tx
*
types
.
Transaction
,
receiptData
*
types
.
ReceiptData
,
index
int
)
(
*
types
.
LocalDBSet
,
error
)
{
if
receiptData
.
GetTy
()
!=
types
.
ExecOk
{
if
receiptData
.
GetTy
()
!=
types
.
ExecOk
{
return
&
types
.
LocalDBSet
{},
nil
return
&
types
.
LocalDBSet
{},
nil
}
}
...
@@ -79,7 +79,7 @@ func (m *MultiSig) ExecLocal_MultiSigExecTransferTo(payload *mty.MultiSigExecTra
...
@@ -79,7 +79,7 @@ func (m *MultiSig) ExecLocal_MultiSigExecTransferTo(payload *mty.MultiSigExecTra
}
}
//ExecLocal_MultiSigExecTransferFrom 合约中多重签名账户转账到外部账户,multiSigAddr--->Addr
//ExecLocal_MultiSigExecTransferFrom 合约中多重签名账户转账到外部账户,multiSigAddr--->Addr
func
(
m
*
MultiSig
)
ExecLocal_MultiSigExecTransferFrom
(
payload
*
mty
.
MultiSigExecTransfer
,
tx
*
types
.
Transaction
,
receiptData
*
types
.
ReceiptData
,
index
int
)
(
*
types
.
LocalDBSet
,
error
)
{
func
(
m
*
MultiSig
)
ExecLocal_MultiSigExecTransferFrom
(
payload
*
mty
.
MultiSigExecTransfer
From
,
tx
*
types
.
Transaction
,
receiptData
*
types
.
ReceiptData
,
index
int
)
(
*
types
.
LocalDBSet
,
error
)
{
if
receiptData
.
GetTy
()
!=
types
.
ExecOk
{
if
receiptData
.
GetTy
()
!=
types
.
ExecOk
{
return
&
types
.
LocalDBSet
{},
nil
return
&
types
.
LocalDBSet
{},
nil
}
}
...
...
plugin/dapp/multisig/executor/exec_test.go
View file @
4e9e7064
...
@@ -764,16 +764,15 @@ func testMultiSigAccConfirmTx(t *testing.T, driver drivers.Driver, env execEnv,
...
@@ -764,16 +764,15 @@ func testMultiSigAccConfirmTx(t *testing.T, driver drivers.Driver, env execEnv,
//合约内转账到多重签名账户
//合约内转账到多重签名账户
func
testMultiSigAccExecTransferTo
(
t
*
testing
.
T
,
driver
drivers
.
Driver
,
env
execEnv
,
multiSigAddr
string
)
{
func
testMultiSigAccExecTransferTo
(
t
*
testing
.
T
,
driver
drivers
.
Driver
,
env
execEnv
,
multiSigAddr
string
)
{
params
:=
&
mty
.
MultiSigExecTransfer
{
params
:=
&
mty
.
MultiSigExecTransfer
To
{
Symbol
:
Symbol
,
Symbol
:
Symbol
,
Amount
:
InAmount
,
Amount
:
InAmount
,
Note
:
"testMultiSigAccExecTransferTo"
,
Note
:
"testMultiSigAccExecTransferTo"
,
Execname
:
Asset
,
Execname
:
Asset
,
From
:
AddrD
,
To
:
multiSigAddr
,
To
:
multiSigAddr
,
}
}
tx
,
_
:=
multiSigExecTransfer
(
params
,
false
)
tx
,
_
:=
multiSigExecTransfer
To
(
params
,
false
)
tx
,
_
=
signTx
(
tx
,
PrivKeyD
)
tx
,
_
=
signTx
(
tx
,
PrivKeyD
)
receipt
,
err
:=
driver
.
Exec
(
tx
,
env
.
index
)
receipt
,
err
:=
driver
.
Exec
(
tx
,
env
.
index
)
...
@@ -837,7 +836,7 @@ func testMultiSigAccExecTransferTo(t *testing.T, driver drivers.Driver, env exec
...
@@ -837,7 +836,7 @@ func testMultiSigAccExecTransferTo(t *testing.T, driver drivers.Driver, env exec
//合约内转账到多重签名账户
//合约内转账到多重签名账户
func
testMultiSigAccExecTransferFrom
(
t
*
testing
.
T
,
driver
drivers
.
Driver
,
env
execEnv
,
multiSigAddr
string
)
{
func
testMultiSigAccExecTransferFrom
(
t
*
testing
.
T
,
driver
drivers
.
Driver
,
env
execEnv
,
multiSigAddr
string
)
{
params
:=
&
mty
.
MultiSigExecTransfer
{
params
:=
&
mty
.
MultiSigExecTransfer
From
{
Symbol
:
Symbol
,
Symbol
:
Symbol
,
Amount
:
OutAmount
,
Amount
:
OutAmount
,
Note
:
"testMultiSigAccExecTransferFrom"
,
Note
:
"testMultiSigAccExecTransferFrom"
,
...
@@ -846,7 +845,7 @@ func testMultiSigAccExecTransferFrom(t *testing.T, driver drivers.Driver, env ex
...
@@ -846,7 +845,7 @@ func testMultiSigAccExecTransferFrom(t *testing.T, driver drivers.Driver, env ex
To
:
AddrD
,
To
:
AddrD
,
}
}
tx
,
_
:=
multiSigExecTransfer
(
params
,
true
)
tx
,
_
:=
multiSigExecTransfer
From
(
params
,
true
)
tx
,
_
=
signTx
(
tx
,
PrivKeyB
)
tx
,
_
=
signTx
(
tx
,
PrivKeyB
)
receipt
,
err
:=
driver
.
Exec
(
tx
,
env
.
index
)
receipt
,
err
:=
driver
.
Exec
(
tx
,
env
.
index
)
...
@@ -993,20 +992,24 @@ func multiSigConfirmTx(parm *mty.MultiSigConfirmTx) (*types.Transaction, error)
...
@@ -993,20 +992,24 @@ func multiSigConfirmTx(parm *mty.MultiSigConfirmTx) (*types.Transaction, error)
}
}
return
types
.
CreateFormatTx
(
types
.
ExecName
(
mty
.
MultiSigX
),
types
.
Encode
(
multiSig
))
return
types
.
CreateFormatTx
(
types
.
ExecName
(
mty
.
MultiSigX
),
types
.
Encode
(
multiSig
))
}
}
func
multiSigExecTransfer
(
parm
*
mty
.
MultiSigExecTransfer
,
fromOrTo
bool
)
(
*
types
.
Transaction
,
error
)
{
func
multiSigExecTransfer
To
(
parm
*
mty
.
MultiSigExecTransferTo
,
fromOrTo
bool
)
(
*
types
.
Transaction
,
error
)
{
if
parm
==
nil
{
if
parm
==
nil
{
return
nil
,
types
.
ErrInvalidParam
return
nil
,
types
.
ErrInvalidParam
}
}
if
fromOrTo
{
multiSig
:=
&
mty
.
MultiSigAction
{
Ty
:
mty
.
ActionMultiSigExecTransferFrom
,
Value
:
&
mty
.
MultiSigAction_MultiSigExecTransferFrom
{
MultiSigExecTransferFrom
:
parm
},
}
return
types
.
CreateFormatTx
(
types
.
ExecName
(
mty
.
MultiSigX
),
types
.
Encode
(
multiSig
))
}
multiSig
:=
&
mty
.
MultiSigAction
{
multiSig
:=
&
mty
.
MultiSigAction
{
Ty
:
mty
.
ActionMultiSigExecTransferTo
,
Ty
:
mty
.
ActionMultiSigExecTransferTo
,
Value
:
&
mty
.
MultiSigAction_MultiSigExecTransferTo
{
MultiSigExecTransferTo
:
parm
},
Value
:
&
mty
.
MultiSigAction_MultiSigExecTransferTo
{
MultiSigExecTransferTo
:
parm
},
}
}
return
types
.
CreateFormatTx
(
types
.
ExecName
(
mty
.
MultiSigX
),
types
.
Encode
(
multiSig
))
return
types
.
CreateFormatTx
(
types
.
ExecName
(
mty
.
MultiSigX
),
types
.
Encode
(
multiSig
))
}
}
func
multiSigExecTransferFrom
(
parm
*
mty
.
MultiSigExecTransferFrom
,
fromOrTo
bool
)
(
*
types
.
Transaction
,
error
)
{
if
parm
==
nil
{
return
nil
,
types
.
ErrInvalidParam
}
multiSig
:=
&
mty
.
MultiSigAction
{
Ty
:
mty
.
ActionMultiSigExecTransferFrom
,
Value
:
&
mty
.
MultiSigAction_MultiSigExecTransferFrom
{
MultiSigExecTransferFrom
:
parm
},
}
return
types
.
CreateFormatTx
(
types
.
ExecName
(
mty
.
MultiSigX
),
types
.
Encode
(
multiSig
))
}
plugin/dapp/multisig/executor/multisig.go
View file @
4e9e7064
...
@@ -104,14 +104,23 @@ func (m *MultiSig) CheckTx(tx *types.Transaction, index int) error {
...
@@ -104,14 +104,23 @@ func (m *MultiSig) CheckTx(tx *types.Transaction, index int) error {
return
nil
return
nil
}
}
//MultiSigExecTransfer 交易的检测
//MultiSigExecTransfer
To
交易的检测
if
ato
,
ok
:=
payload
.
(
*
mty
.
MultiSigExecTransfer
);
ok
{
if
ato
,
ok
:=
payload
.
(
*
mty
.
MultiSigExecTransfer
To
);
ok
{
if
err
:=
address
.
CheckAddress
(
ato
.
GetTo
());
err
!=
nil
{
if
err
:=
address
.
CheckAddress
(
ato
.
GetTo
());
err
!=
nil
{
return
types
.
ErrInvalidAddress
return
types
.
ErrInvalidAddress
}
}
//assets check
//assets check
return
mty
.
IsAssetsInvalid
(
ato
.
GetExecname
(),
ato
.
GetSymbol
())
return
mty
.
IsAssetsInvalid
(
ato
.
GetExecname
(),
ato
.
GetSymbol
())
}
}
//MultiSigExecTransferFrom 交易的检测
if
ato
,
ok
:=
payload
.
(
*
mty
.
MultiSigExecTransferFrom
);
ok
{
if
err
:=
address
.
CheckAddress
(
ato
.
GetTo
());
err
!=
nil
{
return
types
.
ErrInvalidAddress
}
//assets check
return
mty
.
IsAssetsInvalid
(
ato
.
GetExecname
(),
ato
.
GetSymbol
())
}
return
nil
return
nil
}
}
func
checkAccountCreateTx
(
ato
*
mty
.
MultiSigAccCreate
)
error
{
func
checkAccountCreateTx
(
ato
*
mty
.
MultiSigAccCreate
)
error
{
...
@@ -377,16 +386,26 @@ func (m *MultiSig) saveMultiSigTransfer(tx *types.Transaction, SubmitOrConfirm,
...
@@ -377,16 +386,26 @@ func (m *MultiSig) saveMultiSigTransfer(tx *types.Transaction, SubmitOrConfirm,
if
err
!=
nil
{
if
err
!=
nil
{
panic
(
err
)
panic
(
err
)
}
}
var
to
string
multiSigTransfer
:=
&
mty
.
MultiSigExecTransfer
{}
var
execname
string
var
symbol
string
var
amount
int64
//addr-->multiSigAccAddr
//addr-->multiSigAccAddr
//multiSigAccAddr-->addr
//multiSigAccAddr-->addr
if
SubmitOrConfirm
{
if
SubmitOrConfirm
{
if
action
.
Ty
==
mty
.
ActionMultiSigExecTransferTo
&&
action
.
GetMultiSigExecTransferTo
()
!=
nil
{
if
action
.
Ty
==
mty
.
ActionMultiSigExecTransferTo
&&
action
.
GetMultiSigExecTransferTo
()
!=
nil
{
multiSigTransfer
=
action
.
GetMultiSigExecTransferTo
()
tx
:=
action
.
GetMultiSigExecTransferTo
()
to
=
tx
.
To
execname
=
tx
.
Execname
symbol
=
tx
.
Symbol
amount
=
tx
.
Amount
}
else
if
action
.
Ty
==
mty
.
ActionMultiSigExecTransferFrom
&&
action
.
GetMultiSigExecTransferFrom
()
!=
nil
{
}
else
if
action
.
Ty
==
mty
.
ActionMultiSigExecTransferFrom
&&
action
.
GetMultiSigExecTransferFrom
()
!=
nil
{
multiSigTransfer
=
action
.
GetMultiSigExecTransferFrom
()
tx
:=
action
.
GetMultiSigExecTransferFrom
()
to
=
tx
.
To
execname
=
tx
.
Execname
symbol
=
tx
.
Symbol
amount
=
tx
.
Amount
}
else
{
}
else
{
return
set
,
nil
return
set
,
nil
}
}
...
@@ -409,16 +428,15 @@ func (m *MultiSig) saveMultiSigTransfer(tx *types.Transaction, SubmitOrConfirm,
...
@@ -409,16 +428,15 @@ func (m *MultiSig) saveMultiSigTransfer(tx *types.Transaction, SubmitOrConfirm,
return
nil
,
err
return
nil
,
err
}
}
if
multiSigTx
.
TxType
==
mty
.
TransferOperate
{
if
multiSigTx
.
TxType
==
mty
.
TransferOperate
{
multiSigTransfer
=
payload
.
GetMultiSigExecTransferFrom
()
tx
:=
payload
.
GetMultiSigExecTransferFrom
()
to
=
tx
.
To
execname
=
tx
.
Execname
symbol
=
tx
.
Symbol
amount
=
tx
.
Amount
}
else
{
}
else
{
return
set
,
nil
return
set
,
nil
}
}
}
}
to
:=
multiSigTransfer
.
To
execname
:=
multiSigTransfer
.
Execname
symbol
:=
multiSigTransfer
.
Symbol
amount
:=
multiSigTransfer
.
Amount
kv
,
err
:=
updateAddrReciver
(
m
.
GetLocalDB
(),
to
,
execname
,
symbol
,
amount
,
addOrRollback
)
kv
,
err
:=
updateAddrReciver
(
m
.
GetLocalDB
(),
to
,
execname
,
symbol
,
amount
,
addOrRollback
)
if
err
!=
nil
{
if
err
!=
nil
{
return
set
,
err
return
set
,
err
...
...
plugin/dapp/multisig/proto/multisig.proto
View file @
4e9e7064
...
@@ -77,8 +77,8 @@ message MultiSigAction {
...
@@ -77,8 +77,8 @@ message MultiSigAction {
MultiSigOwnerOperate
multiSigOwnerOperate
=
2
;
MultiSigOwnerOperate
multiSigOwnerOperate
=
2
;
MultiSigAccOperate
multiSigAccOperate
=
3
;
MultiSigAccOperate
multiSigAccOperate
=
3
;
MultiSigConfirmTx
multiSigConfirmTx
=
4
;
//确认或者撤销已确认
MultiSigConfirmTx
multiSigConfirmTx
=
4
;
//确认或者撤销已确认
MultiSigExecTransfer
multiSigExecTransferTo
=
5
;
//合约中外部账户转账到多重签名账户,Addr --->multiSigAddr
MultiSigExecTransfer
To
multiSigExecTransferTo
=
5
;
//合约中外部账户转账到多重签名账户,Addr --->multiSigAddr
MultiSigExecTransfer
multiSigExecTransferFrom
=
6
;
//合约中多重签名账户转账到外部账户,multiSigAddr--->Addr
MultiSigExecTransfer
From
multiSigExecTransferFrom
=
6
;
//合约中多重签名账户转账到外部账户,multiSigAddr--->Addr
}
}
int32
Ty
=
7
;
int32
Ty
=
7
;
...
@@ -109,10 +109,10 @@ message MultiSigAccOperate {
...
@@ -109,10 +109,10 @@ message MultiSigAccOperate {
bool
operateFlag
=
4
;
bool
operateFlag
=
4
;
}
}
//多重签名合约中账户之间转币操作:增加一个from的字段实现MultiSigAddr
<
--->addr之间的转账
//多重签名合约中账户之间转币操作:增加一个from的字段实现MultiSigAddr--->addr之间的转账
//需要判断from地址是否是多重签名地址
//需要判断from地址是否是多重签名地址
//将MultiSig合约中from地址上execname+symbol的资产转移到to地址
//将MultiSig合约中from地址上execname+symbol的资产转移到to地址
message
MultiSigExecTransfer
{
message
MultiSigExecTransfer
From
{
string
symbol
=
1
;
string
symbol
=
1
;
int64
amount
=
2
;
int64
amount
=
2
;
string
note
=
3
;
string
note
=
3
;
...
@@ -120,6 +120,16 @@ message MultiSigExecTransfer {
...
@@ -120,6 +120,16 @@ message MultiSigExecTransfer {
string
to
=
5
;
string
to
=
5
;
string
from
=
6
;
string
from
=
6
;
}
}
//多重签名合约中账户之间转币操作: addr --->MultiSigAddr之间的转账
//需要判断to地址是否是多重签名地址
//将MultiSig合约中签名地址上execname+symbol的资产转移到to地址
message
MultiSigExecTransferTo
{
string
symbol
=
1
;
int64
amount
=
2
;
string
note
=
3
;
string
execname
=
4
;
string
to
=
5
;
}
//多重签名账户withdraw交易的确认或者取消确认
//多重签名账户withdraw交易的确认或者取消确认
//multisigaccaddr:多重签名账户地址
//multisigaccaddr:多重签名账户地址
...
...
plugin/dapp/multisig/rpc/jrpc_channel_test.go
View file @
4e9e7064
...
@@ -107,11 +107,11 @@ func testCreateMultiSigConfirmTxCmd(t *testing.T, jrpc *jsonclient.JSONClient) e
...
@@ -107,11 +107,11 @@ func testCreateMultiSigConfirmTxCmd(t *testing.T, jrpc *jsonclient.JSONClient) e
return
jrpc
.
Call
(
"multisig.MultiSigConfirmTx"
,
params
,
nil
)
return
jrpc
.
Call
(
"multisig.MultiSigConfirmTx"
,
params
,
nil
)
}
}
func
testCreateMultiSigAccTransferInCmd
(
t
*
testing
.
T
,
jrpc
*
jsonclient
.
JSONClient
)
error
{
func
testCreateMultiSigAccTransferInCmd
(
t
*
testing
.
T
,
jrpc
*
jsonclient
.
JSONClient
)
error
{
params
:=
&
mty
.
MultiSigExecTransfer
{}
params
:=
&
mty
.
MultiSigExecTransfer
To
{}
return
jrpc
.
Call
(
"multisig.MultiSigAccTransferInTx"
,
params
,
nil
)
return
jrpc
.
Call
(
"multisig.MultiSigAccTransferInTx"
,
params
,
nil
)
}
}
func
testCreateMultiSigAccTransferOutCmd
(
t
*
testing
.
T
,
jrpc
*
jsonclient
.
JSONClient
)
error
{
func
testCreateMultiSigAccTransferOutCmd
(
t
*
testing
.
T
,
jrpc
*
jsonclient
.
JSONClient
)
error
{
params
:=
&
mty
.
MultiSigExecTransfer
{}
params
:=
&
mty
.
MultiSigExecTransfer
From
{}
return
jrpc
.
Call
(
"multisig.MultiSigAccTransferOutTx"
,
params
,
nil
)
return
jrpc
.
Call
(
"multisig.MultiSigAccTransferOutTx"
,
params
,
nil
)
}
}
...
...
plugin/dapp/multisig/rpc/rpc.go
View file @
4e9e7064
...
@@ -65,7 +65,7 @@ func (c *Jrpc) MultiSigConfirmTx(param *mty.MultiSigConfirmTx, result *interface
...
@@ -65,7 +65,7 @@ func (c *Jrpc) MultiSigConfirmTx(param *mty.MultiSigConfirmTx, result *interface
}
}
// MultiSigAccTransferInTx :构造在多重签名合约中转账到多重签名账户的交易
// MultiSigAccTransferInTx :构造在多重签名合约中转账到多重签名账户的交易
func
(
c
*
Jrpc
)
MultiSigAccTransferInTx
(
param
*
mty
.
MultiSigExecTransfer
,
result
*
interface
{})
error
{
func
(
c
*
Jrpc
)
MultiSigAccTransferInTx
(
param
*
mty
.
MultiSigExecTransfer
To
,
result
*
interface
{})
error
{
if
param
==
nil
{
if
param
==
nil
{
return
types
.
ErrInvalidParam
return
types
.
ErrInvalidParam
}
}
...
@@ -78,7 +78,7 @@ func (c *Jrpc) MultiSigAccTransferInTx(param *mty.MultiSigExecTransfer, result *
...
@@ -78,7 +78,7 @@ func (c *Jrpc) MultiSigAccTransferInTx(param *mty.MultiSigExecTransfer, result *
}
}
// MultiSigAccTransferOutTx :构造在多重签名合约中从多重签名账户转账的交易
// MultiSigAccTransferOutTx :构造在多重签名合约中从多重签名账户转账的交易
func
(
c
*
Jrpc
)
MultiSigAccTransferOutTx
(
param
*
mty
.
MultiSigExecTransfer
,
result
*
interface
{})
error
{
func
(
c
*
Jrpc
)
MultiSigAccTransferOutTx
(
param
*
mty
.
MultiSigExecTransfer
From
,
result
*
interface
{})
error
{
if
param
==
nil
{
if
param
==
nil
{
return
types
.
ErrInvalidParam
return
types
.
ErrInvalidParam
}
}
...
...
plugin/dapp/multisig/types/multisig.pb.go
View file @
4e9e7064
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