Documentation ¶
Index ¶
- Constants
- Variables
- func ConsumeMultisignatureVerificationGas(meter sdk.GasMeter, sig *signing.MultiSignatureData, pubkey multisig.PubKey, ...) error
- func GenesisStateWithValSet(app *Evmos, genesisState simapp.GenesisState, valSet *tmtypes.ValidatorSet, ...) simapp.GenesisState
- func GetMaccPerms() map[string][]string
- func NewDefaultGenesisState() simapp.GenesisState
- func ObservabilityViews() (views []*view.View)
- func RegisterSwaggerAPI(_ client.Context, rtr *mux.Router)
- func SetupTestingApp() (ibctesting.TestingApp, map[string]json.RawMessage)
- func SigVerificationGasConsumer(meter sdk.GasMeter, sig signing.SignatureV2, params authtypes.Params) error
- type Evmos
- func (app *Evmos) AppCodec() codec.Codec
- func (app *Evmos) BeginBlocker(ctx sdk.Context, req abci.RequestBeginBlock) abci.ResponseBeginBlock
- func (app *Evmos) BlockedAddrs() map[string]bool
- func (app *Evmos) DeliverTx(req abci.RequestDeliverTx) (res abci.ResponseDeliverTx)
- func (app *Evmos) EndBlocker(ctx sdk.Context, req abci.RequestEndBlock) abci.ResponseEndBlock
- func (app *Evmos) ExportAppStateAndValidators(forZeroHeight bool, jailAllowedAddrs []string) (servertypes.ExportedApp, error)
- func (app *Evmos) GetBaseApp() *baseapp.BaseApp
- func (app *Evmos) GetIBCKeeper() *ibckeeper.Keeper
- func (app *Evmos) GetKey(storeKey string) *storetypes.KVStoreKey
- func (app *Evmos) GetMemKey(storeKey string) *storetypes.MemoryStoreKey
- func (app *Evmos) GetScopedIBCKeeper() capabilitykeeper.ScopedKeeper
- func (app *Evmos) GetStakingKeeper() ibctestingtypes.StakingKeeper
- func (app *Evmos) GetStakingKeeperSDK() stakingkeeper.Keeper
- func (app *Evmos) GetSubspace(moduleName string) paramstypes.Subspace
- func (app *Evmos) GetTKey(storeKey string) *storetypes.TransientStoreKey
- func (app *Evmos) GetTxConfig() client.TxConfig
- func (app *Evmos) InitChainer(ctx sdk.Context, req abci.RequestInitChain) abci.ResponseInitChain
- func (app *Evmos) InterfaceRegistry() types.InterfaceRegistry
- func (app *Evmos) LegacyAmino() *codec.LegacyAmino
- func (app *Evmos) LoadHeight(height int64) error
- func (app *Evmos) ModuleAccountAddrs() map[string]bool
- func (app *Evmos) Name() string
- func (app *Evmos) RegisterAPIRoutes(apiSvr *api.Server, apiConfig config.APIConfig)
- func (app *Evmos) RegisterNodeService(clientCtx client.Context)
- func (app *Evmos) RegisterTendermintService(clientCtx client.Context)
- func (app *Evmos) RegisterTxService(clientCtx client.Context)
- func (app *Evmos) ScheduleForkUpgrade(ctx sdk.Context)
Constants ¶
const Name = "evmosd"
Name defines the application binary name
Variables ¶
var ( // DefaultNodeHome default home directories for the application daemon DefaultNodeHome string // ModuleBasics defines the module BasicManager is in charge of setting up basic, // non-dependant module elements, such as codec registration // and genesis verification. ModuleBasics = module.NewBasicManager( auth.AppModuleBasic{}, genutil.AppModuleBasic{}, bank.AppModuleBasic{}, capability.AppModuleBasic{}, staking.AppModuleBasic{}, distr.AppModuleBasic{}, gov.NewAppModuleBasic( []govclient.ProposalHandler{ paramsclient.ProposalHandler, distrclient.ProposalHandler, upgradeclient.LegacyProposalHandler, upgradeclient.LegacyCancelProposalHandler, ibcclientclient.UpdateClientProposalHandler, ibcclientclient.UpgradeProposalHandler, erc20client.RegisterCoinProposalHandler, erc20client.RegisterERC20ProposalHandler, erc20client.ToggleTokenConversionProposalHandler, incentivesclient.RegisterIncentiveProposalHandler, incentivesclient.CancelIncentiveProposalHandler, }, ), params.AppModuleBasic{}, crisis.AppModuleBasic{}, slashing.AppModuleBasic{}, ibc.AppModuleBasic{}, authzmodule.AppModuleBasic{}, feegrantmodule.AppModuleBasic{}, upgrade.AppModuleBasic{}, evidence.AppModuleBasic{}, transfer.AppModuleBasic{AppModuleBasic: &ibctransfer.AppModuleBasic{}}, vesting.AppModuleBasic{}, evm.AppModuleBasic{}, feemarket.AppModuleBasic{}, inflation.AppModuleBasic{}, erc20.AppModuleBasic{}, incentives.AppModuleBasic{}, epochs.AppModuleBasic{}, claims.AppModuleBasic{}, recovery.AppModuleBasic{}, revenue.AppModuleBasic{}, ) )
var ( // MainnetMinGasPrices defines 20B aevmos (or atevmos) as the minimum gas price value on the fee market module. // See https://commonwealth.im/evmos/discussion/5073-global-min-gas-price-value-for-cosmos-sdk-and-evm-transaction-choosing-a-value for reference MainnetMinGasPrices = sdk.NewDec(20_000_000_000) // MainnetMinGasMultiplier defines the min gas multiplier value on the fee market module. // 50% of the leftover gas will be refunded MainnetMinGasMultiplier = sdk.NewDecWithPrec(5, 1) )
var DefaultConsensusParams = &abci.ConsensusParams{ Block: &abci.BlockParams{ MaxBytes: 200000, MaxGas: -1, }, Evidence: &tmproto.EvidenceParams{ MaxAgeNumBlocks: 302400, MaxAgeDuration: 504 * time.Hour, MaxBytes: 10000, }, Validator: &tmproto.ValidatorParams{ PubKeyTypes: []string{ tmtypes.ABCIPubKeyTypeEd25519, }, }, }
DefaultConsensusParams defines the default Tendermint consensus params used in Evmos testing.
var DefaultTestingAppInit func() (ibctesting.TestingApp, map[string]json.RawMessage) = SetupTestingApp
DefaultTestingAppInit defines the IBC application used for testing
Functions ¶
func ConsumeMultisignatureVerificationGas ¶
func ConsumeMultisignatureVerificationGas( meter sdk.GasMeter, sig *signing.MultiSignatureData, pubkey multisig.PubKey, params authtypes.Params, accSeq uint64, ) error
ConsumeMultisignatureVerificationGas consumes gas from a GasMeter for verifying a multisig pubkey signature
func GenesisStateWithValSet ¶
func GenesisStateWithValSet(app *Evmos, genesisState simapp.GenesisState, valSet *tmtypes.ValidatorSet, genAccs []authtypes.GenesisAccount, balances ...banktypes.Balance, ) simapp.GenesisState
func GetMaccPerms ¶
GetMaccPerms returns a copy of the module account permissions
func NewDefaultGenesisState ¶
func NewDefaultGenesisState() simapp.GenesisState
NewDefaultGenesisState generates the default state for the application.
func ObservabilityViews ¶
func RegisterSwaggerAPI ¶
RegisterSwaggerAPI registers swagger route with API Server
func SetupTestingApp ¶
func SetupTestingApp() (ibctesting.TestingApp, map[string]json.RawMessage)
SetupTestingApp initializes the IBC-go testing application
func SigVerificationGasConsumer ¶
func SigVerificationGasConsumer( meter sdk.GasMeter, sig signing.SignatureV2, params authtypes.Params, ) error
SigVerificationGasConsumer is the Evmos implementation of SignatureVerificationGasConsumer. It consumes gas for signature verification based upon the public key type. The cost is fetched from the given params and is matched by the concrete type. The types of keys supported are:
- ethsecp256k1 (Ethereum keys)
- ed25519 (Validators)
- multisig (Cosmos SDK multisigs)
Types ¶
type Evmos ¶
type Evmos struct { *baseapp.BaseApp // keepers AccountKeeper authkeeper.AccountKeeper BankKeeper bankkeeper.Keeper CapabilityKeeper *capabilitykeeper.Keeper StakingKeeper stakingkeeper.Keeper SlashingKeeper slashingkeeper.Keeper DistrKeeper distrkeeper.Keeper GovKeeper govkeeper.Keeper CrisisKeeper crisiskeeper.Keeper UpgradeKeeper upgradekeeper.Keeper ParamsKeeper paramskeeper.Keeper FeeGrantKeeper feegrantkeeper.Keeper AuthzKeeper authzkeeper.Keeper IBCKeeper *ibckeeper.Keeper // IBC Keeper must be a pointer in the app, so we can SetRouter on it correctly EvidenceKeeper evidencekeeper.Keeper TransferKeeper transferkeeper.Keeper // make scoped keepers public for test purposes ScopedIBCKeeper capabilitykeeper.ScopedKeeper ScopedTransferKeeper capabilitykeeper.ScopedKeeper // Ethermint keepers EvmKeeper *evmkeeper.Keeper FeeMarketKeeper feemarketkeeper.Keeper // Evmos keepers InflationKeeper inflationkeeper.Keeper ClaimsKeeper *claimskeeper.Keeper Erc20Keeper erc20keeper.Keeper IncentivesKeeper incentiveskeeper.Keeper EpochsKeeper epochskeeper.Keeper VestingKeeper vestingkeeper.Keeper RecoveryKeeper *recoverykeeper.Keeper RevenueKeeper revenuekeeper.Keeper // contains filtered or unexported fields }
Evmos implements an extended ABCI application. It is an application that may process transactions through Ethereum's EVM running atop of Tendermint consensus.
func NewEvmos ¶
func NewEvmos( logger log.Logger, db dbm.DB, traceStore io.Writer, loadLatest bool, skipUpgradeHeights map[int64]bool, homePath string, invCheckPeriod uint, encodingConfig simappparams.EncodingConfig, appOpts servertypes.AppOptions, baseAppOptions ...func(*baseapp.BaseApp), ) *Evmos
NewEvmos returns a reference to a new initialized Ethermint application.
func Setup ¶
func Setup( isCheckTx bool, feemarketGenesis *feemarkettypes.GenesisState, ) *Evmos
Setup initializes a new Evmos. A Nop logger is set in Evmos.
func (*Evmos) AppCodec ¶
AppCodec returns Evmos's app codec.
NOTE: This is solely to be used for testing purposes as it may be desirable for modules to register their own custom testing types.
func (*Evmos) BeginBlocker ¶
func (app *Evmos) BeginBlocker(ctx sdk.Context, req abci.RequestBeginBlock) abci.ResponseBeginBlock
BeginBlocker runs the Tendermint ABCI BeginBlock logic. It executes state changes at the beginning of the new block for every registered module. If there is a registered fork at the current height, BeginBlocker will schedule the upgrade plan and perform the state migration (if any).
func (*Evmos) BlockedAddrs ¶
BlockedAddrs returns all the app's module account addresses that are not allowed to receive external tokens.
func (*Evmos) DeliverTx ¶
func (app *Evmos) DeliverTx(req abci.RequestDeliverTx) (res abci.ResponseDeliverTx)
We are intentionally decomposing the DeliverTx method so as to calculate the transactions per second.
func (*Evmos) EndBlocker ¶
func (app *Evmos) EndBlocker(ctx sdk.Context, req abci.RequestEndBlock) abci.ResponseEndBlock
EndBlocker updates every end block
func (*Evmos) ExportAppStateAndValidators ¶
func (app *Evmos) ExportAppStateAndValidators( forZeroHeight bool, jailAllowedAddrs []string, ) (servertypes.ExportedApp, error)
ExportAppStateAndValidators exports the state of the application for a genesis file.
func (*Evmos) GetBaseApp ¶
GetBaseApp implements the TestingApp interface.
func (*Evmos) GetIBCKeeper ¶
GetIBCKeeper implements the TestingApp interface.
func (*Evmos) GetKey ¶
func (app *Evmos) GetKey(storeKey string) *storetypes.KVStoreKey
GetKey returns the KVStoreKey for the provided store key.
NOTE: This is solely to be used for testing purposes.
func (*Evmos) GetMemKey ¶
func (app *Evmos) GetMemKey(storeKey string) *storetypes.MemoryStoreKey
GetMemKey returns the MemStoreKey for the provided mem key.
NOTE: This is solely used for testing purposes.
func (*Evmos) GetScopedIBCKeeper ¶
func (app *Evmos) GetScopedIBCKeeper() capabilitykeeper.ScopedKeeper
GetScopedIBCKeeper implements the TestingApp interface.
func (*Evmos) GetStakingKeeper ¶
func (app *Evmos) GetStakingKeeper() ibctestingtypes.StakingKeeper
GetStakingKeeper implements the TestingApp interface.
func (*Evmos) GetStakingKeeperSDK ¶
func (app *Evmos) GetStakingKeeperSDK() stakingkeeper.Keeper
GetStakingKeeper implements the TestingApp interface.
func (*Evmos) GetSubspace ¶
func (app *Evmos) GetSubspace(moduleName string) paramstypes.Subspace
GetSubspace returns a param subspace for a given module name.
NOTE: This is solely to be used for testing purposes.
func (*Evmos) GetTKey ¶
func (app *Evmos) GetTKey(storeKey string) *storetypes.TransientStoreKey
GetTKey returns the TransientStoreKey for the provided store key.
NOTE: This is solely to be used for testing purposes.
func (*Evmos) GetTxConfig ¶
GetTxConfig implements the TestingApp interface.
func (*Evmos) InitChainer ¶
func (app *Evmos) InitChainer(ctx sdk.Context, req abci.RequestInitChain) abci.ResponseInitChain
InitChainer updates at chain initialization
func (*Evmos) InterfaceRegistry ¶
func (app *Evmos) InterfaceRegistry() types.InterfaceRegistry
InterfaceRegistry returns Evmos's InterfaceRegistry
func (*Evmos) LegacyAmino ¶
func (app *Evmos) LegacyAmino() *codec.LegacyAmino
LegacyAmino returns Evmos's amino codec.
NOTE: This is solely to be used for testing purposes as it may be desirable for modules to register their own custom testing types.
func (*Evmos) LoadHeight ¶
LoadHeight loads state at a particular height
func (*Evmos) ModuleAccountAddrs ¶
ModuleAccountAddrs returns all the app's module account addresses.
func (*Evmos) RegisterAPIRoutes ¶
RegisterAPIRoutes registers all application module routes with the provided API server.
func (*Evmos) RegisterNodeService ¶
RegisterNodeService registers the node gRPC service on the provided application gRPC query router.
func (*Evmos) RegisterTendermintService ¶
RegisterTendermintService implements the Application.RegisterTendermintService method.
func (*Evmos) RegisterTxService ¶
func (*Evmos) ScheduleForkUpgrade ¶
ScheduleForkUpgrade executes any necessary fork logic for based upon the current block height and chain ID (mainnet or testnet). It sets an upgrade plan once the chain reaches the pre-defined upgrade height.
CONTRACT: for this logic to work properly it is required to:
- Release a non-breaking patch version so that the chain can set the scheduled upgrade plan at upgrade-height.
- Release the software defined in the upgrade-info
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package ante defines the SDK auth module's AnteHandler as well as an internal AnteHandler for an Ethereum transaction (i.e MsgEthereumTx).
|
Package ante defines the SDK auth module's AnteHandler as well as an internal AnteHandler for an Ethereum transaction (i.e MsgEthereumTx). |
upgrades
|
|