Commit 73a47016 authored by heyubin's avatar heyubin

add by hyb for multisig

parent 09a42e4e
package init package init
import ( import (
<<<<<<< HEAD
_ "github.com/33cn/plugin/plugin/dapp/blackwhite" _ "github.com/33cn/plugin/plugin/dapp/blackwhite"
_ "github.com/33cn/plugin/plugin/dapp/cert" _ "github.com/33cn/plugin/plugin/dapp/cert"
_ "github.com/33cn/plugin/plugin/dapp/evm" _ "github.com/33cn/plugin/plugin/dapp/evm"
...@@ -19,22 +18,4 @@ import ( ...@@ -19,22 +18,4 @@ import (
_ "github.com/33cn/plugin/plugin/dapp/token" _ "github.com/33cn/plugin/plugin/dapp/token"
_ "github.com/33cn/plugin/plugin/dapp/trade" _ "github.com/33cn/plugin/plugin/dapp/trade"
_ "github.com/33cn/plugin/plugin/dapp/valnode" _ "github.com/33cn/plugin/plugin/dapp/valnode"
=======
_ "github.com/33cn/plugin/plugin/dapp/blackwhite" //auto gen
_ "github.com/33cn/plugin/plugin/dapp/cert" //auto gen
_ "github.com/33cn/plugin/plugin/dapp/evm" //auto gen
_ "github.com/33cn/plugin/plugin/dapp/game" //auto gen
_ "github.com/33cn/plugin/plugin/dapp/hashlock" //auto gen
_ "github.com/33cn/plugin/plugin/dapp/lottery" //auto gen
_ "github.com/33cn/plugin/plugin/dapp/norm" //auto gen
_ "github.com/33cn/plugin/plugin/dapp/paracross" //auto gen
_ "github.com/33cn/plugin/plugin/dapp/pokerbull" //auto gen
_ "github.com/33cn/plugin/plugin/dapp/privacy" //auto gen
_ "github.com/33cn/plugin/plugin/dapp/relay" //auto gen
_ "github.com/33cn/plugin/plugin/dapp/retrieve" //auto gen
_ "github.com/33cn/plugin/plugin/dapp/ticket" //auto gen
_ "github.com/33cn/plugin/plugin/dapp/token" //auto gen
_ "github.com/33cn/plugin/plugin/dapp/trade" //auto gen
_ "github.com/33cn/plugin/plugin/dapp/valnode" //auto gen
>>>>>>> upstream/master
) )
...@@ -13,6 +13,7 @@ import ( ...@@ -13,6 +13,7 @@ import (
"time" "time"
"github.com/33cn/chain33/rpc/jsonclient" "github.com/33cn/chain33/rpc/jsonclient"
rpctypes "github.com/33cn/chain33/rpc/types"
"github.com/33cn/chain33/types" "github.com/33cn/chain33/types"
mty "github.com/33cn/plugin/plugin/dapp/multisig/types" mty "github.com/33cn/plugin/plugin/dapp/multisig/types"
"github.com/spf13/cobra" "github.com/spf13/cobra"
...@@ -555,13 +556,13 @@ func GetMultiSigAccCountCmd() *cobra.Command { ...@@ -555,13 +556,13 @@ func GetMultiSigAccCountCmd() *cobra.Command {
func getMultiSigAccCount(cmd *cobra.Command, args []string) { func getMultiSigAccCount(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr") rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
var params types.Query4Cli var params rpctypes.Query4Jrpc
var rep interface{} var rep interface{}
params.Execer = mty.MultiSigX params.Execer = mty.MultiSigX
params.FuncName = "MultiSigAccCount" params.FuncName = "MultiSigAccCount"
params.Payload = types.ReqNil{} params.Payload = types.MustPBToJSON(&types.ReqNil{})
rep = &types.Int64{} rep = &types.Int64{}
ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.Query", params, rep) ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.Query", params, rep)
ctx.Run() ctx.Run()
...@@ -602,12 +603,12 @@ func getMultiSigAccounts(cmd *cobra.Command, args []string) { ...@@ -602,12 +603,12 @@ func getMultiSigAccounts(cmd *cobra.Command, args []string) {
End: end, End: end,
} }
var params types.Query4Cli var params rpctypes.Query4Jrpc
var rep interface{} var rep interface{}
params.Execer = mty.MultiSigX params.Execer = mty.MultiSigX
params.FuncName = "MultiSigAccounts" params.FuncName = "MultiSigAccounts"
params.Payload = req params.Payload = types.MustPBToJSON(&req)
rep = &mty.ReplyMultiSigAccs{} rep = &mty.ReplyMultiSigAccs{}
ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.Query", params, rep) ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.Query", params, rep)
ctx.Run() ctx.Run()
...@@ -637,12 +638,12 @@ func getMultiSigAccountInfo(cmd *cobra.Command, args []string) { ...@@ -637,12 +638,12 @@ func getMultiSigAccountInfo(cmd *cobra.Command, args []string) {
MultiSigAccAddr: addr, MultiSigAccAddr: addr,
} }
var params types.Query4Cli var params rpctypes.Query4Jrpc
var rep interface{} var rep interface{}
params.Execer = mty.MultiSigX params.Execer = mty.MultiSigX
params.FuncName = "MultiSigAccountInfo" params.FuncName = "MultiSigAccountInfo"
params.Payload = req params.Payload = types.MustPBToJSON(&req)
rep = &mty.MultiSig{} rep = &mty.MultiSig{}
ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.Query", params, rep) ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.Query", params, rep)
ctx.SetResultCb(parseAccInfo) ctx.SetResultCb(parseAccInfo)
...@@ -702,12 +703,12 @@ func getMultiSigAccTxCount(cmd *cobra.Command, args []string) { ...@@ -702,12 +703,12 @@ func getMultiSigAccTxCount(cmd *cobra.Command, args []string) {
MultiSigAccAddr: addr, MultiSigAccAddr: addr,
} }
var params types.Query4Cli var params rpctypes.Query4Jrpc
var rep interface{} var rep interface{}
params.Execer = mty.MultiSigX params.Execer = mty.MultiSigX
params.FuncName = "MultiSigAccTxCount" params.FuncName = "MultiSigAccTxCount"
params.Payload = req params.Payload = types.MustPBToJSON(&req)
rep = &mty.Uint64{} rep = &mty.Uint64{}
ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.Query", params, rep) ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.Query", params, rep)
ctx.Run() ctx.Run()
...@@ -773,12 +774,12 @@ func getMultiSigTxids(cmd *cobra.Command, args []string) { ...@@ -773,12 +774,12 @@ func getMultiSigTxids(cmd *cobra.Command, args []string) {
Executed: executedBool, Executed: executedBool,
} }
var params types.Query4Cli var params rpctypes.Query4Jrpc
var rep interface{} var rep interface{}
params.Execer = mty.MultiSigX params.Execer = mty.MultiSigX
params.FuncName = "MultiSigTxids" params.FuncName = "MultiSigTxids"
params.Payload = req params.Payload = types.MustPBToJSON(&req)
rep = &mty.ReplyMultiSigTxids{} rep = &mty.ReplyMultiSigTxids{}
ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.Query", params, rep) ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.Query", params, rep)
ctx.Run() ctx.Run()
...@@ -813,12 +814,12 @@ func getMultiSigTxInfo(cmd *cobra.Command, args []string) { ...@@ -813,12 +814,12 @@ func getMultiSigTxInfo(cmd *cobra.Command, args []string) {
TxId: txid, TxId: txid,
} }
var params types.Query4Cli var params rpctypes.Query4Jrpc
var rep interface{} var rep interface{}
params.Execer = mty.MultiSigX params.Execer = mty.MultiSigX
params.FuncName = "MultiSigTxInfo" params.FuncName = "MultiSigTxInfo"
params.Payload = req params.Payload = types.MustPBToJSON(&req)
rep = &mty.MultiSigTx{} rep = &mty.MultiSigTx{}
ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.Query", params, rep) ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.Query", params, rep)
ctx.Run() ctx.Run()
...@@ -853,12 +854,12 @@ func getGetMultiSigTxConfirmedWeight(cmd *cobra.Command, args []string) { ...@@ -853,12 +854,12 @@ func getGetMultiSigTxConfirmedWeight(cmd *cobra.Command, args []string) {
TxId: txid, TxId: txid,
} }
var params types.Query4Cli var params rpctypes.Query4Jrpc
var rep interface{} var rep interface{}
params.Execer = mty.MultiSigX params.Execer = mty.MultiSigX
params.FuncName = "MultiSigTxConfirmedWeight" params.FuncName = "MultiSigTxConfirmedWeight"
params.Payload = req params.Payload = types.MustPBToJSON(&req)
rep = &mty.Uint64{} rep = &mty.Uint64{}
ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.Query", params, rep) ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.Query", params, rep)
ctx.Run() ctx.Run()
...@@ -914,12 +915,12 @@ func getMultiSigAccUnSpentToday(cmd *cobra.Command, args []string) { ...@@ -914,12 +915,12 @@ func getMultiSigAccUnSpentToday(cmd *cobra.Command, args []string) {
IsAll: isallBool, IsAll: isallBool,
} }
var params types.Query4Cli var params rpctypes.Query4Jrpc
var rep interface{} var rep interface{}
params.Execer = mty.MultiSigX params.Execer = mty.MultiSigX
params.FuncName = "MultiSigAccUnSpentToday" params.FuncName = "MultiSigAccUnSpentToday"
params.Payload = req params.Payload = types.MustPBToJSON(&req)
rep = &mty.ReplyUnSpentAssets{} rep = &mty.ReplyUnSpentAssets{}
ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.Query", params, rep) ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.Query", params, rep)
ctx.SetResultCb(parseUnSpentToday) ctx.SetResultCb(parseUnSpentToday)
...@@ -994,12 +995,12 @@ func getMultiSigAccAssets(cmd *cobra.Command, args []string) { ...@@ -994,12 +995,12 @@ func getMultiSigAccAssets(cmd *cobra.Command, args []string) {
IsAll: isallBool, IsAll: isallBool,
} }
var params types.Query4Cli var params rpctypes.Query4Jrpc
var rep interface{} var rep interface{}
params.Execer = mty.MultiSigX params.Execer = mty.MultiSigX
params.FuncName = "MultiSigAccAssets" params.FuncName = "MultiSigAccAssets"
params.Payload = req params.Payload = types.MustPBToJSON(&req)
rep = &mty.ReplyAccAssets{} rep = &mty.ReplyAccAssets{}
ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.Query", params, rep) ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.Query", params, rep)
ctx.SetResultCb(parseAccAssets) ctx.SetResultCb(parseAccAssets)
...@@ -1049,14 +1050,14 @@ func getMultiSigAccAllAddress(cmd *cobra.Command, args []string) { ...@@ -1049,14 +1050,14 @@ func getMultiSigAccAllAddress(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr") rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
createAddr, _ := cmd.Flags().GetString("addr") createAddr, _ := cmd.Flags().GetString("addr")
var params types.Query4Cli var params rpctypes.Query4Jrpc
var rep interface{} var rep interface{}
req := mty.ReqMultiSigAccInfo{ req := mty.ReqMultiSigAccInfo{
MultiSigAccAddr: createAddr, MultiSigAccAddr: createAddr,
} }
params.Execer = mty.MultiSigX params.Execer = mty.MultiSigX
params.FuncName = "MultiSigAccAllAddress" params.FuncName = "MultiSigAccAllAddress"
params.Payload = req params.Payload = types.MustPBToJSON(&req)
rep = &mty.AccAddress{} rep = &mty.AccAddress{}
ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.Query", params, rep) ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.Query", params, rep)
ctx.Run() ctx.Run()
......
...@@ -243,7 +243,8 @@ func (a *action) MultiSigExecTransferTo(execTransfer *mty.MultiSigExecTransfer) ...@@ -243,7 +243,8 @@ func (a *action) MultiSigExecTransferTo(execTransfer *mty.MultiSigExecTransfer)
} }
//将指定账户上的资产从balance转账到多重签名账户的balance上 //将指定账户上的资产从balance转账到多重签名账户的balance上
newAccountDB, err := account.NewAccountDB(execTransfer.Execname, execTransfer.Symbol, a.db) symbol := getRealSymbol(execTransfer.Symbol)
newAccountDB, err := account.NewAccountDB(execTransfer.Execname, symbol, a.db)
if err != nil { if err != nil {
return nil, err return nil, err
} }
...@@ -742,7 +743,8 @@ func (a *action) executeTransferTx(multiSigAcc *mty.MultiSig, newMultiSigTx *mty ...@@ -742,7 +743,8 @@ func (a *action) executeTransferTx(multiSigAcc *mty.MultiSig, newMultiSigTx *mty
if confirmed || underLimit { if confirmed || underLimit {
//执行此交易,从多重签名账户转币到指定账户,在multiSig合约中转账 //执行此交易,从多重签名账户转币到指定账户,在multiSig合约中转账
execerAccDB, err := account.NewAccountDB(transfer.Execname, transfer.Symbol, a.db) symbol := getRealSymbol(transfer.Symbol)
execerAccDB, err := account.NewAccountDB(transfer.Execname, symbol, a.db)
if err != nil { if err != nil {
multisiglog.Error("executeTransaction:NewAccountDB", "From", transfer.From, "To", transfer.To, multisiglog.Error("executeTransaction:NewAccountDB", "From", transfer.From, "To", transfer.To,
"execaddr", a.execaddr, "amount", amount, "Execer", transfer.Execname, "Symbol", transfer.Symbol, "error", err) "execaddr", a.execaddr, "amount", amount, "Execer", transfer.Execname, "Symbol", transfer.Symbol, "error", err)
......
...@@ -710,7 +710,9 @@ func (m *MultiSig) saveMultiSigTxCountUpdate(accTxCount mty.ReceiptTxCountUpdate ...@@ -710,7 +710,9 @@ func (m *MultiSig) saveMultiSigTxCountUpdate(accTxCount mty.ReceiptTxCountUpdate
//获取多重签名账户的指定资产 //获取多重签名账户的指定资产
func (m *MultiSig) getMultiSigAccAssets(multiSigAddr string, assets *mty.Assets) (*types.Account, error) { func (m *MultiSig) getMultiSigAccAssets(multiSigAddr string, assets *mty.Assets) (*types.Account, error) {
acc, err := account.NewAccountDB(assets.Execer, assets.Symbol, m.GetStateDB()) symbol := getRealSymbol(assets.Symbol)
acc, err := account.NewAccountDB(assets.Execer, symbol, m.GetStateDB())
if err != nil { if err != nil {
return &types.Account{}, err return &types.Account{}, err
} }
...@@ -777,7 +779,7 @@ func isUnderLimit(blocktime int64, amount uint64, dailyLimit *mty.DailyLimit) (b ...@@ -777,7 +779,7 @@ func isUnderLimit(blocktime int64, amount uint64, dailyLimit *mty.DailyLimit) (b
newSpentToday = 0 newSpentToday = 0
} }
if newSpentToday+amount > dailyLimit.DailyLimit { if newSpentToday+amount > dailyLimit.DailyLimit || newSpentToday+amount < newSpentToday {
return false, lastDay return false, lastDay
} else { } else {
return true, lastDay return true, lastDay
...@@ -869,3 +871,11 @@ func getMultiSigTxPayload(tx *types.TransactionDetail) (*mty.MultiSigAction, err ...@@ -869,3 +871,11 @@ func getMultiSigTxPayload(tx *types.TransactionDetail) (*mty.MultiSigAction, err
multisiglog.Error("GetMultiSigTx:Decode Payload", "payload", payload) multisiglog.Error("GetMultiSigTx:Decode Payload", "payload", payload)
return &payload, nil return &payload, nil
} }
//bty 显示是大写,在底层mavl数据库中对应key值时使用小写
func getRealSymbol(symbol string) string {
if symbol == types.BTY {
return "bty"
}
return symbol
}
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