* Use fully recursive JSON logic for compound clvm streamable types
* Accomodate rust types
* Accomodate dicts
* Broaden function to handle type[object] instead of type[Streamable] (with a little mypy workaround)
* Whoops, delete that
* Small bug
* Okay a complete rework
* Delete some now unused stuff
* Some edge cases
* Change `TransactionRecord` to use dict instead of list of tuples for memos
* Update streamable and fix tests
* Update test to accidentally fixed memos generation
* Add dicts to streamable
* Make sure serialization is detemrinistic
* one more irrelevant test
* whoops fix bug and catch it with test
* Revert "Make sure serialization is detemrinistic"
This reverts commit 1c8f37743a.
* Dont allow duplicate dict keys
* optimize
* Repin hsms
* Add to sdist only allowed list
* Signer protocol tweaks
* Convert wallet RPC client to deserialized types
* Introduce @tx_out_cmd decorator
* Make execute_signing_instructions RPC
* Add transport layer support
* Add signer commands
* Rework wallet execute_signing_instructions
* Inadvertent merge changes
* Fix signer command tests
* Try a different approach: recursive flattening
* Bump hsms
* Add comments
* Test coverage
* Coverage ignores
* Remove inadvertent time traveler
* Bring in lost time traveler
* pylint
* Attempt to make qr test less flaky
* Actually test coverage ignore
* Small refactor for test coverage
* transport -> translation
* missed one
* transport -> translation
* Fix asdict error
* coverage
* Forgoe rotation testing for now
* Test coverage
* jsonify_unsigned_txs -> full_jsonify
* Move a class
* Add better type checking to framework
* explicitly state kwargs on _CommandParsingStage
Co-authored-by: Kyle Altendorf <sda@fstab.net>
* Address comments by @altendky
* Consolidate add_private_key and add_public_key
* Consolidate get_key_for_fingerprint and get_public_key_for_fingerprint
* Test fix
* Merge fix
* Bad merge
* Bad merge
* oops
* pylint
* Tweak keychain_proxy.get_key_for_fingerprint
* Fix wallet RPC test?
* pragma: no cover
* Redesign clvm_streamable
* Fix test imports
* black
* fix one more test
* Address comments by @altendky
* Test coverage
* bytes32
* Better CLI mnemonic check
* Use functools.partial
* Rename full jsonify to chip 29
* whoops missed a couple
* Better CLI mnemonic check
* black
* pylint
* Missed one
* black
* Farm at least one block
* Revert last change and fix 0 block farming
* black
* bad merge
* Merge fix
* Inadvertent changes
* Inadvertent changes
* Syncronize with quex.tx_out_decorator2
* These are no longer dictionaries.
* Use new clvm_streamable pattern
* Fix offer endpoint
* Add @tx_out_cmd decorator
* Bump ecdsa version
* Fix @marshal util to return proper transactions
* Add get_public_key
* port `chia wallet send` to @tx_out_cmd
* merge fix of puzzle hash derivation
* Port `chia wallet coins` to @tx_out_cmd
* Port chia wallet clawback to @tx_out_cmd
* Port `chia wallet take/cancel_offer` to @tx_out_cmd
* Port `chia wallet did ...` to @tx_out_cmd
* Port `chia wallet nft ...` to @tx_out_cmd
* Port `chia wallet notifications send` to @tx_out_cmd
* Port `chia wallet vcs ...` to @tx_out_cmd
* Port `chia dao ...` to @tx_out_cmd
* Exclude data layer and plotnft functions
* [no ci]
* Address comments by @AmineKhaldi
* Fix rpc util
* add test for BSTLSigningInstructions
* [UNDO] d9c6f54398
* [UNDO] 7fc1d2adfd
* [UNDO] 23c9ee8549
* [UNDO] aacc9f0228
* [UNDO] 548465403b
* Undo unintentional changes
* Stuff that's not part of this
* More stuff that doesn't belong
* One last thing that doesn't belong
* Unintentional change
---------
Co-authored-by: Kyle Altendorf <sda@fstab.net>
Co-authored-by: Amine Khaldi <amine.khaldi@reactos.org>
* replace blspy imports with chia_rs imports for BLS types
* remove blspy-stubs, since we're dropping the blspy dependency. chia_rs has type stubs already
* 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
* Enable mypy for a bunch of files
* Update after merge with main
* 99/260 remaining
* Address comments
* Enable more mypy
* Merge conflict mypy file
* More fixes
* pytest.ini and cb-gui
* One more flake8 fix
* Flake8 and tests
* More test fixes
* isort
* Make LGTM happy
* Update chia/full_node/block_store.py
Co-authored-by: Kyle Altendorf <sda@fstab.net>
* Update chia/full_node/full_node_store.py
Co-authored-by: Kyle Altendorf <sda@fstab.net>
* Update chia/wallet/util/peer_request_cache.py
Co-authored-by: Kyle Altendorf <sda@fstab.net>
* Apply all suggestions from PR comments
* Revert cb-gui
* 100 back to 1000, minor tweaks
Co-authored-by: Kyle Altendorf <sda@fstab.net>
* bump chia_rs version
* drop use of COND_CANON_INTS, which is always implied (and removed) from the latest version of chia_rs
* use the new parse_rust() API that supports memoryview
* use native hash_tree implementation for SerializedProgram
* Integrate all cached functions into `Field`
* Drop `FIELDS_FOR_STREAMABLE_CLASS`, store them in the class instead
* Use index operator
Co-authored-by: Kyle Altendorf <sda@fstab.net>
Co-authored-by: Kyle Altendorf <sda@fstab.net>
* Restrict `dataclass_from_dict` to valid streamable classes
They need to have the decorator applied for the required cache being populated.
* `dataclass_from_dict` -> `streamable_from_dict`
* `TestDataclassFromDict` -> `StreamableFromDict`
* Improve and test `dataclass_from_dict` tuple validation
* Improve and test `dataclass_from_dict` list validation
* Introduce `convert_hex_string`
* Improve and test `dataclass_from_dict` byte type validation
* Improve and test `dataclass_from_dict` unhashable validation
* Improve and test `dataclass_from_dict` primitive validation
* Improve `dataclass_from_dict` validation
* `raise TypeError(...) from e`
* Just `raise`, don't `raise e`
* Use `repr` of `item` not `str`
* `type(item) == f_type` -> `isinstance(item, f_type)`
* streamable: Use constructor in `dataclass_from_dict`
This fixes default value assignments after #10561 but also leads to less perfomance due to `__post_init__` being called which at least gets mitigated by #11730.
* tests: Test default values with `from_json_dict`
* Convert to `str`, then compare.