Documentation ¶
Index ¶
- Constants
- func EnsureSufficientMempoolFees(ctx sdk.Context, gas uint64, feeCoins sdk.Coins, taxes sdk.Coins) error
- func FilterMsgAndComputeTax(ctx sdk.Context, tk TreasuryKeeper, msgs []sdk.Msg) sdk.Coins
- func NewAnteHandler(ak keeper.AccountKeeper, supplyKeeper types.SupplyKeeper, ...) sdk.AnteHandler
- type FeeTx
- type OracleKeeper
- type SpammingPreventionDecorator
- type TaxFeeDecorator
- type TreasuryKeeper
Constants ¶
const FlagTxGasHardLimit = "tx-gas-hard-limit"
FlagTxGasHardLimit defines the hard cap to prevent tx spamming attack
Variables ¶
This section is empty.
Functions ¶
func EnsureSufficientMempoolFees ¶
func EnsureSufficientMempoolFees(ctx sdk.Context, gas uint64, feeCoins sdk.Coins, taxes sdk.Coins) error
EnsureSufficientMempoolFees verifies that the given transaction has supplied enough fees(gas + stability) to cover a proposer's minimum fees. A result object is returned indicating success or failure.
Contract: This should only be called during CheckTx as it cannot be part of consensus.
func FilterMsgAndComputeTax ¶
FilterMsgAndComputeTax computes the stability tax on MsgSend and MsgMultiSend.
func NewAnteHandler ¶
func NewAnteHandler( ak keeper.AccountKeeper, supplyKeeper types.SupplyKeeper, oracleKeeper OracleKeeper, treasuryKeeper TreasuryKeeper, sigGasConsumer cosmosante.SignatureVerificationGasConsumer) sdk.AnteHandler
NewAnteHandler returns an AnteHandler that checks and increments sequence numbers, checks signatures & account numbers, and deducts fees from the first signer.
Types ¶
type OracleKeeper ¶ added in v0.4.5
type OracleKeeper interface {
ValidateFeeder(ctx sdk.Context, feederAddr sdk.AccAddress, validatorAddr sdk.ValAddress, checkBonded bool) error
}
OracleKeeper for feeder validation
type SpammingPreventionDecorator ¶ added in v0.4.3
type SpammingPreventionDecorator struct {
// contains filtered or unexported fields
}
SpammingPreventionDecorator will check if the transaction's gas is smaller than configured hard cap
func NewSpammingPreventionDecorator ¶ added in v0.4.3
func NewSpammingPreventionDecorator(oracleKeeper OracleKeeper) SpammingPreventionDecorator
NewSpammingPreventionDecorator returns new spamming prevention decorator instance
func (SpammingPreventionDecorator) AnteHandle ¶ added in v0.4.3
func (spd SpammingPreventionDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate bool, next sdk.AnteHandler) (newCtx sdk.Context, err error)
AnteHandle handles msg tax fee checking
func (SpammingPreventionDecorator) CheckOracleSpamming ¶ added in v0.4.5
CheckOracleSpamming check whether the msgs are spamming purpose or not
type TaxFeeDecorator ¶
type TaxFeeDecorator struct {
// contains filtered or unexported fields
}
TaxFeeDecorator will check if the transaction's fee is at least as large as tax + the local validator's minimum gasFee (defined in validator config) and record tax proceeds to treasury module to track tax proceeds. If fee is too low, decorator returns error and tx is rejected from mempool. Note this only applies when ctx.CheckTx = true If fee is high enough or not CheckTx, then call next AnteHandler CONTRACT: Tx must implement FeeTx to use MempoolFeeDecorator
func NewTaxFeeDecorator ¶
func NewTaxFeeDecorator(treasuryKeeper TreasuryKeeper) TaxFeeDecorator
NewTaxFeeDecorator returns new tax fee decorator instance
func (TaxFeeDecorator) AnteHandle ¶
func (tfd TaxFeeDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate bool, next sdk.AnteHandler) (newCtx sdk.Context, err error)
AnteHandle handles msg tax fee checking