/
types.go
69 lines (59 loc) · 2.15 KB
/
types.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
// Copyright Fuzamei Corp. 2018 All Rights Reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package types
import (
"reflect"
"github.com/33cn/chain33/types"
)
const (
// EvmCreateAction 创建合约
EvmCreateAction = 1
// EvmCallAction 调用合约
EvmCallAction = 2
// TyLogContractData 合约代码变更日志
TyLogContractData = 601
// TyLogContractState 合约状态数据变更日志
TyLogContractState = 602
// TyLogCallContract 合约状态数据变更日志
TyLogCallContract = 603
// TyLogEVMStateChangeItem 合约状态数据变更项日志
TyLogEVMStateChangeItem = 604
// TyLogEVMEventData 合约生成新的event日志数据
TyLogEVMEventData = 605
// MaxGasLimit 最大Gas消耗上限 5
MaxGasLimit = (100000000 * 5)
)
const (
// EVMEnable 启用EVM
EVMEnable = "Enable"
// ForkEVMState EVM合约中的数据分散存储,支持大数据量
ForkEVMState = "ForkEVMState"
// ForkEVMKVHash EVM合约状态数据生成哈希,保存在主链的StateDB中
ForkEVMKVHash = "ForkEVMKVHash"
// ForkEVMABI EVM合约支持ABI绑定和调用
ForkEVMABI = "ForkEVMABI"
// ForkEVMFrozen EVM合约用户金额冻结
ForkEVMFrozen = "ForkEVMFrozen"
// ForkEVMYoloV1 YoloV1虚拟机指令分叉
ForkEVMYoloV1 = "ForkEVMYoloV1"
//ForkEVMTxGroup 交易组中的交易通过GAS检查
ForkEVMTxGroup = "ForkEVMTxGroup"
)
var (
// EvmPrefix 本执行器前缀
EvmPrefix = "user.evm."
// ExecutorName 本执行器名称
ExecutorName = "evm"
// ExecerEvm EVM执行器名称
ExecerEvm = []byte(ExecutorName)
// UserPrefix 执行器前缀
UserPrefix = []byte(EvmPrefix)
logInfo = map[int64]*types.LogInfo{
TyLogCallContract: {Ty: reflect.TypeOf(ReceiptEVMContract{}), Name: "LogCallContract"},
TyLogContractData: {Ty: reflect.TypeOf(EVMContractData{}), Name: "LogContractData"},
TyLogContractState: {Ty: reflect.TypeOf(EVMContractState{}), Name: "LogContractState"},
TyLogEVMStateChangeItem: {Ty: reflect.TypeOf(EVMStateChangeItem{}), Name: "LogEVMStateChangeItem"},
TyLogEVMEventData: {Ty: reflect.TypeOf(types.EVMLog{}), Name: "LogEVMEventData"},
}
)