* server: Introduce `ApiProtocol`
* genericize (#5)
* `ApiProtocol.api_ready` -> `ApiProtocol.ready()`
* Add `ApiProtocol.log` and give APIs separate loggers
* Fix `CrawlerAPI`
* Drop some unrelated removals
* Fix some of the generic hinting
* Revert some changes in `timelord_api.py`
* Fix `CawlerAPI` readiness
* Fix hinting
* Get some `CrawlerAPI` coverage
---------
Co-authored-by: Kyle Altendorf <sda@fstab.net>
* optimize at-capacity check in mempool.add_to_pool() by only computing the total cost once and remove all items in a single call
* use sqlite logic
* add test for Mempool.add_to_pool() when it's full
* bump chia_rs to version 0.2.3
* add new error codes for assert_my_birth_*
* add new condition codes for ASSERT_MY_BIRTH_*
* add logic for ASSERT_MY_BIRTH_* conditions
* implement Mempool using an in-memory sqlite database
* remove_from_pool with empty list is a no-op
* the order is not important in get_coin_records_by_puzzle_hash() or get_block_spends()
* use format string in log statement
* make MempoolItem not streamable, to improve performance of creating objects
* 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
* Change names used to look up estimated spendbundle sizes in get_fee_estimate RPC
* Update tests
* add test for get_spendbundle_type_cost
* add spend_count to get_fee_estimate
* Update chia/rpc/full_node_rpc_api.py
Co-authored-by: Jeff <jeff@chia.net>
Co-authored-by: Jeff <jeff@chia.net>
* Add MempoolRemoveReason, which represents why we are removing a MempoolItem
* Add integration tests for remove_from_pool. Generalize call count tracking in mock Fee Estimator.
* Hold a ref to the fee estimator when the Mempool is destroyed and re-created. Unify the sharing of information between Mempool and MempoolManager
* Adjust tests to new Mempool create interface
* Store dynamic Mempool info in the FeeEstimator and static info in the Mempool
* Adjust tests
* Restore logging of block cost % calculation to use documented full block size
* Omit check for nil self.last_mempool_info
* Annotate Mempool members
* Add integration test for add_mempool_item
* Annotate types in BitcoinFeeEstimator class
* Fixes the case when a fee estimation request is made before the FullNode has initialized a peak
* Clarify code by setting defaults early
* Only spawn one full node in test