Skip to content

Commit

Permalink
catchup: into main from long_lived/post_1.5.0 @ 916ccee (Chia-Network…
Browse files Browse the repository at this point in the history
…#12629)

* updated wallet name

* deprecated series

* swap to cat2

* updating .gitmodule to point to defender-gui

* Remove break (its preventing other sockets from getting data when earlier ones have an error) (Chia-Network#12241)

* Convert DID Wallet to use the new coin selection algorithm that the normal wallet and the CAT wallet already use (Chia-Network#12063)

* small type change

* use coin_selection.py with DID Wallet

use more efficient coin selection methods.

* Add special DID edgecase + fix int type

* Ms.fix coin selection (Chia-Network#12261)

* Fix coin selection bug

* Fix properly

* Fallback in cases of too many coins selected

* Also check for num coins

* Lint issues.

* Add another test

* No sorting, and faster knapsack

* Lint fix

* Remove comment and useless check

* Lint line

* Tx submission idempotance, and prioritize wallet (Chia-Network#12282)

* Tx submission idempotance, and prioritize wallet

* TODO comment

* Updating gui modules

* extend min_coin to rpc calls & cli for coin selection  (Chia-Network#12274)

* add tests to test if min_coin is working

they are passing, but no harm in being safe

* expand min coin amount across wallet.py

* extend to trade_manager

* add new options to rpc's

almost done lol.

* add min_coin_amount to wallet send

* make param non optional

alleviate None errors

* add cat wallet changes, rpc and all + fix a bug i accidentally made

oops

* Fix offer compression backwards compatibility

* bumping gui pin to head of release/1.5.0

* Calculate NFT royalty amount

* Create NFT wallet after the DID created (Chia-Network#12175)

* Bumping gui

* Show total amount to be paid for NFT offers

* Fix for NFT0 and NFT+Royalty detection suggested by quex

* Linter fix and formatting change

* Add RPCs for getting/extending the current derivation path index (Chia-Network#12472)

* Sleep to allow neworking layer to execute (Chia-Network#12463)

* Sleep to allow neworking layer to execute

* Add comment

* Added param to indicate how many additional phs create_more_puzzle_hashes should create. (Chia-Network#12493)

Account for range() not including last_index when `up_to_index` is provided.

* Fixed the wallet db rename from v2/v1 to v2_r1.
Removed vestigial code for dealing with the lite wallet db now that
we're syncing v2_r1 from scratch.

* When extending the derivation index, make sure we don't mark previously (Chia-Network#12513)

unused indices as used. This helps minimize gaps in the address space.

* Updating SBX asset ID

* Adding 1.5.0 changelog (Chia-Network#56)

* Adding 1.5.0 changelog

* Adding CVE fix

* Updating gitmodules (Chia-Network#57)

* Updating gitmodules

* Pinning gui

* black fixes

* mypy fixes

* xfail some run_block tests that need CAT2 update

* fix test

* Fix test based on series<->edition changes

* Drop EOL impish and hirsute (Chia-Network#12559)

(cherry picked from commit 189790c)

* Expand select_coins rpc  (Chia-Network#12360)

* change type to uint64, 128 is too big anyway

* add new options to select_coins endpoint

* oops

* add tests and finalize

* oops

(cherry picked from commit d5bf4d8)

* .resolve() for wallet db path tests in windows

* followup to actually fix the wallet db path tests

* Update .gitmodules

* Update wallet_node.py

* Update trade_manager.py

Co-authored-by: Sebastjan <[email protected]>
Co-authored-by: matt <[email protected]>
Co-authored-by: William Allen <[email protected]>
Co-authored-by: wallentx <[email protected]>
Co-authored-by: Chris Marslender <[email protected]>
Co-authored-by: Jack Nelson <[email protected]>
Co-authored-by: Mariano Sorgente <[email protected]>
Co-authored-by: Matt Hauff <[email protected]>
Co-authored-by: Jeff Cruikshank <[email protected]>
Co-authored-by: Kronus91 <[email protected]>
Co-authored-by: Justin England <[email protected]>
Co-authored-by: Earle Lowe <[email protected]>
Co-authored-by: Earle Lowe <[email protected]>
  • Loading branch information
14 people authored Jul 29, 2022
1 parent 4b8130e commit e5bc89e
Show file tree
Hide file tree
Showing 24 changed files with 646 additions and 481 deletions.
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[submodule "chia-blockchain-gui"]
path = chia-blockchain-gui
url = https://github.com/Chia-Network/chia-blockchain-gui.git
branch = pools
branch = main
[submodule "mozilla-ca"]
path = mozilla-ca
url = https://github.com/Chia-Network/mozilla-ca.git
Expand Down
58 changes: 45 additions & 13 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,49 @@ for setuptools_scm/PEP 440 reasons.

### What's Changed

## 1.5.0 Chia blockchain 2022-7-26

### Added

- Added derivation index information to the Wallet UI to show the current derivation index height
- Added section in Settings to allow the user to manually update the derivation index height in order to ensure the wallet finds all the coins
- Added a tooltip for users to understand why their CAT balance has changed as new CAT2 tokens get re-issued
- There is now a `blockchain_wallet_v2_r1_*.sqlite` DB that will be created, which will sync from 0 to look for CAT2 tokens. This preserves a copy of your previous wallet DB so that you are able to look up previous transactions by using an older wallet client
- Extended `min_coin` to RPC calls, and CLI for coin selection
- Show DID in the offer preview for NFTs
- Added wallet RPCs (`get_derivation_index`, `update_derivation_index`) to enable the GUI, and CLI to report what the current derivation index is for scanning wallet addresses, and also allows a user to move that index forward to broaden the set of addresses to scan for coins

### Changed

- Changed the DID Wallet to use the new coin selection algorithm that the Standard Wallet, and the CAT Wallet already use
- Changed returning the result of send_transaction to happen after the transaction has been added to the queue, rather than it just being added to the mempool.
- Increased the priority of wallet transactions vs full node broadcasted transactions, so we don't have to wait in line as a wallet user
- Deprecated the `-st, --series-total` and `-sn, --series-number` RPC and CLI NFT minting options in favor of `-ec, --edition-count` and `-en, --edition-number` to align with NFT industry terms
- When creating a DID profile, a DID-linked NFT wallet is automatically created
- Update `chia wallet take_offer` to show NFT royalties that will be paid out when an offer is taken
- Added a parameter to indicate how many additional puzzle hashes `create_more_puzzle_hashes` should create

### Fixed

- Fixed [CVE-2022-36447] where in tokens previously minted on the Chia blockchain using the `CAT1` standard can be inflated in arbitrary amounts by any holder of the token. Total amount of the token can be increased as high as the malicious actor pleases. This is true for every `CAT1` on the Chia blockchain, regardless of issuance rules. This attack is auditable on-chain, so maliciously altered coins can potentially be "marked" by off-chain observers as malicious.
- Fixed issue that prevented websockets from being attempted if an earlier websocket failed
- Fixed issue where `test_smallest_coin_over_amount` did not work properly when all coins were smaller than the amount
- Fixed a performance issue with knapsack that caused it to keep searching for more coins than could actually be selected. Performance with 200k coins:
- Old: 60 seconds
- New: 0.78 seconds
- Fixed offer compression backwards compatibility
- Fixed royalty percentage check for NFT0 NFTs, and made the check for an offer containing an NFT more generalized
- Fixed timing with asyncio context switching that could prevent networking layer from responding to ping

## 1.4.0 Chia blockchain 2022-6-29

### Added

- Added support for NFTs!!! :party:
- Added `chia wallet nft` command (see https://docs.chia.net/docs/13cli/did_cli)
- Added `chia wallet did` command (see https://docs.chia.net/docs/12rpcs/nft_rpcs)
- Added RPCs for DID (see https://docs.chia.net/docs/12rpcs/did_rpcs)
- Added RPCs for NFT (see https://docs.chia.net/docs/12rpcs/nft_rpcs)
- Added `chia wallet nft` command (see <https://docs.chia.net/docs/13cli/did_cli>)
- Added `chia wallet did` command (see <https://docs.chia.net/docs/12rpcs/nft_rpcs>)
- Added RPCs for DID (see <https://docs.chia.net/docs/12rpcs/did_rpcs>)
- Added RPCs for NFT (see <https://docs.chia.net/docs/12rpcs/nft_rpcs>)
- Enable stricter mempool rule when dealing with multiple extra arguments
- Added a retry when loading pool info from a pool at 2 minute intervals
- Added CLI options `--sort-by-height` and –sort-by-relevance` to `chia wallet get_transactions`
Expand Down Expand Up @@ -228,7 +262,7 @@ There is a known issue where harvesters will not reconnect to the farmer automat

## 1.3.0 Chia blockchain 2022-3-07

### Added:
### Added

- CAT wallet support - add wallets for your favorite CATs.
- Offers - make, take, and share your offers.
Expand All @@ -248,7 +282,7 @@ There is a known issue where harvesters will not reconnect to the farmer automat
- Added *multiprocessing_start_method:* entry in config.yaml that allows setting the python *start method* for multiprocessing (default is *spawn* on Windows & MacOS, *fork* on Unix).
- Added option to "Cancel transaction" accepted offers that are stuck in "pending".

### Changed:
### Changed

- Lite wallet client sync updated to only require 3 peers instead of 5.
- Only CATs from the default CAT list will be automatically added, all other unknown CATs will need to be manually added (thanks to @ojura, this behavior can be toggled in config.yaml).
Expand Down Expand Up @@ -277,7 +311,7 @@ There is a known issue where harvesters will not reconnect to the farmer automat
- It should not be expected that wallet info, such as payout address, should not reflect what their desired values until everything has completed syncing.
- The payout instructions may not be editable via the GUI until syncing has completed.

### Fixed:
### Fixed

- Offer history limit has been fixed to show all offers now instead of limiting to just 49 offers.
- Fixed issues with using madmax CLI options -w, -G, -2, -t and -d (Issue 9163) (thanks @randomisresistance and @lasers8oclockday1).
Expand All @@ -302,7 +336,7 @@ There is a known issue where harvesters will not reconnect to the farmer automat
- Memory leak in the full node sync store where peak hashes were stored without being pruned.
- Fixed a timelord issue which could cause a few blocks to not be infused on chain if a certain proof of space signs conflicting blocks.

### Known Issues:
### Known Issues

- When you are adding plots and you choose the option to “create a Plot NFT”, you will get an error message “Initial_target_state” and the plots will not get created.
- Workaround: Create the Plot NFT first in the “Pool” tab, and then add your plots and choose the created plot NFT in the drop down.
Expand All @@ -317,11 +351,10 @@ There is a known issue where harvesters will not reconnect to the farmer automat

## 1.2.11 Chia blockchain 2021-11-4

Farmers rejoice: today's release integrates two plotters in broad use in the Chia community: Bladebit, created by @harold-b, and Madmax, created by @madMAx43v3r. Both of these plotters bring significant improvements in plotting time. More plotting info [here](https://github.com/Chia-Network/chia-blockchain/wiki/Alternative--Plotters).
This release also includes several important performance improvements as a result of last weekends "Dust Storm", with two goals in mind: make sure everyone can farm at all times, and improve how many transactions per second each node can accept, especially for low-end hardware. Please know that these optimizations are only the first wave in a series of many over the next few releases to help address this going forward. While the changes we have implemented in this update may not necessarily solve for _every_ possible congestion scenario, they should go a long way towards helping low-end systems perform closer to expectations if this happens again.

### Added

- Farmers rejoice: today's release integrates two plotters in broad use in the Chia community: Bladebit, created by @harold-b, and Madmax, created by @madMAx43v3r. Both of these plotters bring significant improvements in plotting time. More plotting info [here](https://github.com/Chia-Network/chia-blockchain/wiki/Alternative--Plotters).
- This release also includes several important performance improvements as a result of last weekends "Dust Storm", with two goals in mind: make sure everyone can farm at all times, and improve how many transactions per second each node can accept, especially for low-end hardware. Please know that these optimizations are only the first wave in a series of many over the next few releases to help address this going forward. While the changes we have implemented in this update may not necessarily solve for *every* possible congestion scenario, they should go a long way towards helping low-end systems perform closer to expectations if this happens again.
- Performance improvements for nodes to support higher transaction volumes, especially for low powered devices like RaspBerry Pi. Full details at [#9050](https://github.com/Chia-Network/chia-blockchain/pull/9050).
- Improved multi-core usage through process pools.
- Prioritized block validation.
Expand Down Expand Up @@ -349,7 +382,6 @@ This release also includes several important performance improvements as a resul

- PlotNFT transactions via CLI (e.g. `chia plotnft join`) now accept a fee parameter, but it is not yet operable.


## 1.2.10 Chia blockchain 2021-10-25

We have some great improvements in this release: We launched our migration of keys to a common encrypted keyring.yaml file, and we secure this with an optional passphrase in both GUI and CLI. We've added a passphrase hint in case you forget your passphrase. More info on our [wiki](https://github.com/Chia-Network/chia-blockchain/wiki/Passphrase-Protected-Chia-Keys-and-Key-Storage-Migration). We also launched a new Chialisp compiler in clvm_tools_rs which substantially improves compile time for Chialisp developers. We also addressed a widely reported issue in which a system failure, such as a power outage, would require some farmers to sync their full node from zero. This release also includes several other improvements and fixes.
Expand Down Expand Up @@ -1991,7 +2023,7 @@ relic. We will make a patch available for these systems shortly.
### Added

- There is now full transaction support on the Chia blockchain. In this initial Beta 1.0 release, all transaction types are supported though the wallets and UIs currently only directly support basic transactions like coinbase rewards and sending coins while paying fees. UI support for our [smart transactions](https://github.com/Chia-Network/wallets/blob/main/README.md) will be available in the UIs shortly.
- Wallet and Node GUI’s are available on Windows, Mac, and desktop Linux platforms. We now use an Electron UI that is a full light client wallet that can also serve as a node UI. Our Windows Electron Wallet can run standalone by connecting to other nodes on the network or another node you run. WSL 2 on Windows can run everything except the Wallet but you can run the Wallet on the native Windows side of the same machine. Also the WSL 2 install process is 3 times faster and _much_ easier. Windows native node/farmer/plotting functionality are coming soon.
- Wallet and Node GUI’s are available on Windows, Mac, and desktop Linux platforms. We now use an Electron UI that is a full light client wallet that can also serve as a node UI. Our Windows Electron Wallet can run standalone by connecting to other nodes on the network or another node you run. WSL 2 on Windows can run everything except the Wallet but you can run the Wallet on the native Windows side of the same machine. Also the WSL 2 install process is 3 times faster and *much* easier. Windows native node/farmer/plotting functionality are coming soon.
- Install is significantly easier with less dependencies on all supported platforms.
- If you’re a farmer you can use the Wallet to keep track of your earnings. Either use the same keys.yaml on the same machine or copy the keys.yaml to another machine where you want to track of and spend your coins.
- We have continued to make improvements to the speed of VDF squaring, creating a VDF proof, and verifying a VDF proof.
Expand Down
2 changes: 1 addition & 1 deletion chia-blockchain-gui
24 changes: 19 additions & 5 deletions chia/cmds/wallet.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
import click

from chia.cmds.plotnft import validate_fee
from chia.wallet.util.wallet_types import WalletType
from chia.wallet.transaction_sorting import SortKey
from chia.wallet.util.wallet_types import WalletType


@click.group("wallet", short_help="Manage your wallet")
Expand Down Expand Up @@ -574,8 +574,12 @@ def nft_wallet_create_cmd(
@click.option("-mu", "--metadata-uris", help="Comma separated list of metadata URIs", type=str)
@click.option("-lh", "--license-hash", help="NFT license hash", type=str, default="")
@click.option("-lu", "--license-uris", help="Comma separated list of license URIs", type=str)
@click.option("-st", "--series-total", help="NFT series total number", type=int, default=1, show_default=True)
@click.option("-sn", "--series-number", help="NFT seriese number", type=int, default=1, show_default=True)
@click.option(
"-st", "--series-total", help="[DEPRECATED] NFT series total number", type=int, default=1, show_default=True
)
@click.option("-sn", "--series-number", help="[DEPRECATED] NFT series number", type=int, default=1, show_default=True)
@click.option("-ec", "--edition-count", help="NFT edition count, defaults to 1", type=int)
@click.option("-en", "--edition-number", help="NFT edition number, defaults to 1", type=int)
@click.option(
"-m",
"--fee",
Expand Down Expand Up @@ -608,6 +612,8 @@ def nft_mint_cmd(
license_uris: Optional[str],
series_total: Optional[int],
series_number: Optional[int],
edition_count: Optional[int],
edition_number: Optional[int],
fee: str,
royalty_percentage_fraction: int,
) -> None:
Expand All @@ -624,6 +630,14 @@ def nft_mint_cmd(
else:
license_uris_list = [lu.strip() for lu in license_uris.split(",")]

if not (edition_number and edition_count):
if series_number and series_total:
print("\nWARNING: Series total(-st) and number(-sn) options are *deprecated*, please use -en and -ec.\n")
edition_number = series_number
edition_count = series_total
else:
edition_number = 1
edition_count = 1
extra_params = {
"wallet_id": id,
"royalty_address": royalty_address,
Expand All @@ -635,8 +649,8 @@ def nft_mint_cmd(
"metadata_uris": metadata_uris_list,
"license_hash": license_hash,
"license_uris": license_uris_list,
"series_total": series_total,
"series_number": series_number,
"edition_count": edition_count,
"edition_number": edition_number,
"fee": fee,
"royalty_percentage": royalty_percentage_fraction,
}
Expand Down
Loading

0 comments on commit e5bc89e

Please sign in to comment.