Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions ante/fee.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ import (
oracletypes "github.com/umee-network/umee/v4/x/oracle/types"
)

// MaxMsgGasUsage defines the maximum gas allowed for an oracle transaction.
const MaxMsgGasUsage = uint64(140_000)
// MaxOracleGasUsage defines the maximum gas allowed for an oracle transaction.
const MaxOracleGasUsage = uint64(140_000)

// FeeAndPriority ensures tx has enough fee coins to pay for the gas at the CheckTx time
// to early remove transactions from the mempool without enough attached fee.
Expand All @@ -30,7 +30,7 @@ func FeeAndPriority(ctx sdk.Context, tx sdk.Tx) (sdk.Coins, int64, error) {
msgs := feeTx.GetMsgs()
isOracleOrGravity := IsOracleOrGravityTx(msgs)
priority := getTxPriority(isOracleOrGravity, msgs)
chargeFees := !isOracleOrGravity || gasLimit > uint64(len(msgs))*MaxMsgGasUsage
chargeFees := !isOracleOrGravity || gasLimit > uint64(len(msgs))*MaxOracleGasUsage
// we also don't charge transaction fees for the first block, for the genesis transactions.
if !chargeFees || ctx.BlockHeight() == 0 {
return sdk.Coins{}, priority, nil
Expand Down
14 changes: 14 additions & 0 deletions proto/umee/ugov/v1/events.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
syntax = "proto3";
package umee.ugov.v1;

import "gogoproto/gogo.proto";
import "cosmos/base/v1beta1/coin.proto";

option go_package = "github.com/umee-network/umee/v4/x/ugov";
option (gogoproto.goproto_getters_all) = false;

// EventMinTxFees is emitted when MsgGovUpdateMinFees is correctly executed.
message EventMinTxFees {
repeated cosmos.base.v1beta1.Coin min_tx_fees = 1
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
}
14 changes: 14 additions & 0 deletions proto/umee/ugov/v1/genesis.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
syntax = "proto3";
package umee.ugov.v1;

import "gogoproto/gogo.proto";
import "cosmos/base/v1beta1/coin.proto";

option go_package = "github.com/umee-network/umee/v4/x/ugov";
option (gogoproto.goproto_getters_all) = false;

// GenesisState of the ugov module.
message GenesisState {
repeated cosmos.base.v1beta1.Coin min_tx_fees = 1
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
}
27 changes: 27 additions & 0 deletions proto/umee/ugov/v1/query.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
syntax = "proto3";
package umee.ugov.v1;

import "google/api/annotations.proto";
import "gogoproto/gogo.proto";
import "cosmos/base/v1beta1/coin.proto";

option go_package = "github.com/umee-network/umee/v4/x/ugov";

option (gogoproto.goproto_getters_all) = false;

// Query defines the gRPC querier service.
service Query {
// MinTxFees returns minimum transaction fees.
rpc MinTxFees(QueryMinTxFees) returns (QueryMinTxFeesResponse) {
option (google.api.http).get = "/umee/ugov/v1/min-tx-fees";
}
}

// QueryMinTxFees is a request type.
message QueryMinTxFees {}

// QueryMinTxFeesResponse response type.
message QueryMinTxFeesResponse {
repeated cosmos.base.v1beta1.Coin min_tx_fees = 1
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
}
30 changes: 30 additions & 0 deletions proto/umee/ugov/v1/tx.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
syntax = "proto3";
package umee.ugov.v1;

import "cosmos/base/v1beta1/coin.proto";
import "cosmos/msg/v1/msg.proto";
import "cosmos_proto/cosmos.proto";
import "gogoproto/gogo.proto";

option go_package = "github.com/umee-network/umee/v4/x/ugov";

option (gogoproto.goproto_getters_all) = false;

// Msg defines the x/ugov module's Msg service.
service Msg {
// GovUpdateMinFees sets protocol controlled tx min fees.
rpc GovUpdateMinFees(MsgGovUpdateMinFees) returns (MsgGovUpdateMinFeesResponse);
}

// MsgGovUpdateMinFees is a request type for the Msg/GovUpdateMinFees.
message MsgGovUpdateMinFees {
option (cosmos.msg.v1.signer) = "authority";

// authority must be the address of the governance account.
string authority = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
repeated cosmos.base.v1beta1.Coin min_tx_fees = 2
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
}

// MsgGovUpdateMinFeesResponse is a response type for the Msg/GovUpdateMinFees.
message MsgGovUpdateMinFeesResponse {};
Loading