/
store_mpt_adapter.go
47 lines (40 loc) · 1.28 KB
/
store_mpt_adapter.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
package rootmulti
import (
"github.com/FiboChain/fbc/libs/cosmos-sdk/store/mpt"
tmtypes "github.com/FiboChain/fbc/libs/tendermint/types"
)
const (
AccStore = "acc"
EvmStore = "evm"
MptStore = "mpt" // new store for acc module, will use mpt instead of iavl as store engine
)
func evmAccStoreFilter(sName string, ver int64, forceFilter ...bool) bool {
if (sName == AccStore || sName == EvmStore) && tmtypes.HigherThanMars(ver) {
if len(forceFilter) > 0 && forceFilter[0] {
return true
}
// if mpt.TrieDirtyDisabled == true, means is a full node, should still use acc and evm store to query history state, keep them!
// else, no longer need them any more, filter them !!!
return !mpt.TrieDirtyDisabled
}
return false
}
func newMptStoreFilter(sName string, ver int64) bool {
if (sName == MptStore) && !tmtypes.HigherThanMars(ver) {
return true
}
return false
}
func (rs *Store) commitInfoFilter(infos map[string]storeInfo, ver int64, storeName string) {
evmConfigInfo := infos[storeName]
if evmConfigInfo.Core.CommitID.Version == 0 {
evmConfigInfo.Core.CommitID.Version = ver
infos[storeName] = evmConfigInfo
for key, param := range rs.storesParams {
if key.Name() == storeName {
param.initialVersion = uint64(ver)
rs.storesParams[key] = param
}
}
}
}