Unverified Commit 870bb008 authored by vipwzw's avatar vipwzw Committed by GitHub

Merge pull request #35 from jixingwei/fix_lot_lint

Fix lottery code warning
parents 5bb83618 cee0ed2c
......@@ -9,21 +9,25 @@ import (
pty "github.com/33cn/plugin/plugin/dapp/lottery/types"
)
// Exec_Create Action
func (l *Lottery) Exec_Create(payload *pty.LotteryCreate, tx *types.Transaction, index int) (*types.Receipt, error) {
actiondb := NewLotteryAction(l, tx, index)
return actiondb.LotteryCreate(payload)
}
// Exec_Buy Action
func (l *Lottery) Exec_Buy(payload *pty.LotteryBuy, tx *types.Transaction, index int) (*types.Receipt, error) {
actiondb := NewLotteryAction(l, tx, index)
return actiondb.LotteryBuy(payload)
}
// Exec_Draw Action
func (l *Lottery) Exec_Draw(payload *pty.LotteryDraw, tx *types.Transaction, index int) (*types.Receipt, error) {
actiondb := NewLotteryAction(l, tx, index)
return actiondb.LotteryDraw(payload)
}
// Exec_Close Action
func (l *Lottery) Exec_Close(payload *pty.LotteryClose, tx *types.Transaction, index int) (*types.Receipt, error) {
actiondb := NewLotteryAction(l, tx, index)
return actiondb.LotteryClose(payload)
......
......@@ -41,18 +41,22 @@ func (l *Lottery) execDelLocal(tx *types.Transaction, receiptData *types.Receipt
}
// ExecDelLocal_Create Action
func (l *Lottery) ExecDelLocal_Create(payload *pty.LotteryCreate, tx *types.Transaction, receiptData *types.ReceiptData, index int) (*types.LocalDBSet, error) {
return nil, nil
}
// ExecDelLocal_Buy Action
func (l *Lottery) ExecDelLocal_Buy(payload *pty.LotteryBuy, tx *types.Transaction, receiptData *types.ReceiptData, index int) (*types.LocalDBSet, error) {
return nil, nil
}
// ExecDelLocal_Draw Action
func (l *Lottery) ExecDelLocal_Draw(payload *pty.LotteryDraw, tx *types.Transaction, receiptData *types.ReceiptData, index int) (*types.LocalDBSet, error) {
return nil, nil
}
// ExecDelLocal_Close Action
func (l *Lottery) ExecDelLocal_Close(payload *pty.LotteryClose, tx *types.Transaction, receiptData *types.ReceiptData, index int) (*types.LocalDBSet, error) {
return nil, nil
}
......@@ -40,18 +40,22 @@ func (l *Lottery) execLocal(tx *types.Transaction, receipt *types.ReceiptData) (
return set, nil
}
// ExecLocal_Create Action
func (l *Lottery) ExecLocal_Create(payload *pty.LotteryCreate, tx *types.Transaction, receiptData *types.ReceiptData, index int) (*types.LocalDBSet, error) {
return l.execLocal(tx, receiptData)
}
// ExecLocal_Buy Action
func (l *Lottery) ExecLocal_Buy(payload *pty.LotteryBuy, tx *types.Transaction, receiptData *types.ReceiptData, index int) (*types.LocalDBSet, error) {
return l.execLocal(tx, receiptData)
}
// ExecLocal_Draw Action
func (l *Lottery) ExecLocal_Draw(payload *pty.LotteryDraw, tx *types.Transaction, receiptData *types.ReceiptData, index int) (*types.LocalDBSet, error) {
return l.execLocal(tx, receiptData)
}
// ExecLocal_Close Action
func (l *Lottery) ExecLocal_Close(payload *pty.LotteryClose, tx *types.Transaction, receiptData *types.ReceiptData, index int) (*types.LocalDBSet, error) {
return l.execLocal(tx, receiptData)
}
......@@ -6,32 +6,32 @@ package executor
import "fmt"
func calcLotteryBuyPrefix(lotteryId string, addr string) []byte {
key := fmt.Sprintf("LODB-lottery-buy:%s:%s", lotteryId, addr)
func calcLotteryBuyPrefix(lotteryID string, addr string) []byte {
key := fmt.Sprintf("LODB-lottery-buy:%s:%s", lotteryID, addr)
return []byte(key)
}
func calcLotteryBuyRoundPrefix(lotteryId string, addr string, round int64) []byte {
key := fmt.Sprintf("LODB-lottery-buy:%s:%s:%10d", lotteryId, addr, round)
func calcLotteryBuyRoundPrefix(lotteryID string, addr string, round int64) []byte {
key := fmt.Sprintf("LODB-lottery-buy:%s:%s:%10d", lotteryID, addr, round)
return []byte(key)
}
func calcLotteryBuyKey(lotteryId string, addr string, round int64, index int64) []byte {
key := fmt.Sprintf("LODB-lottery-buy:%s:%s:%10d:%18d", lotteryId, addr, round, index)
func calcLotteryBuyKey(lotteryID string, addr string, round int64, index int64) []byte {
key := fmt.Sprintf("LODB-lottery-buy:%s:%s:%10d:%18d", lotteryID, addr, round, index)
return []byte(key)
}
func calcLotteryDrawPrefix(lotteryId string) []byte {
key := fmt.Sprintf("LODB-lottery-draw:%s", lotteryId)
func calcLotteryDrawPrefix(lotteryID string) []byte {
key := fmt.Sprintf("LODB-lottery-draw:%s", lotteryID)
return []byte(key)
}
func calcLotteryDrawKey(lotteryId string, round int64) []byte {
key := fmt.Sprintf("LODB-lottery-draw:%s:%10d", lotteryId, round)
func calcLotteryDrawKey(lotteryID string, round int64) []byte {
key := fmt.Sprintf("LODB-lottery-draw:%s:%10d", lotteryID, round)
return []byte(key)
}
func calcLotteryKey(lotteryId string, status int32) []byte {
key := fmt.Sprintf("LODB-lottery-:%d:%s", status, lotteryId)
func calcLotteryKey(lotteryID string, status int32) []byte {
key := fmt.Sprintf("LODB-lottery-:%d:%s", status, lotteryID)
return []byte(key)
}
......@@ -27,6 +27,7 @@ type subConfig struct {
var cfg subConfig
// Init lottery
func Init(name string, sub []byte) {
driverName := GetName()
if name != driverName {
......@@ -38,10 +39,12 @@ func Init(name string, sub []byte) {
drivers.Register(driverName, newLottery, types.GetDappFork(driverName, "Enable"))
}
// GetName for lottery
func GetName() string {
return newLottery().GetName()
}
// Lottery driver
type Lottery struct {
drivers.DriverBase
}
......@@ -53,7 +56,8 @@ func newLottery() drivers.Driver {
return l
}
func (l *Lottery) GetDriverName() string {
// GetDriverName for lottery
func (lott *Lottery) GetDriverName() string {
return pty.LotteryX
}
......@@ -120,9 +124,8 @@ func (lott *Lottery) findLotteryDrawRecord(key []byte) (*pty.LotteryDrawRecord,
func (lott *Lottery) saveLotteryBuy(lotterylog *pty.ReceiptLottery) (kvs []*types.KeyValue) {
key := calcLotteryBuyKey(lotterylog.LotteryId, lotterylog.Addr, lotterylog.Round, lotterylog.Index)
kv := &types.KeyValue{}
record := &pty.LotteryBuyRecord{lotterylog.Number, lotterylog.Amount, lotterylog.Round, 0, lotterylog.Way, lotterylog.Index, lotterylog.Time, lotterylog.TxHash}
kv = &types.KeyValue{key, types.Encode(record)}
record := &pty.LotteryBuyRecord{Number: lotterylog.Number, Amount: lotterylog.Amount, Round: lotterylog.Round, Type: 0, Way: lotterylog.Way, Index: lotterylog.Index, Time: lotterylog.Time, TxHash: lotterylog.TxHash}
kv := &types.KeyValue{Key: key, Value: types.Encode(record)}
kvs = append(kvs, kv)
return kvs
......@@ -131,7 +134,7 @@ func (lott *Lottery) saveLotteryBuy(lotterylog *pty.ReceiptLottery) (kvs []*type
func (lott *Lottery) deleteLotteryBuy(lotterylog *pty.ReceiptLottery) (kvs []*types.KeyValue) {
key := calcLotteryBuyKey(lotterylog.LotteryId, lotterylog.Addr, lotterylog.Round, lotterylog.Index)
kv := &types.KeyValue{key, nil}
kv := &types.KeyValue{Key: key, Value: nil}
kvs = append(kvs, kv)
return kvs
}
......@@ -158,7 +161,6 @@ func (lott *Lottery) updateLotteryBuy(lotterylog *pty.ReceiptLottery, isAdd bool
if err != nil || record == nil {
return kvs
}
kv := &types.KeyValue{}
if isAdd {
llog.Debug("updateLotteryBuy update key")
......@@ -167,7 +169,7 @@ func (lott *Lottery) updateLotteryBuy(lotterylog *pty.ReceiptLottery, isAdd bool
record.Type = 0
}
kv = &types.KeyValue{key, types.Encode(record)}
kv := &types.KeyValue{Key: key, Value: types.Encode(record)}
kvs = append(kvs, kv)
}
}
......@@ -178,16 +180,15 @@ func (lott *Lottery) updateLotteryBuy(lotterylog *pty.ReceiptLottery, isAdd bool
func (lott *Lottery) saveLotteryDraw(lotterylog *pty.ReceiptLottery) (kvs []*types.KeyValue) {
key := calcLotteryDrawKey(lotterylog.LotteryId, lotterylog.Round)
kv := &types.KeyValue{}
record := &pty.LotteryDrawRecord{lotterylog.LuckyNumber, lotterylog.Round, lotterylog.Time, lotterylog.TxHash}
kv = &types.KeyValue{key, types.Encode(record)}
record := &pty.LotteryDrawRecord{Number: lotterylog.LuckyNumber, Round: lotterylog.Round, Time: lotterylog.Time, TxHash: lotterylog.TxHash}
kv := &types.KeyValue{Key: key, Value: types.Encode(record)}
kvs = append(kvs, kv)
return kvs
}
func (lott *Lottery) deleteLotteryDraw(lotterylog *pty.ReceiptLottery) (kvs []*types.KeyValue) {
key := calcLotteryDrawKey(lotterylog.LotteryId, lotterylog.Round)
kv := &types.KeyValue{key, nil}
kv := &types.KeyValue{Key: key, Value: nil}
kvs = append(kvs, kv)
return kvs
}
......@@ -210,20 +211,21 @@ func (lott *Lottery) deleteLottery(lotterylog *pty.ReceiptLottery) (kvs []*types
return kvs
}
func addlottery(lotteryId string, status int32) *types.KeyValue {
func addlottery(lotteryID string, status int32) *types.KeyValue {
kv := &types.KeyValue{}
kv.Key = calcLotteryKey(lotteryId, status)
kv.Value = []byte(lotteryId)
kv.Key = calcLotteryKey(lotteryID, status)
kv.Value = []byte(lotteryID)
return kv
}
func dellottery(lotteryId string, status int32) *types.KeyValue {
func dellottery(lotteryID string, status int32) *types.KeyValue {
kv := &types.KeyValue{}
kv.Key = calcLotteryKey(lotteryId, status)
kv.Key = calcLotteryKey(lotteryID, status)
kv.Value = nil
return kv
}
// GetPayloadValue lotteryAction
func (lott *Lottery) GetPayloadValue() types.Message {
return &pty.LotteryAction{}
}
......@@ -20,7 +20,7 @@ func (action *Action) getTxActions(height int64, blockNum int64) ([]*tickettypes
var txActions []*tickettypes.TicketAction
llog.Error("getTxActions", "height", height, "blockNum", blockNum)
if !types.IsPara() {
req := &types.ReqBlocks{height - blockNum + 1, height, false, []string{""}}
req := &types.ReqBlocks{Start: height - blockNum + 1, End: height, IsDetail: false, Pid: []string{""}}
blockDetails, err := action.api.GetBlocks(req)
if err != nil {
......@@ -36,35 +36,36 @@ func (action *Action) getTxActions(height int64, blockNum int64) ([]*tickettypes
txActions = append(txActions, ticketAction)
}
return txActions, nil
} else {
//block height on main
mainHeight := action.GetMainHeightByTxHash(action.txhash)
if mainHeight < 0 {
llog.Error("LotteryCreate", "mainHeight", mainHeight)
return nil, pty.ErrLotteryStatus
}
}
blockDetails, err := action.GetBlocksOnMain(mainHeight-blockNum, mainHeight-1)
if err != nil {
llog.Error("LotteryCreate", "mainHeight", mainHeight)
return nil, pty.ErrLotteryStatus
}
//block height on main
mainHeight := action.GetMainHeightByTxHash(action.txhash)
if mainHeight < 0 {
llog.Error("LotteryCreate", "mainHeight", mainHeight)
return nil, pty.ErrLotteryStatus
}
for _, block := range blockDetails.Items {
ticketAction, err := action.getMinerTx(block.Block)
if err != nil {
return txActions, err
}
txActions = append(txActions, ticketAction)
blockDetails, err := action.GetBlocksOnMain(mainHeight-blockNum, mainHeight-1)
if err != nil {
llog.Error("LotteryCreate", "mainHeight", mainHeight)
return nil, pty.ErrLotteryStatus
}
for _, block := range blockDetails.Items {
ticketAction, err := action.getMinerTx(block.Block)
if err != nil {
return txActions, err
}
return txActions, nil
txActions = append(txActions, ticketAction)
}
return txActions, nil
}
//TransactionDetail
// GetMainHeightByTxHash get Block height
func (action *Action) GetMainHeightByTxHash(txHash []byte) int64 {
for i := 0; i < retryNum; i++ {
req := &types.ReqHash{txHash}
req := &types.ReqHash{Hash: txHash}
txDetail, err := action.grpcClient.QueryTransaction(context.Background(), req)
if err != nil {
time.Sleep(time.Second)
......@@ -76,8 +77,9 @@ func (action *Action) GetMainHeightByTxHash(txHash []byte) int64 {
return -1
}
// GetBlocksOnMain get Block from main chain
func (action *Action) GetBlocksOnMain(start int64, end int64) (*types.BlockDetails, error) {
req := &types.ReqBlocks{start, end, false, []string{""}}
req := &types.ReqBlocks{Start: start, End: end, IsDetail: false, Pid: []string{""}}
getBlockSucc := false
var reply *types.Reply
var err error
......
This diff is collapsed.
......@@ -9,17 +9,19 @@ import (
pty "github.com/33cn/plugin/plugin/dapp/lottery/types"
)
// Query_GetLotteryNormalInfo not changed info
func (l *Lottery) Query_GetLotteryNormalInfo(param *pty.ReqLotteryInfo) (types.Message, error) {
lottery, err := findLottery(l.GetStateDB(), param.GetLotteryId())
if err != nil {
return nil, err
}
return &pty.ReplyLotteryNormalInfo{lottery.CreateHeight,
lottery.PurBlockNum,
lottery.DrawBlockNum,
lottery.CreateAddr}, nil
return &pty.ReplyLotteryNormalInfo{CreateHeight: lottery.CreateHeight,
PurBlockNum: lottery.PurBlockNum,
DrawBlockNum: lottery.DrawBlockNum,
CreateAddr: lottery.CreateAddr}, nil
}
// Query_GetLotteryPurchaseAddr for current round
func (l *Lottery) Query_GetLotteryPurchaseAddr(param *pty.ReqLotteryInfo) (types.Message, error) {
lottery, err := findLottery(l.GetStateDB(), param.GetLotteryId())
if err != nil {
......@@ -33,6 +35,7 @@ func (l *Lottery) Query_GetLotteryPurchaseAddr(param *pty.ReqLotteryInfo) (types
return reply, nil
}
// Query_GetLotteryCurrentInfo state
func (l *Lottery) Query_GetLotteryCurrentInfo(param *pty.ReqLotteryInfo) (types.Message, error) {
lottery, err := findLottery(l.GetStateDB(), param.GetLotteryId())
if err != nil {
......@@ -54,10 +57,12 @@ func (l *Lottery) Query_GetLotteryCurrentInfo(param *pty.ReqLotteryInfo) (types.
return reply, nil
}
// Query_GetLotteryHistoryLuckyNumber for all history
func (l *Lottery) Query_GetLotteryHistoryLuckyNumber(param *pty.ReqLotteryLuckyHistory) (types.Message, error) {
return ListLotteryLuckyHistory(l.GetLocalDB(), l.GetStateDB(), param)
}
// Query_GetLotteryRoundLuckyNumber for each round
func (l *Lottery) Query_GetLotteryRoundLuckyNumber(param *pty.ReqLotteryLuckyInfo) (types.Message, error) {
// var req pty.ReqLotteryLuckyInfo
var records []*pty.LotteryDrawRecord
......@@ -77,10 +82,12 @@ func (l *Lottery) Query_GetLotteryRoundLuckyNumber(param *pty.ReqLotteryLuckyInf
return &pty.LotteryDrawRecords{Records: records}, nil
}
// Query_GetLotteryHistoryBuyInfo for all history
func (l *Lottery) Query_GetLotteryHistoryBuyInfo(param *pty.ReqLotteryBuyHistory) (types.Message, error) {
return ListLotteryBuyRecords(l.GetLocalDB(), l.GetStateDB(), param)
}
// Query_GetLotteryBuyRoundInfo for each round
func (l *Lottery) Query_GetLotteryBuyRoundInfo(param *pty.ReqLotteryBuyInfo) (types.Message, error) {
key := calcLotteryBuyRoundPrefix(param.LotteryId, param.Addr, param.Round)
record, err := l.findLotteryBuyRecords(key)
......
......@@ -6,6 +6,7 @@ package types
import "errors"
// Errors for lottery
var (
ErrNoPrivilege = errors.New("ErrNoPrivilege")
ErrLotteryStatus = errors.New("ErrLotteryStatus")
......
......@@ -23,17 +23,20 @@ func init() {
types.RegisterDappFork(LotteryX, "Enable", 0)
}
// LotteryType def
type LotteryType struct {
types.ExecTypeBase
}
// NewType method
func NewType() *LotteryType {
c := &LotteryType{}
c.SetChild(c)
return c
}
func (at *LotteryType) GetLogMap() map[int64]*types.LogInfo {
// GetLogMap method
func (lottery *LotteryType) GetLogMap() map[int64]*types.LogInfo {
return map[int64]*types.LogInfo{
TyLogLotteryCreate: {reflect.TypeOf(ReceiptLottery{}), "LogLotteryCreate"},
TyLogLotteryBuy: {reflect.TypeOf(ReceiptLottery{}), "LogLotteryBuy"},
......@@ -42,13 +45,15 @@ func (at *LotteryType) GetLogMap() map[int64]*types.LogInfo {
}
}
func (at *LotteryType) GetPayload() types.Message {
// GetPayload method
func (lottery *LotteryType) GetPayload() types.Message {
return &LotteryAction{}
}
// CreateTx method
func (lottery LotteryType) CreateTx(action string, message json.RawMessage) (*types.Transaction, error) {
llog.Debug("lottery.CreateTx", "action", action)
var tx *types.Transaction
if action == "LotteryCreate" {
var param LotteryCreateTx
err := json.Unmarshal(message, &param)
......@@ -84,11 +89,10 @@ func (lottery LotteryType) CreateTx(action string, message json.RawMessage) (*ty
} else {
return nil, types.ErrNotSupport
}
return tx, nil
}
func (lott LotteryType) GetTypeMap() map[string]int32 {
// GetTypeMap method
func (lottery LotteryType) GetTypeMap() map[string]int32 {
return map[string]int32{
"Create": LotteryActionCreate,
"Buy": LotteryActionBuy,
......@@ -97,6 +101,7 @@ func (lott LotteryType) GetTypeMap() map[string]int32 {
}
}
// CreateRawLotteryCreateTx method
func CreateRawLotteryCreateTx(parm *LotteryCreateTx) (*types.Transaction, error) {
if parm == nil {
llog.Error("CreateRawLotteryCreateTx", "parm", parm)
......@@ -125,6 +130,7 @@ func CreateRawLotteryCreateTx(parm *LotteryCreateTx) (*types.Transaction, error)
return tx, nil
}
// CreateRawLotteryBuyTx method
func CreateRawLotteryBuyTx(parm *LotteryBuyTx) (*types.Transaction, error) {
if parm == nil {
llog.Error("CreateRawLotteryBuyTx", "parm", parm)
......@@ -132,7 +138,7 @@ func CreateRawLotteryBuyTx(parm *LotteryBuyTx) (*types.Transaction, error) {
}
v := &LotteryBuy{
LotteryId: parm.LotteryId,
LotteryId: parm.LotteryID,
Amount: parm.Amount,
Number: parm.Number,
Way: parm.Way,
......@@ -155,6 +161,7 @@ func CreateRawLotteryBuyTx(parm *LotteryBuyTx) (*types.Transaction, error) {
return tx, nil
}
// CreateRawLotteryDrawTx method
func CreateRawLotteryDrawTx(parm *LotteryDrawTx) (*types.Transaction, error) {
if parm == nil {
llog.Error("CreateRawLotteryDrawTx", "parm", parm)
......@@ -162,7 +169,7 @@ func CreateRawLotteryDrawTx(parm *LotteryDrawTx) (*types.Transaction, error) {
}
v := &LotteryDraw{
LotteryId: parm.LotteryId,
LotteryId: parm.LotteryID,
}
draw := &LotteryAction{
Ty: LotteryActionDraw,
......@@ -182,6 +189,7 @@ func CreateRawLotteryDrawTx(parm *LotteryDrawTx) (*types.Transaction, error) {
return tx, nil
}
// CreateRawLotteryCloseTx method
func CreateRawLotteryCloseTx(parm *LotteryCloseTx) (*types.Transaction, error) {
if parm == nil {
llog.Error("CreateRawLotteryCloseTx", "parm", parm)
......@@ -189,7 +197,7 @@ func CreateRawLotteryCloseTx(parm *LotteryCloseTx) (*types.Transaction, error) {
}
v := &LotteryClose{
LotteryId: parm.LotteryId,
LotteryId: parm.LotteryID,
}
close := &LotteryAction{
Ty: LotteryActionClose,
......
......@@ -4,26 +4,30 @@
package types
// LotteryCreateTx for construction
type LotteryCreateTx struct {
PurBlockNum int64 `json:"purBlockNum"`
DrawBlockNum int64 `json:"drawBlockNum"`
Fee int64 `json:"fee"`
}
// LotteryBuyTx for construction
type LotteryBuyTx struct {
LotteryId string `json:"lotteryId"`
LotteryID string `json:"lotteryId"`
Amount int64 `json:"amount"`
Number int64 `json:"number"`
Way int64 `json:"way"`
Fee int64 `json:"fee"`
}
// LotteryDrawTx for construction
type LotteryDrawTx struct {
LotteryId string `json:"lotteryId"`
LotteryID string `json:"lotteryId"`
Fee int64 `json:"fee"`
}
// LotteryCloseTx for construction
type LotteryCloseTx struct {
LotteryId string `json:"lotteryId"`
LotteryID string `json:"lotteryId"`
Fee int64 `json:"fee"`
}
......@@ -19,6 +19,7 @@ const (
TyLogLotteryClose = 804
)
// Lottery name
const (
LotteryX = "lottery"
)
......
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