Commit 854ce979 authored by heyubin's avatar heyubin Committed by vipwzw

add by hyb for issues334 gosec

parent 10cf1647
...@@ -66,8 +66,11 @@ func (pack *transferInPack) checkBalance(txInfo types.CheckHandlerParamType) boo ...@@ -66,8 +66,11 @@ func (pack *transferInPack) checkBalance(txInfo types.CheckHandlerParamType) boo
} }
interCase := pack.TCase.(*transferInCase) interCase := pack.TCase.(*transferInCase)
amount, _ := strconv.ParseFloat(interCase.Amount, 64) amount, err := strconv.ParseFloat(interCase.Amount, 64)
if err != nil {
pack.FLog.Error("checkMultiSignTransferIn", "id", pack.PackID, "ParseFloat", err)
return false
}
return types.CheckBalanceDeltaWithAddr(fromLog, interCase.From, -amount) && return types.CheckBalanceDeltaWithAddr(fromLog, interCase.From, -amount) &&
types.CheckBalanceDeltaWithAddr(toLog, interCase.info.account, amount) && types.CheckBalanceDeltaWithAddr(toLog, interCase.info.account, amount) &&
types.CheckFrozenDeltaWithAddr(frozenLog, interCase.info.account, amount) && types.CheckFrozenDeltaWithAddr(frozenLog, interCase.info.account, amount) &&
......
...@@ -61,7 +61,11 @@ func (pack *transferOutPack) checkBalance(txInfo types.CheckHandlerParamType) bo ...@@ -61,7 +61,11 @@ func (pack *transferOutPack) checkBalance(txInfo types.CheckHandlerParamType) bo
logLen := len(txInfo.Receipt.Logs) logLen := len(txInfo.Receipt.Logs)
var txLog map[string]interface{} var txLog map[string]interface{}
_ = json.Unmarshal(txInfo.Receipt.Logs[logLen-1].Log, &txLog) err := json.Unmarshal(txInfo.Receipt.Logs[logLen-1].Log, &txLog)
if err != nil {
pack.FLog.Error("checkMultiSignTransferOut", "id", pack.PackID, "Unmarshal", err)
return false
}
pack.txID = txLog["multiSigTxOwner"].(map[string]interface{})["txid"].(string) pack.txID = txLog["multiSigTxOwner"].(map[string]interface{})["txid"].(string)
if logLen < 6 { if logLen < 6 {
//need confirm //need confirm
...@@ -75,13 +79,16 @@ func (pack *transferOutPack) checkBalance(txInfo types.CheckHandlerParamType) bo ...@@ -75,13 +79,16 @@ func (pack *transferOutPack) checkBalance(txInfo types.CheckHandlerParamType) bo
err2 := json.Unmarshal(txInfo.Receipt.Logs[2].Log, &toLog) err2 := json.Unmarshal(txInfo.Receipt.Logs[2].Log, &toLog)
if err1 != nil || err2 != nil { if err1 != nil || err2 != nil {
pack.FLog.Error("checkMultiSignTransferOut", "id", pack.PackID, "unmarshalErr1", err1, "unmarshalErr2") pack.FLog.Error("checkMultiSignTransferOut", "id", pack.PackID, "unmarshalErr1", err1, "unmarshalErr2", err2)
return false return false
} }
interCase := pack.TCase.(*transferOutCase) interCase := pack.TCase.(*transferOutCase)
amount, _ := strconv.ParseFloat(interCase.Amount, 64) amount, err3 := strconv.ParseFloat(interCase.Amount, 64)
if err3 != nil {
pack.FLog.Error("checkMultiSignTransferOut", "id", pack.PackID, "ParseFloat", err3)
return false
}
return types.CheckFrozenDeltaWithAddr(fromLog, interCase.info.account, -amount) && return types.CheckFrozenDeltaWithAddr(fromLog, interCase.info.account, -amount) &&
types.CheckBalanceDeltaWithAddr(toLog, interCase.To, amount) types.CheckBalanceDeltaWithAddr(toLog, interCase.To, amount)
} }
...@@ -105,31 +105,35 @@ func CreateMultiSigAccCreateCmd() *cobra.Command { ...@@ -105,31 +105,35 @@ func CreateMultiSigAccCreateCmd() *cobra.Command {
func createMultiSigAccTransferFlags(cmd *cobra.Command) { func createMultiSigAccTransferFlags(cmd *cobra.Command) {
cmd.Flags().StringP("owners_addr", "a", "", "address of owners,separated by '-', addr0-addr1-addr2...") cmd.Flags().StringP("owners_addr", "a", "", "address of owners,separated by '-', addr0-addr1-addr2...")
cmd.MarkFlagRequired("owners_addr") err := cmd.MarkFlagRequired("owners_addr")
cmd.Flags().StringP("owners_weight", "w", "", "weight of owners,separated by '-', w0-w1-w2..., uint64 type") cmd.Flags().StringP("owners_weight", "w", "", "weight of owners,separated by '-', w0-w1-w2..., uint64 type")
cmd.MarkFlagRequired("owners_weight") err = cmd.MarkFlagRequired("owners_weight")
cmd.Flags().Uint64P("required_weight", "r", 0, "required weight of account execute tx") cmd.Flags().Uint64P("required_weight", "r", 0, "required weight of account execute tx")
cmd.MarkFlagRequired("required_weight") err = cmd.MarkFlagRequired("required_weight")
cmd.Flags().StringP("execer", "e", "", "assets execer name") cmd.Flags().StringP("execer", "e", "", "assets execer name")
cmd.MarkFlagRequired("execer") err = cmd.MarkFlagRequired("execer")
cmd.Flags().StringP("symbol", "s", "", "assets symbol") cmd.Flags().StringP("symbol", "s", "", "assets symbol")
cmd.MarkFlagRequired("symbol") err = cmd.MarkFlagRequired("symbol")
cmd.Flags().Float64P("daily_limit", "d", 0, "daily_limit of assets ") cmd.Flags().Float64P("daily_limit", "d", 0, "daily_limit of assets ")
cmd.MarkFlagRequired("daily_limit") err = cmd.MarkFlagRequired("daily_limit")
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
} }
func createMultiSigAccTransfer(cmd *cobra.Command, args []string) { func createMultiSigAccTransfer(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr") rpcLaddr, err := cmd.Flags().GetString("rpc_laddr")
address, _ := cmd.Flags().GetString("owners_addr") address, err := cmd.Flags().GetString("owners_addr")
addressArr := strings.Split(address, "-") addressArr := strings.Split(address, "-")
weightstr, _ := cmd.Flags().GetString("owners_weight") weightstr, err := cmd.Flags().GetString("owners_weight")
weightsArr := strings.Split(weightstr, "-") weightsArr := strings.Split(weightstr, "-")
//校验owner和权重数量要一致 //校验owner和权重数量要一致
...@@ -170,10 +174,10 @@ func createMultiSigAccTransfer(cmd *cobra.Command, args []string) { ...@@ -170,10 +174,10 @@ func createMultiSigAccTransfer(cmd *cobra.Command, args []string) {
return return
} }
execer, _ := cmd.Flags().GetString("execer") execer, err := cmd.Flags().GetString("execer")
symbol, _ := cmd.Flags().GetString("symbol") symbol, err := cmd.Flags().GetString("symbol")
dailylimit, _ := cmd.Flags().GetFloat64("daily_limit") dailylimit, err := cmd.Flags().GetFloat64("daily_limit")
err = isValidDailylimit(dailylimit) err = isValidDailylimit(dailylimit)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, err) fmt.Fprintln(os.Stderr, err)
...@@ -209,22 +213,28 @@ func CreateMultiSigAccOwnerAddCmd() *cobra.Command { ...@@ -209,22 +213,28 @@ func CreateMultiSigAccOwnerAddCmd() *cobra.Command {
func createOwnerAddTransferFlags(cmd *cobra.Command) { func createOwnerAddTransferFlags(cmd *cobra.Command) {
cmd.Flags().StringP("multisig_addr", "a", "", "address of multisig account") cmd.Flags().StringP("multisig_addr", "a", "", "address of multisig account")
cmd.MarkFlagRequired("multisig_addr") err := cmd.MarkFlagRequired("multisig_addr")
cmd.Flags().StringP("owner_addr", "o", "", "address of owner") cmd.Flags().StringP("owner_addr", "o", "", "address of owner")
cmd.MarkFlagRequired("owner_addr") err = cmd.MarkFlagRequired("owner_addr")
cmd.Flags().Uint64P("owner_weight", "w", 0, "weight of owner") cmd.Flags().Uint64P("owner_weight", "w", 0, "weight of owner")
cmd.MarkFlagRequired("owner_weight") err = cmd.MarkFlagRequired("owner_weight")
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
} }
func createOwnerAddTransfer(cmd *cobra.Command, args []string) { func createOwnerAddTransfer(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr") rpcLaddr, err := cmd.Flags().GetString("rpc_laddr")
multiSigAddr, _ := cmd.Flags().GetString("multisig_addr") multiSigAddr, err := cmd.Flags().GetString("multisig_addr")
ownerAddr, _ := cmd.Flags().GetString("owner_addr") ownerAddr, err := cmd.Flags().GetString("owner_addr")
ownerWeight, _ := cmd.Flags().GetUint64("owner_weight") ownerWeight, err := cmd.Flags().GetUint64("owner_weight")
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
params := &mty.MultiSigOwnerOperate{ params := &mty.MultiSigOwnerOperate{
MultiSigAccAddr: multiSigAddr, MultiSigAccAddr: multiSigAddr,
NewOwner: ownerAddr, NewOwner: ownerAddr,
...@@ -250,17 +260,24 @@ func CreateMultiSigAccOwnerDelCmd() *cobra.Command { ...@@ -250,17 +260,24 @@ func CreateMultiSigAccOwnerDelCmd() *cobra.Command {
func createOwnerDelTransferFlags(cmd *cobra.Command) { func createOwnerDelTransferFlags(cmd *cobra.Command) {
cmd.Flags().StringP("multisig_addr", "a", "", "address of multisig account") cmd.Flags().StringP("multisig_addr", "a", "", "address of multisig account")
cmd.MarkFlagRequired("multisig_addr") err := cmd.MarkFlagRequired("multisig_addr")
cmd.Flags().StringP("owner_addr", "o", "", "address of owner") cmd.Flags().StringP("owner_addr", "o", "", "address of owner")
cmd.MarkFlagRequired("owner_addr") err = cmd.MarkFlagRequired("owner_addr")
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
} }
func createOwnerDelTransfer(cmd *cobra.Command, args []string) { func createOwnerDelTransfer(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr") rpcLaddr, err := cmd.Flags().GetString("rpc_laddr")
multiSigAddr, _ := cmd.Flags().GetString("multisig_addr") multiSigAddr, err := cmd.Flags().GetString("multisig_addr")
ownerAddr, _ := cmd.Flags().GetString("owner_addr") ownerAddr, err := cmd.Flags().GetString("owner_addr")
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
params := &mty.MultiSigOwnerOperate{ params := &mty.MultiSigOwnerOperate{
MultiSigAccAddr: multiSigAddr, MultiSigAccAddr: multiSigAddr,
OldOwner: ownerAddr, OldOwner: ownerAddr,
...@@ -285,19 +302,26 @@ func CreateMultiSigAccOwnerModifyCmd() *cobra.Command { ...@@ -285,19 +302,26 @@ func CreateMultiSigAccOwnerModifyCmd() *cobra.Command {
func createOwnerModifyTransferFlags(cmd *cobra.Command) { func createOwnerModifyTransferFlags(cmd *cobra.Command) {
cmd.Flags().StringP("multisig_addr", "a", "", "address of multisig account") cmd.Flags().StringP("multisig_addr", "a", "", "address of multisig account")
cmd.MarkFlagRequired("multisig_addr") err := cmd.MarkFlagRequired("multisig_addr")
cmd.Flags().StringP("owner_addr", "o", "", "address of owner") cmd.Flags().StringP("owner_addr", "o", "", "address of owner")
cmd.MarkFlagRequired("owner_addr") err = cmd.MarkFlagRequired("owner_addr")
cmd.Flags().Uint64P("owner_weight", "w", 0, "new weight of owner") cmd.Flags().Uint64P("owner_weight", "w", 0, "new weight of owner")
cmd.MarkFlagRequired("owner_weight") err = cmd.MarkFlagRequired("owner_weight")
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
} }
func createOwnerModifyTransfer(cmd *cobra.Command, args []string) { func createOwnerModifyTransfer(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr") rpcLaddr, err := cmd.Flags().GetString("rpc_laddr")
multiSigAddr, _ := cmd.Flags().GetString("multisig_addr") multiSigAddr, err := cmd.Flags().GetString("multisig_addr")
ownerAddr, _ := cmd.Flags().GetString("owner_addr") ownerAddr, err := cmd.Flags().GetString("owner_addr")
ownerWeight, _ := cmd.Flags().GetUint64("owner_weight") ownerWeight, err := cmd.Flags().GetUint64("owner_weight")
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
params := &mty.MultiSigOwnerOperate{ params := &mty.MultiSigOwnerOperate{
MultiSigAccAddr: multiSigAddr, MultiSigAccAddr: multiSigAddr,
OldOwner: ownerAddr, OldOwner: ownerAddr,
...@@ -323,19 +347,26 @@ func CreateMultiSigAccOwnerReplaceCmd() *cobra.Command { ...@@ -323,19 +347,26 @@ func CreateMultiSigAccOwnerReplaceCmd() *cobra.Command {
func createOwnerReplaceTransferFlags(cmd *cobra.Command) { func createOwnerReplaceTransferFlags(cmd *cobra.Command) {
cmd.Flags().StringP("multisig_addr", "a", "", "address of multisig account") cmd.Flags().StringP("multisig_addr", "a", "", "address of multisig account")
cmd.MarkFlagRequired("multisig_addr") err := cmd.MarkFlagRequired("multisig_addr")
cmd.Flags().StringP("owner_addr", "o", "", "address of old owner") cmd.Flags().StringP("owner_addr", "o", "", "address of old owner")
cmd.MarkFlagRequired("owner_addr") err = cmd.MarkFlagRequired("owner_addr")
cmd.Flags().StringP("new_owner", "n", "", "address of new owner") cmd.Flags().StringP("new_owner", "n", "", "address of new owner")
cmd.MarkFlagRequired("new_owner") err = cmd.MarkFlagRequired("new_owner")
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
} }
func createOwnerReplaceTransfer(cmd *cobra.Command, args []string) { func createOwnerReplaceTransfer(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr") rpcLaddr, err := cmd.Flags().GetString("rpc_laddr")
multiSigAddr, _ := cmd.Flags().GetString("multisig_addr") multiSigAddr, err := cmd.Flags().GetString("multisig_addr")
ownerAddr, _ := cmd.Flags().GetString("owner_addr") ownerAddr, err := cmd.Flags().GetString("owner_addr")
newOwner, _ := cmd.Flags().GetString("new_owner") newOwner, err := cmd.Flags().GetString("new_owner")
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
params := &mty.MultiSigOwnerOperate{ params := &mty.MultiSigOwnerOperate{
MultiSigAccAddr: multiSigAddr, MultiSigAccAddr: multiSigAddr,
OldOwner: ownerAddr, OldOwner: ownerAddr,
...@@ -361,15 +392,22 @@ func CreateMultiSigAccWeightModifyCmd() *cobra.Command { ...@@ -361,15 +392,22 @@ func CreateMultiSigAccWeightModifyCmd() *cobra.Command {
func createMultiSigAccWeightModifyTransferFlags(cmd *cobra.Command) { func createMultiSigAccWeightModifyTransferFlags(cmd *cobra.Command) {
cmd.Flags().StringP("multisig_addr", "a", "", "address of multisig account") cmd.Flags().StringP("multisig_addr", "a", "", "address of multisig account")
cmd.MarkFlagRequired("multisig_addr") err := cmd.MarkFlagRequired("multisig_addr")
cmd.Flags().Uint64P("weight", "w", 0, "new required weight of multisig account ") cmd.Flags().Uint64P("weight", "w", 0, "new required weight of multisig account ")
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
} }
func createMultiSigAccWeightModifyTransfer(cmd *cobra.Command, args []string) { func createMultiSigAccWeightModifyTransfer(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr") rpcLaddr, err := cmd.Flags().GetString("rpc_laddr")
multiSigAddr, _ := cmd.Flags().GetString("multisig_addr") multiSigAddr, err := cmd.Flags().GetString("multisig_addr")
weight, _ := cmd.Flags().GetUint64("weight") weight, err := cmd.Flags().GetUint64("weight")
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
params := &mty.MultiSigAccOperate{ params := &mty.MultiSigAccOperate{
MultiSigAccAddr: multiSigAddr, MultiSigAccAddr: multiSigAddr,
NewRequiredWeight: weight, NewRequiredWeight: weight,
...@@ -394,26 +432,33 @@ func CreateMultiSigAccDailyLimitModifyCmd() *cobra.Command { ...@@ -394,26 +432,33 @@ func CreateMultiSigAccDailyLimitModifyCmd() *cobra.Command {
func createMultiSigAccDailyLimitModifyTransferFlags(cmd *cobra.Command) { func createMultiSigAccDailyLimitModifyTransferFlags(cmd *cobra.Command) {
cmd.Flags().StringP("multisig_addr", "a", "", "address of multisig account") cmd.Flags().StringP("multisig_addr", "a", "", "address of multisig account")
cmd.MarkFlagRequired("multisig_addr") err := cmd.MarkFlagRequired("multisig_addr")
cmd.Flags().StringP("execer", "e", "", "assets execer name") cmd.Flags().StringP("execer", "e", "", "assets execer name")
cmd.MarkFlagRequired("execer") err = cmd.MarkFlagRequired("execer")
cmd.Flags().StringP("symbol", "s", "", "assets symbol") cmd.Flags().StringP("symbol", "s", "", "assets symbol")
cmd.MarkFlagRequired("symbol") err = cmd.MarkFlagRequired("symbol")
cmd.Flags().Float64P("daily_limit", "d", 0, "daily_limit of assets ") cmd.Flags().Float64P("daily_limit", "d", 0, "daily_limit of assets ")
cmd.MarkFlagRequired("daily_limit") err = cmd.MarkFlagRequired("daily_limit")
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
} }
func createMultiSigAccDailyLimitModifyTransfer(cmd *cobra.Command, args []string) { func createMultiSigAccDailyLimitModifyTransfer(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr") rpcLaddr, err := cmd.Flags().GetString("rpc_laddr")
multiSigAddr, _ := cmd.Flags().GetString("multisig_addr") multiSigAddr, err := cmd.Flags().GetString("multisig_addr")
execer, _ := cmd.Flags().GetString("execer") execer, err := cmd.Flags().GetString("execer")
symbol, _ := cmd.Flags().GetString("symbol") symbol, err := cmd.Flags().GetString("symbol")
dailylimit, _ := cmd.Flags().GetFloat64("daily_limit") dailylimit, err := cmd.Flags().GetFloat64("daily_limit")
if err != nil {
err := isValidDailylimit(dailylimit) fmt.Fprintln(os.Stderr, err)
return
}
err = isValidDailylimit(dailylimit)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, err) fmt.Fprintln(os.Stderr, err)
return return
...@@ -447,21 +492,24 @@ func CreateMultiSigConfirmTxCmd() *cobra.Command { ...@@ -447,21 +492,24 @@ func CreateMultiSigConfirmTxCmd() *cobra.Command {
func createMultiSigConfirmTransferFlags(cmd *cobra.Command) { func createMultiSigConfirmTransferFlags(cmd *cobra.Command) {
cmd.Flags().StringP("multisig_addr", "a", "", "address of multisig account") cmd.Flags().StringP("multisig_addr", "a", "", "address of multisig account")
cmd.MarkFlagRequired("multisig_addr") err := cmd.MarkFlagRequired("multisig_addr")
cmd.Flags().Uint64P("txid", "i", 0, "txid of multisig transaction") cmd.Flags().Uint64P("txid", "i", 0, "txid of multisig transaction")
cmd.MarkFlagRequired("txid") err = cmd.MarkFlagRequired("txid")
cmd.Flags().StringP("confirm_or_revoke", "c", "t", "whether confirm or revoke tx (0/f/false for No; 1/t/true for Yes)") cmd.Flags().StringP("confirm_or_revoke", "c", "t", "whether confirm or revoke tx (0/f/false for No; 1/t/true for Yes)")
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
} }
func createMultiSigConfirmTransfer(cmd *cobra.Command, args []string) { func createMultiSigConfirmTransfer(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr") rpcLaddr, err := cmd.Flags().GetString("rpc_laddr")
multiSigAddr, _ := cmd.Flags().GetString("multisig_addr") multiSigAddr, err := cmd.Flags().GetString("multisig_addr")
txid, _ := cmd.Flags().GetUint64("txid") txid, err := cmd.Flags().GetUint64("txid")
confirmOrRevoke, _ := cmd.Flags().GetString("confirm_or_revoke") confirmOrRevoke, err := cmd.Flags().GetString("confirm_or_revoke")
confirmOrRevokeBool, err := strconv.ParseBool(confirmOrRevoke) confirmOrRevokeBool, err := strconv.ParseBool(confirmOrRevoke)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, err) fmt.Fprintln(os.Stderr, err)
...@@ -491,28 +539,35 @@ func CreateMultiSigAccTransferInCmd() *cobra.Command { ...@@ -491,28 +539,35 @@ func CreateMultiSigAccTransferInCmd() *cobra.Command {
func createMultiSigAccTransferInFlags(cmd *cobra.Command) { func createMultiSigAccTransferInFlags(cmd *cobra.Command) {
cmd.Flags().StringP("to", "t", "", "address of multisig account") cmd.Flags().StringP("to", "t", "", "address of multisig account")
cmd.MarkFlagRequired("to") err := cmd.MarkFlagRequired("to")
cmd.Flags().StringP("execer", "e", "", "assets execer") cmd.Flags().StringP("execer", "e", "", "assets execer")
cmd.MarkFlagRequired("execer") err = cmd.MarkFlagRequired("execer")
cmd.Flags().StringP("symbol", "s", "", "assets symbol") cmd.Flags().StringP("symbol", "s", "", "assets symbol")
cmd.MarkFlagRequired("symbol") err = cmd.MarkFlagRequired("symbol")
cmd.Flags().StringP("note", "n", "", "transaction note info") cmd.Flags().StringP("note", "n", "", "transaction note info")
cmd.Flags().Float64P("amount", "a", 0, "transaction amount") cmd.Flags().Float64P("amount", "a", 0, "transaction amount")
cmd.MarkFlagRequired("amount") err = cmd.MarkFlagRequired("amount")
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
} }
func createMultiSigAccTransferIn(cmd *cobra.Command, args []string) { func createMultiSigAccTransferIn(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr") rpcLaddr, err := cmd.Flags().GetString("rpc_laddr")
to, _ := cmd.Flags().GetString("to") to, err := cmd.Flags().GetString("to")
execer, _ := cmd.Flags().GetString("execer") execer, err := cmd.Flags().GetString("execer")
symbol, _ := cmd.Flags().GetString("symbol") symbol, err := cmd.Flags().GetString("symbol")
note, _ := cmd.Flags().GetString("note") note, err := cmd.Flags().GetString("note")
amount, _ := cmd.Flags().GetFloat64("amount") amount, err := cmd.Flags().GetFloat64("amount")
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
if float64(types.MaxCoin/types.Coin) < amount { if float64(types.MaxCoin/types.Coin) < amount {
fmt.Fprintln(os.Stderr, types.ErrAmount) fmt.Fprintln(os.Stderr, types.ErrAmount)
return return
...@@ -543,32 +598,39 @@ func CreateMultiSigAccTransferOutCmd() *cobra.Command { ...@@ -543,32 +598,39 @@ func CreateMultiSigAccTransferOutCmd() *cobra.Command {
func createMultiSigAccTransferOutFlags(cmd *cobra.Command) { func createMultiSigAccTransferOutFlags(cmd *cobra.Command) {
cmd.Flags().StringP("from", "f", "", "address of multisig account") cmd.Flags().StringP("from", "f", "", "address of multisig account")
cmd.MarkFlagRequired("from") err := cmd.MarkFlagRequired("from")
cmd.Flags().StringP("to", "t", "", "address of account") cmd.Flags().StringP("to", "t", "", "address of account")
cmd.MarkFlagRequired("to") err = cmd.MarkFlagRequired("to")
cmd.Flags().StringP("execer", "e", "", "assets execer") cmd.Flags().StringP("execer", "e", "", "assets execer")
cmd.MarkFlagRequired("execer") err = cmd.MarkFlagRequired("execer")
cmd.Flags().StringP("symbol", "s", "", "assets symbol") cmd.Flags().StringP("symbol", "s", "", "assets symbol")
cmd.MarkFlagRequired("symbol") err = cmd.MarkFlagRequired("symbol")
cmd.Flags().StringP("note", "n", "", "transaction note info") cmd.Flags().StringP("note", "n", "", "transaction note info")
cmd.Flags().Float64P("amount", "a", 0, "transaction amount") cmd.Flags().Float64P("amount", "a", 0, "transaction amount")
cmd.MarkFlagRequired("amount") err = cmd.MarkFlagRequired("amount")
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
} }
func createMultiSigAccTransferOut(cmd *cobra.Command, args []string) { func createMultiSigAccTransferOut(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr") rpcLaddr, err := cmd.Flags().GetString("rpc_laddr")
from, _ := cmd.Flags().GetString("from") from, err := cmd.Flags().GetString("from")
to, _ := cmd.Flags().GetString("to") to, err := cmd.Flags().GetString("to")
execer, _ := cmd.Flags().GetString("execer") execer, err := cmd.Flags().GetString("execer")
symbol, _ := cmd.Flags().GetString("symbol") symbol, err := cmd.Flags().GetString("symbol")
note, _ := cmd.Flags().GetString("note") note, err := cmd.Flags().GetString("note")
amount, _ := cmd.Flags().GetFloat64("amount") amount, err := cmd.Flags().GetFloat64("amount")
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
if float64(types.MaxCoin/types.Coin) < amount { if float64(types.MaxCoin/types.Coin) < amount {
fmt.Fprintln(os.Stderr, types.ErrAmount) fmt.Fprintln(os.Stderr, types.ErrAmount)
return return
...@@ -597,8 +659,11 @@ func GetMultiSigAccCountCmd() *cobra.Command { ...@@ -597,8 +659,11 @@ 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, err := cmd.Flags().GetString("rpc_laddr")
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
var params rpctypes.Query4Jrpc var params rpctypes.Query4Jrpc
var rep interface{} var rep interface{}
...@@ -625,18 +690,25 @@ func GetMultiSigAccountsCmd() *cobra.Command { ...@@ -625,18 +690,25 @@ func GetMultiSigAccountsCmd() *cobra.Command {
func addgetMultiSigAccountsFlags(cmd *cobra.Command) { func addgetMultiSigAccountsFlags(cmd *cobra.Command) {
cmd.Flags().Int64P("start", "s", 0, "account start index") cmd.Flags().Int64P("start", "s", 0, "account start index")
cmd.MarkFlagRequired("start") err := cmd.MarkFlagRequired("start")
cmd.Flags().Int64P("end", "e", 0, "account end index") cmd.Flags().Int64P("end", "e", 0, "account end index")
cmd.MarkFlagRequired("end") err = cmd.MarkFlagRequired("end")
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
} }
func getMultiSigAccounts(cmd *cobra.Command, args []string) { func getMultiSigAccounts(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr") rpcLaddr, err := cmd.Flags().GetString("rpc_laddr")
start, _ := cmd.Flags().GetInt64("start")
end, _ := cmd.Flags().GetInt64("end")
start, err := cmd.Flags().GetInt64("start")
end, err := cmd.Flags().GetInt64("end")
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
if start > end || start < 0 { if start > end || start < 0 {
fmt.Fprintln(os.Stderr, "input parameter invalid!") fmt.Fprintln(os.Stderr, "input parameter invalid!")
return return
...@@ -670,13 +742,20 @@ func GetMultiSigAccountInfoCmd() *cobra.Command { ...@@ -670,13 +742,20 @@ func GetMultiSigAccountInfoCmd() *cobra.Command {
func getMultiSigAccountInfoFlags(cmd *cobra.Command) { func getMultiSigAccountInfoFlags(cmd *cobra.Command) {
cmd.Flags().StringP("addr", "a", "", "address of multisig account") cmd.Flags().StringP("addr", "a", "", "address of multisig account")
cmd.MarkFlagRequired("addr") err := cmd.MarkFlagRequired("addr")
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
} }
func getMultiSigAccountInfo(cmd *cobra.Command, args []string) { func getMultiSigAccountInfo(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr") rpcLaddr, err := cmd.Flags().GetString("rpc_laddr")
addr, _ := cmd.Flags().GetString("addr") addr, err := cmd.Flags().GetString("addr")
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
req := mty.ReqMultiSigAccInfo{ req := mty.ReqMultiSigAccInfo{
MultiSigAccAddr: addr, MultiSigAccAddr: addr,
} }
...@@ -736,13 +815,20 @@ func GetMultiSigAccTxCountCmd() *cobra.Command { ...@@ -736,13 +815,20 @@ func GetMultiSigAccTxCountCmd() *cobra.Command {
func getMultiSigAccTxCountFlags(cmd *cobra.Command) { func getMultiSigAccTxCountFlags(cmd *cobra.Command) {
cmd.Flags().StringP("addr", "a", "", "address of multisig account") cmd.Flags().StringP("addr", "a", "", "address of multisig account")
cmd.MarkFlagRequired("addr") err := cmd.MarkFlagRequired("addr")
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
} }
func getMultiSigAccTxCount(cmd *cobra.Command, args []string) { func getMultiSigAccTxCount(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr") rpcLaddr, err := cmd.Flags().GetString("rpc_laddr")
addr, _ := cmd.Flags().GetString("addr") addr, err := cmd.Flags().GetString("addr")
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
req := mty.ReqMultiSigAccInfo{ req := mty.ReqMultiSigAccInfo{
MultiSigAccAddr: addr, MultiSigAccAddr: addr,
} }
...@@ -771,39 +857,45 @@ func GetMultiSigTxidsCmd() *cobra.Command { ...@@ -771,39 +857,45 @@ func GetMultiSigTxidsCmd() *cobra.Command {
func getMultiSigTxidsCmdFlags(cmd *cobra.Command) { func getMultiSigTxidsCmdFlags(cmd *cobra.Command) {
cmd.Flags().StringP("addr", "a", "", "address of multisig account") cmd.Flags().StringP("addr", "a", "", "address of multisig account")
cmd.MarkFlagRequired("addr") err := cmd.MarkFlagRequired("addr")
cmd.Flags().Uint64P("start", "s", 0, "tx start index") cmd.Flags().Uint64P("start", "s", 0, "tx start index")
cmd.MarkFlagRequired("start") err = cmd.MarkFlagRequired("start")
cmd.Flags().Uint64P("end", "e", 0, "tx end index") cmd.Flags().Uint64P("end", "e", 0, "tx end index")
cmd.MarkFlagRequired("end") err = cmd.MarkFlagRequired("end")
cmd.Flags().StringP("pending", "p", "t", "whether pending tx (0/f/false for No; 1/t/true for Yes)") cmd.Flags().StringP("pending", "p", "t", "whether pending tx (0/f/false for No; 1/t/true for Yes)")
cmd.Flags().StringP("executed", "x", "t", "whether executed tx (0/f/false for No; 1/t/true for Yes)") cmd.Flags().StringP("executed", "x", "t", "whether executed tx (0/f/false for No; 1/t/true for Yes)")
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
} }
func getMultiSigTxids(cmd *cobra.Command, args []string) { func getMultiSigTxids(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr") rpcLaddr, err := cmd.Flags().GetString("rpc_laddr")
addr, _ := cmd.Flags().GetString("addr") addr, err := cmd.Flags().GetString("addr")
start, _ := cmd.Flags().GetUint64("start") start, err := cmd.Flags().GetUint64("start")
end, _ := cmd.Flags().GetUint64("end") end, err := cmd.Flags().GetUint64("end")
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
if start > end || start < 0 { if start > end || start < 0 {
fmt.Fprintln(os.Stderr, "input parameter invalid!") fmt.Fprintln(os.Stderr, "input parameter invalid!")
return return
} }
pending, _ := cmd.Flags().GetString("pending") pending, err := cmd.Flags().GetString("pending")
pendingBool, err := strconv.ParseBool(pending) pendingBool, err := strconv.ParseBool(pending)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, err) fmt.Fprintln(os.Stderr, err)
return return
} }
executed, _ := cmd.Flags().GetString("executed") executed, err := cmd.Flags().GetString("executed")
executedBool, err := strconv.ParseBool(executed) executedBool, err := strconv.ParseBool(executed)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, err) fmt.Fprintln(os.Stderr, err)
...@@ -842,17 +934,24 @@ func GetMultiSigTxInfoCmd() *cobra.Command { ...@@ -842,17 +934,24 @@ func GetMultiSigTxInfoCmd() *cobra.Command {
func getMultiSigTxInfoFlags(cmd *cobra.Command) { func getMultiSigTxInfoFlags(cmd *cobra.Command) {
cmd.Flags().StringP("addr", "a", "", "address of multisig account") cmd.Flags().StringP("addr", "a", "", "address of multisig account")
cmd.MarkFlagRequired("addr") err := cmd.MarkFlagRequired("addr")
cmd.Flags().Uint64P("txid", "i", 0, "txid of multisig transaction") cmd.Flags().Uint64P("txid", "i", 0, "txid of multisig transaction")
cmd.MarkFlagRequired("txid") err = cmd.MarkFlagRequired("txid")
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
} }
func getMultiSigTxInfo(cmd *cobra.Command, args []string) { func getMultiSigTxInfo(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr") rpcLaddr, err := cmd.Flags().GetString("rpc_laddr")
addr, _ := cmd.Flags().GetString("addr") addr, err := cmd.Flags().GetString("addr")
txid, _ := cmd.Flags().GetUint64("txid") txid, err := cmd.Flags().GetUint64("txid")
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
req := mty.ReqMultiSigTxInfo{ req := mty.ReqMultiSigTxInfo{
MultiSigAddr: addr, MultiSigAddr: addr,
TxId: txid, TxId: txid,
...@@ -882,17 +981,24 @@ func GetMultiSigTxConfirmedWeightCmd() *cobra.Command { ...@@ -882,17 +981,24 @@ func GetMultiSigTxConfirmedWeightCmd() *cobra.Command {
func getMultiSigTxConfirmedWeightFlags(cmd *cobra.Command) { func getMultiSigTxConfirmedWeightFlags(cmd *cobra.Command) {
cmd.Flags().StringP("addr", "a", "", "address of multisig account") cmd.Flags().StringP("addr", "a", "", "address of multisig account")
cmd.MarkFlagRequired("addr") err := cmd.MarkFlagRequired("addr")
cmd.Flags().Uint64P("txid", "i", 0, "txid of multisig transaction") cmd.Flags().Uint64P("txid", "i", 0, "txid of multisig transaction")
cmd.MarkFlagRequired("txid") err = cmd.MarkFlagRequired("txid")
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
} }
func getGetMultiSigTxConfirmedWeight(cmd *cobra.Command, args []string) { func getGetMultiSigTxConfirmedWeight(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr") rpcLaddr, err := cmd.Flags().GetString("rpc_laddr")
addr, _ := cmd.Flags().GetString("addr") addr, err := cmd.Flags().GetString("addr")
txid, _ := cmd.Flags().GetUint64("txid") txid, err := cmd.Flags().GetUint64("txid")
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
req := mty.ReqMultiSigTxInfo{ req := mty.ReqMultiSigTxInfo{
MultiSigAddr: addr, MultiSigAddr: addr,
TxId: txid, TxId: txid,
...@@ -922,18 +1028,25 @@ func GetMultiSigAccUnSpentTodayCmd() *cobra.Command { ...@@ -922,18 +1028,25 @@ func GetMultiSigAccUnSpentTodayCmd() *cobra.Command {
func getMultiSigAccUnSpentTodayFlags(cmd *cobra.Command) { func getMultiSigAccUnSpentTodayFlags(cmd *cobra.Command) {
cmd.Flags().StringP("addr", "a", "", "address of multisig account") cmd.Flags().StringP("addr", "a", "", "address of multisig account")
cmd.MarkFlagRequired("addr") err := cmd.MarkFlagRequired("addr")
cmd.Flags().StringP("execer", "e", "", "assets execer name") cmd.Flags().StringP("execer", "e", "", "assets execer name")
cmd.Flags().StringP("symbol", "s", "", "assets symbol") cmd.Flags().StringP("symbol", "s", "", "assets symbol")
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
} }
func getMultiSigAccUnSpentToday(cmd *cobra.Command, args []string) { func getMultiSigAccUnSpentToday(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr") rpcLaddr, err := cmd.Flags().GetString("rpc_laddr")
addr, _ := cmd.Flags().GetString("addr") addr, err := cmd.Flags().GetString("addr")
execer, _ := cmd.Flags().GetString("execer") execer, err := cmd.Flags().GetString("execer")
symbol, _ := cmd.Flags().GetString("symbol") symbol, err := cmd.Flags().GetString("symbol")
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
isallBool := true isallBool := true
assets := &mty.Assets{} assets := &mty.Assets{}
//获取指定资产信息时,execer和symbol不能为空 //获取指定资产信息时,execer和symbol不能为空
...@@ -995,18 +1108,25 @@ func GetMultiSigAccAssetsCmd() *cobra.Command { ...@@ -995,18 +1108,25 @@ func GetMultiSigAccAssetsCmd() *cobra.Command {
func getMultiSigAccAssetsFlags(cmd *cobra.Command) { func getMultiSigAccAssetsFlags(cmd *cobra.Command) {
cmd.Flags().StringP("addr", "a", "", "address of multisig account") cmd.Flags().StringP("addr", "a", "", "address of multisig account")
cmd.MarkFlagRequired("addr") err := cmd.MarkFlagRequired("addr")
cmd.Flags().StringP("execer", "e", "coins", "assets execer name ") cmd.Flags().StringP("execer", "e", "coins", "assets execer name ")
cmd.Flags().StringP("symbol", "s", "BTY", "assets symbol") cmd.Flags().StringP("symbol", "s", "BTY", "assets symbol")
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
} }
func getMultiSigAccAssets(cmd *cobra.Command, args []string) { func getMultiSigAccAssets(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr") rpcLaddr, err := cmd.Flags().GetString("rpc_laddr")
addr, _ := cmd.Flags().GetString("addr") addr, err := cmd.Flags().GetString("addr")
execer, _ := cmd.Flags().GetString("execer") execer, err := cmd.Flags().GetString("execer")
symbol, _ := cmd.Flags().GetString("symbol") symbol, err := cmd.Flags().GetString("symbol")
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
isallBool := true isallBool := true
assets := &mty.Assets{} assets := &mty.Assets{}
//获取指定资产信息时,execer和symbol不能为空 //获取指定资产信息时,execer和symbol不能为空
...@@ -1075,13 +1195,20 @@ func GetMultiSigAccAllAddressCmd() *cobra.Command { ...@@ -1075,13 +1195,20 @@ func GetMultiSigAccAllAddressCmd() *cobra.Command {
func getMultiSigAccAllAddressFlags(cmd *cobra.Command) { func getMultiSigAccAllAddressFlags(cmd *cobra.Command) {
cmd.Flags().StringP("addr", "a", "", "address of created multisig account") cmd.Flags().StringP("addr", "a", "", "address of created multisig account")
cmd.MarkFlagRequired("addr") err := cmd.MarkFlagRequired("addr")
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
} }
func getMultiSigAccAllAddress(cmd *cobra.Command, args []string) { func getMultiSigAccAllAddress(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr") rpcLaddr, err := cmd.Flags().GetString("rpc_laddr")
createAddr, _ := cmd.Flags().GetString("addr") createAddr, err := cmd.Flags().GetString("addr")
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
var params rpctypes.Query4Jrpc var params rpctypes.Query4Jrpc
var rep interface{} var rep interface{}
req := mty.ReqMultiSigAccInfo{ req := mty.ReqMultiSigAccInfo{
...@@ -1118,9 +1245,12 @@ func getMultiSigAccByOwnerFlags(cmd *cobra.Command) { ...@@ -1118,9 +1245,12 @@ func getMultiSigAccByOwnerFlags(cmd *cobra.Command) {
} }
func getMultiSigAccByOwner(cmd *cobra.Command, args []string) { func getMultiSigAccByOwner(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr") rpcLaddr, err := cmd.Flags().GetString("rpc_laddr")
ownerAddr, _ := cmd.Flags().GetString("addr") ownerAddr, err := cmd.Flags().GetString("addr")
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
params := &types.ReqString{ params := &types.ReqString{
Data: ownerAddr, Data: ownerAddr,
} }
......
...@@ -212,8 +212,8 @@ func (a *action) MultiSigExecTransferFrom(multiSigAccTransfer *mty.MultiSigExecT ...@@ -212,8 +212,8 @@ func (a *action) MultiSigExecTransferFrom(multiSigAccTransfer *mty.MultiSigExecT
} }
// to 地址必须不是多重签名账户地址 // to 地址必须不是多重签名账户地址
multiSigAccTo, _ := getMultiSigAccFromDb(a.db, multiSigAccTransfer.To) multiSigAccTo, err := getMultiSigAccFromDb(a.db, multiSigAccTransfer.To)
if multiSigAccTo != nil { if multiSigAccTo != nil && err == nil {
multisiglog.Error("MultiSigExecTransferFrom", "multiSigAccTo", multiSigAccTo, "ToAddr", multiSigAccTransfer.To) multisiglog.Error("MultiSigExecTransferFrom", "multiSigAccTo", multiSigAccTo, "ToAddr", multiSigAccTransfer.To)
return nil, mty.ErrAddrNotSupport return nil, mty.ErrAddrNotSupport
} }
...@@ -250,19 +250,19 @@ func (a *action) MultiSigExecTransferFrom(multiSigAccTransfer *mty.MultiSigExecT ...@@ -250,19 +250,19 @@ func (a *action) MultiSigExecTransferFrom(multiSigAccTransfer *mty.MultiSigExecT
func (a *action) MultiSigExecTransferTo(execTransfer *mty.MultiSigExecTransferTo) (*types.Receipt, error) { func (a *action) MultiSigExecTransferTo(execTransfer *mty.MultiSigExecTransferTo) (*types.Receipt, error) {
//from地址校验必须不是多重签名账户地址 //from地址校验必须不是多重签名账户地址
multiSigAccFrom, _ := getMultiSigAccFromDb(a.db, a.fromaddr) multiSigAccFrom, err := getMultiSigAccFromDb(a.db, a.fromaddr)
if multiSigAccFrom != nil { if multiSigAccFrom != nil && err == nil {
multisiglog.Error("MultiSigExecTransferTo", "multiSigAccFrom", multiSigAccFrom, "From", a.fromaddr) multisiglog.Error("MultiSigExecTransferTo", "multiSigAccFrom", multiSigAccFrom, "From", a.fromaddr)
return nil, mty.ErrAddrNotSupport return nil, mty.ErrAddrNotSupport
} }
// to 地址必须是多重签名账户地址 // to 地址必须是多重签名账户地址
multiSigAccTo, _ := getMultiSigAccFromDb(a.db, execTransfer.To) multiSigAccTo, err := getMultiSigAccFromDb(a.db, execTransfer.To)
if multiSigAccTo == nil { if multiSigAccTo == nil || err != nil {
multisiglog.Error("MultiSigExecTransferTo", "ToAddr", execTransfer.To) multisiglog.Error("MultiSigExecTransferTo", "ToAddr", execTransfer.To)
return nil, mty.ErrAddrNotSupport return nil, mty.ErrAddrNotSupport
} }
//assete资产合法性校验 //assete资产合法性校验
err := mty.IsAssetsInvalid(execTransfer.Execname, execTransfer.Symbol) err = mty.IsAssetsInvalid(execTransfer.Execname, execTransfer.Symbol)
if err != nil { if err != nil {
return nil, err return nil, err
} }
......
...@@ -39,10 +39,10 @@ func setMultiSigAccToDb(db dbm.KV, multiSigAcc *mty.MultiSig) ([]byte, []byte) { ...@@ -39,10 +39,10 @@ func setMultiSigAccToDb(db dbm.KV, multiSigAcc *mty.MultiSig) ([]byte, []byte) {
value := types.Encode(multiSigAcc) value := types.Encode(multiSigAcc)
//即时保存到db中,方便同一个区块的下一个交易使用 //即时保存到db中,方便同一个区块的下一个交易使用
db.Set(key, value) err := db.Set(key, value)
//test if err != nil {
multisiglog.Info("setMultiSigAccToDb", "multiSigAcc", multiSigAcc) multisiglog.Error("setMultiSigAccToDb", "multiSigAcc", multiSigAcc, "err", err)
}
return key, value return key, value
} }
...@@ -71,10 +71,10 @@ func getMultiSigAccTxFromDb(db dbm.KV, multiSigAddr string, txid uint64) (*mty.M ...@@ -71,10 +71,10 @@ func getMultiSigAccTxFromDb(db dbm.KV, multiSigAddr string, txid uint64) (*mty.M
func setMultiSigAccTxToDb(db dbm.KV, multiSigTx *mty.MultiSigTx) ([]byte, []byte) { func setMultiSigAccTxToDb(db dbm.KV, multiSigTx *mty.MultiSigTx) ([]byte, []byte) {
key := calcMultiSigAccTxKey(multiSigTx.MultiSigAddr, multiSigTx.Txid) key := calcMultiSigAccTxKey(multiSigTx.MultiSigAddr, multiSigTx.Txid)
value := types.Encode(multiSigTx) value := types.Encode(multiSigTx)
db.Set(key, value) err := db.Set(key, value)
if err != nil {
//test multisiglog.Error("setMultiSigAccTxToDb", "multiSigTx", multiSigTx, "err", err)
multisiglog.Info("setMultiSigAccTxToDb", "multiSigTx", multiSigTx) }
return key, value return key, value
} }
...@@ -127,7 +127,10 @@ func updateMultiSigAccCount(cachedb dbm.KVDB, isadd bool) (*types.KeyValue, erro ...@@ -127,7 +127,10 @@ func updateMultiSigAccCount(cachedb dbm.KVDB, isadd bool) (*types.KeyValue, erro
} }
count-- count--
} }
setMultiSigAccCount(cachedb, count) err = setMultiSigAccCount(cachedb, count)
if err != nil {
multisiglog.Error("updateMultiSigAccCount:setMultiSigAccCount ", "count", count, "err", err)
}
//keyvalue //keyvalue
return getMultiSigAccCountKV(count), nil return getMultiSigAccCountKV(count), nil
} }
...@@ -188,12 +191,18 @@ func updateMultiSigAccList(db dbm.KVDB, addr string, index int64, isadd bool) (* ...@@ -188,12 +191,18 @@ func updateMultiSigAccList(db dbm.KVDB, addr string, index int64, isadd bool) (*
} }
if isadd { //新增 if isadd { //新增
db.Set(calcMultiSigAllAcc(index), []byte(addr)) err = db.Set(calcMultiSigAllAcc(index), []byte(addr))
if err != nil {
multisiglog.Error("UpdateMultiSigAccList add", "addr", addr, "index", index, "err", err)
}
kv := &types.KeyValue{Key: calcMultiSigAllAcc(index), Value: []byte(addr)} kv := &types.KeyValue{Key: calcMultiSigAllAcc(index), Value: []byte(addr)}
return kv, nil return kv, nil
} }
// 删除 // 删除
db.Set(calcMultiSigAllAcc(index), nil) err = db.Set(calcMultiSigAllAcc(index), nil)
if err != nil {
multisiglog.Error("UpdateMultiSigAccList del", "addr", addr, "index", index, "err", err)
}
kv := &types.KeyValue{Key: calcMultiSigAllAcc(index), Value: nil} kv := &types.KeyValue{Key: calcMultiSigAllAcc(index), Value: nil}
return kv, nil return kv, nil
} }
...@@ -263,7 +272,10 @@ func updateAddrReciver(cachedb dbm.KVDB, addr, execname, symbol string, amount i ...@@ -263,7 +272,10 @@ func updateAddrReciver(cachedb dbm.KVDB, addr, execname, symbol string, amount i
} else { } else {
recv -= amount recv -= amount
} }
setAddrReciver(cachedb, addr, execname, symbol, recv) err = setAddrReciver(cachedb, addr, execname, symbol, recv)
if err != nil {
multisiglog.Error("updateAddrReciver setAddrReciver", "addr", addr, "execname", execname, "symbol", symbol, "err", err)
}
//keyvalue //keyvalue
return getAddrReciverKV(addr, execname, symbol, recv), nil return getAddrReciverKV(addr, execname, symbol, recv), nil
} }
...@@ -350,7 +362,10 @@ func setMultiSigAddress(db dbm.KVDB, createAddr, multiSigAddr string, isadd bool ...@@ -350,7 +362,10 @@ func setMultiSigAddress(db dbm.KVDB, createAddr, multiSigAddr string, isadd bool
key := calcMultiSigAccCreateAddr(createAddr) key := calcMultiSigAccCreateAddr(createAddr)
value := types.Encode(accAddress) value := types.Encode(accAddress)
db.Set(key, value) err = db.Set(key, value)
if err != nil {
multisiglog.Error("setMultiSigAddress", "key", string(key), "err", err)
}
return &types.KeyValue{Key: key, Value: value} return &types.KeyValue{Key: key, Value: value}
} }
......
...@@ -340,7 +340,10 @@ func (m *MultiSig) Query_MultiSigAccAssets(in *mty.ReqAccAssets) (types.Message, ...@@ -340,7 +340,10 @@ func (m *MultiSig) Query_MultiSigAccAssets(in *mty.ReqAccAssets) (types.Message,
continue continue
} }
accAssets := &mty.AccAssets{} accAssets := &mty.AccAssets{}
account, _ := m.getMultiSigAccAssets(reciver.MultiSigAddr, reciver.Assets) account, err := m.getMultiSigAccAssets(reciver.MultiSigAddr, reciver.Assets)
if err != nil {
multisiglog.Error("Query_MultiSigAccAssets:getMultiSigAccAssets", "MultiSigAddr", reciver.MultiSigAddr, "err", err)
}
accAssets.Account = account accAssets.Account = account
accAssets.Assets = reciver.Assets accAssets.Assets = reciver.Assets
accAssets.RecvAmount = reciver.Amount accAssets.RecvAmount = reciver.Amount
...@@ -355,11 +358,17 @@ func (m *MultiSig) Query_MultiSigAccAssets(in *mty.ReqAccAssets) (types.Message, ...@@ -355,11 +358,17 @@ func (m *MultiSig) Query_MultiSigAccAssets(in *mty.ReqAccAssets) (types.Message,
if err != nil { if err != nil {
return nil, err return nil, err
} }
account, _ := m.getMultiSigAccAssets(in.MultiSigAddr, in.Assets) account, err := m.getMultiSigAccAssets(in.MultiSigAddr, in.Assets)
if err != nil {
multisiglog.Error("Query_MultiSigAccAssets:getMultiSigAccAssets", "MultiSigAddr", in.MultiSigAddr, "err", err)
}
accAssets.Account = account accAssets.Account = account
accAssets.Assets = in.Assets accAssets.Assets = in.Assets
amount, _ := getAddrReciver(m.GetLocalDB(), in.MultiSigAddr, in.Assets.Execer, in.Assets.Symbol) amount, err := getAddrReciver(m.GetLocalDB(), in.MultiSigAddr, in.Assets.Execer, in.Assets.Symbol)
if err != nil {
multisiglog.Error("Query_MultiSigAccAssets:getAddrReciver", "MultiSigAddr", in.MultiSigAddr, "err", err)
}
accAssets.RecvAmount = amount accAssets.RecvAmount = amount
replyAccAssets.AccAssets = append(replyAccAssets.AccAssets, accAssets) replyAccAssets.AccAssets = append(replyAccAssets.AccAssets, accAssets)
......
...@@ -492,7 +492,10 @@ func (policy *multisigPolicy) proceMultiSigAcc(multiSigAccs *mtypes.ReplyMultiSi ...@@ -492,7 +492,10 @@ func (policy *multisigPolicy) proceMultiSigAcc(multiSigAccs *mtypes.ReplyMultiSi
} else if ownerAttrs != nil { } else if ownerAttrs != nil {
AddOwnerAttr(false, ownerAttrs, ownerAttr, newbatch) AddOwnerAttr(false, ownerAttrs, ownerAttr, newbatch)
} }
newbatch.Write() err = newbatch.Write()
if err != nil {
bizlog.Error("ProceMultiSigAcc Write", "owneraddr", owneraddr, "err", err)
}
break break
} }
} }
...@@ -501,7 +504,10 @@ func (policy *multisigPolicy) proceMultiSigAcc(multiSigAccs *mtypes.ReplyMultiSi ...@@ -501,7 +504,10 @@ func (policy *multisigPolicy) proceMultiSigAcc(multiSigAccs *mtypes.ReplyMultiSi
func (policy *multisigPolicy) proceWalletTxDetail(block *types.BlockDetail, tx *types.Transaction, index int32) *types.WalletTxDetail { func (policy *multisigPolicy) proceWalletTxDetail(block *types.BlockDetail, tx *types.Transaction, index int32) *types.WalletTxDetail {
receipt := block.Receipts[index] receipt := block.Receipts[index]
amount, _ := tx.Amount() amount, err := tx.Amount()
if err != nil {
bizlog.Error("proceWalletTxDetail:tx.Amount()", "err", err)
}
wtxdetail := &types.WalletTxDetail{ wtxdetail := &types.WalletTxDetail{
Tx: tx, Tx: tx,
Height: block.Block.Height, Height: block.Block.Height,
......
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