Commit 4e9e7064 authored by heyubin's avatar heyubin

add by hyb for bug

parent d23433af
...@@ -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.MultiSigExecTransferTo{
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.MultiSigExecTransferFrom{
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,
......
...@@ -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.MultiSigExecTransferFrom) (*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.MultiSigExecTransferTo) (*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.MultiSigExecTransferFrom, confOwner *mty.Owner, subOrConfirm bool) (*types.Receipt, error) {
//获取对应资产的每日限额信息 //获取对应资产的每日限额信息
var findindex int var findindex int
......
...@@ -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.MultiSigExecTransferTo, 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.MultiSigExecTransferFrom, 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)
} }
...@@ -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.MultiSigExecTransferTo, 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.MultiSigExecTransferFrom, 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
} }
......
...@@ -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.MultiSigExecTransferTo, 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.MultiSigExecTransferFrom, 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
} }
......
...@@ -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.MultiSigExecTransferTo{
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, _ := multiSigExecTransferTo(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.MultiSigExecTransferFrom{
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, _ := multiSigExecTransferFrom(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 multiSigExecTransferTo(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{ multiSig := &mty.MultiSigAction{
Ty: mty.ActionMultiSigExecTransferFrom, Ty: mty.ActionMultiSigExecTransferTo,
Value: &mty.MultiSigAction_MultiSigExecTransferFrom{MultiSigExecTransferFrom: 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{ multiSig := &mty.MultiSigAction{
Ty: mty.ActionMultiSigExecTransferTo, Ty: mty.ActionMultiSigExecTransferFrom,
Value: &mty.MultiSigAction_MultiSigExecTransferTo{MultiSigExecTransferTo: parm}, Value: &mty.MultiSigAction_MultiSigExecTransferFrom{MultiSigExecTransferFrom: parm},
} }
return types.CreateFormatTx(types.ExecName(mty.MultiSigX), types.Encode(multiSig)) return types.CreateFormatTx(types.ExecName(mty.MultiSigX), types.Encode(multiSig))
} }
...@@ -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 交易的检测 //MultiSigExecTransferTo 交易的检测
if ato, ok := payload.(*mty.MultiSigExecTransfer); ok { if ato, ok := payload.(*mty.MultiSigExecTransferTo); 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
......
...@@ -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 MultiSigExecTransferTo multiSigExecTransferTo = 5;//合约中外部账户转账到多重签名账户,Addr --->multiSigAddr
MultiSigExecTransfer multiSigExecTransferFrom = 6;//合约中多重签名账户转账到外部账户,multiSigAddr--->Addr MultiSigExecTransferFrom 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 MultiSigExecTransferFrom {
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:多重签名账户地址
......
...@@ -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.MultiSigExecTransferTo{}
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.MultiSigExecTransferFrom{}
return jrpc.Call("multisig.MultiSigAccTransferOutTx", params, nil) return jrpc.Call("multisig.MultiSigAccTransferOutTx", params, nil)
} }
......
...@@ -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.MultiSigExecTransferTo, 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.MultiSigExecTransferFrom, result *interface{}) error {
if param == nil { if param == nil {
return types.ErrInvalidParam return types.ErrInvalidParam
} }
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment