Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

enable soft-fork2 conditions (incl. ASSERT_BEFORE) #14733

Merged
merged 9 commits into from
Mar 23, 2023
Merged

Conversation

arvidn
Copy link
Contributor

@arvidn arvidn commented Mar 3, 2023

This patch re-enables soft-fork 2 and implements the new conditions and rules.

soft fork 2

Soft-fork 2 makes the following changes, once activated:

  1. Change the timestamp ASSERT_SECONDS_* conditions compare against, from the current block's timestamp to the previous transaction block's timestamp. This is to make it consistent with the ASSERT_HEIGHT_* conditions, which already compare against the previous transaction block's height. It also reduces any incentive a farmer may have to be dishonest about which timestamp it puts on a new block.
  2. Add ASSERT_MY_BIRTH_SECONDS and ASSERT_MY_BIRTH_HEIGHT, to ensure the coin being spent were created and the specified time or height.
  3. Add ASSERT_CONCURRENT_SPEND and ASSERT_CONCURRENT_PUZZLE to ensure that a specified coin ID or puzzle hash is being spent in the same block/spend-bundle as the coin spend emitting this condition.
  4. Add ASSERT_EPHEMERAL to ensure that the coin being spent was created in the same block as it's being spent.
  5. Add ASSERT_BEFORE_HEIGHT_* and ASSERT_BEFORE_SECONDS_* conditions, which have the opposite meaning as the existing ASSERT_HEIGHT_* and ASSERT_SECONDS_* conditions.
  6. Disallow relative time lock conditions on ephemeral coin spends. i.e. coins that are created and spent in the same block, have restrictions on which kinds of conditions they may emit. Specifically, ASSERT_*_RELATIVE, ASSERT_BEFORE_*_RELATIVE, ASSERT_MY_BIRTH_* are not allowed.

Most new conditions have been implemented in chia_rs and won't really show up in this PR.

Review

This PR is made up of 8 commits. They are highly recommended to be reviewed one at a time, in commit order:

re-enable soft-fork 2 logic

This just restores the SOFT_FORK2_HEIGHT configuration, for the block height when to activate the soft-fork. Additionally, since the new conditions are enabled at a specific height only, and not by mempool-mode, callers in mempool mode also need to specify the block height. So it's made non-optional and callers were fixed-up.

blockchain time-lock test

Most time lock tests have been on ephemeral coins, since that is the edge case that needs the most coverage. However, since we're making more changes to the ASSERT_SECONDS_* conditions as well as disallowing relative time locks on ephemeral coins, some of those test cases will become quite uninteresting. So, this patch adds another test that spends a normal coin (i.e. not ephemeral) to cover common cases. This lets us clearly see the effect of the soft-fork changes.

soft-fork rule to use previous transaction block's timestamp

This makes the change to use the previous transaction block's timestamp. The mempool is not really affected, as it's always used the previous transaction block anyway. It's slightly simplified though. The effect is made visible in the new unit test.

bump chia_rs

This brings in the new ASSERT_EPHEMERAL condition and the new rule to disallow relative time locks on ephemeral spends. These are controlled by separate feature flags to chia_rs, this is because the new rule for ephemeral coins should be enabled in mempool-mode immediately, but the new conditions should not be enabled until we reach the activation height. The change to disallow relative time locks on ephemeral spends will make some of the existing test cases "uninteresting", since they will all fail now.

This also brings in two new error codes: ASSERT_EPHEMERAL_FAILED and EPHEMERAL_RELATIVE_CONDITION

ASSERT_BEFORE support in mempool_check_time_locks()

This function is the one that enforces the time-lock conditions in both consensus code and in mempool. With support for this, the unit tests also need to gain new test cases for the new conditions.

ASSERT_BEFORE support in compute_assert_height()

This function is used by the mempool to organize mempool items by when they may become valid (and now also when they will become invalid). The function previously only returned the absolute assert height condition (relative asserts were boiled down the the absolute height). With this patch, it's extended to also compute before_seconds and before_height, which define when a transaction becomes invalid, and should be evicted from the mempool.

ASSERT_BEFORE support in the mempool

The mempool needs the new functionality to expire transactions whose assert-before conditions become invalid. This is where the sqlite index in Mempool comes in handy, to reliably eject expired mempool items.

timelock rule

With the new conditions, we need a new replace-by-fee rule. In order to replace one or more existing MempoolItems in the mempool, the timelock conditions must be identical. This patch implements this change and adds test coverage.

New conditions in soft-fork 2

Name Valid if Compares against cmp Allowed in ephemeral
ASSERT_HEIGHT_RELATIVE previous transaction block’s height >= the coin’s birth height + the condition argument. Previous tx-block >=
ASSERT_HEIGHT_ABSOLUTE previous transaction block’s height >= the condition argument. Previous tx-block >=
ASSERT_SECONDS_RELATIVE previous transaction block’s timestamp >= the coin’s birth timestamp + the condition argument Previous tx-block >=
ASSERT_SECONDS_ABSOLUTE previous transaction block’s timestamp >= the condition argument Previous tx-block >=
ASSERT_BEFORE_HEIGHT_RELATIVE previous transaction block’s height is < the coin’s birth height + the condition argument. Previous tx-block <
ASSERT_BEFORE_HEIGHT_ABSOLUTE previous transaction block’s height is < the condition argument. Previous tx-block <
ASSERT_BEFORE_SECONDS_RELATIVE previous transaction block’s timestamp is < the coin’s birth timestamp + the condition argument Previous tx-block <
ASSERT_BEFORE_SECONDS_ABSOLUTE previous transaction block’s timestamp is < the condition argument Previous tx-block <
ASSERT_EPHEMERAL This coin is both created and spent in the same block Current block =
ASSERT_MY_BIRTH_HEIGHT The coin’s birth height is the same as the condition argument - =
ASSERT_MY_BIRTH_SECONDS The coin’s birth timestamp is the same as the condition argument - =

references

For more details on the implementation of the other soft-fork 2 conditions, see the PR on chia_rs:

name PR link
assert not ephemeral (for relative timelocks) Chia-Network/chia_rs#150
Add ASSERT_EPHEMERAL condition Chia-Network/chia_rs#149
ASSERT_MY_BIRTH_* Chia-Network/chia_rs#144
Fix edge cases in parsing ASSERT_BEFORE_* Chia-Network/chia_rs#140
Add more checks for impossible constraints Chia-Network/chia_rs#135
ASSERT_CONCURRENT_PUZZLE Chia-Network/chia_rs#134
ASSERT_CONCURRENT_SPEND Chia-Network/chia_rs#133
ASSERT_BEFORE_* Chia-Network/chia_rs#131

@arvidn arvidn added the Changed Required label for PR that categorizes merge commit message as "Changed" for changelog label Mar 4, 2023
@github-actions github-actions bot added the merge_conflict Branch has conflicts that prevent merge to main label Mar 4, 2023
@github-actions
Copy link
Contributor

github-actions bot commented Mar 4, 2023

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@github-actions github-actions bot removed the merge_conflict Branch has conflicts that prevent merge to main label Mar 4, 2023
@github-actions
Copy link
Contributor

github-actions bot commented Mar 4, 2023

Conflicts have been resolved. A maintainer will review the pull request shortly.

chia/full_node/mempool.py Outdated Show resolved Hide resolved
chia/full_node/mempool.py Outdated Show resolved Hide resolved
@github-actions github-actions bot added the merge_conflict Branch has conflicts that prevent merge to main label Mar 7, 2023
@github-actions
Copy link
Contributor

github-actions bot commented Mar 7, 2023

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@github-actions github-actions bot removed the merge_conflict Branch has conflicts that prevent merge to main label Mar 8, 2023
@github-actions
Copy link
Contributor

github-actions bot commented Mar 8, 2023

Conflicts have been resolved. A maintainer will review the pull request shortly.

@github-actions github-actions bot added the merge_conflict Branch has conflicts that prevent merge to main label Mar 8, 2023
@github-actions github-actions bot added the merge_conflict Branch has conflicts that prevent merge to main label Mar 21, 2023
@github-actions
Copy link
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@github-actions github-actions bot removed the merge_conflict Branch has conflicts that prevent merge to main label Mar 22, 2023
@github-actions
Copy link
Contributor

Conflicts have been resolved. A maintainer will review the pull request shortly.

aqk
aqk previously approved these changes Mar 22, 2023
@arvidn arvidn added the ready_to_merge Submitter and reviewers think this is ready label Mar 23, 2023
@wallentx wallentx merged commit 8dbfc48 into main Mar 23, 2023
@wallentx wallentx deleted the assert-before branch March 23, 2023 16:30
xdustinface added a commit to xdustinface/chia-blockchain that referenced this pull request Mar 24, 2023
commit a159e2f
Author: xdustinface <xdustinfacex@gmail.com>
Date:   Wed Mar 22 13:28:16 2023 +0100

    wallet: Introduce `WalletNode.get_coin_spend_for_coin_state`

commit c889ba0
Author: dustinface <35775977+xdustinface@users.noreply.github.com>
Date:   Fri Mar 24 15:38:43 2023 +0700

    wallet: Cleanup `get_timestamp_for_height` + Drop `height_to_time` (Chia-Network#14885)

commit 22aabb4
Author: Kyle Altendorf <sda@fstab.net>
Date:   Fri Mar 24 04:37:59 2023 -0400

    remove traceback from LockQueue._run() cancellation debug logging (Chia-Network#14805)

commit 8cdaacf
Author: Kyle Altendorf <sda@fstab.net>
Date:   Fri Mar 24 03:17:53 2023 -0400

    increase wallet.nft_wallet test job timeout to 70 minutes (Chia-Network#14881)

    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.

commit 502cd1b
Merge: 15a08ab f0537df
Author: William Allen <wallentx@users.noreply.github.com>
Date:   Thu Mar 23 19:10:42 2023 -0500

    checkpoint: into main from release/1.7.1  @ c7d352f (Chia-Network#14890)

    Source hash: c7d352f
    Remaining commits: 4

commit f0537df
Merge: 15a08ab c7d352f
Author: Amine Khaldi <amine.khaldi@reactos.org>
Date:   Thu Mar 23 19:53:51 2023 +0100

    Merge commit 'c7d352fb4d2436d71c90a416b2b6f10f08f7a059' into checkpoint/main_from_release_1.7.1_c7d352fb4d2436d71c90a416b2b6f10f08f7a059

commit 15a08ab
Merge: 8dbfc48 f184c9d
Author: William Allen <wallentx@users.noreply.github.com>
Date:   Thu Mar 23 13:20:08 2023 -0500

    checkpoint: into main from release/1.7.1  @ 79298bd (Chia-Network#14879)

    Source hash: 79298bd
    Remaining commits: 4

commit 8dbfc48
Author: Arvid Norberg <arvid@libtorrent.org>
Date:   Thu Mar 23 17:30:10 2023 +0100

    enable soft-fork2 conditions (incl. ASSERT_BEFORE) (Chia-Network#14733)

    * 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

commit f184c9d
Author: Amine Khaldi <amine.khaldi@reactos.org>
Date:   Wed Mar 22 15:05:57 2023 +0100

    Update the anchor to reflect the checkpoint.

commit 65dd082
Merge: 15d3389 79298bd
Author: Amine Khaldi <amine.khaldi@reactos.org>
Date:   Wed Mar 22 15:01:35 2023 +0100

    Merge commit '79298bd829468e21262b11f802c200a5e8db2279' into checkpoint/main_from_release_1.7.1_79298bd829468e21262b11f802c200a5e8db2279

commit 15d3389
Author: Adam Kelly <338792+aqk@users.noreply.github.com>
Date:   Wed Mar 22 02:47:32 2023 -0700

    Add placeholders for DAO Wallet directories (Chia-Network#14858)

commit c7d352f
Author: Jeff <jeff@chia.net>
Date:   Mon Mar 20 20:29:32 2023 -0700

    Bump chia-blockchain-gui to 5702b3f60c92aa68c30676179b79c94e2192247c (Chia-Network#14861)

    Includes:
    * [BUGFIX] limiting the number of rows to show in the conflicting offers screen doesn't work by @ChiaMineJP in Chia-Network/chia-blockchain-gui#1625
    * fixed navigation back for counter offer by @seeden in Chia-Network/chia-blockchain-gui#1627

commit 79298bd
Author: Jeff <jeff@chia.net>
Date:   Mon Mar 20 17:51:56 2023 -0700

    Bump chia-blockchain-gui to cecb432b8eb0dd4e867ecd7f1124b712bbeb0d13 (Chia-Network#14845)

    Includes:
    * First screen - wrong emoji font and icon padding by @rifeljm in Chia-Network/chia-blockchain-gui#1583
    * prevent entering wallet from emoji picker space key pressed by @rifeljm in Chia-Network/chia-blockchain-gui#1585
    * fix issue where custom fees were being zeroed out when refreshing fee estimates by @paninaro in Chia-Network/chia-blockchain-gui#1597
    * change "Let's Farm!" -> "Get Started" on the windows installer by @paninaro in Chia-Network/chia-blockchain-gui#1599
    * unknown cat amount fix2 by @seeden in Chia-Network/chia-blockchain-gui#1598
    * smaller screens 2 wallets per row by @rifeljm in Chia-Network/chia-blockchain-gui#1586
    * add refresh nft data option to the offer nft preview context menu by @paninaro in Chia-Network/chia-blockchain-gui#1612
    * First screen BUGFIX - there should be no empty div - solved it with b… by @rifeljm in Chia-Network/chia-blockchain-gui#1604
    * theme picker same color by @rifeljm in Chia-Network/chia-blockchain-gui#1587
    * updated localization link by @seeden in Chia-Network/chia-blockchain-gui#1621
    * update Windows app icon by @paninaro in Chia-Network/chia-blockchain-gui#1620
    * suppress offer conflict dialog if there are no conflicts by @paninaro in Chia-Network/chia-blockchain-gui#1623
    * fix delay when determining if send notification is an option on the offer sharing dialog by @paninaro in Chia-Network/chia-blockchain-gui#1624

    **Full Changelog**: Chia-Network/chia-blockchain-gui@1.7.1-rc2...1.7.1-rc3
nvjoshi2 added a commit to irulast/chia-blockchain that referenced this pull request May 23, 2023
* Bump pyinstaller from 5.6.2 to 5.8.0 (#14707)

Bumps [pyinstaller](https://github.com/pyinstaller/pyinstaller) from 5.6.2 to 5.8.0.
- [Release notes](https://github.com/pyinstaller/pyinstaller/releases)
- [Changelog](https://github.com/pyinstaller/pyinstaller/blob/develop/doc/CHANGES.rst)
- [Commits](https://github.com/pyinstaller/pyinstaller/compare/v5.6.2...v5.8.0)

---
updated-dependencies:
- dependency-name: pyinstaller
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* hint chia.cmds.passphrase, passphrase_funcs

* Listen on ::0 so we can respond to both ipv4 and ipv6 (#14731)

* Listen on ::0 so we can respond to both ipv4 and ipv6

* Move the initial sleep to the end of the first attempt to load reliable peers, so that if we already have a database, it doesn't take 60 seconds to start responding

* Bump chia-blockchain-gui to 831f176c73e70e826af6a1952c3abfa10560302b (#14732)

Bump chia-blockchaing-gui to 831f176c73e70e826af6a1952c3abfa10560302b

* NFT gallery allow sensitive_content to be "false" (string) by @rifeljm in https://github.com/Chia-Network/chia-blockchain-gui/pull/1503
* remove exit prompt in wallet mode by @lipalong in https://github.com/Chia-Network/chia-blockchain-gui/pull/1504
* add RPC hook for nft_count_nfts by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1501
* fix showing offer details from a wallet txn row by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1500
* Rifeljm/#240 cat2 removal by @rifeljm in https://github.com/Chia-Network/chia-blockchain-gui/pull/1505
* fix merge conflict by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1506
* bugfix in NFT gallery - disappearing when scrolling to the bottom by @rifeljm in https://github.com/Chia-Network/chia-blockchain-gui/pull/1466
* skip prompt on quit only if in wallet mode and other services aren't running by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1507
* update json5 dependency via an update to babel-loader by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1513
* wallet connect improvements by @seeden in https://github.com/Chia-Network/chia-blockchain-gui/pull/1508
* assorted fixes and simplification by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1517
* temporary workaround to load > 50 NFTs at a time by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1516
* Reverting status icon changes as they caused breakage in the app header by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1518
* Rifeljm/#1480 first screen redesign by @rifeljm in https://github.com/Chia-Network/chia-blockchain-gui/pull/1511
* fix nft selection when creating nft for nft offer notification by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1509
* quick fix to show the New Wallet button when no keys are present by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1519

**Full Changelog**: https://github.com/Chia-Network/chia-blockchain-gui/compare/1.8.0-b2...1.8.0-b3

* parameterize Timelock and compute_assert_height tests (#14729)

* parameterize test_compute_assert_height

* parameterize tests in TestCheckTimelocks

* correct Announcement.__str__() to present hex (#14740)

A hash is quite unlikely to be valid UTF-8 data and even if it does decode it seems unlikely to be a useful representation.

* hint chia.cmds.farm_funcs (#14734)

* hint chia.cmds.keys, keys_funcs (#14735)

* hint chia.cmds.plotnft, plotnft_funcs (#14737)

* hint_benchmarks (#14738)

* hint build_scripts (#14739)

* ignore pkg_resources deprecation warning (#14750)

https://github.com/Chia-Network/chia-blockchain/actions/runs/4339058595/jobs/7576307782#step:16:23

* fix DataStore.get_tree_generation() detection of no generations (#14721)

* fix DataStore.get_tree_generation() detection of no generations

* revert unwanted change

* simplify and improve daemon connection handling (#14662)

* simplify daemon connection handling

* Add tests

* return list of service names during removal

* set remove raises KeyError

* Better test type hints

* Add types and code refactor

* fix test typos

* small type adjustments

* test code improvements

* Better error handling for bad json

* handle proper but unexpected JSON values

* Update chia/daemon/server.py

Co-authored-by: Kyle Altendorf <sda@fstab.net>

* test improvements

* check for empty thing equivalence

* Improved logging for ConnectionReset

---------

Co-authored-by: Kyle Altendorf <sda@fstab.net>

* Move startup / shutdown logging to INFO (#14546)

* server: Drop outdated config update (#14592)

* hint most chia.types (#14741)

* hint various chia.types

* hmm

* ints

* test todo

* switching more API calls to gh cli (#14701)

* switching more API calls to gh cli

* removing commented line

* Switch to my branch for debugging

* Adding env to setjobenv

* Fix installers to account for diff in ghcli

* Fix typos

* Fixing var escape for madmax on osx

* Fixing bladebit macos installer

* facepalm centos

* Switching setjobenv action back to main

* update mypy.ini (#14760)

* update mypy.ini

* add a type:ignore

* catch up with mypy 1.1.1 (#14767)

* Bump aws-actions/configure-aws-credentials from 1 to 2

Bumps [aws-actions/configure-aws-credentials](https://github.com/aws-actions/configure-aws-credentials) from 1 to 2.
- [Release notes](https://github.com/aws-actions/configure-aws-credentials/releases)
- [Changelog](https://github.com/aws-actions/configure-aws-credentials/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws-actions/configure-aws-credentials/compare/v1...v2)

---
updated-dependencies:
- dependency-name: aws-actions/configure-aws-credentials
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Adding Changed label to dependabot updates (#14765)

* Bump chia rs 0.2.4 (#14758)

* fix bug in make_test_conds() test utility

* bump chia_rs to 0.2.4, which preserves assert_seconds_relative 0 in parsing conditions. This allows for the 1.8.0 soft-fork to make the existing time-lock conditions stricter, > instead of >=. This is to match the existing ASSERT_HEIGHT_RELATIVE, which already is >

* fixup separating ENABLE_ASSERT_BEFORE from MEMPOOL_MODE

* Use a low value for SOFT_FORK2_HEIGHT during tests and cover the case before soft-fork2

---------

Co-authored-by: Adam Kelly <338792+aqk@users.noreply.github.com>

* fixup the last few

* Don't create a coin for 0 amount royalty payments (#14769)

* Don't create a coin for 0 amount royalty payments

* Tweak tests

* mypy

* Adding md exclusion (#14778)

* hint chia.pools.pool_wallet (#14694)

* Cleanup tests (#14776)

* clarify test with unknown condition opcode

* fix bug in mempool_manager test_ephemeral_timelock

* simplify test_blockchain test_ephemeral_timelock by factoring out the with_garbage parameter

* full_node: Drop cache logs in `BlockStore` (#14777)

* remove unused self.new_subslot_end

* remove unused self.new_subslot_end

* hint chia.plotting.create_plots (#14692)

* hint chia.plotting.create_plots

* correct the import

* fixup

* imports

* get final from typing_extensions

* Create __main__.py

* Update __main__.py

* Update __main__.py

* avoid AttributeError when shutting down plotting (#3954)

* Remove valid # type: ignore

A user ran into an exception on this line that mypy should have caught.  Let's see what it says.

```python-traceback
2021-05-06T07:31:41.595 full_node full_node_server        : ERROR    Exception , exception Stack: Traceback (most recent call last):
  File "chia\server\server.py", line 356, in start_client
  File "aiohttp\client.py", line 763, in _ws_connect
  File "aiohttp\client.py", line 521, in _request
  File "aiohttp\connector.py", line 535, in connect
  File "aiohttp\connector.py", line 892, in _create_connection
  File "aiohttp\connector.py", line 1032, in _create_direct_connection
  File "aiohttp\connector.py", line 969, in _wrap_create_connection
  File "asyncio\base_events.py", line 949, in create_connection
  File "asyncio\selector_events.py", line 473, in sock_connect
concurrent.futures._base.CancelledError

2021-05-06T07:31:45.016 daemon asyncio                    : ERROR    Task exception was never retrieved
future: <Task finished coro=<kill_service() done, defined at chia\daemon\server.py:833> exception=AttributeError("'list' object has no attribute 'pid'")>
Traceback (most recent call last):
  File "chia\daemon\server.py", line 841, in kill_service
  File "chia\daemon\server.py", line 805, in kill_process
AttributeError: 'list' object has no attribute 'pid'
2021-05-06T07:32:09.965 full_node full_node_server        : ERROR    Exception:  <class 'concurrent.futures._base.CancelledError'>, closing connection None. Traceback (most recent call last):
  File "chia\server\server.py", line 531, in api_call
  File "asyncio\tasks.py", line 435, in wait_for
concurrent.futures._base.CancelledError

2021-05-06T07:33:20.573 full_node full_node_server        : ERROR    Exception , exception Stack: Traceback (most recent call last):
  File "chia\server\server.py", line 356, in start_client
  File "aiohttp\client.py", line 763, in _ws_connect
  File "aiohttp\client.py", line 521, in _request
  File "aiohttp\connector.py", line 535, in connect
  File "aiohttp\connector.py", line 892, in _create_connection
  File "aiohttp\connector.py", line 1032, in _create_direct_connection
  File "aiohttp\connector.py", line 969, in _wrap_create_connection
```

* fix plotter service killing

* just make it always be a list of processes for all services

* catch up tests

* Update chia/daemon/server.py

* fine...  just assert

* cast

* the future!

* Add unit tests for create_bundle_from_mempool (#14700)

* Add unit tests for create_bundle_from_mempool().

* Factor out some shared code into a function.

* Add a variation for sending transactions in reverse order.

* Split some logic into functions.

* Refactor setting up the mempool with coins as well as big cost spend bundle handling.

* Stop sending change to a new address (#14422)

* Stop sending change to a new address

* Fix bug

* Add config & unit tests

* Resolve comments

* Refine based on the requirements

* Change config to str

* Disable addr reuse for unit test since the hardcode offer doesn't compatible with it

* Cover offer trade

* Add unit test and RPC support

* Add reuse option for cli

* Enhance unit test

* Fix unit test

* disable soft-fork 2 (for now) (#14786)

disable soft-fork 2 (for now) until we properly think-through and settle on how to handle ephemeral coins

* in mempool, support sqlite without generated columns (#14788)

* Bump chia-blockchain-gui to 078cc5976a991ea5a8b2b261deeb71da994d246c (#14794)

Includes:
* special case for one-sided offers where '0' XCH is allowed by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1522
* show NFT title and preview in offer rows by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1521
* tweak testnet button styling by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1520
* Fixing status icons styling (first page & status header) by @rifeljm in https://github.com/Chia-Network/chia-blockchain-gui/pull/1525
* update profiles settings tab and support naming a DID at creation by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1526
* add default fee of zero to fee estimator by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1538
* First screen - edit wallet name (design fixes) by @rifeljm in https://github.com/Chia-Network/chia-blockchain-gui/pull/1529
* Run existing jest tests in CI by @zsolt-dev in https://github.com/Chia-Network/chia-blockchain-gui/pull/1534
* add default fee to fee estimator by @lipalong in https://github.com/Chia-Network/chia-blockchain-gui/pull/1527
* Do not show version mismatch dialog in development by @zsolt-dev in https://github.com/Chia-Network/chia-blockchain-gui/pull/1535
* Prompt to cancel existing offers by @ChiaMineJP in https://github.com/Chia-Network/chia-blockchain-gui/pull/1512
* Add pre commit git hook for eslint and prettier by @zsolt-dev in https://github.com/Chia-Network/chia-blockchain-gui/pull/1536
* update profile settings width and other small changes by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1537
* disabled counter offer button tooltip by @lipalong in https://github.com/Chia-Network/chia-blockchain-gui/pull/1544
* First screen NEW WALLET => ADD WALLET by @rifeljm in https://github.com/Chia-Network/chia-blockchain-gui/pull/1543
* Emoji and color picker cosmetic fixes by @rifeljm in https://github.com/Chia-Network/chia-blockchain-gui/pull/1542
* Sortable wallets bugfixes (+ saving to prefs instead of localStorage) by @rifeljm in https://github.com/Chia-Network/chia-blockchain-gui/pull/1540
* dark mode support by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1546
* Zero state for wallet key home screen by @rifeljm in https://github.com/Chia-Network/chia-blockchain-gui/pull/1545
* add burn icon by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1547
* Changed the Burn NFT icon to a burning/flame icon by @rifeljm in https://github.com/Chia-Network/chia-blockchain-gui/pull/1532
* added support for reset bypass by @seeden in https://github.com/Chia-Network/chia-blockchain-gui/pull/1549
* Randomizing the color and emoji for existing keys the first time use … by @rifeljm in https://github.com/Chia-Network/chia-blockchain-gui/pull/1531
* Rifeljm/#1128 show please wait when accepting offer wallet not synced by @rifeljm in https://github.com/Chia-Network/chia-blockchain-gui/pull/1533
* Fixed an issue where canceled offer in the cancel prompt dialog did n… by @ChiaMineJP in https://github.com/Chia-Network/chia-blockchain-gui/pull/1550
* fix countering offer flow and allow countering from viewing an offer from a notification by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1548
* minor text/emoji sizing and padding tweaks to the wallet key home screen by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1551

**Full Changelog**: https://github.com/Chia-Network/chia-blockchain-gui/compare/1.8.0-b3...1.8.0-b4

* Update the README to link to the Chia website (#14801)

Mention and link to the Chia website in the README

* avoid FullNode.fetch_block_batches() from putting two `None`s into the batch queue

* Bump Apple-Actions/import-codesign-certs from 1 to 2

Bumps [Apple-Actions/import-codesign-certs](https://github.com/Apple-Actions/import-codesign-certs) from 1 to 2.
- [Release notes](https://github.com/Apple-Actions/import-codesign-certs/releases)
- [Commits](https://github.com/Apple-Actions/import-codesign-certs/compare/v1...v2)

---
updated-dependencies:
- dependency-name: Apple-Actions/import-codesign-certs
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* nft royalty edge cases (#14789)

* nft royalty edge cases

* making tests faster

* Update tests/wallet/nft_wallet/test_nft_1_offers.py

Co-authored-by: Matt Hauff <quexington@gmail.com>

* flake

---------

Co-authored-by: Matt Hauff <quexington@gmail.com>

* Bump chia-blockchain-gui to 91234eedaa3fd515699f4d7e38910b5314306cb4 (#14824)

Includes:
* Emoji and color picker positioning fix (did not work at the bottom) by @rifeljm in https://github.com/Chia-Network/chia-blockchain-gui/pull/1555
* Rifeljm/#328 emoji and color picker wallet view (#1553) by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1560
* increase emoji size on the select key screen by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1573
* fix copying of the didid from the signing dialog by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1574
* Remove empty dialog after all blocking offers are canceled by @ChiaMineJP in https://github.com/Chia-Network/chia-blockchain-gui/pull/1554
* Color and emoticon picker - cosmetic fixes by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1579
* NFT detail navigation buttons to center, validation status to top right by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1576
* Moved wallet connect icon to the right (next to notification and exit icon) by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1577
* Fixed emoticon size inside emoji picker on retina displays by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1578
* increase timeouts when fetching content/metadata by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1580

* wallet: Don't just subscribe to all coin ids from the DB (#14813)

* better handling of offer status and failed txs (#14812)

* better handling of offer status and failed txs

* 5 retries before tx is marked failed

* increase test timeouts

* fixed test

* require only difference vs whole fee

* polish + fee coins kick in only if we're missing fee

* wallet: Handle trade coins in the `try` block of `new_coin_state` (#14833)

* Added `chia completion` command (#14782)

* adding 'chia completion' command

* fixing lint

* Fixing isort

* Update chia/cmds/completion.py

Co-authored-by: Kyle Altendorf <sda@fstab.net>

* Update chia/cmds/completion.py

Co-authored-by: Kyle Altendorf <sda@fstab.net>

* Cleanup completions command

* formatting with black

* Update chia/cmds/completion.py

Co-authored-by: Kyle Altendorf <sda@fstab.net>

* Update chia/cmds/completion.py

Co-authored-by: Kyle Altendorf <sda@fstab.net>

* Update chia/cmds/completion.py

Co-authored-by: Kyle Altendorf <sda@fstab.net>

* Update chia/cmds/completion.py

Co-authored-by: Kyle Altendorf <sda@fstab.net>

* Update chia/cmds/completion.py

Co-authored-by: Kyle Altendorf <sda@fstab.net>

* fixup my mistakes

* just ["chia"]

---------

Co-authored-by: Kyle Altendorf <sda@fstab.net>

* Test cleanups (#14841)

* remove redundant test cases in test_blockchain.py test_ephemeral_timelock

* reorganize some test cases

* wallet: Disconnect untrusted peers if we find a trusted synced one (#14640)

* Move `request_time` creation into `is_peer_synced`

* Pass in `height: uint32` instead of `header_block: HeaderBlock`

* Disconnect untrusted peers as soon as we have a synced trusted

* Add `test_long_sync_untrusted_break`

* Ignore already disconnected peers

* tests: Fix flaky RPC related tests in `test_nft_bulk_mint.py` (#14834)

* `assert spend_bundle is not None`, required after hinting in next commit

* Don't start duplicated RPC servers, use the already started ones

* Wait for wallet sync before minting

* Only compile CLVM if source newer than hex (#14840)

* Only compile CLVM is source newer than hex

* lint

* fix renaming of respond_block -> add_block (#14846)

* add benchmark that tests the mempool over a long time (#14728)

add benchmark that tests the mempool over a long time, churning transactions

* full_node: Avoid some list copying in `FullNode.update_wallets` (#14827)

* full_node: Just add `new_states` since the entries can't be `None`

* Drop list creation, `lookup_coin_ids` is already a list

* wallet: Return a dict in `WalletCoinStore.get_coin_records` (#14828)

* fixup tests that do not close all event loops (#14851)

* remove event loop fixture from `test_dl_wallet`

* stop importing unused `Iterator`

* fixup more

* pin pytest-asyncio just for release branch (#14859)

* Bump chia-blockchain-gui to cecb432b8eb0dd4e867ecd7f1124b712bbeb0d13 (#14845)

Includes:
* First screen - wrong emoji font and icon padding by @rifeljm in https://github.com/Chia-Network/chia-blockchain-gui/pull/1583
* prevent entering wallet from emoji picker space key pressed by @rifeljm in https://github.com/Chia-Network/chia-blockchain-gui/pull/1585
* fix issue where custom fees were being zeroed out when refreshing fee estimates by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1597
* change "Let's Farm!" -> "Get Started" on the windows installer by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1599
* unknown cat amount fix2 by @seeden in https://github.com/Chia-Network/chia-blockchain-gui/pull/1598
* smaller screens 2 wallets per row by @rifeljm in https://github.com/Chia-Network/chia-blockchain-gui/pull/1586
* add refresh nft data option to the offer nft preview context menu by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1612
* First screen BUGFIX - there should be no empty div - solved it with b… by @rifeljm in https://github.com/Chia-Network/chia-blockchain-gui/pull/1604
* theme picker same color by @rifeljm in https://github.com/Chia-Network/chia-blockchain-gui/pull/1587
* updated localization link by @seeden in https://github.com/Chia-Network/chia-blockchain-gui/pull/1621
* update Windows app icon by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1620
* suppress offer conflict dialog if there are no conflicts by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1623
* fix delay when determining if send notification is an option on the offer sharing dialog by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1624

**Full Changelog**: https://github.com/Chia-Network/chia-blockchain-gui/compare/1.7.1-rc2...1.7.1-rc3

* Bump chia-blockchain-gui to 5702b3f60c92aa68c30676179b79c94e2192247c (#14861)

Includes:
* [BUGFIX] limiting the number of rows to show in the conflicting offers screen doesn't work by @ChiaMineJP in https://github.com/Chia-Network/chia-blockchain-gui/pull/1625
* fixed navigation back for counter offer by @seeden in https://github.com/Chia-Network/chia-blockchain-gui/pull/1627

* 1.7.1 fixes (#14860)

* Zstdwjb (#80)

* limit decompression output size

* added test

---------

Co-authored-by: William Blanke <wjb98672@gmail.com>

* check MAX_GENERATOR_REF_LIST_SIZE earlier (#68)

* make INFINITE_COST more reasonable (#69)

---------

Co-authored-by: William Allen <wallentx@users.noreply.github.com>
Co-authored-by: William Blanke <wjb98672@gmail.com>

* exclude CompressorArg.generator from repr() due to size (#14849)

* util: Drop outdated comments (#14787)

* added wallet_removed to allowed changes (#14855)

* close daemon client even for a BaseException in acquire_connection_to_daemon()

* Add support to cat_spend RPC for running TAIL (#14730)

* Revert the change as it was only meant for the release branch.

* Update NFT wallet test timeout to 55m (#14872)

* `can_replace()` tests (#14864)

* 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()

* Add placeholders for DAO Wallet directories (#14858)

* Update the anchor to reflect the checkpoint.

* Staging changelog for updates (#14799)

* 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>

* change self peer connection error to info, remove traceback

* enable soft-fork2 conditions (incl. ASSERT_BEFORE) (#14733)

* 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

* increase wallet.nft_wallet test job timeout to 70 minutes (#14881)

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.

* remove traceback from LockQueue._run() cancellation debug logging (#14805)

* wallet: Cleanup `get_timestamp_for_height` + Drop `height_to_time` (#14885)

* wallet: Simplify `WalletStateManager.coin_added` (#14852)

* 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

* wallet: Drop some unused members of `WalletNode` (#14876)

* Remove no longer needed cost_per_byte cases (#14850)

Remove no longer needed cost_per_byte cases.

* Fixed windows issues with passphrase prompt on CLI by flushing prompt (#14904)

flush prompt on windows

* daemon: Fix removal while iterating over connections set (#14887)

* server: Rename `respond_peers` to `add_peers` in `node_dicovery.py` (#14461)

server: `respond_peers` to `add_peers` `node_dicovery.py`

* wallet: Drop `WalletCoinStore.get_multiple_coin_records` (#14862)

* wallet: Rename `WalletNode.untrusted_caches` -> `WalletNode.peer_caches` (#14886)

* wallet: Add `WalletProtocol.wallet_info` (#14895)

* wallet: Some `WalletType` cleanup (#14897)

* Return `WalletTye` in `WalletProtocol.type`

* Compare to `WalletType` in `WalletStateManager.create`

* wallet: Drop unused code in `wallet_state_manager.py` (#14898)

* wallet: Enable and fix more `mypy` in `wallet_weight_proof_handler.py` (#14912)

* Adding py version exclusion (#14906)

* Adding py version exclusion

* adding workflow dispatch override

* consensus: Rename add block method/enum (#14459)

* `ReceiveBlockResult` -> `AddBlockResult`

* `Blockchain.receive_block` -> `Blockchain.add_block`

* wallet: Some tweaks and rename of `WalletStateManager.new_coin_state` (#14863)

* 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

* Minor simplification to the mempool conflicts check (#14918)

Minor simplification to the mempool conflicts check.

* update condition codes constants in clvm include file (#14723)

* Improve core mempool test runs (#14914)

Improve mempool test runs.

* wallet: Drop some parameters from `WalletStateManager.add_new_wallet` (#14919)

* Add unit tests for replace by fee dynamics (#14815)

* Add unit tests for replace by fee dynamics.

* Separate scenarios into their own tests.

* Remove the TestReplaceByFee class.

* slightly faster nft complex offer tests (#14847)

* 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

* remove unused Service(server_listen_ports=) parameter

* add explicit listen option for Service() and ChiaServer.start_server()

* Fix the mempool fee rate calculation (#14926)

* 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.

* more passing arguments by name in `ChiaServer`

* not private...

* just ChiaServer.start() since it sometimes doesn't really start serving

* avoid consuming exceptions while closing the daemon

* move it

* assert_before_height, assert_before_seconds fields in MempoolItem (#14931)

fix issue where assert_before_height and assert_before_seconds fields in MempoolItem would not be populated

* Make sql pre-commit check work when pre-commit hooks are in non-standard locations (#14955)

* make sql pre-commit check work with git worktrees

* Comment reasoning in script file

Co-authored-by: Kyle Altendorf <sda@fstab.net>

---------

Co-authored-by: Kyle Altendorf <sda@fstab.net>

* just return

* util: Drop unused `chia.util.pip_import` (#14965)

* wallet: Remove unused transaction getter (#14923)

* wallet: Improve coin state retry wait logic and retry store test (#14911)

* wallet: Improve coin state retry wait logic and improve retry store test

* Avoid sleeping after uncatched exceptions

* Sleep only at the beginning since we have reduced timeout now in tests

* wallet: Improve balance caching (#14631)

* wallet: Improve balance caching

* Fix missing entries in `get_balance` RPC and add a test for it

* Fix comment

* wallet: Rename add block/state methods  (#14460)

* `WalletBlockchain.receive_block` -> `WalletBlockchain.add_block`

* `receive_state_from_peer` -> `add_states_from_peer`

* `receive_and_validate` -> `validate_and_add`

* wallet: Raise in `WalletNode.get_full_node_peer` and move some of its calls (#14842)

wallet: Raise in `WalletNode.get_full_node_peer` + move some calls of it

* skip empty directories pre-commit (#14973)

* Correct SQLite logging when using db_wrapper.manage_connection() (#14866)

* Correct SQLite log file handling in db_wrapper.manage_connection()

* simplify and fixup

* black

* fix/simplify

* just try/finally

* seeder: case-insensitive DNS label matching to support bit 0x20 use (#14933)

Some DNS resolvers (notably 8.8.8.8) have implemented the use of bit 0x20 in
DNS labels to make cache poisoning attacks more difficult.

See https://datatracker.ietf.org/doc/html/draft-vixie-dnsext-dns0x20-00 for
more details.

Without this patch, resolution though Google public DNS fails:

$ dig dns-introducer.chia.net @8.8.8.8 +short | wc -l
       0

Whereas it works as expected on a seeder which already deployed this patch:

$ dig chia.ctrlaltdel.ch @8.8.8.8 +short | wc -l
      32

* remove synced status check from wallet rpc `/push_transactions` endpoint (#14974)

This is causing trouble around creating transactions and then submitting them as the creation triggers the wallet to consider itself unsynced when creating a new address for change while building a transaction.  This creates a race between syncing and the calling code submitting the generated transaction.

* expose NFT coin info's latest_height to RPCs requesting NFT info (#14954)

* Check hint length in notficication manager to avoid raise (#14972)

* wallet: Introduce `WalletIdentifier` (#14964)

* Bump chia-blockchain-gui to 3f97a37ec5e409d46500ec42c8f8abd63fee7df4 (#14978)

* Update @babel/core to 7.21.2 by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1556
* update http-cache-semantics dependency to 4.1.1 to address dependabot alert by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1557
* Rifeljm/#328 emoji and color picker wallet view by @rifeljm in https://github.com/Chia-Network/chia-blockchain-gui/pull/1553
* refactor and add test coverage for OfferBuilder's createDefaultValues by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1562
* update @walletconnect packages to 2.4.9 by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1558
* remove unused useNFTMetadata hook in api-react by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1563
* spend_type param by @lipalong in https://github.com/Chia-Network/chia-blockchain-gui/pull/1595
* fixed navigation back for counter offer by @seeden in https://github.com/Chia-Network/chia-blockchain-gui/pull/1627
* [BUGFIX] limiting the number of rows to show in the conflicting offers screen doesn't work by @ChiaMineJP in https://github.com/Chia-Network/chia-blockchain-gui/pull/1625
* Fixed broken `useThrottleQuery` by @ChiaMineJP in https://github.com/Chia-Network/chia-blockchain-gui/pull/1633
* update playwright to 1.31.2 by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1646
* Nft search dropdown is now available "Settings/Sign Message" by @rifeljm in https://github.com/Chia-Network/chia-blockchain-gui/pull/1629
* Refactor styled components to sx prop in core package by @zsolt-dev in https://github.com/Chia-Network/chia-blockchain-gui/pull/1645
* Add react and redux devtools to electron by @zsolt-dev in https://github.com/Chia-Network/chia-blockchain-gui/pull/1649
* Add absent libgbm1 dependency by @Elentary in https://github.com/Chia-Network/chia-blockchain-gui/pull/1648
* fix acceptance of one-sided offers by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1652
* Nft transfer cosmetic fixes for showing fee mojos on a new line by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1654
* update electron to 22.3.5 by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1655
* update getWallets api/hook to set includeData to false by default by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1656
* add getCATWalletInfo query to call cat_asset_id_to_name RPC by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1657
* make playwright optional to allow CI to pass on Ubuntu ARM64 by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1661

* @Elentary made their first contribution in https://github.com/Chia-Network/chia-blockchain-gui/pull/1648

**Full Changelog**: https://github.com/Chia-Network/chia-blockchain-gui/compare/1.7.1-rc3...1.8.0-b4

* update black to 23.3.0 (#14537)

* unpin black

* Update setup.py

* Update .pre-commit-config.yaml

* black

* black

* 23.3.0

* cleanup

* Mempool insertion order (#14971)

* prepare mempool spends_by_feerate test for more test cases, move it to test_mempool.py (since it's testing the Mempool class)

* use insertion order as tie-breaker in mempool

* wallet: Drop leaking weight proof validation cache (#14574)

* Make `wp_valid_cache` a LRU cache

* Drop `wp_valid_cache`

* data_layer: Simplify wallet get and create code  (#14878)

* Apply `final` decorator to `DataLayerWallet`

* Simplify `DataLayerWallet.create_new_dl_wallet`

* Simplify `DataLayerWallet.create`

* Improve `WalletStateManager.get_dl_wallet`

* More use of `WalletStateManager.get_dl_wallet`

* Only try `get_dl_wallet`

* Simplify creating a spend bundle from mempool items and move this logic to the mempool (#14934)

Simplify creating a spend bundle from mempool items and move this logic to the mempool.

* windows fix of memory profiler (#14987)

when enabling memory profiler, use a directory name compatible with windows' filesystems

* Update Wallet command line help for key fingerprints (#14982)

* wallet: Drop `chia.wallet.user_settings` (#14899)

* wallet: Handle some peer closed cases better (#14642)

* Move some logs to `DEBUG` for disconnected peers

* Introduce `_add_coin_states` to log and cleanup cache in one place only

* Bail out early for disconnected peers in some places

* Consider renaming from #14460

* wallet: Enable and fix more `mypy` in `wallet_node.py` (#14913)

* correct broken exit codes from `manage_clvm.py`

* optimize Mempool.add_to_pool() (#14988)

* 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

* Update tools/manage_clvm.py

Co-authored-by: Matt Hauff <quexington@gmail.com>

* Bump chia-blockchain-gui to 69b15a42328199eecbe714302070bfd05b098031 (#15002)

* update decode-uri-component transitive dep to 0.2.2 by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1662
* bump webpack to 5.77.0 to address a dependabot alert by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1660
* NFT Provider - refactored NFTs by @seeden in https://github.com/Chia-Network/chia-blockchain-gui/pull/1651
* GUI: Add option to Emoji picker to clear or not set an emoji by @rifeljm in https://github.com/Chia-Network/chia-blockchain-gui/pull/1666
* GUI: Make URL values in NFTProperties clickable by @rifeljm in https://github.com/Chia-Network/chia-blockchain-gui/pull/1668
* Temporary workaround issue using openDialog() on WalletConnect dialogs. by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1670

**Full Changelog**: https://github.com/Chia-Network/chia-blockchain-gui/compare/1.8.0-b4...1.8.0-b5

* Print mypy version

* Remove redundant create_tandem_xch_tx

* Fix conflicts

* add new peak and tidy new compact vdf limited semaphore full logging (#14831)

* add new peak and tidy new compact vdf limited semaphore full logging

* log the peer as well

* delayed formatting for debug logging

* -f

* server:  `peer_host` + `peer_port` -> `peer_info` in `WSChiaConnection` (#14151)

* Add new coin_type & metadata to coin_records (#15013)

* Add new coin_type & metadata to coin_records

* Remove unrelated changes

* Fix pre-commit

* Remove unrelated changes

* Fix pre-commit

* Add get_coin_records_between

* Fix field data type

* Resolve comments

* Fix unit test

* Remove unrelated changes

* Remove unrelated changes

* tests: Reuse `puzzle_utils.make_create_coin_condition` in `test_puzzles` (#15018)

* Dl plugin service (#14883)

* generic downloader

* add s3 Downloader

* tests

* pre commit

* create uploader protocol, factor out upload code

* fix pre commit

* add s3 uploader

* add add helper for testing with real bucket

* typing

* lint

* logs

* start service separation

* working aiohttp s3 service

* lint

* multiple instances config

* break if failed to write

* better error handling

* update from conf before checking

* lint

* redundant config

* also update bucket

* improve exception handling

* remove old tests

* uae multiple uploaders

* Update chia/data_layer/data_layer.py

pr comments

Co-authored-by: Kyle Altendorf <sda@fstab.net>

* pr comments

* Apply typos fixes from code review

Co-authored-by: Kyle Altendorf <sda@fstab.net>

* Update chia/data_layer/s3_plugin_service.py

Co-authored-by: Kyle Altendorf <sda@fstab.net>

* scheme in conf

* use byte32 for store_ids list

* use dataclass instead of tuple for return value

* initial config handling for uploaders and downloaders

---------

Co-authored-by: Kyle Altendorf <sda@fstab.net>
Co-authored-by: Earle Lowe <30607889+emlowe@users.noreply.github.com>
Co-authored-by: Earle Lowe <e.lowe@chia.net>

* Rename singleton helper functions (#14983)

* Rename singleton helper functions

* Amend abbreviation in Singleton Puzzle creation functions

* wallet: Some rework/cleanup of weight proof validation (#14572)

* Drop unused `List[SubEpochSummary]` return

* Drop unused `SubEpochSummary` return

* Raise in `WalletWeightProofHandler.validate_weight_proof`

* Move validation logs

* Set the new weight proof inside `fetch_and_update_weight_proof`

Which was `fetch_and_validate_the_weight_proof` before.

* Drop `WalletWeightProofHandler._weight_proof_tasks`, just await them

Doesn't seem to make a lot sense to have a list of tasks where we always 
just add a task, await it and remove it after. This happens in the long 
sync so to parent task will cancel the awaited task anyway.

* cleanup connection removal from `ChiaServer.all_connections` (#15026)

* wallet: Reduce DB lookups in `handle_did` and `handle_nft` (#14969)

* Use the cached wallets in `handle_did`

* Use the cached wallets in `handle_nft`

* util: Cleanup `Tuple[Optional[Err], ..]` returns in `condition_tools.py` (#15009)

* server: Rework config peer resolving and connection handling (#14997)

merging as the snyk issue is confirmed a false positive

* wallet: Drop unused `Wallet.create_spend_bundle_relative_chia` (#15017)

* limit expiring transactions (#14993)

limit the mempool size used for transactions with short expiration times. This makes it so transactions that expire in the next 15 minutes may not take more than one block worth of cost in the mempool

* S3 plugin config and endpoint updates (#15037)

* Addition logging for datalayer wrt plugins

* some plugin modifications to config and endpoints

* Add entry point and some minor config checking

* Improved config file reading for store_ids

* Changed to upload_bucket and download_url

* Apply suggestions from code review

Co-authored-by: Kyle Altendorf <sda@fstab.net>

* Code review suggestions

* uploaders and downloaders are now URLs and this was missed earlier

* Update pyinstaller.spec to include plugin binary

* updates based on code review

* Update chia/data_layer/s3_plugin_service.py

Co-authored-by: Almog De Paz <almogdepaz@gmail.com>

* minor updates

* Add boto3 to setup for s3 plugin

* Add None check

---------

Co-authored-by: Kyle Altendorf <sda@fstab.net>
Co-authored-by: Almog De Paz <almogdepaz@gmail.com>

* Return fee estimates as integer mojos (#15020)

* Add very basic logging support to S3 plugin (#15031)

* Add very basic logging support to plugin

* Address review comments

* wallet: Select enough XCH to cover the fee when creating an offer (#15051)

* Partially revert 6d09a06

* Include fee amount when selecting XCH coins for offers

* Rename `get_coin_amount` -> `amount_to_select`

* Adjust comment

* No need to create a list first

* Introduce and use the ability to honor spends IDs in make_test_conds (#15060)

Introduce and use the ability to honor spends IDs in make_test_conds.

* extend mempool-benchmark (#15038)

* Simplify create_bundle_from_mempool's handling of removals (#15056)

Simplify create_bundle_from_mempool's handling of removals.

They're already taken care of by aggregation.

* Bump chia-blockchain-gui to 3bac0590c5fe8514eaf35b9b054ee6dca8c2c1aa (#15064)

* added walletconnect app permissions gui by @Gaerax in https://github.com/Chia-Network/chia-blockchain-gui/pull/1561
* Add TS types for api, api-react and refactor parameters to object by @zsolt-dev in https://github.com/Chia-Network/chia-blockchain-gui/pull/1664
* preview an offer being created via WC using createOfferForIds by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1669
* Update eslint rules to allow for-of loops by @zsolt-dev in https://github.com/Chia-Network/chia-blockchain-gui/pull/1673
* added walletconnect app permissions gui by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1659
* adds a global notification toggle by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1658
* Fixed broken code by @ChiaMineJP in https://github.com/Chia-Network/chia-blockchain-gui/pull/1674
* invalidate some RTK caches when logging into a key by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1663

* @Gaerax made their first contribution in https://github.com/Chia-Network/chia-blockchain-gui/pull/1561

**Full Changelog**: https://github.com/Chia-Network/chia-blockchain-gui/compare/1.8.0-b5...1.8.0-b6

* Added some sanity checks to upload and download for S3 plugin (#15057)

* Added some sanity checks to upload and download

* Add server files path to config

* small fix

* send filenames and not paths now

* minor tweaks

* Update chia/data_layer/s3_plugin_service.py

Co-authored-by: Kyle Altendorf <sda@fstab.net>

* use bytes32.fromhex and other fixes

* set host to "localhost"

---------

Co-authored-by: Kyle Altendorf <sda@fstab.net>

* wallet: Some cleanup of `WalletNode.fetch_puzzle_solution` (#14896)

* wallet: Introduce `WalletNode.get_coin_spend_for_coin_state`

* Rename `fetch_puzzle_solution` and `get_coin_spend_for_coin_state`

* Free `fetch_coin_spend` and `fetch_coin_spend_for_coin_state`

* Chialisp file extensions (#14996)

* Rename chialisp file extensions

* Add pre-commit check for .clvm files

* Delete sha256tree files

* remove hash files in favor of central dictionary

* Add check for missing files like hex and hash entries

* Enhance clsp pre-commit check

* Actually check hash matches

* Update tools/manage_clvm.py

Co-authored-by: Kyle Altendorf <sda@fstab.net>

* Update tools/manage_clvm.py

Co-authored-by: Kyle Altendorf <sda@fstab.net>

* Fix Windows file writing

* Fix setup.py package_data fields

* Load hash dict at runtime

* Move away from exception pattern

* Bad equality check

* Minor fixes

* remove trailing whitespace fix

---------

Co-authored-by: Kyle Altendorf <sda@fstab.net>

* server: Try to convert in `known_active_capabilities` (#15046)

* tests: Drop some unused code in `test_puzzle_store.py` (#15047)

* wallet: Fix, simplify and test `TransactionRecord.is_valid` (#15048)

* Add `minimum_send_attempts`

* Fix `MempoolInclusionStatus` check

* Fix error access

* Fix error check

* Simplify

* Test `TransactionRecord.is_valid`

* Generator mod cleanup and simplification (#15055)

* remove unused run_generator_mempool() function

* move run_generator_unsafe() into the tests, which is the only place it's used

* remove (somewhat meaningless) setup_generator_args() and create_generator_args()

* remove unused GENERATOR_MOD in mempool_check_conditions.py

* remove redundant get_generator() function

* transition analyze-chain.py to use run_block_generator() and drop dependency on GENERATOR_MOD

* fixup type hints in test_rom.py

* fixup type hints in test_compression.py

* fixup type hints in test_generator_types.py

* Add plugin_info and healthz endpoints to s3 plugin service, add `chia data plugins check` cli (#15028)

* Add plugin_id and healthz endpoints to s3 plugin service

* Add `chia data plugins check` cli

* plugin_id -> plugin_info

* updates based on reviews

* Use gather to run the lookups

* Update chia/data_layer/data_layer.py

Co-authored-by: Kyle Altendorf <sda@fstab.net>

* Fix typo

* short_help -> help

---------

Co-authored-by: Kyle Altendorf <sda@fstab.net>

* DL plugin Add missing files (#15062)

* add_missing_files

* lint

* dont error on fail to write

* use resource

* remove prints

* use dl folder and file names

* rearrange loop

* remove redundant str conversion

* dont break on failed upload

* bump chia_rs dependency to 0.2.6 (#15077)

* activate the soft-fork and soft-fork2 earlier on testnet10 (#14921)

* Check for directory existence before creating offer (#14990)

Check for dir existence before creating offer

* Removed "failed to write files" log spam from data layer (#15082)

remove log spam for datalayer

* Fix manage_clvm.py hash building and std libraries (#15075)

* manage_clvm.py edge cases

* @trepca suggestion fix

* Add timestamp and formatting to S3 plugin log (#15083)

* add date/time to log output

* minor comment fix

* configurable log_level

* New S3 plugin endpoints for add_store_id and remove_store_id (#15030)

* add_store_id and remove_store_id endpoints

* handle bucket info during add/remove

* Updated add and remove store id endpoints

* fix typo

* Adding daily full matrix test (#14927)

* Adding daily full matrix test

* Adjust indentation

* fix end of file

* Add Chia Simulator tools directly Into Chia Blockchain  (#15005)

* add simulator tool + tests into chia blockchain

add chia dev ...

* isort

* make sim chia root use normal chia root as a part of it

* fix starting path for tests

* cleanup start and stop + cli

* add extra env message

* fix cmds

* update test

* add existing_plots arg

* change to consume_errors

* fix tests

* cleanup cmds_util.py

* cleanup click

* clean up block_tools

dataclass + logic cleanup & tests

* isort block_tools.py

* server: Resolve introducer right before the connection attempt (#14998)

* Bump chia-blockchain-gui to c2707c8aa27093cf5f1deab4a4c68ce9ff5adb23 (#15085)

* Check latest GUI version on http://chia.net/downloads by @rifeljm in https://github.com/Chia-Network/chia-blockchain-gui/pull/1607
* added compareAppVersions function with tests by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1677
* Enable MintGarden offer sharing on mainnet by @greimela in https://github.com/Chia-Network/chia-blockchain-gui/pull/1676
* add checkbox to toggle launching Chia when installer exits by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1678
* nft improvements by @seeden in https://github.com/Chia-Network/chia-blockchain-gui/pull/1672

* @greimela made their first contribution in https://github.com/Chia-Network/chia-blockchain-gui/pull/1676

**Full Changelog**: https://github.com/Chia-Network/chia-blockchain-gui/compare/1.8.0-b6...1.8.0-b7

* bump chia_rs to 0.2.7 (#15110)

* lower MAX_FUTURE_TIME to 2 minutes with the 1.8.0 soft-fork activation (#15035)

* Bump chia-blockchain-gui to 8c1817c14c053b13158622af9550315f3e25003f (#15111)

* set progress to 100% when there are no NFTs by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1679
* wallet connect upgrade by @seeden in https://github.com/Chia-Network/chia-blockchain-gui/pull/1680
* fix skip version logic and allow localStorage overrides for testing by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1685
* fix broken calls to getOfferSummary by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1689
* fix callers of RTK mutations to pass params properly by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1691
* Update PlotAddNFT.tsx by @Voodoo-Chia in https://github.com/Chia-Network/chia-blockchain-gui/pull/1671
* fix cat_spend to use 'inner_address' instead of 'address' by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1692
* Fixed an issue where creating an offer with NFT failed by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1704

* @Voodoo-Chia made their first contribution in https://github.com/Chia-Network/chia-blockchain-gui/pull/1671

**Full Changelog**: https://github.com/Chia-Network/chia-blockchain-gui/compare/1.8.0-b7...1.8.0-rc2

* util: Async DNS lookups (#14999)

* Rename `get_host_addr` to `resolve`

* Async DNS lookups in `resolve`

* Drop not needed `str` conversions

* wallet: Move assignments of `WalletStateManager._sync_target` (#15148)

* wallet: Lock `WalletStateManager.lock` while populating balances initially (#15149)

Lock `WalletStateManager.lock` while populating balances initially

* Bump chia-blockchain-gui to e5daa7d8f601b5bd7dd25a119339508b56deab19 (#15155)

* fix offer creation when requesting NFTs. driver_dict was being passed incorrectly by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1709
* Downgrade WalletConnect SDK to 2.6.0 as versions > 2.6.0 introduce a breaking change by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1723
* OfferBin --> 🗑 by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1727
* fix issue with "Check for Updates" dialog stacking on top of itself by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1725

**Full Changelog**: https://github.com/Chia-Network/chia-blockchain-gui/compare/1.8.0-rc2...1.8.0-rc4

* wallet: Revert "Add new coin_type & metadata to coin_records (#15013)" (#15154)

Revert "Add new coin_type & metadata to coin_records (#15013)"

This reverts commit a998ea48d856234b5d7b79c5dbf1fa0c6c93e084.

* wallet: List the columns for `INSERT` into `coin_record` (#15159)

* Bump chia-blockchain-gui to 1e1f85a918d63be26d96a3cbac2e0dd365175382 (#15170)

* fix regression that prevented accepting offers with unknown CATs by @paninaro in https://github.com/Chia-Network/chia-blockchain-gui/pull/1738

**Full Changelog**: https://github.com/Chia-Network/chia-blockchain-gui/compare/1.8.0-rc4...1.8.0-rc5

* 1.8.0 changelog (#15169)

* Drafting 1.8.0 changelog

* Update CHANGELOG.md

* Cleanup extra bits from new changelog entry

---------

Co-authored-by: Earle Lowe <30607889+emlowe@users.noreply.github.com>

* Fix soft fork to 60 days (#15191)

* 60 days

* testnet changes

* Additional entry to changelog (#15194)

* integrate get_puzzle_and_solution_for_coin change into enhanced endpoints

* use renamed method

* update use of get_puzzle_and_solution_for_coin

* improve code reuse between paginated endpoints, fix error

* fix hint paginated fetch

* remove logging

* add new paginated hints method

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Kyle Altendorf <sda@fstab.net>
Co-authored-by: Chris Marslender <chrismarslender@gmail.com>
Co-authored-by: Jeff <jeff@chia.net>
Co-authored-by: Arvid Norberg <arvid@libtorrent.org>
Co-authored-by: Earle Lowe <30607889+emlowe@users.noreply.github.com>
Co-authored-by: Adam Kelly <338792+aqk@users.noreply.github.com>
Co-authored-by: dustinface <35775977+xdustinface@users.noreply.github.com>
Co-authored-by: William Allen <wallentx@users.noreply.github.com>
Co-authored-by: Matt Hauff <quexington@gmail.com>
Co-authored-by: William Blanke <wjb98672@gmail.com>
Co-authored-by: Adam J. Weigold <adam@adamweigold.com>
Co-authored-by: Amine Khaldi <amine.khaldi@reactos.org>
Co-authored-by: Kronus91 <t.yu@chia.net>
Co-authored-by: Zachary Brown <z.brown@chia.net>
Co-authored-by: Sebastjan Trepca <trepca@gmail.com>
Co-authored-by: François Deppierraz <francois-github@ctrlaltdel.ch>
Co-authored-by: Justin England <justin@chia.net>
Co-authored-by: Almog De Paz <almogdepaz@gmail.com>
Co-authored-by: Earle Lowe <e.lowe@chia.net>
Co-authored-by: Jack Nelson <j.nelson@chia.net>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changed Required label for PR that categorizes merge commit message as "Changed" for changelog ready_to_merge Submitter and reviewers think this is ready
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants