* move spend_sim into tests
* use run_block_generator2() instead of get_name_puzzle_conditions() in CostLogger. It's only used to compute the cost of a spend bundle, in tests.
make MempoolItem and InternalMempoolItem contain the SpendBundleConditions directly, rather than the NPCResult. A mempool item is guaranteed to be valid, so the error state of NPCResult will never be engaged anyway.
* Initial draft of mempool updates [skip ci]
* More implementation work, but capability issue [skip ci]
* Temp (will probably revert)
* Get first test passing
* Setup spent coin tests
* Add unrelated test data to make tests better
* Refactor test
* Finish testing
* Update tests
* Include removal reason and block inclusion tests
* Remove unnecessary dict
* Add missing message to test
* Fix after rebase
* Broadcast support from node for mempool updates
* Remove redundant code
* Use new_block
* Filter and early return suggestions
* Reword comments on PeakPostProcessingResult
* Improve mempool fn name and doc comment
* Bump wallet protocol version
* Add ratelimits
* Add tests for querying mempool items
* Asserts and more tests
* Add peers for spend bundle tests
* update type annotation for CoinStore.get_coin_records to support both List and Set
* update the mempool to fetch multiple coin records per query
* optimize the slow-path of updating the mempool by fetching all coin records up-front, in a single sql query
* don't run tests with database schema v1
* remove support for database schema v1 from BlockStore
* remove support for database schema v1 from CoinStore
* remove support for database schema v1 from HintStore
* remove support for v1 BlockStore schema from blockchain reorg logic
* remove support for database schema v1 from BlockHeightMap
* run block store tests both with and without the cache
* add test with empty blockchain for BlockHeightMap
* fix typo
Use "item" instead of "spend" in mempool's items functions names.
With this we're consistent with mempool's internal items map (_items) and _row_to_item as well as the return types.
* 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
* Introduce BlockRecordProtocol as a subset of BlockRecord that the mempool manager uses for peak.
* Create BenchBlockRecord and use it for benchmarks/mempool.py.
* PR #14611 didn't land yet (keep 3.7 support for now).
* We don't need this guidance anymore.
* fix test asserts to not require the same object, just the same value
* make Mempool's implementation private and give it a public interface
* fixup test that used to count fee *levels* but now count transactions
* configure isort to add the future annotations import
* apply the new isort setting
* remove type ignores for new mypy (#13539)
https://pypi.org/project/mypy/0.981/
* another
* Remove mempool.additions
* Don't re run the program, and remove program from mempool item
* Removals only stores item ids, and stores a list
* Move pending cache down to prevent cache dos
* Separate validation from adding to pool, and remove mypy exceptions
* Fix bug with replacing
* Add to mypy
* Revert cbgui
* precommit fail
* Properly update the seen dict
* lint error
* Fix mempool bug
* Update after merge with main
* Address comments