-
Notifications
You must be signed in to change notification settings - Fork 130
/
config.go
48 lines (41 loc) · 1.26 KB
/
config.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
package statedb
import (
"math/big"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/params"
"github.com/haqq-network/haqq/x/evm/types"
)
// TxConfig encapulates the readonly information of current tx for `StateDB`.
type TxConfig struct {
BlockHash common.Hash // hash of current block
TxHash common.Hash // hash of current tx
TxIndex uint // the index of current transaction
LogIndex uint // the index of next log within current block
}
// NewTxConfig returns a TxConfig
func NewTxConfig(bhash, thash common.Hash, txIndex, logIndex uint) TxConfig {
return TxConfig{
BlockHash: bhash,
TxHash: thash,
TxIndex: txIndex,
LogIndex: logIndex,
}
}
// NewEmptyTxConfig construct an empty TxConfig,
// used in context where there's no transaction, e.g. `eth_call`/`eth_estimateGas`.
func NewEmptyTxConfig(bhash common.Hash) TxConfig {
return TxConfig{
BlockHash: bhash,
TxHash: common.Hash{},
TxIndex: 0,
LogIndex: 0,
}
}
// EVMConfig encapsulates common parameters needed to create an EVM to execute a message
// It's mainly to reduce the number of method parameters
type EVMConfig struct {
Params types.Params
ChainConfig *params.ChainConfig
CoinBase common.Address
BaseFee *big.Int
}