func (d *DriverBase) GetExecutorType() types.ExecutorType {
	return d.ety
}
GetExecutorType defines get executortype func
package dapp
import (
	"bytes"
	"reflect"
	"github.com/33cn/chain33/account"
	"github.com/33cn/chain33/client"
	"github.com/33cn/chain33/client/api"
	"github.com/33cn/chain33/common/address"
	dbm "github.com/33cn/chain33/common/db"
	log "github.com/33cn/chain33/common/log/log15"
	nonetypes "github.com/33cn/chain33/system/dapp/none/types"
	"github.com/33cn/chain33/types"
)
var blog = log.New("module", "execs.base")
const (
	TxIndexFrom = 1
	TxIndexTo = 2
	ExecLocalSameTime = int64(1)
)
type Driver interface {
	SetStateDB(dbm.KV)
	SetCoinsAccount(*account.DB)
	GetCoinsAccount() *account.DB
	SetLocalDB(dbm.KVDB)
	GetCurrentExecName() string
	GetDriverName() string
	GetName() string
	GetExecutorAPI() api.ExecutorAPI
	SetName(string)
	SetCurrentExecName(string)
	Allow(tx *types.Transaction, index int) error
	IsFriend(myexec []byte, writekey []byte, othertx *types.Transaction) bool
	GetActionName(tx *types.Transaction) string
	SetEnv(height, blocktime int64, difficulty uint64)
	SetBlockInfo([]byte, []byte, int64)
	CheckTx(tx *types.Transaction, index int) error
	Exec(tx *types.Transaction, index int) (*types.Receipt, error)
	ExecLocal(tx *types.Transaction, receipt *types.ReceiptData, index int) (*types.LocalDBSet, error)
	ExecDelLocal(tx *types.Transaction, receipt *types.ReceiptData, index int) (*types.LocalDBSet, error)
	Query(funcName string, params []byte) (types.Message, error)
	IsFree() bool
	SetAPI(client.QueueProtocolAPI)
	SetExecutorAPI(queueapi client.QueueProtocolAPI, chain33api types.Chain33Client)
	SetTxs(txs []*types.Transaction)
	SetReceipt(receipts []*types.ReceiptData)
	GetTxs() []*types.Transaction
	GetTxGroup(index int) ([]*types.Transaction, error)
	GetPayloadValue() types.Message
	GetFuncMap() map[string]reflect.Method
	GetExecutorType() types.ExecutorType
	CheckReceiptExecOk() bool
	ExecutorOrder() int64
	Upgrade() (*types.LocalDBSet, error)
}
type DriverBase struct {
	statedb              dbm.KV
	localdb              dbm.KVDB
	coinsaccount         *account.DB
	height               int64
	blocktime            int64
	parentHash, mainHash []byte
	mainHeight           int64
	name                 string
	curname              string
	child                Driver
	childValue           reflect.Value
	isFree               bool
	difficulty           uint64
	api                  client.QueueProtocolAPI
	execapi              api.ExecutorAPI
	txs                  []*types.Transaction
	receipts             []*types.ReceiptData
	ety                  types.ExecutorType
}
func (d *DriverBase) Upgrade() (*types.LocalDBSet, error) {
	blog.Info("upgrade ", "dapp", d.GetName())
	return nil, nil
}
func (d *DriverBase) GetPayloadValue() types.Message {
	if d.ety == nil {
		return nil
	}
	return d.ety.GetPayload()
}