33 lines
900 B
Go
33 lines
900 B
Go
|
package statedb
|
||
|
|
||
|
import "github.com/ethereum/go-ethereum/common"
|
||
|
|
||
|
// 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,
|
||
|
}
|
||
|
}
|