Commit 73a47016 authored by heyubin's avatar heyubin

add by hyb for multisig

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