* Fix the mempool fee per cost calculation.
It's currently performing integer division instead of float division, resulting in incorrect sorting of mempool items by fee rate. Items with x.y FPC get all treated as items of x.0 FPC.
* Add unit tests for mempool's spends_by_feerate.
* slightly faster nft complex offer tests
* cached bundle, faster offer matching
* nft metadata test fix
* more optimizations
* use get_nft_count method in tests
* use counts in bulk minting, avoid sleep
* flake
* offer cache fix
* forward compat param, max int16
* only parse programs with pairs
* cache offer data on method call, not init
* black
* Rename `new_coin_state` -> `add_coin_states` in `WalletStateManager
* Avoid redundant coin id calculations
* Don't `max`, just use `derivation_index` since its max by the condition
* Just get the children in the begining since we anyway always fetch them
* Don't pre-hint `existing`
* Adjust some logging
* Simplify coinbase/tx_type logic
* Confirm transactions immediately, don't create a list first
* Move transaction confirmation logic
* Combine `TransactionRecord` creation cases since they are equal
* Drop `timestamp`
* Drop redundant parentheses
* Just assign to `change`
* Rename `coin_record_1` -> `coin_record`
* `break` after transaction was confirmed
* Harden `coinbase` condition
from https://github.com/Chia-Network/chia-blockchain/actions/runs/4455716184/usage i see macos with nominal low 40s runtime and outliers into the low 50s, windows has a wider variance with highs in the low 50s and 8'ish hung runs that timed out at the 75 minute timeout, linux looks like 30'ish with a high of maybe 36.
* enable soft-fork2
* add blockchain (consensus) test for time-lock conditions (non-ephemeral spend)
* introduce new soft-fork rule to compare ASSERT_SECONDS_* conditions against the previous transaction block's timestamp (to be consistent with ASSERT_HEIGHT_* conditions)
* bump chia_rs. This updates the mempool rules to disallow relative height- and time conditions on ephemeral coin spends
* implement assert_before in mempool_check_time_locks. Extend ephemeral coin test in blockchain with assert_before conditions
* implement support for assert_before conditions in compute_assert_height()
* support assert-before in mempool
* add timelock rule
* address review comments
* Staging changelog for updates
* Update changelog.md
Preliminary update of the changelog based on the changelist between 1.7.0 and 1.7.1
* Cleanup Added items
cleaned up a few added items
* Updated Changed items
* Updates
* More updates
* fix typos
* minor update
* fix trailing whitespace
* Update CHANGELOG.md
* Typo
Co-authored-by: Jeff <jeff@chia.net>
* Update CHANGELOG.md
Co-authored-by: Jeff <jeff@chia.net>
---------
Co-authored-by: Earle Lowe <30607889+emlowe@users.noreply.github.com>
Co-authored-by: Jeff <jeff@chia.net>
* mempool min fee increase is a constant
* make can_replace() a free function rather than a member of mempool. It doesn't need to be a member, and a free function is easier to test
* simplify can_replace by passing in MempoolItem
* slightly simplify handling of conflicting mempool items in mempool_manager, to avoid double lookups
* simplify can_replace() by just passing removal_names instead of the whole dict
* add unit test for can_replace()