fix: rollback to tendermint v0.34.21 #38
2
Makefile
2
Makefile
@ -456,7 +456,7 @@ proto-check-breaking:
|
|||||||
@$(DOCKER_BUF) breaking --against $(HTTPS_GIT)#branch=main
|
@$(DOCKER_BUF) breaking --against $(HTTPS_GIT)#branch=main
|
||||||
|
|
||||||
|
|
||||||
TM_URL = https://raw.githubusercontent.com/tendermint/tendermint/v0.34.12/proto/tendermint
|
TM_URL = https://raw.githubusercontent.com/tendermint/tendermint/v0.34.21/proto/tendermint
|
||||||
GOGO_PROTO_URL = https://raw.githubusercontent.com/regen-network/protobuf/cosmos
|
GOGO_PROTO_URL = https://raw.githubusercontent.com/regen-network/protobuf/cosmos
|
||||||
COSMOS_SDK_URL = https://raw.githubusercontent.com/cosmos/cosmos-sdk/v0.43.0
|
COSMOS_SDK_URL = https://raw.githubusercontent.com/cosmos/cosmos-sdk/v0.43.0
|
||||||
COSMOS_PROTO_URL = https://raw.githubusercontent.com/regen-network/cosmos-proto/master
|
COSMOS_PROTO_URL = https://raw.githubusercontent.com/regen-network/cosmos-proto/master
|
||||||
|
@ -8,8 +8,8 @@ import (
|
|||||||
authsigning "github.com/cosmos/cosmos-sdk/x/auth/signing"
|
authsigning "github.com/cosmos/cosmos-sdk/x/auth/signing"
|
||||||
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
|
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
|
||||||
|
|
||||||
ibcante "github.com/cosmos/ibc-go/v3/modules/core/ante"
|
ibcante "github.com/cosmos/ibc-go/v5/modules/core/ante"
|
||||||
ibckeeper "github.com/cosmos/ibc-go/v3/modules/core/keeper"
|
ibckeeper "github.com/cosmos/ibc-go/v5/modules/core/keeper"
|
||||||
|
|
||||||
evmtypes "github.com/cerc-io/laconicd/x/evm/types"
|
evmtypes "github.com/cerc-io/laconicd/x/evm/types"
|
||||||
)
|
)
|
||||||
@ -76,7 +76,7 @@ func newCosmosAnteHandler(options HandlerOptions) sdk.AnteHandler {
|
|||||||
ante.NewSigGasConsumeDecorator(options.AccountKeeper, options.SigGasConsumer),
|
ante.NewSigGasConsumeDecorator(options.AccountKeeper, options.SigGasConsumer),
|
||||||
ante.NewSigVerificationDecorator(options.AccountKeeper, options.SignModeHandler),
|
ante.NewSigVerificationDecorator(options.AccountKeeper, options.SignModeHandler),
|
||||||
ante.NewIncrementSequenceDecorator(options.AccountKeeper),
|
ante.NewIncrementSequenceDecorator(options.AccountKeeper),
|
||||||
ibcante.NewAnteDecorator(options.IBCKeeper),
|
ibcante.NewRedundantRelayDecorator(options.IBCKeeper),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -98,6 +98,6 @@ func newCosmosAnteHandlerEip712(options HandlerOptions) sdk.AnteHandler {
|
|||||||
// Note: signature verification uses EIP instead of the cosmos signature validator
|
// Note: signature verification uses EIP instead of the cosmos signature validator
|
||||||
NewEip712SigVerificationDecorator(options.AccountKeeper, options.SignModeHandler),
|
NewEip712SigVerificationDecorator(options.AccountKeeper, options.SignModeHandler),
|
||||||
ante.NewIncrementSequenceDecorator(options.AccountKeeper),
|
ante.NewIncrementSequenceDecorator(options.AccountKeeper),
|
||||||
ibcante.NewAnteDecorator(options.IBCKeeper),
|
ibcante.NewRedundantRelayDecorator(options.IBCKeeper),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
59
app/app.go
59
app/app.go
@ -18,17 +18,16 @@ import (
|
|||||||
"github.com/cosmos/cosmos-sdk/client/grpc/tmservice"
|
"github.com/cosmos/cosmos-sdk/client/grpc/tmservice"
|
||||||
"github.com/cosmos/cosmos-sdk/codec"
|
"github.com/cosmos/cosmos-sdk/codec"
|
||||||
"github.com/cosmos/cosmos-sdk/codec/types"
|
"github.com/cosmos/cosmos-sdk/codec/types"
|
||||||
"github.com/cosmos/cosmos-sdk/db"
|
|
||||||
"github.com/cosmos/cosmos-sdk/server/api"
|
"github.com/cosmos/cosmos-sdk/server/api"
|
||||||
"github.com/cosmos/cosmos-sdk/server/config"
|
"github.com/cosmos/cosmos-sdk/server/config"
|
||||||
servertypes "github.com/cosmos/cosmos-sdk/server/types"
|
servertypes "github.com/cosmos/cosmos-sdk/server/types"
|
||||||
"github.com/cosmos/cosmos-sdk/simapp"
|
"github.com/cosmos/cosmos-sdk/simapp"
|
||||||
govv1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1"
|
govv1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1"
|
||||||
|
dbm "github.com/tendermint/tm-db"
|
||||||
|
|
||||||
simappparams "github.com/cosmos/cosmos-sdk/simapp/params"
|
simappparams "github.com/cosmos/cosmos-sdk/simapp/params"
|
||||||
"github.com/cosmos/cosmos-sdk/store/streaming"
|
"github.com/cosmos/cosmos-sdk/store/streaming"
|
||||||
storetypes "github.com/cosmos/cosmos-sdk/store/v2alpha1"
|
storetypes "github.com/cosmos/cosmos-sdk/store/v2alpha1"
|
||||||
"github.com/cosmos/cosmos-sdk/store/v2alpha1/multi"
|
|
||||||
sdk "github.com/cosmos/cosmos-sdk/types"
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||||
"github.com/cosmos/cosmos-sdk/types/module"
|
"github.com/cosmos/cosmos-sdk/types/module"
|
||||||
"github.com/cosmos/cosmos-sdk/version"
|
"github.com/cosmos/cosmos-sdk/version"
|
||||||
@ -91,15 +90,15 @@ import (
|
|||||||
"github.com/tendermint/tendermint/libs/log"
|
"github.com/tendermint/tendermint/libs/log"
|
||||||
tmos "github.com/tendermint/tendermint/libs/os"
|
tmos "github.com/tendermint/tendermint/libs/os"
|
||||||
|
|
||||||
"github.com/cosmos/ibc-go/v3/modules/apps/transfer"
|
"github.com/cosmos/ibc-go/v5/modules/apps/transfer"
|
||||||
ibctransferkeeper "github.com/cosmos/ibc-go/v3/modules/apps/transfer/keeper"
|
ibctransferkeeper "github.com/cosmos/ibc-go/v5/modules/apps/transfer/keeper"
|
||||||
ibctransfertypes "github.com/cosmos/ibc-go/v3/modules/apps/transfer/types"
|
ibctransfertypes "github.com/cosmos/ibc-go/v5/modules/apps/transfer/types"
|
||||||
ibc "github.com/cosmos/ibc-go/v3/modules/core"
|
ibc "github.com/cosmos/ibc-go/v5/modules/core"
|
||||||
ibcclient "github.com/cosmos/ibc-go/v3/modules/core/02-client"
|
ibcclient "github.com/cosmos/ibc-go/v5/modules/core/02-client"
|
||||||
ibcclientclient "github.com/cosmos/ibc-go/v3/modules/core/02-client/client"
|
ibcclientclient "github.com/cosmos/ibc-go/v5/modules/core/02-client/client"
|
||||||
porttypes "github.com/cosmos/ibc-go/v3/modules/core/05-port/types"
|
porttypes "github.com/cosmos/ibc-go/v5/modules/core/05-port/types"
|
||||||
ibchost "github.com/cosmos/ibc-go/v3/modules/core/24-host"
|
ibchost "github.com/cosmos/ibc-go/v5/modules/core/24-host"
|
||||||
ibckeeper "github.com/cosmos/ibc-go/v3/modules/core/keeper"
|
ibckeeper "github.com/cosmos/ibc-go/v5/modules/core/keeper"
|
||||||
|
|
||||||
// unnamed import of statik for swagger UI support
|
// unnamed import of statik for swagger UI support
|
||||||
_ "github.com/cerc-io/laconicd/client/docs/statik"
|
_ "github.com/cerc-io/laconicd/client/docs/statik"
|
||||||
@ -268,7 +267,7 @@ type EthermintApp struct {
|
|||||||
// NewEthermintApp returns a reference to a new initialized Ethermint application.
|
// NewEthermintApp returns a reference to a new initialized Ethermint application.
|
||||||
func NewEthermintApp(
|
func NewEthermintApp(
|
||||||
logger log.Logger,
|
logger log.Logger,
|
||||||
db db.DBConnection,
|
db dbm.DB,
|
||||||
traceStore io.Writer,
|
traceStore io.Writer,
|
||||||
loadLatest bool,
|
loadLatest bool,
|
||||||
skipUpgradeHeights map[int64]bool,
|
skipUpgradeHeights map[int64]bool,
|
||||||
@ -276,7 +275,7 @@ func NewEthermintApp(
|
|||||||
invCheckPeriod uint,
|
invCheckPeriod uint,
|
||||||
encodingConfig simappparams.EncodingConfig,
|
encodingConfig simappparams.EncodingConfig,
|
||||||
appOpts servertypes.AppOptions,
|
appOpts servertypes.AppOptions,
|
||||||
baseAppOptions ...baseapp.AppOption,
|
baseAppOptions ...func(*baseapp.BaseApp),
|
||||||
) *EthermintApp {
|
) *EthermintApp {
|
||||||
appCodec := encodingConfig.Codec
|
appCodec := encodingConfig.Codec
|
||||||
cdc := encodingConfig.Amino
|
cdc := encodingConfig.Amino
|
||||||
@ -303,40 +302,6 @@ func NewEthermintApp(
|
|||||||
tkeys := sdk.NewTransientStoreKeys(paramstypes.TStoreKey, evmtypes.TransientKey)
|
tkeys := sdk.NewTransientStoreKeys(paramstypes.TStoreKey, evmtypes.TransientKey)
|
||||||
memKeys := sdk.NewMemoryStoreKeys(capabilitytypes.MemStoreKey)
|
memKeys := sdk.NewMemoryStoreKeys(capabilitytypes.MemStoreKey)
|
||||||
|
|
||||||
// initialize stores
|
|
||||||
setNamespaces := func(config *multi.StoreParams, ver uint64) error {
|
|
||||||
for _, key := range keys {
|
|
||||||
typ, err := storetypes.StoreKeyToType(key)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if err = config.RegisterSubstore(key, typ); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for _, key := range memKeys {
|
|
||||||
typ, err := storetypes.StoreKeyToType(key)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if err = config.RegisterSubstore(key, typ); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for _, key := range tkeys {
|
|
||||||
typ, err := storetypes.StoreKeyToType(key)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if err = config.RegisterSubstore(key, typ); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
baseAppOptions = append(baseAppOptions, baseapp.StoreOption(setNamespaces))
|
|
||||||
|
|
||||||
// NOTE we use custom transaction decoder that supports the sdk.Tx interface instead of sdk.StdTx
|
// NOTE we use custom transaction decoder that supports the sdk.Tx interface instead of sdk.StdTx
|
||||||
bApp := baseapp.NewBaseApp(
|
bApp := baseapp.NewBaseApp(
|
||||||
appName,
|
appName,
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
package app
|
package app
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"os"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
memdb "github.com/cosmos/cosmos-sdk/db/memdb"
|
dbm "github.com/tendermint/tm-db"
|
||||||
|
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"github.com/tendermint/tendermint/libs/log"
|
"github.com/tendermint/tendermint/libs/log"
|
||||||
@ -13,8 +15,8 @@ import (
|
|||||||
|
|
||||||
func TestEthermintAppExport(t *testing.T) {
|
func TestEthermintAppExport(t *testing.T) {
|
||||||
encCfg := encoding.MakeConfig(ModuleBasics)
|
encCfg := encoding.MakeConfig(ModuleBasics)
|
||||||
db := memdb.NewDB()
|
db := dbm.NewMemDB()
|
||||||
logger, _ := log.NewDefaultLogger("plain", "info", false)
|
logger := log.NewTMLogger(log.NewSyncWriter(os.Stdout))
|
||||||
app := NewTestAppWithCustomOptions(t, false, SetupOptions{
|
app := NewTestAppWithCustomOptions(t, false, SetupOptions{
|
||||||
Logger: logger,
|
Logger: logger,
|
||||||
DB: db,
|
DB: db,
|
||||||
@ -35,7 +37,7 @@ func TestEthermintAppExport(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
app.Commit()
|
app.Commit()
|
||||||
logger2, _ := log.NewDefaultLogger("plain", "info", false)
|
logger2 := log.NewTMLogger(log.NewSyncWriter(os.Stdout))
|
||||||
|
|
||||||
// Making a new app object with the db, so that initchain hasn't been called
|
// Making a new app object with the db, so that initchain hasn't been called
|
||||||
app2 := NewEthermintApp(logger2, db, nil, true, map[int64]bool{}, DefaultNodeHome, 0, encCfg, EmptyAppOptions{})
|
app2 := NewEthermintApp(logger2, db, nil, true, map[int64]bool{}, DefaultNodeHome, 0, encCfg, EmptyAppOptions{})
|
||||||
|
@ -2,18 +2,20 @@ package app
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"os"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/cerc-io/laconicd/encoding"
|
"github.com/cerc-io/laconicd/encoding"
|
||||||
"github.com/cosmos/cosmos-sdk/db/memdb"
|
|
||||||
"github.com/cosmos/cosmos-sdk/simapp"
|
"github.com/cosmos/cosmos-sdk/simapp"
|
||||||
abci "github.com/tendermint/tendermint/abci/types"
|
abci "github.com/tendermint/tendermint/abci/types"
|
||||||
"github.com/tendermint/tendermint/libs/log"
|
"github.com/tendermint/tendermint/libs/log"
|
||||||
|
dbm "github.com/tendermint/tm-db"
|
||||||
)
|
)
|
||||||
|
|
||||||
func BenchmarkEthermintApp_ExportAppStateAndValidators(b *testing.B) {
|
func BenchmarkEthermintApp_ExportAppStateAndValidators(b *testing.B) {
|
||||||
db := memdb.NewDB()
|
db := dbm.NewMemDB()
|
||||||
logger, _ := log.NewDefaultLogger("plain", "info", false)
|
logger := log.NewTMLogger(log.NewSyncWriter(os.Stdout))
|
||||||
|
|
||||||
app := NewEthermintApp(logger, db, nil, true, map[int64]bool{}, DefaultNodeHome, 0, encoding.MakeConfig(ModuleBasics), simapp.EmptyAppOptions{})
|
app := NewEthermintApp(logger, db, nil, true, map[int64]bool{}, DefaultNodeHome, 0, encoding.MakeConfig(ModuleBasics), simapp.EmptyAppOptions{})
|
||||||
|
|
||||||
genesisState := NewDefaultGenesisState(app.appCodec)
|
genesisState := NewDefaultGenesisState(app.appCodec)
|
||||||
|
@ -13,6 +13,7 @@ import (
|
|||||||
"github.com/cosmos/cosmos-sdk/baseapp"
|
"github.com/cosmos/cosmos-sdk/baseapp"
|
||||||
"github.com/cosmos/cosmos-sdk/simapp"
|
"github.com/cosmos/cosmos-sdk/simapp"
|
||||||
"github.com/cosmos/cosmos-sdk/simapp/params"
|
"github.com/cosmos/cosmos-sdk/simapp/params"
|
||||||
|
"github.com/cosmos/cosmos-sdk/store"
|
||||||
sdk "github.com/cosmos/cosmos-sdk/types"
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||||
simtypes "github.com/cosmos/cosmos-sdk/types/simulation"
|
simtypes "github.com/cosmos/cosmos-sdk/types/simulation"
|
||||||
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
|
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
|
||||||
@ -28,13 +29,13 @@ import (
|
|||||||
stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
|
stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
|
||||||
|
|
||||||
evmenc "github.com/cerc-io/laconicd/encoding"
|
evmenc "github.com/cerc-io/laconicd/encoding"
|
||||||
"github.com/cosmos/cosmos-sdk/db/memdb"
|
|
||||||
storetypes "github.com/cosmos/cosmos-sdk/store/types"
|
storetypes "github.com/cosmos/cosmos-sdk/store/types"
|
||||||
ibctransfertypes "github.com/cosmos/ibc-go/v3/modules/apps/transfer/types"
|
ibctransfertypes "github.com/cosmos/ibc-go/v5/modules/apps/transfer/types"
|
||||||
ibchost "github.com/cosmos/ibc-go/v3/modules/core/24-host"
|
ibchost "github.com/cosmos/ibc-go/v5/modules/core/24-host"
|
||||||
abci "github.com/tendermint/tendermint/abci/types"
|
abci "github.com/tendermint/tendermint/abci/types"
|
||||||
"github.com/tendermint/tendermint/libs/log"
|
"github.com/tendermint/tendermint/libs/log"
|
||||||
tmproto "github.com/tendermint/tendermint/proto/tendermint/types"
|
tmproto "github.com/tendermint/tendermint/proto/tendermint/types"
|
||||||
|
dbm "github.com/tendermint/tm-db"
|
||||||
)
|
)
|
||||||
|
|
||||||
// MakeEncodingConfig creates the EncodingConfig
|
// MakeEncodingConfig creates the EncodingConfig
|
||||||
@ -56,15 +57,15 @@ type storeKeysPrefixes struct {
|
|||||||
|
|
||||||
// fauxMerkleModeOpt returns a BaseApp option to use a dbStoreAdapter instead of
|
// fauxMerkleModeOpt returns a BaseApp option to use a dbStoreAdapter instead of
|
||||||
// an IAVLStore for faster simulation speed.
|
// an IAVLStore for faster simulation speed.
|
||||||
var fauxMerkleModeOpt = baseapp.AppOptionFunc(func(bapp *baseapp.BaseApp) {
|
func fauxMerkleModeOpt(bapp *baseapp.BaseApp) {
|
||||||
bapp.SetFauxMerkleMode()
|
bapp.SetFauxMerkleMode()
|
||||||
})
|
}
|
||||||
|
|
||||||
// interBlockCacheOpt returns a BaseApp option function that sets the persistent
|
// interBlockCacheOpt returns a BaseApp option function that sets the persistent
|
||||||
// inter-block write-through cache.
|
// inter-block write-through cache.
|
||||||
// TODO: implement this cache as enhancement to v2 multistore
|
// TODO: implement this cache as enhancement to v2 multistore
|
||||||
func interBlockCacheOpt() baseapp.AppOptionFunc {
|
func interBlockCacheOpt() func(*baseapp.BaseApp) {
|
||||||
return func(*baseapp.BaseApp) {}
|
return baseapp.SetInterBlockCache(store.NewCommitKVStoreCacheManager())
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestFullAppSimulation(t *testing.T) {
|
func TestFullAppSimulation(t *testing.T) {
|
||||||
@ -312,7 +313,7 @@ func TestAppStateDeterminism(t *testing.T) {
|
|||||||
logger = log.NewNopLogger()
|
logger = log.NewNopLogger()
|
||||||
}
|
}
|
||||||
|
|
||||||
db := memdb.NewDB()
|
db := dbm.NewMemDB()
|
||||||
app := NewEthermintApp(logger, db, nil, true, map[int64]bool{}, DefaultNodeHome, simapp.FlagPeriodValue, MakeEncodingConfig(), simapp.EmptyAppOptions{}, interBlockCacheOpt())
|
app := NewEthermintApp(logger, db, nil, true, map[int64]bool{}, DefaultNodeHome, simapp.FlagPeriodValue, MakeEncodingConfig(), simapp.EmptyAppOptions{}, interBlockCacheOpt())
|
||||||
|
|
||||||
fmt.Printf(
|
fmt.Printf(
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package app
|
package app
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
@ -22,7 +21,6 @@ import (
|
|||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
tmjson "github.com/tendermint/tendermint/libs/json"
|
tmjson "github.com/tendermint/tendermint/libs/json"
|
||||||
|
|
||||||
"github.com/cosmos/cosmos-sdk/db/memdb"
|
|
||||||
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
|
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
|
||||||
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
|
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
|
||||||
stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
|
stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
|
||||||
@ -31,6 +29,7 @@ import (
|
|||||||
"github.com/tendermint/tendermint/libs/log"
|
"github.com/tendermint/tendermint/libs/log"
|
||||||
tmproto "github.com/tendermint/tendermint/proto/tendermint/types"
|
tmproto "github.com/tendermint/tendermint/proto/tendermint/types"
|
||||||
tmtypes "github.com/tendermint/tendermint/types"
|
tmtypes "github.com/tendermint/tendermint/types"
|
||||||
|
dbm "github.com/tendermint/tm-db"
|
||||||
)
|
)
|
||||||
|
|
||||||
// GenesisState of the blockchain is represented here as a map of raw json
|
// GenesisState of the blockchain is represented here as a map of raw json
|
||||||
@ -43,8 +42,8 @@ import (
|
|||||||
|
|
||||||
// DefaultConsensusParams defines the default Tendermint consensus params used in
|
// DefaultConsensusParams defines the default Tendermint consensus params used in
|
||||||
// EthermintApp testing.
|
// EthermintApp testing.
|
||||||
var DefaultConsensusParams = &tmproto.ConsensusParams{
|
var DefaultConsensusParams = &abci.ConsensusParams{
|
||||||
Block: &tmproto.BlockParams{
|
Block: &abci.BlockParams{
|
||||||
MaxBytes: 200000,
|
MaxBytes: 200000,
|
||||||
MaxGas: -1, // no limit
|
MaxGas: -1, // no limit
|
||||||
},
|
},
|
||||||
@ -63,7 +62,7 @@ var DefaultConsensusParams = &tmproto.ConsensusParams{
|
|||||||
// SetupOptions defines arguments that are passed into `Simapp` constructor.
|
// SetupOptions defines arguments that are passed into `Simapp` constructor.
|
||||||
type SetupOptions struct {
|
type SetupOptions struct {
|
||||||
Logger log.Logger
|
Logger log.Logger
|
||||||
DB *memdb.MemDB
|
DB dbm.DB
|
||||||
InvCheckPeriod uint
|
InvCheckPeriod uint
|
||||||
HomePath string
|
HomePath string
|
||||||
SkipUpgradeHeights map[int64]bool
|
SkipUpgradeHeights map[int64]bool
|
||||||
@ -75,7 +74,7 @@ func NewTestAppWithCustomOptions(t *testing.T, isCheckTx bool, options SetupOpti
|
|||||||
t.Helper()
|
t.Helper()
|
||||||
|
|
||||||
privVal := mock.NewPV()
|
privVal := mock.NewPV()
|
||||||
pubKey, err := privVal.GetPubKey(context.TODO())
|
pubKey, err := privVal.GetPubKey()
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
// create validator set with single validator
|
// create validator set with single validator
|
||||||
validator := tmtypes.NewValidator(pubKey, 1)
|
validator := tmtypes.NewValidator(pubKey, 1)
|
||||||
@ -125,7 +124,7 @@ func Setup(t *testing.T, isCheckTx bool, patchGenesis func(*EthermintApp, simapp
|
|||||||
t.Helper()
|
t.Helper()
|
||||||
|
|
||||||
privVal := mock.NewPV()
|
privVal := mock.NewPV()
|
||||||
pubKey, err := privVal.GetPubKey(context.TODO())
|
pubKey, err := privVal.GetPubKey()
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
// create validator set with single validator
|
// create validator set with single validator
|
||||||
@ -153,7 +152,7 @@ func Setup(t *testing.T, isCheckTx bool, patchGenesis func(*EthermintApp, simapp
|
|||||||
|
|
||||||
func setup(withGenesis bool, invCheckPeriod uint, patchGenesis func(*EthermintApp, simapp.GenesisState) simapp.GenesisState) (*EthermintApp, simapp.GenesisState) {
|
func setup(withGenesis bool, invCheckPeriod uint, patchGenesis func(*EthermintApp, simapp.GenesisState) simapp.GenesisState) (*EthermintApp, simapp.GenesisState) {
|
||||||
encCdc := encoding.MakeConfig(ModuleBasics)
|
encCdc := encoding.MakeConfig(ModuleBasics)
|
||||||
app := NewEthermintApp(log.NewNopLogger(), memdb.NewDB(), nil, true, map[int64]bool{}, DefaultNodeHome, invCheckPeriod, encCdc, EmptyAppOptions{})
|
app := NewEthermintApp(log.NewNopLogger(), dbm.NewMemDB(), nil, true, map[int64]bool{}, DefaultNodeHome, invCheckPeriod, encCdc, EmptyAppOptions{})
|
||||||
if withGenesis {
|
if withGenesis {
|
||||||
genesisState := NewDefaultGenesisState(encCdc.Codec)
|
genesisState := NewDefaultGenesisState(encCdc.Codec)
|
||||||
if patchGenesis != nil {
|
if patchGenesis != nil {
|
||||||
|
@ -11,8 +11,8 @@ import (
|
|||||||
"github.com/cosmos/cosmos-sdk/client/config"
|
"github.com/cosmos/cosmos-sdk/client/config"
|
||||||
"github.com/cosmos/cosmos-sdk/client/flags"
|
"github.com/cosmos/cosmos-sdk/client/flags"
|
||||||
"github.com/cosmos/cosmos-sdk/client/rpc"
|
"github.com/cosmos/cosmos-sdk/client/rpc"
|
||||||
dbm "github.com/cosmos/cosmos-sdk/db"
|
dbm "github.com/tendermint/tm-db"
|
||||||
"github.com/cosmos/cosmos-sdk/db/badgerdb"
|
|
||||||
sdkserver "github.com/cosmos/cosmos-sdk/server"
|
sdkserver "github.com/cosmos/cosmos-sdk/server"
|
||||||
servertypes "github.com/cosmos/cosmos-sdk/server/types"
|
servertypes "github.com/cosmos/cosmos-sdk/server/types"
|
||||||
"github.com/cosmos/cosmos-sdk/simapp/params"
|
"github.com/cosmos/cosmos-sdk/simapp/params"
|
||||||
@ -207,7 +207,7 @@ type appCreator struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// newApp is an appCreator
|
// newApp is an appCreator
|
||||||
func (a appCreator) newApp(logger tmlog.Logger, db dbm.DBConnection, traceStore io.Writer, appOpts servertypes.AppOptions) servertypes.Application {
|
func (a appCreator) newApp(logger tmlog.Logger, db dbm.DB, traceStore io.Writer, appOpts servertypes.AppOptions) servertypes.Application {
|
||||||
var cache sdk.MultiStorePersistentCache
|
var cache sdk.MultiStorePersistentCache
|
||||||
|
|
||||||
if cast.ToBool(appOpts.Get(sdkserver.FlagInterBlockCache)) {
|
if cast.ToBool(appOpts.Get(sdkserver.FlagInterBlockCache)) {
|
||||||
@ -225,7 +225,7 @@ func (a appCreator) newApp(logger tmlog.Logger, db dbm.DBConnection, traceStore
|
|||||||
}
|
}
|
||||||
|
|
||||||
snapshotDir := filepath.Join(cast.ToString(appOpts.Get(flags.FlagHome)), "data", "snapshots")
|
snapshotDir := filepath.Join(cast.ToString(appOpts.Get(flags.FlagHome)), "data", "snapshots")
|
||||||
snapshotDB, err := badgerdb.NewDB(filepath.Join(snapshotDir, "metadata"))
|
snapshotDB, err := dbm.NewDB("metadata", sdkserver.GetAppDBBackend(appOpts), snapshotDir)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
@ -261,7 +261,7 @@ func (a appCreator) newApp(logger tmlog.Logger, db dbm.DBConnection, traceStore
|
|||||||
// appExport creates a new simapp (optionally at a given height)
|
// appExport creates a new simapp (optionally at a given height)
|
||||||
// and exports state.
|
// and exports state.
|
||||||
func (a appCreator) appExport(
|
func (a appCreator) appExport(
|
||||||
logger tmlog.Logger, db dbm.DBConnection, traceStore io.Writer, height int64, forZeroHeight bool, jailAllowedAddrs []string,
|
logger tmlog.Logger, db dbm.DB, traceStore io.Writer, height int64, forZeroHeight bool, jailAllowedAddrs []string,
|
||||||
appOpts servertypes.AppOptions,
|
appOpts servertypes.AppOptions,
|
||||||
) (servertypes.ExportedApp, error) {
|
) (servertypes.ExportedApp, error) {
|
||||||
var ethermintApp *app.EthermintApp
|
var ethermintApp *app.EthermintApp
|
||||||
|
74
go.mod
74
go.mod
@ -3,14 +3,13 @@ module github.com/cerc-io/laconicd
|
|||||||
go 1.17
|
go 1.17
|
||||||
|
|
||||||
require (
|
require (
|
||||||
cosmossdk.io/math v1.0.0-beta.2
|
cosmossdk.io/math v1.0.0-beta.3
|
||||||
github.com/99designs/gqlgen v0.17.2
|
github.com/99designs/gqlgen v0.17.2
|
||||||
github.com/btcsuite/btcd v0.22.1
|
github.com/btcsuite/btcd v0.22.1
|
||||||
github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce
|
github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce
|
||||||
github.com/cosmos/cosmos-sdk v0.46.0-rc1
|
github.com/cosmos/cosmos-sdk v0.46.1
|
||||||
github.com/cosmos/cosmos-sdk/db v1.0.0-beta.1
|
|
||||||
github.com/cosmos/go-bip39 v1.0.0
|
github.com/cosmos/go-bip39 v1.0.0
|
||||||
github.com/cosmos/ibc-go/v3 v3.0.0-alpha1.0.20220530074104-c7c115244bad
|
github.com/cosmos/ibc-go/v5 v5.0.0
|
||||||
github.com/davecgh/go-spew v1.1.1
|
github.com/davecgh/go-spew v1.1.1
|
||||||
github.com/deckarep/golang-set v1.8.0
|
github.com/deckarep/golang-set v1.8.0
|
||||||
github.com/ethereum/go-ethereum v1.10.17
|
github.com/ethereum/go-ethereum v1.10.17
|
||||||
@ -32,17 +31,18 @@ require (
|
|||||||
github.com/rakyll/statik v0.1.7
|
github.com/rakyll/statik v0.1.7
|
||||||
github.com/regen-network/cosmos-proto v0.3.1
|
github.com/regen-network/cosmos-proto v0.3.1
|
||||||
github.com/rs/cors v1.8.2
|
github.com/rs/cors v1.8.2
|
||||||
github.com/rs/zerolog v1.26.1
|
github.com/rs/zerolog v1.27.0
|
||||||
github.com/spf13/cast v1.5.0
|
github.com/spf13/cast v1.5.0
|
||||||
github.com/spf13/cobra v1.4.0
|
github.com/spf13/cobra v1.5.0
|
||||||
github.com/spf13/viper v1.12.0
|
github.com/spf13/viper v1.12.0
|
||||||
github.com/status-im/keycard-go v0.0.0-20200402102358-957c09536969
|
github.com/status-im/keycard-go v0.0.0-20200402102358-957c09536969
|
||||||
github.com/stretchr/testify v1.8.0
|
github.com/stretchr/testify v1.8.0
|
||||||
github.com/tendermint/tendermint v0.35.6
|
github.com/tendermint/tendermint v0.34.21
|
||||||
|
github.com/tendermint/tm-db v0.6.7
|
||||||
github.com/tyler-smith/go-bip39 v1.1.0
|
github.com/tyler-smith/go-bip39 v1.1.0
|
||||||
github.com/vektah/gqlparser/v2 v2.4.1
|
github.com/vektah/gqlparser/v2 v2.4.1
|
||||||
google.golang.org/genproto v0.0.0-20220902135211-223410557253
|
google.golang.org/genproto v0.0.0-20220902135211-223410557253
|
||||||
google.golang.org/grpc v1.48.0
|
google.golang.org/grpc v1.49.0
|
||||||
google.golang.org/protobuf v1.28.1
|
google.golang.org/protobuf v1.28.1
|
||||||
gopkg.in/yaml.v2 v2.4.0
|
gopkg.in/yaml.v2 v2.4.0
|
||||||
gopkg.in/yaml.v3 v3.0.1
|
gopkg.in/yaml.v3 v3.0.1
|
||||||
@ -53,22 +53,22 @@ require (
|
|||||||
cloud.google.com/go/compute v1.6.1 // indirect
|
cloud.google.com/go/compute v1.6.1 // indirect
|
||||||
cloud.google.com/go/iam v0.3.0 // indirect
|
cloud.google.com/go/iam v0.3.0 // indirect
|
||||||
cloud.google.com/go/storage v1.14.0 // indirect
|
cloud.google.com/go/storage v1.14.0 // indirect
|
||||||
cosmossdk.io/api v0.1.0-alpha8 // indirect
|
cosmossdk.io/errors v1.0.0-beta.7 // indirect
|
||||||
cosmossdk.io/errors v1.0.0-beta.6 // indirect
|
|
||||||
filippo.io/edwards25519 v1.0.0-rc.1 // indirect
|
filippo.io/edwards25519 v1.0.0-rc.1 // indirect
|
||||||
github.com/99designs/keyring v1.1.6 // indirect
|
github.com/99designs/keyring v1.2.1 // indirect
|
||||||
|
github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d // indirect
|
||||||
github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6 // indirect
|
github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6 // indirect
|
||||||
github.com/VictoriaMetrics/fastcache v1.6.0 // indirect
|
github.com/VictoriaMetrics/fastcache v1.6.0 // indirect
|
||||||
github.com/Workiva/go-datastructures v1.0.53 // indirect
|
github.com/Workiva/go-datastructures v1.0.53 // indirect
|
||||||
github.com/agnivade/levenshtein v1.1.0 // indirect
|
github.com/agnivade/levenshtein v1.1.0 // indirect
|
||||||
github.com/armon/go-metrics v0.3.11 // indirect
|
github.com/armon/go-metrics v0.4.0 // indirect
|
||||||
github.com/aws/aws-sdk-go v1.40.45 // indirect
|
github.com/aws/aws-sdk-go v1.40.45 // indirect
|
||||||
github.com/beorn7/perks v1.0.1 // indirect
|
github.com/beorn7/perks v1.0.1 // indirect
|
||||||
github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect
|
github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect
|
||||||
github.com/bgentry/speakeasy v0.1.0 // indirect
|
github.com/bgentry/speakeasy v0.1.0 // indirect
|
||||||
github.com/btcsuite/btcd/btcec/v2 v2.1.2 // indirect
|
github.com/btcsuite/btcd/btcec/v2 v2.1.2 // indirect
|
||||||
github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 // indirect
|
github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 // indirect
|
||||||
github.com/cenkalti/backoff/v4 v4.1.1 // indirect
|
github.com/cenkalti/backoff/v4 v4.1.3 // indirect
|
||||||
github.com/cespare/xxhash v1.1.0 // indirect
|
github.com/cespare/xxhash v1.1.0 // indirect
|
||||||
github.com/cespare/xxhash/v2 v2.1.2 // indirect
|
github.com/cespare/xxhash/v2 v2.1.2 // indirect
|
||||||
github.com/cockroachdb/apd/v2 v2.0.2 // indirect
|
github.com/cockroachdb/apd/v2 v2.0.2 // indirect
|
||||||
@ -76,25 +76,27 @@ require (
|
|||||||
github.com/confio/ics23/go v0.7.0 // indirect
|
github.com/confio/ics23/go v0.7.0 // indirect
|
||||||
github.com/cosmos/btcutil v1.0.4 // indirect
|
github.com/cosmos/btcutil v1.0.4 // indirect
|
||||||
github.com/cosmos/cosmos-proto v1.0.0-alpha7 // indirect
|
github.com/cosmos/cosmos-proto v1.0.0-alpha7 // indirect
|
||||||
|
github.com/cosmos/cosmos-sdk/db v1.0.0-beta.1 // indirect
|
||||||
github.com/cosmos/gorocksdb v1.2.0 // indirect
|
github.com/cosmos/gorocksdb v1.2.0 // indirect
|
||||||
github.com/cosmos/iavl v0.18.0 // indirect
|
github.com/cosmos/iavl v0.19.1 // indirect
|
||||||
github.com/cosmos/ledger-cosmos-go v0.11.1 // indirect
|
github.com/cosmos/ledger-cosmos-go v0.11.1 // indirect
|
||||||
github.com/cosmos/ledger-go v0.9.2 // indirect
|
github.com/cosmos/ledger-go v0.9.2 // indirect
|
||||||
github.com/creachadair/taskgroup v0.3.2 // indirect
|
github.com/creachadair/taskgroup v0.3.2 // indirect
|
||||||
github.com/danieljoos/wincred v1.0.2 // indirect
|
github.com/danieljoos/wincred v1.1.2 // indirect
|
||||||
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 // indirect
|
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 // indirect
|
||||||
github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f // indirect
|
github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f // indirect
|
||||||
github.com/dgraph-io/badger/v2 v2.2007.4 // indirect
|
github.com/dgraph-io/badger/v2 v2.2007.4 // indirect
|
||||||
github.com/dgraph-io/badger/v3 v3.2103.2 // indirect
|
|
||||||
github.com/dgraph-io/ristretto v0.1.0 // indirect
|
github.com/dgraph-io/ristretto v0.1.0 // indirect
|
||||||
github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect
|
github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect
|
||||||
github.com/dustin/go-humanize v1.0.0 // indirect
|
github.com/dustin/go-humanize v1.0.0 // indirect
|
||||||
github.com/dvsekhvalnov/jose2go v0.0.0-20200901110807-248326c1351b // indirect
|
github.com/dvsekhvalnov/jose2go v1.5.0 // indirect
|
||||||
github.com/edsrzf/mmap-go v1.0.0 // indirect
|
github.com/edsrzf/mmap-go v1.0.0 // indirect
|
||||||
github.com/felixge/httpsnoop v1.0.1 // indirect
|
github.com/felixge/httpsnoop v1.0.2 // indirect
|
||||||
github.com/fsnotify/fsnotify v1.5.4 // indirect
|
github.com/fsnotify/fsnotify v1.5.4 // indirect
|
||||||
github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff // indirect
|
github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff // indirect
|
||||||
github.com/go-kit/kit v0.12.0 // indirect
|
github.com/go-kit/kit v0.12.0 // indirect
|
||||||
|
github.com/go-kit/log v0.2.1 // indirect
|
||||||
|
github.com/go-logfmt/logfmt v0.5.1 // indirect
|
||||||
github.com/go-ole/go-ole v1.2.6 // indirect
|
github.com/go-ole/go-ole v1.2.6 // indirect
|
||||||
github.com/go-playground/validator/v10 v10.4.1 // indirect
|
github.com/go-playground/validator/v10 v10.4.1 // indirect
|
||||||
github.com/go-stack/stack v1.8.0 // indirect
|
github.com/go-stack/stack v1.8.0 // indirect
|
||||||
@ -105,19 +107,20 @@ require (
|
|||||||
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
|
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
|
||||||
github.com/golang/snappy v0.0.4 // indirect
|
github.com/golang/snappy v0.0.4 // indirect
|
||||||
github.com/google/btree v1.0.1 // indirect
|
github.com/google/btree v1.0.1 // indirect
|
||||||
github.com/google/flatbuffers v2.0.0+incompatible // indirect
|
github.com/google/gofuzz v1.2.0 // indirect
|
||||||
github.com/google/orderedcode v0.0.1 // indirect
|
github.com/google/orderedcode v0.0.1 // indirect
|
||||||
github.com/google/uuid v1.3.0 // indirect
|
github.com/google/uuid v1.3.0 // indirect
|
||||||
github.com/googleapis/gax-go/v2 v2.4.0 // indirect
|
github.com/googleapis/gax-go/v2 v2.4.0 // indirect
|
||||||
github.com/gorilla/handlers v1.5.1 // indirect
|
github.com/gorilla/handlers v1.5.1 // indirect
|
||||||
github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 // indirect
|
github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 // indirect
|
||||||
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 // indirect
|
|
||||||
github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect
|
github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect
|
||||||
|
github.com/gtank/merlin v0.1.1 // indirect
|
||||||
|
github.com/gtank/ristretto255 v0.1.2 // indirect
|
||||||
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
|
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
|
||||||
github.com/hashicorp/go-getter v1.6.1 // indirect
|
github.com/hashicorp/go-getter v1.6.1 // indirect
|
||||||
github.com/hashicorp/go-immutable-radix v1.3.1 // indirect
|
github.com/hashicorp/go-immutable-radix v1.3.1 // indirect
|
||||||
github.com/hashicorp/go-safetemp v1.0.0 // indirect
|
github.com/hashicorp/go-safetemp v1.0.0 // indirect
|
||||||
github.com/hashicorp/go-version v1.4.0 // indirect
|
github.com/hashicorp/go-version v1.6.0 // indirect
|
||||||
github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d // indirect
|
github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d // indirect
|
||||||
github.com/hashicorp/hcl v1.0.0 // indirect
|
github.com/hashicorp/hcl v1.0.0 // indirect
|
||||||
github.com/hdevalence/ed25519consensus v0.0.0-20220222234857-c00d1f31bab3 // indirect
|
github.com/hdevalence/ed25519consensus v0.0.0-20220222234857-c00d1f31bab3 // indirect
|
||||||
@ -131,15 +134,17 @@ require (
|
|||||||
github.com/jmespath/go-jmespath v0.4.0 // indirect
|
github.com/jmespath/go-jmespath v0.4.0 // indirect
|
||||||
github.com/jmhodges/levigo v1.0.0 // indirect
|
github.com/jmhodges/levigo v1.0.0 // indirect
|
||||||
github.com/keybase/go-keychain v0.0.0-20190712205309-48d3d31d256d // indirect
|
github.com/keybase/go-keychain v0.0.0-20190712205309-48d3d31d256d // indirect
|
||||||
github.com/klauspost/compress v1.13.6 // indirect
|
github.com/klauspost/compress v1.15.9 // indirect
|
||||||
github.com/klauspost/cpuid/v2 v2.0.9 // indirect
|
github.com/klauspost/cpuid/v2 v2.0.9 // indirect
|
||||||
github.com/lazyledger/smt v0.2.1-0.20210709230900-03ea40719554 // indirect
|
github.com/lazyledger/smt v0.2.1-0.20210709230900-03ea40719554 // indirect
|
||||||
github.com/lib/pq v1.10.6 // indirect
|
github.com/lib/pq v1.10.6 // indirect
|
||||||
github.com/libp2p/go-buffer-pool v0.0.2 // indirect
|
github.com/libp2p/go-buffer-pool v0.1.0 // indirect
|
||||||
github.com/magiconair/properties v1.8.6 // indirect
|
github.com/magiconair/properties v1.8.6 // indirect
|
||||||
|
github.com/mattn/go-colorable v0.1.12 // indirect
|
||||||
github.com/mattn/go-isatty v0.0.14 // indirect
|
github.com/mattn/go-isatty v0.0.14 // indirect
|
||||||
github.com/mattn/go-runewidth v0.0.9 // indirect
|
github.com/mattn/go-runewidth v0.0.9 // indirect
|
||||||
github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect
|
github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect
|
||||||
|
github.com/mimoo/StrobeGo v0.0.0-20181016162300-f8f6d4d2b643 // indirect
|
||||||
github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 // indirect
|
github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 // indirect
|
||||||
github.com/minio/highwayhash v1.0.2 // indirect
|
github.com/minio/highwayhash v1.0.2 // indirect
|
||||||
github.com/minio/sha256-simd v1.0.0 // indirect
|
github.com/minio/sha256-simd v1.0.0 // indirect
|
||||||
@ -152,10 +157,10 @@ require (
|
|||||||
github.com/multiformats/go-multibase v0.0.1 // indirect
|
github.com/multiformats/go-multibase v0.0.1 // indirect
|
||||||
github.com/multiformats/go-varint v0.0.6 // indirect
|
github.com/multiformats/go-varint v0.0.6 // indirect
|
||||||
github.com/nxadm/tail v1.4.8 // indirect
|
github.com/nxadm/tail v1.4.8 // indirect
|
||||||
github.com/oasisprotocol/curve25519-voi v0.0.0-20210609091139-0a56a4bca00b // indirect
|
|
||||||
github.com/olekukonko/tablewriter v0.0.5 // indirect
|
github.com/olekukonko/tablewriter v0.0.5 // indirect
|
||||||
|
github.com/onsi/gomega v1.19.0 // indirect
|
||||||
github.com/pelletier/go-toml v1.9.5 // indirect
|
github.com/pelletier/go-toml v1.9.5 // indirect
|
||||||
github.com/pelletier/go-toml/v2 v2.0.1 // indirect
|
github.com/pelletier/go-toml/v2 v2.0.2 // indirect
|
||||||
github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5 // indirect
|
github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5 // indirect
|
||||||
github.com/pmezard/go-difflib v1.0.0 // indirect
|
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||||
github.com/polydawn/refmt v0.0.0-20201211092308-30ac6d18308e // indirect
|
github.com/polydawn/refmt v0.0.0-20201211092308-30ac6d18308e // indirect
|
||||||
@ -166,18 +171,19 @@ require (
|
|||||||
github.com/prometheus/tsdb v0.7.1 // indirect
|
github.com/prometheus/tsdb v0.7.1 // indirect
|
||||||
github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0 // indirect
|
github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0 // indirect
|
||||||
github.com/rjeczalik/notify v0.9.1 // indirect
|
github.com/rjeczalik/notify v0.9.1 // indirect
|
||||||
|
github.com/rogpeppe/go-internal v1.8.1 // indirect
|
||||||
github.com/sasha-s/go-deadlock v0.2.1-0.20190427202633-1595213edefa // indirect
|
github.com/sasha-s/go-deadlock v0.2.1-0.20190427202633-1595213edefa // indirect
|
||||||
github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible // indirect
|
github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible // indirect
|
||||||
|
github.com/smartystreets/assertions v1.0.0 // indirect
|
||||||
github.com/spaolacci/murmur3 v1.1.0 // indirect
|
github.com/spaolacci/murmur3 v1.1.0 // indirect
|
||||||
github.com/spf13/afero v1.8.2 // indirect
|
github.com/spf13/afero v1.8.2 // indirect
|
||||||
github.com/spf13/jwalterweatherman v1.1.0 // indirect
|
github.com/spf13/jwalterweatherman v1.1.0 // indirect
|
||||||
github.com/spf13/pflag v1.0.5 // indirect
|
github.com/spf13/pflag v1.0.5 // indirect
|
||||||
github.com/subosito/gotenv v1.3.0 // indirect
|
github.com/subosito/gotenv v1.4.0 // indirect
|
||||||
github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 // indirect
|
github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 // indirect
|
||||||
github.com/tendermint/btcd v0.1.1 // indirect
|
github.com/tendermint/btcd v0.1.1 // indirect
|
||||||
github.com/tendermint/crypto v0.0.0-20191022145703-50d29ede1e15 // indirect
|
github.com/tendermint/crypto v0.0.0-20191022145703-50d29ede1e15 // indirect
|
||||||
github.com/tendermint/go-amino v0.16.0 // indirect
|
github.com/tendermint/go-amino v0.16.0 // indirect
|
||||||
github.com/tendermint/tm-db v0.6.7 // indirect
|
|
||||||
github.com/tklauser/go-sysconf v0.3.10 // indirect
|
github.com/tklauser/go-sysconf v0.3.10 // indirect
|
||||||
github.com/tklauser/numcpus v0.4.0 // indirect
|
github.com/tklauser/numcpus v0.4.0 // indirect
|
||||||
github.com/ulikunitz/xz v0.5.8 // indirect
|
github.com/ulikunitz/xz v0.5.8 // indirect
|
||||||
@ -186,17 +192,18 @@ require (
|
|||||||
go.etcd.io/bbolt v1.3.6 // indirect
|
go.etcd.io/bbolt v1.3.6 // indirect
|
||||||
go.opencensus.io v0.23.0 // indirect
|
go.opencensus.io v0.23.0 // indirect
|
||||||
golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90 // indirect
|
golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90 // indirect
|
||||||
golang.org/x/net v0.0.0-20220722155237-a158d28d115b // indirect
|
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect
|
||||||
|
golang.org/x/net v0.0.0-20220726230323-06994584191e // indirect
|
||||||
golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5 // indirect
|
golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5 // indirect
|
||||||
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 // indirect
|
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 // indirect
|
||||||
golang.org/x/sys v0.0.0-20220829200755-d48e67d00261 // indirect
|
golang.org/x/sys v0.0.0-20220829200755-d48e67d00261 // indirect
|
||||||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect
|
golang.org/x/term v0.0.0-20220722155259-a9ba230a4035 // indirect
|
||||||
golang.org/x/text v0.3.7 // indirect
|
golang.org/x/text v0.3.7 // indirect
|
||||||
golang.org/x/tools v0.1.12 // indirect
|
golang.org/x/tools v0.1.12 // indirect
|
||||||
golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df // indirect
|
golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df // indirect
|
||||||
google.golang.org/api v0.81.0 // indirect
|
google.golang.org/api v0.81.0 // indirect
|
||||||
google.golang.org/appengine v1.6.7 // indirect
|
google.golang.org/appengine v1.6.7 // indirect
|
||||||
gopkg.in/ini.v1 v1.66.4 // indirect
|
gopkg.in/ini.v1 v1.66.6 // indirect
|
||||||
gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect
|
gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect
|
||||||
gopkg.in/olebedev/go-duktape.v3 v3.0.0-20200619000410-60c24ae608a6 // indirect
|
gopkg.in/olebedev/go-duktape.v3 v3.0.0-20200619000410-60c24ae608a6 // indirect
|
||||||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
|
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
|
||||||
@ -207,10 +214,9 @@ require (
|
|||||||
|
|
||||||
replace (
|
replace (
|
||||||
github.com/99designs/keyring => github.com/cosmos/keyring v1.1.7-0.20210622111912-ef00f8ac3d76
|
github.com/99designs/keyring => github.com/cosmos/keyring v1.1.7-0.20210622111912-ef00f8ac3d76
|
||||||
|
|
||||||
// replace cosmos
|
// replace cosmos
|
||||||
github.com/cosmos/cosmos-sdk => github.com/cerc-io/cosmos-sdk v0.46.0-smt-0.0.5-alpha
|
// github.com/cosmos/cosmos-sdk => github.com/cerc-io/cosmos-sdk v0.46.0-smt-0.0.5-alpha
|
||||||
github.com/cosmos/cosmos-sdk/db => github.com/cerc-io/cosmos-sdk/db v1.0.0-beta.1
|
// github.com/cosmos/cosmos-sdk/db => github.com/cerc-io/cosmos-sdk/db v1.0.0-beta.1
|
||||||
github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1
|
github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1
|
||||||
google.golang.org/grpc => google.golang.org/grpc v1.44.0
|
google.golang.org/grpc => google.golang.org/grpc v1.44.0
|
||||||
)
|
)
|
||||||
|
@ -54,7 +54,7 @@ func getNetInfo(client client.Context) (string, []*PeerInfo, error) {
|
|||||||
for index, peer := range netInfo.Peers {
|
for index, peer := range netInfo.Peers {
|
||||||
peersInfo[index] = &PeerInfo{
|
peersInfo[index] = &PeerInfo{
|
||||||
Node: &NodeInfo{
|
Node: &NodeInfo{
|
||||||
ID: string(peer.ID),
|
ID: string(peer.NodeInfo.DefaultNodeID),
|
||||||
// Moniker: peer.Node.Moniker,
|
// Moniker: peer.Node.Moniker,
|
||||||
// Network: peer.Node.Network,
|
// Network: peer.Node.Network,
|
||||||
},
|
},
|
||||||
|
@ -15,7 +15,7 @@ import (
|
|||||||
"github.com/ethereum/go-ethereum/params"
|
"github.com/ethereum/go-ethereum/params"
|
||||||
"github.com/ethereum/go-ethereum/rpc"
|
"github.com/ethereum/go-ethereum/rpc"
|
||||||
|
|
||||||
tmrpctypes "github.com/tendermint/tendermint/rpc/coretypes"
|
tmrpctypes "github.com/tendermint/tendermint/rpc/core/types"
|
||||||
|
|
||||||
"google.golang.org/grpc"
|
"google.golang.org/grpc"
|
||||||
"google.golang.org/grpc/metadata"
|
"google.golang.org/grpc/metadata"
|
||||||
@ -103,7 +103,10 @@ func NewEVMBackend(ctx *server.Context, logger log.Logger, clientCtx client.Cont
|
|||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
appConf := config.GetConfig(ctx.Viper)
|
appConf, err := config.GetConfig(ctx.Viper)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
return &EVMBackend{
|
return &EVMBackend{
|
||||||
ctx: context.Background(),
|
ctx: context.Background(),
|
||||||
@ -334,7 +337,7 @@ func (e *EVMBackend) BlockBloom(height *int64) (ethtypes.Bloom, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for _, attr := range event.Attributes {
|
for _, attr := range event.Attributes {
|
||||||
if attr.Key == string(bAttributeKeyEthereumBloom) {
|
if string(attr.Key) == string(bAttributeKeyEthereumBloom) {
|
||||||
return ethtypes.BytesToBloom([]byte(attr.Value)), nil
|
return ethtypes.BytesToBloom([]byte(attr.Value)), nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@ import (
|
|||||||
evmtypes "github.com/cerc-io/laconicd/x/evm/types"
|
evmtypes "github.com/cerc-io/laconicd/x/evm/types"
|
||||||
"github.com/ethereum/go-ethereum/common/hexutil"
|
"github.com/ethereum/go-ethereum/common/hexutil"
|
||||||
"github.com/ethereum/go-ethereum/rpc"
|
"github.com/ethereum/go-ethereum/rpc"
|
||||||
tmrpctypes "github.com/tendermint/tendermint/rpc/coretypes"
|
tmrpctypes "github.com/tendermint/tendermint/rpc/core/types"
|
||||||
)
|
)
|
||||||
|
|
||||||
type (
|
type (
|
||||||
|
@ -14,7 +14,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/davecgh/go-spew/spew"
|
"github.com/davecgh/go-spew/spew"
|
||||||
tmrpctypes "github.com/tendermint/tendermint/rpc/coretypes"
|
tmrpctypes "github.com/tendermint/tendermint/rpc/core/types"
|
||||||
|
|
||||||
evmtypes "github.com/cerc-io/laconicd/x/evm/types"
|
evmtypes "github.com/cerc-io/laconicd/x/evm/types"
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ import (
|
|||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/spf13/viper"
|
"github.com/spf13/viper"
|
||||||
"github.com/tendermint/tendermint/libs/log"
|
"github.com/tendermint/tendermint/libs/log"
|
||||||
tmrpctypes "github.com/tendermint/tendermint/rpc/coretypes"
|
tmrpctypes "github.com/tendermint/tendermint/rpc/core/types"
|
||||||
|
|
||||||
"github.com/cosmos/cosmos-sdk/client"
|
"github.com/cosmos/cosmos-sdk/client"
|
||||||
"github.com/cosmos/cosmos-sdk/client/flags"
|
"github.com/cosmos/cosmos-sdk/client/flags"
|
||||||
|
@ -11,7 +11,7 @@ import (
|
|||||||
|
|
||||||
"github.com/tendermint/tendermint/libs/log"
|
"github.com/tendermint/tendermint/libs/log"
|
||||||
|
|
||||||
coretypes "github.com/tendermint/tendermint/rpc/coretypes"
|
coretypes "github.com/tendermint/tendermint/rpc/core/types"
|
||||||
rpcclient "github.com/tendermint/tendermint/rpc/jsonrpc/client"
|
rpcclient "github.com/tendermint/tendermint/rpc/jsonrpc/client"
|
||||||
tmtypes "github.com/tendermint/tendermint/types"
|
tmtypes "github.com/tendermint/tendermint/types"
|
||||||
|
|
||||||
@ -371,13 +371,7 @@ func (api *PublicFilterAPI) Logs(ctx context.Context, crit filters.FilterCriteri
|
|||||||
}
|
}
|
||||||
|
|
||||||
// filter only events from EVM module txs
|
// filter only events from EVM module txs
|
||||||
var isMsgEthereumTx bool
|
_, isMsgEthereumTx := ev.Events[evmtypes.TypeMsgEthereumTx]
|
||||||
|
|
||||||
for _, event := range ev.Events {
|
|
||||||
if event.Type == evmtypes.TypeMsgEthereumTx {
|
|
||||||
isMsgEthereumTx = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if !isMsgEthereumTx {
|
if !isMsgEthereumTx {
|
||||||
// ignore transaction as it's not from the evm module
|
// ignore transaction as it's not from the evm module
|
||||||
|
@ -11,7 +11,7 @@ import (
|
|||||||
tmjson "github.com/tendermint/tendermint/libs/json"
|
tmjson "github.com/tendermint/tendermint/libs/json"
|
||||||
"github.com/tendermint/tendermint/libs/log"
|
"github.com/tendermint/tendermint/libs/log"
|
||||||
tmquery "github.com/tendermint/tendermint/libs/pubsub/query"
|
tmquery "github.com/tendermint/tendermint/libs/pubsub/query"
|
||||||
coretypes "github.com/tendermint/tendermint/rpc/coretypes"
|
coretypes "github.com/tendermint/tendermint/rpc/core/types"
|
||||||
rpcclient "github.com/tendermint/tendermint/rpc/jsonrpc/client"
|
rpcclient "github.com/tendermint/tendermint/rpc/jsonrpc/client"
|
||||||
tmtypes "github.com/tendermint/tendermint/types"
|
tmtypes "github.com/tendermint/tendermint/types"
|
||||||
|
|
||||||
@ -27,9 +27,9 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
txEvents = tmtypes.QueryForEvent(tmtypes.EventTxValue).String()
|
txEvents = tmtypes.QueryForEvent(tmtypes.EventTx).String()
|
||||||
evmEvents = tmquery.MustCompile(fmt.Sprintf("%s='%s' AND %s.%s='%s'", tmtypes.EventTypeKey, tmtypes.EventTxValue, sdk.EventTypeMessage, sdk.AttributeKeyModule, evmtypes.ModuleName)).String()
|
evmEvents = tmquery.MustParse(fmt.Sprintf("%s='%s' AND %s.%s='%s'", tmtypes.EventTypeKey, tmtypes.EventTx, sdk.EventTypeMessage, sdk.AttributeKeyModule, evmtypes.ModuleName)).String()
|
||||||
headerEvents = tmtypes.QueryForEvent(tmtypes.EventNewBlockHeaderValue).String()
|
headerEvents = tmtypes.QueryForEvent(tmtypes.EventNewBlockHeader).String()
|
||||||
)
|
)
|
||||||
|
|
||||||
// EventSystem creates subscriptions, processes events and broadcasts them to the
|
// EventSystem creates subscriptions, processes events and broadcasts them to the
|
||||||
|
@ -7,7 +7,7 @@ import (
|
|||||||
ethtypes "github.com/ethereum/go-ethereum/core/types"
|
ethtypes "github.com/ethereum/go-ethereum/core/types"
|
||||||
"github.com/ethereum/go-ethereum/eth/filters"
|
"github.com/ethereum/go-ethereum/eth/filters"
|
||||||
"github.com/ethereum/go-ethereum/rpc"
|
"github.com/ethereum/go-ethereum/rpc"
|
||||||
coretypes "github.com/tendermint/tendermint/rpc/coretypes"
|
coretypes "github.com/tendermint/tendermint/rpc/core/types"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Subscription defines a wrapper for the private subscription
|
// Subscription defines a wrapper for the private subscription
|
||||||
|
@ -80,7 +80,10 @@ func (api *API) SetEtherbase(etherbase common.Address) bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Fetch minimun gas price to calculate fees using the configuration.
|
// Fetch minimun gas price to calculate fees using the configuration.
|
||||||
appConf := config.GetConfig(api.ctx.Viper)
|
appConf, err := config.GetConfig(api.ctx.Viper)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
minGasPrices := appConf.GetMinGasPrices()
|
minGasPrices := appConf.GetMinGasPrices()
|
||||||
if len(minGasPrices) == 0 || minGasPrices.Empty() {
|
if len(minGasPrices) == 0 || minGasPrices.Empty() {
|
||||||
@ -160,7 +163,10 @@ func (api *API) SetEtherbase(etherbase common.Address) bool {
|
|||||||
// to use float values, the gas prices must be configured using the configuration file
|
// to use float values, the gas prices must be configured using the configuration file
|
||||||
func (api *API) SetGasPrice(gasPrice hexutil.Big) bool {
|
func (api *API) SetGasPrice(gasPrice hexutil.Big) bool {
|
||||||
api.logger.Info(api.ctx.Viper.ConfigFileUsed())
|
api.logger.Info(api.ctx.Viper.ConfigFileUsed())
|
||||||
appConf := config.GetConfig(api.ctx.Viper)
|
appConf, err := config.GetConfig(api.ctx.Viper)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
var unit string
|
var unit string
|
||||||
minGasPrices := appConf.GetMinGasPrices()
|
minGasPrices := appConf.GetMinGasPrices()
|
||||||
|
@ -6,7 +6,7 @@ import (
|
|||||||
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
|
|
||||||
coretypes "github.com/tendermint/tendermint/rpc/coretypes"
|
coretypes "github.com/tendermint/tendermint/rpc/core/types"
|
||||||
)
|
)
|
||||||
|
|
||||||
type UnsubscribeFunc func()
|
type UnsubscribeFunc func()
|
||||||
|
@ -8,7 +8,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
coretypes "github.com/tendermint/tendermint/rpc/coretypes"
|
coretypes "github.com/tendermint/tendermint/rpc/core/types"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestAddTopic(t *testing.T) {
|
func TestAddTopic(t *testing.T) {
|
||||||
|
@ -242,7 +242,7 @@ func BaseFeeFromEvents(events []abci.Event) *big.Int {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for _, attr := range event.Attributes {
|
for _, attr := range event.Attributes {
|
||||||
if attr.Key == feemarkettypes.AttributeKeyBaseFee {
|
if bytes.Equal(attr.Key, []byte(feemarkettypes.AttributeKeyBaseFee)) {
|
||||||
result, success := new(big.Int).SetString(string(attr.Value), 10)
|
result, success := new(big.Int).SetString(string(attr.Value), 10)
|
||||||
if success {
|
if success {
|
||||||
return result
|
return result
|
||||||
|
@ -276,8 +276,11 @@ func (c TLSConfig) Validate() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// GetConfig returns a fully parsed Config object.
|
// GetConfig returns a fully parsed Config object.
|
||||||
func GetConfig(v *viper.Viper) Config {
|
func GetConfig(v *viper.Viper) (Config, error) {
|
||||||
cfg := config.GetConfig(v)
|
cfg, err := config.GetConfig(v)
|
||||||
|
if err != nil {
|
||||||
|
return Config{}, err
|
||||||
|
}
|
||||||
|
|
||||||
return Config{
|
return Config{
|
||||||
Config: cfg,
|
Config: cfg,
|
||||||
@ -304,7 +307,7 @@ func GetConfig(v *viper.Viper) Config {
|
|||||||
CertificatePath: v.GetString("tls.certificate-path"),
|
CertificatePath: v.GetString("tls.certificate-path"),
|
||||||
KeyPath: v.GetString("tls.key-path"),
|
KeyPath: v.GetString("tls.key-path"),
|
||||||
},
|
},
|
||||||
}
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// ParseConfig retrieves the default environment configuration for the
|
// ParseConfig retrieves the default environment configuration for the
|
||||||
|
@ -16,12 +16,15 @@ import (
|
|||||||
|
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
|
|
||||||
tmservice "github.com/tendermint/tendermint/libs/service"
|
|
||||||
"google.golang.org/grpc"
|
"google.golang.org/grpc"
|
||||||
|
|
||||||
"github.com/cosmos/cosmos-sdk/client"
|
"github.com/cosmos/cosmos-sdk/client"
|
||||||
"github.com/cosmos/cosmos-sdk/client/flags"
|
"github.com/cosmos/cosmos-sdk/client/flags"
|
||||||
dbm "github.com/cosmos/cosmos-sdk/db"
|
"github.com/tendermint/tendermint/p2p"
|
||||||
|
pvm "github.com/tendermint/tendermint/privval"
|
||||||
|
"github.com/tendermint/tendermint/proxy"
|
||||||
|
dbm "github.com/tendermint/tm-db"
|
||||||
|
|
||||||
"github.com/cosmos/cosmos-sdk/server"
|
"github.com/cosmos/cosmos-sdk/server"
|
||||||
"github.com/cosmos/cosmos-sdk/server/api"
|
"github.com/cosmos/cosmos-sdk/server/api"
|
||||||
serverconfig "github.com/cosmos/cosmos-sdk/server/config"
|
serverconfig "github.com/cosmos/cosmos-sdk/server/config"
|
||||||
@ -29,7 +32,6 @@ import (
|
|||||||
"github.com/cosmos/cosmos-sdk/server/rosetta"
|
"github.com/cosmos/cosmos-sdk/server/rosetta"
|
||||||
crgserver "github.com/cosmos/cosmos-sdk/server/rosetta/lib/server"
|
crgserver "github.com/cosmos/cosmos-sdk/server/rosetta/lib/server"
|
||||||
"github.com/cosmos/cosmos-sdk/server/types"
|
"github.com/cosmos/cosmos-sdk/server/types"
|
||||||
abciclient "github.com/tendermint/tendermint/abci/client"
|
|
||||||
abciserver "github.com/tendermint/tendermint/abci/server"
|
abciserver "github.com/tendermint/tendermint/abci/server"
|
||||||
tcmd "github.com/tendermint/tendermint/cmd/tendermint/commands"
|
tcmd "github.com/tendermint/tendermint/cmd/tendermint/commands"
|
||||||
tmos "github.com/tendermint/tendermint/libs/os"
|
tmos "github.com/tendermint/tendermint/libs/os"
|
||||||
@ -283,7 +285,11 @@ func startInProcess(ctx *server.Context, clientCtx client.Context, appCreator ty
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
config := config.GetConfig(ctx.Viper)
|
config, err := config.GetConfig(ctx.Viper)
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("failed to get server config", "error", err.Error())
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
if err := config.ValidateBasic(); err != nil {
|
if err := config.ValidateBasic(); err != nil {
|
||||||
if strings.Contains(err.Error(), "set min gas price in app.toml or flag or env variable") {
|
if strings.Contains(err.Error(), "set min gas price in app.toml or flag or env variable") {
|
||||||
@ -299,46 +305,42 @@ func startInProcess(ctx *server.Context, clientCtx client.Context, appCreator ty
|
|||||||
|
|
||||||
app := appCreator(ctx.Logger, db, traceWriter, ctx.Viper)
|
app := appCreator(ctx.Logger, db, traceWriter, ctx.Viper)
|
||||||
|
|
||||||
genDoc, err := tmtypes.GenesisDocFromFile(cfg.GenesisFile())
|
nodeKey, err := p2p.LoadOrGenNodeKey(cfg.NodeKeyFile())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
logger.Error("failed load or gen node key", "error", err.Error())
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
|
||||||
tmNode tmservice.Service
|
|
||||||
gRPCOnly = ctx.Viper.GetBool(flagGRPCOnly)
|
|
||||||
)
|
|
||||||
if gRPCOnly {
|
|
||||||
ctx.Logger.Info("starting node in gRPC only mode; Tendermint is disabled")
|
|
||||||
config.GRPC.Enable = true
|
|
||||||
} else {
|
|
||||||
ctx.Logger.Info("starting node with ABCI Tendermint in-process")
|
ctx.Logger.Info("starting node with ABCI Tendermint in-process")
|
||||||
|
|
||||||
tmNode, err = node.New(cfg, ctx.Logger, abciclient.NewLocalCreator(app), genDoc)
|
genDocProvider := node.DefaultGenesisDocProviderFunc(cfg)
|
||||||
|
tmNode, err := node.NewNode(
|
||||||
|
cfg,
|
||||||
|
pvm.LoadOrGenFilePV(cfg.PrivValidatorKeyFile(), cfg.PrivValidatorStateFile()),
|
||||||
|
nodeKey,
|
||||||
|
proxy.NewLocalClientCreator(app),
|
||||||
|
genDocProvider,
|
||||||
|
node.DefaultDBProvider,
|
||||||
|
node.DefaultMetricsProvider(cfg.Instrumentation),
|
||||||
|
ctx.Logger.With("server", "node"),
|
||||||
|
)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
logger.Error("failed init node", "error", err.Error())
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := tmNode.Start(); err != nil {
|
if err := tmNode.Start(); err != nil {
|
||||||
|
logger.Error("failed start tendermint server", "error", err.Error())
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Add the tx service to the gRPC router. We only need to register this
|
// Add the tx service to the gRPC router. We only need to register this
|
||||||
// service if API or gRPC or JSONRPC is enabled, and avoid doing so in the general
|
// service if API or gRPC or JSONRPC is enabled, and avoid doing so in the general
|
||||||
// case, because it spawns a new local tendermint RPC client.
|
// case, because it spawns a new local tendermint RPC client.
|
||||||
if config.API.Enable || config.GRPC.Enable || config.JSONRPC.Enable {
|
if config.API.Enable || config.GRPC.Enable || config.JSONRPC.Enable {
|
||||||
node, ok := tmNode.(local.NodeService)
|
|
||||||
if !ok {
|
|
||||||
return fmt.Errorf("unable to set node type; please try re-installing the binary")
|
|
||||||
}
|
|
||||||
|
|
||||||
localNode, err := local.New(node)
|
clientCtx = clientCtx.WithClient(local.New(tmNode))
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
clientCtx = clientCtx.WithClient(localNode)
|
|
||||||
|
|
||||||
app.RegisterTxService(clientCtx)
|
app.RegisterTxService(clientCtx)
|
||||||
app.RegisterTendermintService(clientCtx)
|
app.RegisterTendermintService(clientCtx)
|
||||||
@ -494,7 +496,7 @@ func startInProcess(ctx *server.Context, clientCtx client.Context, appCreator ty
|
|||||||
return server.WaitForQuitSignals()
|
return server.WaitForQuitSignals()
|
||||||
}
|
}
|
||||||
|
|
||||||
func openDB(rootDir string, backendType dbm.BackendType) (dbm.DBConnection, error) {
|
func openDB(rootDir string, backendType dbm.BackendType) (dbm.DB, error) {
|
||||||
dataDir := filepath.Join(rootDir, "data")
|
dataDir := filepath.Join(rootDir, "data")
|
||||||
return dbm.NewDB("application", backendType, dataDir)
|
return dbm.NewDB("application", backendType, dataDir)
|
||||||
}
|
}
|
||||||
|
@ -31,8 +31,6 @@ func AddCommands(rootCmd *cobra.Command, defaultNodeHome string, appCreator type
|
|||||||
sdkserver.VersionCmd(),
|
sdkserver.VersionCmd(),
|
||||||
tmcmd.ResetAllCmd,
|
tmcmd.ResetAllCmd,
|
||||||
tmcmd.ResetStateCmd,
|
tmcmd.ResetStateCmd,
|
||||||
tmcmd.InspectCmd,
|
|
||||||
sdkserver.MakeKeyMigrateCmd(),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
startCmd := StartCmd(appCreator, defaultNodeHome)
|
startCmd := StartCmd(appCreator, defaultNodeHome)
|
||||||
@ -47,16 +45,15 @@ func AddCommands(rootCmd *cobra.Command, defaultNodeHome string, appCreator type
|
|||||||
}
|
}
|
||||||
|
|
||||||
func ConnectTmWS(tmRPCAddr, tmEndpoint string, logger tmlog.Logger) *rpcclient.WSClient {
|
func ConnectTmWS(tmRPCAddr, tmEndpoint string, logger tmlog.Logger) *rpcclient.WSClient {
|
||||||
tmWsClient, err := rpcclient.NewWSWithOptions(tmRPCAddr, tmEndpoint, rpcclient.WSOptions{
|
tmWsClient, err := rpcclient.NewWS(tmRPCAddr, tmEndpoint,
|
||||||
MaxReconnectAttempts: 256, // first: 2 sec, last: 17 min.
|
rpcclient.MaxReconnectAttempts(256),
|
||||||
WriteWait: 120 * time.Second,
|
rpcclient.ReadWait(120*time.Second),
|
||||||
ReadWait: 120 * time.Second,
|
rpcclient.WriteWait(120*time.Second),
|
||||||
PingPeriod: 50 * time.Second,
|
rpcclient.PingPeriod(50*time.Second),
|
||||||
})
|
rpcclient.OnReconnect(func() {
|
||||||
|
|
||||||
tmWsClient.OnReconnect(func() {
|
|
||||||
logger.Debug("EVM RPC reconnects to Tendermint WS", "address", tmRPCAddr+tmEndpoint)
|
logger.Debug("EVM RPC reconnects to Tendermint WS", "address", tmRPCAddr+tmEndpoint)
|
||||||
})
|
}),
|
||||||
|
)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error(
|
logger.Error(
|
||||||
@ -64,7 +61,7 @@ func ConnectTmWS(tmRPCAddr, tmEndpoint string, logger tmlog.Logger) *rpcclient.W
|
|||||||
"address", tmRPCAddr+tmEndpoint,
|
"address", tmRPCAddr+tmEndpoint,
|
||||||
"error", err,
|
"error", err,
|
||||||
)
|
)
|
||||||
} else if err := tmWsClient.Start(); err != nil {
|
} else if err := tmWsClient.OnStart(); err != nil {
|
||||||
logger.Error(
|
logger.Error(
|
||||||
"Tendermint WS client could not start",
|
"Tendermint WS client could not start",
|
||||||
"address", tmRPCAddr+tmEndpoint,
|
"address", tmRPCAddr+tmEndpoint,
|
||||||
|
@ -16,8 +16,6 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
tmcfg "github.com/tendermint/tendermint/config"
|
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/ethereum/go-ethereum/common"
|
||||||
"github.com/ethereum/go-ethereum/ethclient"
|
"github.com/ethereum/go-ethereum/ethclient"
|
||||||
"github.com/rs/zerolog"
|
"github.com/rs/zerolog"
|
||||||
@ -33,7 +31,6 @@ import (
|
|||||||
codectypes "github.com/cosmos/cosmos-sdk/codec/types"
|
codectypes "github.com/cosmos/cosmos-sdk/codec/types"
|
||||||
"github.com/cosmos/cosmos-sdk/crypto/keyring"
|
"github.com/cosmos/cosmos-sdk/crypto/keyring"
|
||||||
cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types"
|
cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types"
|
||||||
"github.com/cosmos/cosmos-sdk/db/memdb"
|
|
||||||
pruningtypes "github.com/cosmos/cosmos-sdk/pruning/types"
|
pruningtypes "github.com/cosmos/cosmos-sdk/pruning/types"
|
||||||
"github.com/cosmos/cosmos-sdk/server"
|
"github.com/cosmos/cosmos-sdk/server"
|
||||||
"github.com/cosmos/cosmos-sdk/server/api"
|
"github.com/cosmos/cosmos-sdk/server/api"
|
||||||
@ -53,6 +50,7 @@ import (
|
|||||||
"github.com/cerc-io/laconicd/server/config"
|
"github.com/cerc-io/laconicd/server/config"
|
||||||
ethermint "github.com/cerc-io/laconicd/types"
|
ethermint "github.com/cerc-io/laconicd/types"
|
||||||
evmtypes "github.com/cerc-io/laconicd/x/evm/types"
|
evmtypes "github.com/cerc-io/laconicd/x/evm/types"
|
||||||
|
dbm "github.com/tendermint/tm-db"
|
||||||
|
|
||||||
"github.com/cerc-io/laconicd/app"
|
"github.com/cerc-io/laconicd/app"
|
||||||
)
|
)
|
||||||
@ -68,7 +66,7 @@ type AppConstructor = func(val Validator) servertypes.Application
|
|||||||
func NewAppConstructor(encodingCfg params.EncodingConfig) AppConstructor {
|
func NewAppConstructor(encodingCfg params.EncodingConfig) AppConstructor {
|
||||||
return func(val Validator) servertypes.Application {
|
return func(val Validator) servertypes.Application {
|
||||||
return app.NewEthermintApp(
|
return app.NewEthermintApp(
|
||||||
val.Ctx.Logger, memdb.NewDB(), nil, true, make(map[int64]bool), val.Ctx.Config.RootDir, 0,
|
val.Ctx.Logger, dbm.NewMemDB(), nil, true, make(map[int64]bool), val.Ctx.Config.RootDir, 0,
|
||||||
encodingCfg,
|
encodingCfg,
|
||||||
simapp.EmptyAppOptions{},
|
simapp.EmptyAppOptions{},
|
||||||
baseapp.SetPruning(pruningtypes.NewPruningOptionsFromString(val.AppConfig.Pruning)),
|
baseapp.SetPruning(pruningtypes.NewPruningOptionsFromString(val.AppConfig.Pruning)),
|
||||||
@ -255,7 +253,6 @@ func New(l Logger, baseDir string, cfg Config) (*Network, error) {
|
|||||||
ctx := server.NewDefaultContext()
|
ctx := server.NewDefaultContext()
|
||||||
tmCfg := ctx.Config
|
tmCfg := ctx.Config
|
||||||
tmCfg.Consensus.TimeoutCommit = cfg.TimeoutCommit
|
tmCfg.Consensus.TimeoutCommit = cfg.TimeoutCommit
|
||||||
tmCfg.Mode = tmcfg.ModeValidator
|
|
||||||
|
|
||||||
// Only allow the first validator to expose an RPC, API and gRPC
|
// Only allow the first validator to expose an RPC, API and gRPC
|
||||||
// server/client due to Tendermint in-process constraints.
|
// server/client due to Tendermint in-process constraints.
|
||||||
|
@ -8,12 +8,16 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/ethclient"
|
"github.com/ethereum/go-ethereum/ethclient"
|
||||||
abciclient "github.com/tendermint/tendermint/abci/client"
|
"github.com/tendermint/tendermint/p2p"
|
||||||
|
|
||||||
|
pvm "github.com/tendermint/tendermint/privval"
|
||||||
|
"github.com/tendermint/tendermint/proxy"
|
||||||
|
|
||||||
tmos "github.com/tendermint/tendermint/libs/os"
|
tmos "github.com/tendermint/tendermint/libs/os"
|
||||||
tmtime "github.com/tendermint/tendermint/libs/time"
|
|
||||||
"github.com/tendermint/tendermint/node"
|
"github.com/tendermint/tendermint/node"
|
||||||
"github.com/tendermint/tendermint/rpc/client/local"
|
"github.com/tendermint/tendermint/rpc/client/local"
|
||||||
"github.com/tendermint/tendermint/types"
|
"github.com/tendermint/tendermint/types"
|
||||||
|
tmtime "github.com/tendermint/tendermint/types/time"
|
||||||
|
|
||||||
"github.com/cerc-io/laconicd/server"
|
"github.com/cerc-io/laconicd/server"
|
||||||
evmtypes "github.com/cerc-io/laconicd/x/evm/types"
|
evmtypes "github.com/cerc-io/laconicd/x/evm/types"
|
||||||
@ -41,16 +45,26 @@ func startInProcess(cfg Config, val *Validator) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
app := cfg.AppConstructor(*val)
|
app := cfg.AppConstructor(*val)
|
||||||
genDoc, err := types.GenesisDocFromFile(tmCfg.GenesisFile())
|
// genDoc, err := types.GenesisDocFromFile(tmCfg.GenesisFile())
|
||||||
|
// if err != nil {
|
||||||
|
// return err
|
||||||
|
// }
|
||||||
|
|
||||||
|
nodeKey, err := p2p.LoadOrGenNodeKey(tmCfg.NodeKeyFile())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
val.tmNode, err = node.New(
|
genDocProvider := node.DefaultGenesisDocProviderFunc(tmCfg)
|
||||||
|
tmNode, err := node.NewNode(
|
||||||
tmCfg,
|
tmCfg,
|
||||||
|
pvm.LoadOrGenFilePV(tmCfg.PrivValidatorKeyFile(), tmCfg.PrivValidatorStateFile()),
|
||||||
|
nodeKey,
|
||||||
|
proxy.NewLocalClientCreator(app),
|
||||||
|
genDocProvider,
|
||||||
|
node.DefaultDBProvider,
|
||||||
|
node.DefaultMetricsProvider(tmCfg.Instrumentation),
|
||||||
logger.With("module", val.Moniker),
|
logger.With("module", val.Moniker),
|
||||||
abciclient.NewLocalCreator(app),
|
|
||||||
genDoc,
|
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@ -60,15 +74,10 @@ func startInProcess(cfg Config, val *Validator) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val.tmNode = tmNode
|
||||||
|
|
||||||
if val.RPCAddress != "" {
|
if val.RPCAddress != "" {
|
||||||
node, ok := val.tmNode.(local.NodeService)
|
val.RPCClient = local.New(tmNode)
|
||||||
if !ok {
|
|
||||||
panic("can't cast service.Service to NodeService")
|
|
||||||
}
|
|
||||||
val.RPCClient, err = local.New(node)
|
|
||||||
if err != nil {
|
|
||||||
panic("cant create a local node")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// We'll need a RPC client if the validator exposes a gRPC or REST endpoint.
|
// We'll need a RPC client if the validator exposes a gRPC or REST endpoint.
|
||||||
|
@ -4,7 +4,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"math/big"
|
"math/big"
|
||||||
|
|
||||||
prototypes "github.com/tendermint/tendermint/proto/tendermint/types"
|
abci "github.com/tendermint/tendermint/abci/types"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (suite *KeeperTestSuite) TestCalculateBaseFee() {
|
func (suite *KeeperTestSuite) TestCalculateBaseFee() {
|
||||||
@ -39,11 +39,11 @@ func (suite *KeeperTestSuite) TestCalculateBaseFee() {
|
|||||||
suite.app.FeeMarketKeeper.SetBlockGasUsed(suite.ctx, 100)
|
suite.app.FeeMarketKeeper.SetBlockGasUsed(suite.ctx, 100)
|
||||||
|
|
||||||
// Set target/gasLimit through Consensus Param MaxGas
|
// Set target/gasLimit through Consensus Param MaxGas
|
||||||
blockParams := prototypes.BlockParams{
|
blockParams := abci.BlockParams{
|
||||||
MaxGas: 100,
|
MaxGas: 100,
|
||||||
MaxBytes: 10,
|
MaxBytes: 10,
|
||||||
}
|
}
|
||||||
consParams := prototypes.ConsensusParams{Block: &blockParams}
|
consParams := abci.ConsensusParams{Block: &blockParams}
|
||||||
suite.ctx = suite.ctx.WithConsensusParams(&consParams)
|
suite.ctx = suite.ctx.WithConsensusParams(&consParams)
|
||||||
|
|
||||||
// set ElasticityMultiplier
|
// set ElasticityMultiplier
|
||||||
@ -61,11 +61,11 @@ func (suite *KeeperTestSuite) TestCalculateBaseFee() {
|
|||||||
|
|
||||||
suite.app.FeeMarketKeeper.SetBlockGasUsed(suite.ctx, 200)
|
suite.app.FeeMarketKeeper.SetBlockGasUsed(suite.ctx, 200)
|
||||||
|
|
||||||
blockParams := prototypes.BlockParams{
|
blockParams := abci.BlockParams{
|
||||||
MaxGas: 100,
|
MaxGas: 100,
|
||||||
MaxBytes: 10,
|
MaxBytes: 10,
|
||||||
}
|
}
|
||||||
consParams := prototypes.ConsensusParams{Block: &blockParams}
|
consParams := abci.ConsensusParams{Block: &blockParams}
|
||||||
suite.ctx = suite.ctx.WithConsensusParams(&consParams)
|
suite.ctx = suite.ctx.WithConsensusParams(&consParams)
|
||||||
|
|
||||||
params := suite.app.FeeMarketKeeper.GetParams(suite.ctx)
|
params := suite.app.FeeMarketKeeper.GetParams(suite.ctx)
|
||||||
@ -82,11 +82,11 @@ func (suite *KeeperTestSuite) TestCalculateBaseFee() {
|
|||||||
|
|
||||||
suite.app.FeeMarketKeeper.SetBlockGasUsed(suite.ctx, 50)
|
suite.app.FeeMarketKeeper.SetBlockGasUsed(suite.ctx, 50)
|
||||||
|
|
||||||
blockParams := prototypes.BlockParams{
|
blockParams := abci.BlockParams{
|
||||||
MaxGas: 100,
|
MaxGas: 100,
|
||||||
MaxBytes: 10,
|
MaxBytes: 10,
|
||||||
}
|
}
|
||||||
consParams := prototypes.ConsensusParams{Block: &blockParams}
|
consParams := abci.ConsensusParams{Block: &blockParams}
|
||||||
suite.ctx = suite.ctx.WithConsensusParams(&consParams)
|
suite.ctx = suite.ctx.WithConsensusParams(&consParams)
|
||||||
|
|
||||||
params := suite.app.FeeMarketKeeper.GetParams(suite.ctx)
|
params := suite.app.FeeMarketKeeper.GetParams(suite.ctx)
|
||||||
|
Loading…
Reference in New Issue
Block a user