Co-authored-by: Bala Murali Krishna Komatireddy <krishna192reddy@gmail.com> Co-authored-by: Julien Robert <julien@rbrt.fr>
This commit is contained in:
parent
babe072c95
commit
612d0a68bf
@ -45,13 +45,14 @@ Ref: https://keepachangelog.com/en/1.0.0/
|
||||
|
||||
### Improvments
|
||||
|
||||
* (types/module) [#17554](https://github.com/cosmos/cosmos-sdk/pull/17554) Introduce `HasABCIGenesis` which is implemented by a module only when a validatorset update needs to be returned
|
||||
* (types/module) [#17554](https://github.com/cosmos/cosmos-sdk/pull/17554) Introduce `HasABCIGenesis` which is implemented by a module only when a validatorset update needs to be returned.
|
||||
* (baseapp) [#17667](https://github.com/cosmos/cosmos-sdk/pull/17667) Close databases opened by SDK in `baseApp.Close()`.
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* (baseapp) [#17518](https://github.com/cosmos/cosmos-sdk/pull/17518) Utilizing voting power from vote extensions (CometBFT) instead of the current bonded tokens (x/staking) to determine if a set of vote extensions are valid.
|
||||
* (config) [#17649](https://github.com/cosmos/cosmos-sdk/pull/17649) Fix `mempool.max-txs` configuration is invalid in `app.config`.
|
||||
* (mempool) [#17668](https://github.com/cosmos/cosmos-sdk/pull/17668) Fix `PriorityNonceIterator.Next()` nil pointer ref for min priority at the end of iteration.
|
||||
|
||||
## [v0.50.0-rc.0](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.50.0-rc.0) - 2023-08-18
|
||||
|
||||
|
||||
@ -314,7 +314,7 @@ func (i *PriorityNonceIterator[C]) Next() Iterator {
|
||||
// priority in the pool.
|
||||
if i.mempool.cfg.TxPriority.Compare(key.priority, i.nextPriority) < 0 {
|
||||
return i.iteratePriority()
|
||||
} else if i.mempool.cfg.TxPriority.Compare(key.priority, i.nextPriority) == 0 {
|
||||
} else if i.priorityNode.Next() != nil && i.mempool.cfg.TxPriority.Compare(key.priority, i.nextPriority) == 0 {
|
||||
// Weight is incorporated into the priority index key only (not sender index)
|
||||
// so we must fetch it here from the scores map.
|
||||
weight := i.mempool.scores[txMeta[C]{nonce: key.nonce, sender: key.sender}].weight
|
||||
|
||||
@ -259,6 +259,62 @@ func (s *MempoolTestSuite) TestPriorityNonceTxOrder() {
|
||||
}
|
||||
}
|
||||
|
||||
func (s *MempoolTestSuite) TestIterator() {
|
||||
t := s.T()
|
||||
ctx := sdk.NewContext(nil, cmtproto.Header{}, false, log.NewNopLogger())
|
||||
accounts := simtypes.RandomAccounts(rand.New(rand.NewSource(0)), 2)
|
||||
sa := accounts[0].Address
|
||||
sb := accounts[1].Address
|
||||
|
||||
tests := []struct {
|
||||
txs []txSpec
|
||||
fail bool
|
||||
}{
|
||||
{
|
||||
txs: []txSpec{
|
||||
{p: 20, n: 1, a: sa},
|
||||
{p: 15, n: 1, a: sb},
|
||||
{p: 6, n: 2, a: sa},
|
||||
{p: 21, n: 4, a: sa},
|
||||
{p: 8, n: 2, a: sb},
|
||||
},
|
||||
},
|
||||
{
|
||||
txs: []txSpec{
|
||||
{p: 20, n: 1, a: sa},
|
||||
{p: 15, n: 1, a: sb},
|
||||
{p: 6, n: 2, a: sa},
|
||||
{p: 21, n: 4, a: sa},
|
||||
{p: math.MinInt64, n: 2, a: sb},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
for i, tt := range tests {
|
||||
t.Run(fmt.Sprintf("case %d", i), func(t *testing.T) {
|
||||
pool := mempool.DefaultPriorityMempool()
|
||||
|
||||
// create test txs and insert into mempool
|
||||
for i, ts := range tt.txs {
|
||||
tx := testTx{id: i, priority: int64(ts.p), nonce: uint64(ts.n), address: ts.a}
|
||||
c := ctx.WithPriority(tx.priority)
|
||||
err := pool.Insert(c, tx)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
// iterate through txs
|
||||
iterator := pool.Select(ctx, nil)
|
||||
for iterator != nil {
|
||||
tx := iterator.Tx().(testTx)
|
||||
require.Equal(t, tt.txs[tx.id].p, int(tx.priority))
|
||||
require.Equal(t, tt.txs[tx.id].n, int(tx.nonce))
|
||||
require.Equal(t, tt.txs[tx.id].a, tx.address)
|
||||
iterator = iterator.Next()
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func (s *MempoolTestSuite) TestPriorityTies() {
|
||||
ctx := sdk.NewContext(nil, cmtproto.Header{}, false, log.NewNopLogger())
|
||||
accounts := simtypes.RandomAccounts(rand.New(rand.NewSource(0)), 3)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user