* introduce restrictions on generators at a specific height. disallow division on negative numbers and disallow redundant leading zeros on integer condition arguments (produced by a generator)
* use SOFT_FORK_HEIGHT constant
* there is no need to specify height when validating block in block_creation
* Update tests/core/full_node/test_mempool.py
Co-authored-by: dustinface <35775977+xdustinface@users.noreply.github.com>
Co-authored-by: dustinface <35775977+xdustinface@users.noreply.github.com>
* unify the name we use for the special mode we run CLVM in, when accepting transactions into the mempool. We currently call this, strict mode, safe mode, safe and unsafe. Neither of these names are very descriptive. This patch renames this mode to mempool-mode
* import as
* plotting|util: Introduce `chia.util.generator_tools.list_to_batches`
* tests: Test `list_to_batches` in `test_list_to_batches.py`
* util|tests: Return an empty iterator for empty input lists
* tests: Test list sizes from 1-10 in `test_valid`
* no need to check announcements in python, it's all done in rust
* remove python condition parsing, use rust unconditionally
* no need to assert_my_amount, it's done in rust
* assert my puzzlehash is done in rust, no need to check it in python
* parent id is checked in rust, no need to do it in python
* my coin ID is checked in rust, no need to do it in python
* reorder condition checks to have to ones we won't see at the end
* no need for the RUST_CONDITION_CHECKER constant anymore
* update pool tests to use get_name_puzzle_condition
* validate more aspects of conditions earlier, in the process clvm execution is offloaded to
* more tests
* use as_int() in SExp rather than int_from_bytes()
* put condition parser tests in its own test class
* capitalize module-scope variable
* abbreviate enum names in parse_condition_args
* use a more realistic cost per byte in test_rom
* merge parse_coin_id and parse_hash, since they are identical
* Avoid importing `test_constants` as it takes a long time.
* Factor out `parse_*` functions.
* First crack at refactoring `Streamable.parse`.
* Don't add `_parse_functions` attribute to `Streamable`.
This no longer requires an extra `_parse_functions` attribute on a
`Streamable`, as it may be confusing serializers or other functions
that use `__annotations__`.
* Fix lint problems with `black`.
* Fix `parse_tuple`.
* Defer some parsing failures to parse time rather than class-creation time.
* Tidy up & remove some obsolete stuff.
* Decorate `RequestBlocks` as `streamable`.
* Fix wrong uses of Streamable class
Revert an earlier commit and error out on class creation in case a
Streamable subclass is instantiated incorrectly, e.g. containing a
non-serializable member.
Fix cases where Streamable parent class was forgotten.
* Fix wrong types when creating DerivationRecord and WalletCoinRecord
* additional unit tests for streamable parsers
* add type annotations (#3222)
Co-authored-by: Rostislav <rostislav@users.noreply.github.com>
Co-authored-by: arvidn <arvid@libtorrent.org>
* squash
* rebase cleanup
* cost
* Combine adam's and straya's PRs
* Fix cost test
* Fix another test
* Improve safety in reorgs
* Improve wallet in reorgs
* Improve wallet in reorgs
* Bug in reorg handling
* Bug in reorg handling, and fix test
* Band aid
* Comment out to pass test
* Comment out test
* rebase clean
* USe a list of reference generators
* create
* Integrate Block Compression
* Fix generator argument creation
* improve test
* update block tools
* Separate CompressorArg and GeneratorArg, improve type hints
* First crack at `list_to_tree`.
* Integrate generator arguments as tree
* End to end test for generators
* Fix linting issues, hook up things, and add a test
* tidy GeneratorArg test
* Get compression and decompression working in full node
* Fix fetching block generator from DB in multiprocess
* Fix edge case in reorgs, test many combinations of reorgs
* reduce max number of generators refs allowed in a block
* Apply Straya's fix for calculating the end index for generator args
* typos
* Run test_block_compression for a transaction large enough to force multiple input coins in the transaction
* Update generator compression tests for treearg change and decompressor offset args fix
* Fix merge conflict
* Fix test
* Fix full node tests
* Don't make full blocks
* fix lint
Co-authored-by: Yostra <straya@chia.net>
Co-authored-by: Adam Kelly <aqk@aqk.im>
Co-authored-by: Richard Kiss <him@richardkiss.com>