refactor: remove min-buy-in param (#135)
Co-authored-by: David Terpay <35130517+davidterpay@users.noreply.github.com>
This commit is contained in:
parent
1de8de75c1
commit
7db24f2c29
@ -186,6 +186,8 @@ $ go install github.com/skip-mev/pob
|
||||
}
|
||||
```
|
||||
|
||||
## Params
|
||||
|
||||
Note, before building or upgrading the application, make sure to initialize the
|
||||
escrow address for POB in the parameters of the module. The default parameters
|
||||
do not initialize an escrow address as that should be determined by governance.
|
||||
|
||||
@ -244,7 +244,6 @@ func (suite *ABCITestSuite) TestGetBidsFromVoteExtensions() {
|
||||
func (suite *ABCITestSuite) TestBuildTOB() {
|
||||
params := buildertypes.Params{
|
||||
MaxBundleSize: 4,
|
||||
MinBuyInFee: sdk.NewCoin("foo", sdk.NewInt(100)),
|
||||
ReserveFee: sdk.NewCoin("foo", sdk.NewInt(100)),
|
||||
MinBidIncrement: sdk.NewCoin("foo", sdk.NewInt(100)),
|
||||
FrontRunningProtection: true,
|
||||
|
||||
@ -24,7 +24,6 @@ func (suite *ABCITestSuite) TestPrepareProposal() {
|
||||
// auction configuration
|
||||
maxBundleSize uint32 = 10
|
||||
reserveFee = sdk.NewCoin("foo", sdk.NewInt(1000))
|
||||
minBuyInFee = sdk.NewCoin("foo", sdk.NewInt(1000))
|
||||
frontRunningProtection = true
|
||||
)
|
||||
|
||||
@ -292,7 +291,6 @@ func (suite *ABCITestSuite) TestPrepareProposal() {
|
||||
params := buildertypes.Params{
|
||||
MaxBundleSize: maxBundleSize,
|
||||
ReserveFee: reserveFee,
|
||||
MinBuyInFee: minBuyInFee,
|
||||
FrontRunningProtection: frontRunningProtection,
|
||||
MinBidIncrement: suite.minBidIncrement,
|
||||
}
|
||||
@ -362,7 +360,6 @@ func (suite *ABCITestSuite) TestProcessProposal() {
|
||||
// auction set up
|
||||
maxBundleSize uint32 = 10
|
||||
reserveFee = sdk.NewCoin("foo", sdk.NewInt(1000))
|
||||
minBuyInFee = sdk.NewCoin("foo", sdk.NewInt(1000))
|
||||
)
|
||||
|
||||
cases := []struct {
|
||||
@ -747,7 +744,6 @@ func (suite *ABCITestSuite) TestProcessProposal() {
|
||||
params := buildertypes.Params{
|
||||
MaxBundleSize: maxBundleSize,
|
||||
ReserveFee: reserveFee,
|
||||
MinBuyInFee: minBuyInFee,
|
||||
FrontRunningProtection: true,
|
||||
MinBidIncrement: suite.minBidIncrement,
|
||||
}
|
||||
|
||||
@ -12,7 +12,6 @@ func (suite *ABCITestSuite) TestExtendVoteExtensionHandler() {
|
||||
params := types.Params{
|
||||
MaxBundleSize: 5,
|
||||
ReserveFee: sdk.NewCoin("foo", sdk.NewInt(10)),
|
||||
MinBuyInFee: sdk.NewCoin("foo", sdk.NewInt(10)),
|
||||
FrontRunningProtection: true,
|
||||
MinBidIncrement: suite.minBidIncrement,
|
||||
}
|
||||
@ -148,7 +147,6 @@ func (suite *ABCITestSuite) TestVerifyVoteExtensionHandler() {
|
||||
params := types.Params{
|
||||
MaxBundleSize: 5,
|
||||
ReserveFee: sdk.NewCoin("foo", sdk.NewInt(100)),
|
||||
MinBuyInFee: sdk.NewCoin("foo", sdk.NewInt(100)),
|
||||
FrontRunningProtection: true,
|
||||
MinBidIncrement: sdk.NewCoin("foo", sdk.NewInt(10)), // can't be tested atm
|
||||
}
|
||||
|
||||
@ -8,7 +8,9 @@ import "amino/amino.proto";
|
||||
option go_package = "github.com/skip-mev/pob/x/builder/types";
|
||||
|
||||
// GenesisState defines the genesis state of the x/builder module.
|
||||
message GenesisState { Params params = 1 [ (gogoproto.nullable) = false ]; }
|
||||
message GenesisState {
|
||||
Params params = 1 [(gogoproto.nullable) = false];
|
||||
}
|
||||
|
||||
// Params defines the parameters of the x/builder module.
|
||||
message Params {
|
||||
@ -24,26 +26,21 @@ message Params {
|
||||
|
||||
// reserve_fee specifies the bid floor for the auction.
|
||||
cosmos.base.v1beta1.Coin reserve_fee = 3
|
||||
[ (gogoproto.nullable) = false, (amino.dont_omitempty) = true ];
|
||||
|
||||
// min_buy_in_fee specifies the fee that the bidder must pay to enter the
|
||||
// auction.
|
||||
cosmos.base.v1beta1.Coin min_buy_in_fee = 4
|
||||
[ (gogoproto.nullable) = false, (amino.dont_omitempty) = true ];
|
||||
[(gogoproto.nullable) = false, (amino.dont_omitempty) = true];
|
||||
|
||||
// min_bid_increment specifies the minimum amount that the next bid must be
|
||||
// greater than the previous bid.
|
||||
cosmos.base.v1beta1.Coin min_bid_increment = 5
|
||||
[ (gogoproto.nullable) = false, (amino.dont_omitempty) = true ];
|
||||
cosmos.base.v1beta1.Coin min_bid_increment = 4
|
||||
[(gogoproto.nullable) = false, (amino.dont_omitempty) = true];
|
||||
|
||||
// front_running_protection specifies whether front running and sandwich
|
||||
// attack protection is enabled.
|
||||
bool front_running_protection = 6;
|
||||
bool front_running_protection = 5;
|
||||
|
||||
// proposer_fee defines the portion of the winning bid that goes to the block
|
||||
// proposer that proposed the block.
|
||||
string proposer_fee = 7 [
|
||||
(gogoproto.nullable) = false,
|
||||
string proposer_fee = 6 [
|
||||
(gogoproto.nullable) = false,
|
||||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec"
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@ -112,7 +112,6 @@ func (s *IntegrationTestSuite) initNodes() {
|
||||
MaxBundleSize: 5,
|
||||
EscrowAccountAddress: "cosmos14j5j2lsx7629590jvpk3vj0xe9w8203jf4yknk",
|
||||
ReserveFee: sdk.NewCoin(app.BondDenom, sdk.NewInt(1000000)),
|
||||
MinBuyInFee: sdk.NewCoin(app.BondDenom, sdk.NewInt(1000000)),
|
||||
MinBidIncrement: sdk.NewCoin(app.BondDenom, sdk.NewInt(1000000)),
|
||||
ProposerFee: sdk.NewDecWithPrec(1, 2),
|
||||
}
|
||||
|
||||
@ -97,7 +97,6 @@ func (suite *AnteTestSuite) TestAnteHandler() {
|
||||
// Auction setup
|
||||
maxBundleSize uint32 = 5
|
||||
reserveFee = sdk.NewCoin("foo", sdk.NewInt(100))
|
||||
minBuyInFee = sdk.NewCoin("foo", sdk.NewInt(100))
|
||||
minBidIncrement = sdk.NewCoin("foo", sdk.NewInt(100))
|
||||
frontRunningProtection = true
|
||||
)
|
||||
@ -139,23 +138,12 @@ func (suite *AnteTestSuite) TestAnteHandler() {
|
||||
},
|
||||
false,
|
||||
},
|
||||
{
|
||||
"bid is greater than reserve fee but has insufficient balance to pay the buy in fee",
|
||||
func() {
|
||||
balance = sdk.NewCoins(sdk.NewCoin("foo", sdk.NewInt(1000)))
|
||||
bid = sdk.NewCoin("foo", sdk.NewInt(101))
|
||||
reserveFee = sdk.NewCoin("foo", sdk.NewInt(100))
|
||||
minBuyInFee = sdk.NewCoin("foo", sdk.NewInt(1000))
|
||||
},
|
||||
false,
|
||||
},
|
||||
{
|
||||
"valid auction bid tx",
|
||||
func() {
|
||||
balance = sdk.NewCoins(sdk.NewCoin("foo", sdk.NewInt(10000)))
|
||||
bid = sdk.NewCoin("foo", sdk.NewInt(1000))
|
||||
reserveFee = sdk.NewCoin("foo", sdk.NewInt(100))
|
||||
minBuyInFee = sdk.NewCoin("foo", sdk.NewInt(100))
|
||||
},
|
||||
true,
|
||||
},
|
||||
@ -173,7 +161,6 @@ func (suite *AnteTestSuite) TestAnteHandler() {
|
||||
balance = sdk.NewCoins(sdk.NewCoin("foo", sdk.NewInt(10000)))
|
||||
bid = sdk.NewCoin("foo", sdk.NewInt(1000))
|
||||
reserveFee = sdk.NewCoin("foo", sdk.NewInt(100))
|
||||
minBuyInFee = sdk.NewCoin("foo", sdk.NewInt(100))
|
||||
|
||||
insertTopBid = true
|
||||
topBidder = bidder
|
||||
@ -239,7 +226,6 @@ func (suite *AnteTestSuite) TestAnteHandler() {
|
||||
err := suite.builderKeeper.SetParams(suite.ctx, buildertypes.Params{
|
||||
MaxBundleSize: maxBundleSize,
|
||||
ReserveFee: reserveFee,
|
||||
MinBuyInFee: minBuyInFee,
|
||||
MinBidIncrement: minBidIncrement,
|
||||
FrontRunningProtection: frontRunningProtection,
|
||||
})
|
||||
|
||||
@ -75,17 +75,10 @@ func (k Keeper) ValidateAuctionBid(ctx sdk.Context, bidder sdk.AccAddress, bid,
|
||||
}
|
||||
}
|
||||
|
||||
// Get the pay-to-play fee.
|
||||
minBuyInFee, err := k.GetMinBuyInFee(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Ensure the bidder has enough funds to cover all the inclusion fees.
|
||||
minBalance := bid.Add(minBuyInFee)
|
||||
// ensure the bidder has enough funds to cover all the inclusion fees
|
||||
balances := k.bankKeeper.GetAllBalances(ctx, bidder)
|
||||
if !balances.IsAllGTE(sdk.NewCoins(minBalance)) {
|
||||
return fmt.Errorf("insufficient funds to bid %s (reserve fee + bid) with balance %s", minBalance, balances)
|
||||
if !balances.IsAllGTE(sdk.NewCoins(bid)) {
|
||||
return fmt.Errorf("insufficient funds to bid %s with balance %s", bid, balances)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
||||
@ -21,7 +21,6 @@ func (suite *KeeperTestSuite) TestValidateBidInfo() {
|
||||
// Auction params
|
||||
maxBundleSize uint32 = 10
|
||||
reserveFee = sdk.NewCoin("foo", sdk.NewInt(1000))
|
||||
minBuyInFee = sdk.NewCoin("foo", sdk.NewInt(1000))
|
||||
minBidIncrement = sdk.NewCoin("foo", sdk.NewInt(1000))
|
||||
escrowAddress = sdk.AccAddress([]byte("escrow"))
|
||||
frontRunningProtection = true
|
||||
@ -53,14 +52,6 @@ func (suite *KeeperTestSuite) TestValidateBidInfo() {
|
||||
},
|
||||
false,
|
||||
},
|
||||
{
|
||||
"bid amount equals the balance (not accounting for the reserve fee)",
|
||||
func() {
|
||||
balance = sdk.NewCoins(sdk.NewCoin("foo", sdk.NewInt(2000)))
|
||||
bid = sdk.NewCoin("foo", sdk.NewInt(2000))
|
||||
},
|
||||
false,
|
||||
},
|
||||
{
|
||||
"too many transactions in the bundle",
|
||||
func() {
|
||||
@ -174,7 +165,6 @@ func (suite *KeeperTestSuite) TestValidateBidInfo() {
|
||||
params := buildertypes.Params{
|
||||
MaxBundleSize: maxBundleSize,
|
||||
ReserveFee: reserveFee,
|
||||
MinBuyInFee: minBuyInFee,
|
||||
EscrowAccountAddress: escrowAddress.String(),
|
||||
FrontRunningProtection: frontRunningProtection,
|
||||
MinBidIncrement: minBidIncrement,
|
||||
|
||||
@ -131,16 +131,6 @@ func (k Keeper) GetReserveFee(ctx sdk.Context) (sdk.Coin, error) {
|
||||
return params.ReserveFee, nil
|
||||
}
|
||||
|
||||
// GetMinBuyInFee returns the fee that the bidder must pay to enter the builder.
|
||||
func (k Keeper) GetMinBuyInFee(ctx sdk.Context) (sdk.Coin, error) {
|
||||
params, err := k.GetParams(ctx)
|
||||
if err != nil {
|
||||
return sdk.Coin{}, err
|
||||
}
|
||||
|
||||
return params.MinBuyInFee, nil
|
||||
}
|
||||
|
||||
// GetMinBidIncrement returns the minimum bid increment for the builder.
|
||||
func (k Keeper) GetMinBidIncrement(ctx sdk.Context) (sdk.Coin, error) {
|
||||
params, err := k.GetParams(ctx)
|
||||
|
||||
@ -164,7 +164,6 @@ func (suite *KeeperTestSuite) TestMsgUpdateParams() {
|
||||
ProposerFee: sdk.MustNewDecFromStr("0.1"),
|
||||
MaxBundleSize: 2,
|
||||
EscrowAccountAddress: suite.authorityAccount.String(),
|
||||
MinBuyInFee: sdk.NewInt64Coin("foo", 100),
|
||||
MinBidIncrement: sdk.NewInt64Coin("foo", 100),
|
||||
ReserveFee: sdk.NewInt64Coin("foo", 100),
|
||||
},
|
||||
|
||||
@ -81,18 +81,15 @@ type Params struct {
|
||||
EscrowAccountAddress string `protobuf:"bytes,2,opt,name=escrow_account_address,json=escrowAccountAddress,proto3" json:"escrow_account_address,omitempty"`
|
||||
// reserve_fee specifies the bid floor for the auction.
|
||||
ReserveFee types.Coin `protobuf:"bytes,3,opt,name=reserve_fee,json=reserveFee,proto3" json:"reserve_fee"`
|
||||
// min_buy_in_fee specifies the fee that the bidder must pay to enter the
|
||||
// auction.
|
||||
MinBuyInFee types.Coin `protobuf:"bytes,4,opt,name=min_buy_in_fee,json=minBuyInFee,proto3" json:"min_buy_in_fee"`
|
||||
// min_bid_increment specifies the minimum amount that the next bid must be
|
||||
// greater than the previous bid.
|
||||
MinBidIncrement types.Coin `protobuf:"bytes,5,opt,name=min_bid_increment,json=minBidIncrement,proto3" json:"min_bid_increment"`
|
||||
MinBidIncrement types.Coin `protobuf:"bytes,4,opt,name=min_bid_increment,json=minBidIncrement,proto3" json:"min_bid_increment"`
|
||||
// front_running_protection specifies whether front running and sandwich
|
||||
// attack protection is enabled.
|
||||
FrontRunningProtection bool `protobuf:"varint,6,opt,name=front_running_protection,json=frontRunningProtection,proto3" json:"front_running_protection,omitempty"`
|
||||
FrontRunningProtection bool `protobuf:"varint,5,opt,name=front_running_protection,json=frontRunningProtection,proto3" json:"front_running_protection,omitempty"`
|
||||
// proposer_fee defines the portion of the winning bid that goes to the block
|
||||
// proposer that proposed the block.
|
||||
ProposerFee github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,7,opt,name=proposer_fee,json=proposerFee,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"proposer_fee"`
|
||||
ProposerFee github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,6,opt,name=proposer_fee,json=proposerFee,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"proposer_fee"`
|
||||
}
|
||||
|
||||
func (m *Params) Reset() { *m = Params{} }
|
||||
@ -149,13 +146,6 @@ func (m *Params) GetReserveFee() types.Coin {
|
||||
return types.Coin{}
|
||||
}
|
||||
|
||||
func (m *Params) GetMinBuyInFee() types.Coin {
|
||||
if m != nil {
|
||||
return m.MinBuyInFee
|
||||
}
|
||||
return types.Coin{}
|
||||
}
|
||||
|
||||
func (m *Params) GetMinBidIncrement() types.Coin {
|
||||
if m != nil {
|
||||
return m.MinBidIncrement
|
||||
@ -178,38 +168,37 @@ func init() {
|
||||
func init() { proto.RegisterFile("pob/builder/v1/genesis.proto", fileDescriptor_287f1bdff5ccfc33) }
|
||||
|
||||
var fileDescriptor_287f1bdff5ccfc33 = []byte{
|
||||
// 493 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x92, 0x4f, 0x6f, 0xd3, 0x30,
|
||||
0x18, 0x87, 0x1b, 0x36, 0x0a, 0x73, 0xf7, 0x47, 0x8b, 0xa6, 0x2a, 0x0c, 0x94, 0x55, 0x3b, 0x8c,
|
||||
0x6a, 0xd2, 0x6c, 0x15, 0x38, 0x20, 0x6e, 0x2d, 0x63, 0xa8, 0xb7, 0x92, 0xdd, 0xb8, 0x44, 0x4e,
|
||||
0xf2, 0xae, 0x58, 0x9b, 0xed, 0xc8, 0x76, 0x4a, 0xbb, 0x8f, 0xc0, 0x89, 0x8f, 0xc1, 0x71, 0x1f,
|
||||
0x63, 0xc7, 0x1d, 0x11, 0x87, 0x09, 0xb5, 0x87, 0x7d, 0x06, 0x6e, 0xc8, 0x76, 0x36, 0xc6, 0x71,
|
||||
0x97, 0x24, 0xf2, 0xf3, 0xfa, 0xf9, 0xf9, 0x8d, 0x5f, 0xf4, 0xa2, 0x94, 0x19, 0xc9, 0x2a, 0x76,
|
||||
0x56, 0x80, 0x22, 0x93, 0x1e, 0x19, 0x83, 0x00, 0xcd, 0x34, 0x2e, 0x95, 0x34, 0x32, 0x5c, 0x2f,
|
||||
0x65, 0x86, 0x6b, 0x8a, 0x27, 0xbd, 0xed, 0xad, 0xb1, 0x1c, 0x4b, 0x87, 0x88, 0xfd, 0xf2, 0x55,
|
||||
0xdb, 0x71, 0x2e, 0x35, 0x97, 0x9a, 0x64, 0x54, 0x03, 0x99, 0xf4, 0x32, 0x30, 0xb4, 0x47, 0x72,
|
||||
0xc9, 0x44, 0xcd, 0x37, 0x29, 0x67, 0x42, 0x12, 0xf7, 0xf4, 0x4b, 0xbb, 0x87, 0x68, 0xf5, 0xa3,
|
||||
0x4f, 0x3a, 0x36, 0xd4, 0x40, 0xf8, 0x06, 0x35, 0x4b, 0xaa, 0x28, 0xd7, 0x51, 0xd0, 0x09, 0xba,
|
||||
0xad, 0x57, 0x6d, 0xfc, 0x7f, 0x32, 0x1e, 0x39, 0x3a, 0x58, 0xbe, 0xbc, 0xde, 0x69, 0x24, 0x75,
|
||||
0xed, 0xee, 0x9f, 0x25, 0xd4, 0xf4, 0x20, 0xdc, 0x43, 0x1b, 0x9c, 0x4e, 0xd3, 0xac, 0x12, 0xc5,
|
||||
0x19, 0xa4, 0x9a, 0x9d, 0x83, 0x33, 0xad, 0x25, 0x6b, 0x9c, 0x4e, 0x07, 0x6e, 0xf5, 0x98, 0x9d,
|
||||
0xdb, 0xa0, 0x36, 0xe8, 0x5c, 0xc9, 0xaf, 0x29, 0xcd, 0x73, 0x59, 0x09, 0x93, 0xd2, 0xa2, 0x50,
|
||||
0xa0, 0x75, 0xf4, 0xa8, 0x13, 0x74, 0x57, 0x92, 0x2d, 0x4f, 0xfb, 0x1e, 0xf6, 0x3d, 0x0b, 0x3f,
|
||||
0xa0, 0x96, 0x02, 0x0d, 0x6a, 0x02, 0xe9, 0x09, 0x40, 0xb4, 0xe4, 0xce, 0xf8, 0x0c, 0xfb, 0xbe,
|
||||
0xb1, 0xed, 0x1b, 0xd7, 0x7d, 0xe3, 0xf7, 0x92, 0x89, 0xc1, 0x8a, 0x3d, 0xe6, 0x8f, 0x9b, 0x8b,
|
||||
0xfd, 0x20, 0x41, 0xf5, 0xc6, 0x23, 0x80, 0x70, 0x88, 0xd6, 0x39, 0x13, 0x69, 0x56, 0xcd, 0x52,
|
||||
0x26, 0x9c, 0x69, 0xf9, 0x01, 0xa6, 0x16, 0x67, 0x62, 0x50, 0xcd, 0x86, 0xc2, 0xaa, 0x46, 0x68,
|
||||
0xd3, 0xa9, 0x58, 0x91, 0x32, 0x91, 0x2b, 0xe0, 0x20, 0x4c, 0xf4, 0xf8, 0x01, 0xb6, 0x0d, 0x6b,
|
||||
0x63, 0xc5, 0xf0, 0x76, 0x73, 0xf8, 0x16, 0x45, 0x27, 0x4a, 0x0a, 0x93, 0xaa, 0x4a, 0x08, 0x26,
|
||||
0xc6, 0xa9, 0xbd, 0x29, 0xc8, 0x0d, 0x93, 0x22, 0x6a, 0x76, 0x82, 0xee, 0xd3, 0xa4, 0xed, 0x78,
|
||||
0xe2, 0xf1, 0xe8, 0x8e, 0x86, 0x9f, 0xd0, 0x6a, 0xa9, 0x64, 0x29, 0x35, 0x28, 0xd7, 0xd4, 0x13,
|
||||
0xfb, 0x27, 0x07, 0xd8, 0x66, 0xfd, 0xba, 0xde, 0xd9, 0x1b, 0x33, 0xf3, 0xa5, 0xca, 0x70, 0x2e,
|
||||
0x39, 0xa9, 0x07, 0xc5, 0xbf, 0x0e, 0x74, 0x71, 0x4a, 0xcc, 0xac, 0x04, 0x8d, 0x0f, 0x21, 0x4f,
|
||||
0x5a, 0xb7, 0x8e, 0x23, 0x80, 0x77, 0x9d, 0x6f, 0x37, 0x17, 0xfb, 0xcf, 0xef, 0xd5, 0x4d, 0xef,
|
||||
0x86, 0xb4, 0x9e, 0x84, 0xfe, 0xe5, 0x3c, 0x0e, 0xae, 0xe6, 0x71, 0xf0, 0x7b, 0x1e, 0x07, 0xdf,
|
||||
0x17, 0x71, 0xe3, 0x6a, 0x11, 0x37, 0x7e, 0x2e, 0xe2, 0xc6, 0xe7, 0x97, 0xf7, 0x02, 0xf5, 0x29,
|
||||
0x2b, 0x0f, 0x38, 0x4c, 0x88, 0x1d, 0xf3, 0x7f, 0x0e, 0x97, 0x9a, 0x35, 0xdd, 0x2c, 0xbe, 0xfe,
|
||||
0x1b, 0x00, 0x00, 0xff, 0xff, 0x28, 0xf5, 0xc2, 0xb1, 0x04, 0x03, 0x00, 0x00,
|
||||
// 472 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x92, 0x41, 0x4f, 0xd4, 0x40,
|
||||
0x14, 0xc7, 0xb7, 0x82, 0x1b, 0x99, 0x05, 0x09, 0x0d, 0xd9, 0x54, 0x34, 0x65, 0xc3, 0x01, 0x37,
|
||||
0x24, 0xcc, 0x64, 0xd5, 0x83, 0xf1, 0xb6, 0x2b, 0x62, 0xbc, 0xad, 0xe5, 0xe6, 0xa5, 0x99, 0x4e,
|
||||
0x1f, 0x75, 0x02, 0x33, 0xd3, 0xcc, 0x4c, 0xeb, 0xca, 0x47, 0xf0, 0xe4, 0xc7, 0xf0, 0x64, 0xf8,
|
||||
0x18, 0x1c, 0x39, 0x1a, 0x0f, 0xc4, 0xec, 0x1e, 0xf8, 0x1a, 0xa6, 0x33, 0x05, 0xf1, 0xc8, 0xa5,
|
||||
0x6d, 0xe6, 0xf7, 0xe6, 0xff, 0x7f, 0xff, 0xbe, 0x87, 0x9e, 0x95, 0x2a, 0x23, 0x59, 0xc5, 0x4f,
|
||||
0x73, 0xd0, 0xa4, 0x1e, 0x91, 0x02, 0x24, 0x18, 0x6e, 0x70, 0xa9, 0x95, 0x55, 0xe1, 0xe3, 0x52,
|
||||
0x65, 0xb8, 0xa5, 0xb8, 0x1e, 0x6d, 0x6d, 0x16, 0xaa, 0x50, 0x0e, 0x91, 0xe6, 0xcb, 0x57, 0x6d,
|
||||
0xc5, 0x4c, 0x19, 0xa1, 0x0c, 0xc9, 0xa8, 0x01, 0x52, 0x8f, 0x32, 0xb0, 0x74, 0x44, 0x98, 0xe2,
|
||||
0xb2, 0xe5, 0x1b, 0x54, 0x70, 0xa9, 0x88, 0x7b, 0xfa, 0xa3, 0x9d, 0x03, 0xb4, 0xfa, 0xde, 0x3b,
|
||||
0x1d, 0x59, 0x6a, 0x21, 0x7c, 0x85, 0xba, 0x25, 0xd5, 0x54, 0x98, 0x28, 0x18, 0x04, 0xc3, 0xde,
|
||||
0x8b, 0x3e, 0xfe, 0xdf, 0x19, 0x4f, 0x1d, 0x9d, 0x2c, 0x5f, 0x5c, 0x6d, 0x77, 0x92, 0xb6, 0x76,
|
||||
0xe7, 0xe7, 0x12, 0xea, 0x7a, 0x10, 0xee, 0xa2, 0x75, 0x41, 0x67, 0x69, 0x56, 0xc9, 0xfc, 0x14,
|
||||
0x52, 0xc3, 0xcf, 0xc0, 0x29, 0xad, 0x25, 0x6b, 0x82, 0xce, 0x26, 0xee, 0xf4, 0x88, 0x9f, 0x35,
|
||||
0x46, 0x7d, 0x30, 0x4c, 0xab, 0x2f, 0x29, 0x65, 0x4c, 0x55, 0xd2, 0xa6, 0x34, 0xcf, 0x35, 0x18,
|
||||
0x13, 0x3d, 0x18, 0x04, 0xc3, 0x95, 0x64, 0xd3, 0xd3, 0xb1, 0x87, 0x63, 0xcf, 0xc2, 0x77, 0xa8,
|
||||
0xa7, 0xc1, 0x80, 0xae, 0x21, 0x3d, 0x06, 0x88, 0x96, 0x5c, 0x8f, 0x4f, 0xb0, 0xcf, 0x8d, 0x9b,
|
||||
0xdc, 0xb8, 0xcd, 0x8d, 0xdf, 0x2a, 0x2e, 0x27, 0x2b, 0x4d, 0x9b, 0x3f, 0xae, 0xcf, 0xf7, 0x82,
|
||||
0x04, 0xb5, 0x17, 0x0f, 0x01, 0xc2, 0x29, 0xda, 0x10, 0x5c, 0xa6, 0x19, 0xcf, 0x53, 0x2e, 0x99,
|
||||
0x06, 0x01, 0xd2, 0x46, 0xcb, 0xf7, 0x10, 0x5b, 0x17, 0x5c, 0x4e, 0x78, 0xfe, 0xe1, 0xe6, 0x72,
|
||||
0xf8, 0x1a, 0x45, 0xc7, 0x5a, 0x49, 0x9b, 0xea, 0x4a, 0x4a, 0x2e, 0x8b, 0xb4, 0xf9, 0xbd, 0xc0,
|
||||
0x2c, 0x57, 0x32, 0x7a, 0x38, 0x08, 0x86, 0x8f, 0x92, 0xbe, 0xe3, 0x89, 0xc7, 0xd3, 0x5b, 0x1a,
|
||||
0x7e, 0x44, 0xab, 0xa5, 0x56, 0xa5, 0x32, 0xa0, 0x5d, 0xa6, 0x6e, 0x13, 0x7f, 0x82, 0x1b, 0xaf,
|
||||
0xdf, 0x57, 0xdb, 0xbb, 0x05, 0xb7, 0x9f, 0xab, 0x0c, 0x33, 0x25, 0x48, 0x3b, 0x5d, 0xff, 0xda,
|
||||
0x37, 0xf9, 0x09, 0xb1, 0x5f, 0x4b, 0x30, 0xf8, 0x00, 0x58, 0xd2, 0xbb, 0xd1, 0x38, 0x04, 0x78,
|
||||
0x33, 0xf8, 0x76, 0x7d, 0xbe, 0xf7, 0xf4, 0x4e, 0xdd, 0xec, 0x76, 0xb3, 0xda, 0xf1, 0x8d, 0x2f,
|
||||
0xe6, 0x71, 0x70, 0x39, 0x8f, 0x83, 0x3f, 0xf3, 0x38, 0xf8, 0xbe, 0x88, 0x3b, 0x97, 0x8b, 0xb8,
|
||||
0xf3, 0x6b, 0x11, 0x77, 0x3e, 0x3d, 0xbf, 0x63, 0x68, 0x4e, 0x78, 0xb9, 0x2f, 0xa0, 0x26, 0xcd,
|
||||
0x6e, 0xfe, 0xd3, 0x70, 0xae, 0x59, 0xd7, 0x2d, 0xd0, 0xcb, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff,
|
||||
0xb7, 0x08, 0xb3, 0xa2, 0xb9, 0x02, 0x00, 0x00,
|
||||
}
|
||||
|
||||
func (m *GenesisState) Marshal() (dAtA []byte, err error) {
|
||||
@ -274,7 +263,7 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
||||
i = encodeVarintGenesis(dAtA, i, uint64(size))
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x3a
|
||||
dAtA[i] = 0x32
|
||||
if m.FrontRunningProtection {
|
||||
i--
|
||||
if m.FrontRunningProtection {
|
||||
@ -283,7 +272,7 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
||||
dAtA[i] = 0
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x30
|
||||
dAtA[i] = 0x28
|
||||
}
|
||||
{
|
||||
size, err := m.MinBidIncrement.MarshalToSizedBuffer(dAtA[:i])
|
||||
@ -294,16 +283,6 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
||||
i = encodeVarintGenesis(dAtA, i, uint64(size))
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x2a
|
||||
{
|
||||
size, err := m.MinBuyInFee.MarshalToSizedBuffer(dAtA[:i])
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
i -= size
|
||||
i = encodeVarintGenesis(dAtA, i, uint64(size))
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x22
|
||||
{
|
||||
size, err := m.ReserveFee.MarshalToSizedBuffer(dAtA[:i])
|
||||
@ -367,8 +346,6 @@ func (m *Params) Size() (n int) {
|
||||
}
|
||||
l = m.ReserveFee.Size()
|
||||
n += 1 + l + sovGenesis(uint64(l))
|
||||
l = m.MinBuyInFee.Size()
|
||||
n += 1 + l + sovGenesis(uint64(l))
|
||||
l = m.MinBidIncrement.Size()
|
||||
n += 1 + l + sovGenesis(uint64(l))
|
||||
if m.FrontRunningProtection {
|
||||
@ -582,39 +559,6 @@ func (m *Params) Unmarshal(dAtA []byte) error {
|
||||
}
|
||||
iNdEx = postIndex
|
||||
case 4:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field MinBuyInFee", wireType)
|
||||
}
|
||||
var msglen int
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowGenesis
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
msglen |= int(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
if msglen < 0 {
|
||||
return ErrInvalidLengthGenesis
|
||||
}
|
||||
postIndex := iNdEx + msglen
|
||||
if postIndex < 0 {
|
||||
return ErrInvalidLengthGenesis
|
||||
}
|
||||
if postIndex > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
if err := m.MinBuyInFee.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
||||
return err
|
||||
}
|
||||
iNdEx = postIndex
|
||||
case 5:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field MinBidIncrement", wireType)
|
||||
}
|
||||
@ -647,7 +591,7 @@ func (m *Params) Unmarshal(dAtA []byte) error {
|
||||
return err
|
||||
}
|
||||
iNdEx = postIndex
|
||||
case 6:
|
||||
case 5:
|
||||
if wireType != 0 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field FrontRunningProtection", wireType)
|
||||
}
|
||||
@ -667,7 +611,7 @@ func (m *Params) Unmarshal(dAtA []byte) error {
|
||||
}
|
||||
}
|
||||
m.FrontRunningProtection = bool(v != 0)
|
||||
case 7:
|
||||
case 6:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field ProposerFee", wireType)
|
||||
}
|
||||
|
||||
@ -120,7 +120,6 @@ func TestMsgUpdateParams(t *testing.T) {
|
||||
EscrowAccountAddress: sdk.AccAddress([]byte("test")).String(),
|
||||
ReserveFee: sdk.NewCoin("test", sdk.NewInt(100)),
|
||||
MinBidIncrement: sdk.NewCoin("test", sdk.NewInt(100)),
|
||||
MinBuyInFee: sdk.NewCoin("test", sdk.NewInt(100)),
|
||||
},
|
||||
},
|
||||
expectPass: true,
|
||||
@ -134,7 +133,6 @@ func TestMsgUpdateParams(t *testing.T) {
|
||||
EscrowAccountAddress: sdk.AccAddress([]byte("test")).String(),
|
||||
ReserveFee: sdk.NewCoin("test", sdk.NewInt(100)),
|
||||
MinBidIncrement: sdk.NewCoin("test2", sdk.NewInt(100)),
|
||||
MinBuyInFee: sdk.NewCoin("test3", sdk.NewInt(100)),
|
||||
},
|
||||
},
|
||||
expectPass: false,
|
||||
|
||||
@ -11,7 +11,6 @@ var (
|
||||
DefaultMaxBundleSize uint32 = 2
|
||||
DefaultEscrowAccountAddress string
|
||||
DefaultReserveFee = sdk.Coin{}
|
||||
DefaultMinBuyInFee = sdk.Coin{}
|
||||
DefaultMinBidIncrement = sdk.Coin{}
|
||||
DefaultFrontRunningProtection = true
|
||||
DefaultProposerFee = sdk.ZeroDec()
|
||||
@ -21,7 +20,7 @@ var (
|
||||
func NewParams(
|
||||
maxBundleSize uint32,
|
||||
escrowAccountAddress string,
|
||||
reserveFee, minBuyInFee, minBidIncrement sdk.Coin,
|
||||
reserveFee, minBidIncrement sdk.Coin,
|
||||
frontRunningProtection bool,
|
||||
proposerFee sdk.Dec,
|
||||
) Params {
|
||||
@ -29,7 +28,6 @@ func NewParams(
|
||||
MaxBundleSize: maxBundleSize,
|
||||
EscrowAccountAddress: escrowAccountAddress,
|
||||
ReserveFee: reserveFee,
|
||||
MinBuyInFee: minBuyInFee,
|
||||
MinBidIncrement: minBidIncrement,
|
||||
FrontRunningProtection: frontRunningProtection,
|
||||
ProposerFee: proposerFee,
|
||||
@ -42,7 +40,6 @@ func DefaultParams() Params {
|
||||
DefaultMaxBundleSize,
|
||||
DefaultEscrowAccountAddress,
|
||||
DefaultReserveFee,
|
||||
DefaultMinBuyInFee,
|
||||
DefaultMinBidIncrement,
|
||||
DefaultFrontRunningProtection,
|
||||
DefaultProposerFee,
|
||||
@ -54,27 +51,20 @@ func (p Params) Validate() error {
|
||||
if err := validateEscrowAccountAddress(p.EscrowAccountAddress); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := validateFee(p.ReserveFee); err != nil {
|
||||
return fmt.Errorf("invalid reserve fee (%s)", err)
|
||||
}
|
||||
|
||||
if err := validateFee(p.MinBuyInFee); err != nil {
|
||||
return fmt.Errorf("invalid minimum buy-in fee (%s)", err)
|
||||
}
|
||||
|
||||
if err := validateFee(p.MinBidIncrement); err != nil {
|
||||
return fmt.Errorf("invalid minimum bid increment (%s)", err)
|
||||
}
|
||||
|
||||
denoms := map[string]struct{}{
|
||||
p.ReserveFee.Denom: {},
|
||||
p.MinBuyInFee.Denom: {},
|
||||
p.MinBidIncrement.Denom: {},
|
||||
}
|
||||
|
||||
if len(denoms) != 1 {
|
||||
return fmt.Errorf("mismatched auction fee denoms: minimum bid increment (%s), minimum buy-in fee (%s), reserve fee (%s)", p.MinBidIncrement, p.MinBuyInFee, p.ReserveFee)
|
||||
return fmt.Errorf("mismatched auction fee denoms: minimum bid increment (%s), reserve fee (%s)", p.MinBidIncrement, p.ReserveFee)
|
||||
}
|
||||
|
||||
return validateProposerFee(p.ProposerFee)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user