From 14495a739218ce9b972506fe526e9c5d7220dc9a Mon Sep 17 00:00:00 2001 From: Matt Date: Thu, 17 Jul 2025 10:57:22 +0200 Subject: [PATCH 1/8] Port `test_nft_offer_nft_for_cat` --- .../wallet/nft_wallet/test_nft_offers.py | 56 ++++++++++--------- 1 file changed, 31 insertions(+), 25 deletions(-) diff --git a/chia/_tests/wallet/nft_wallet/test_nft_offers.py b/chia/_tests/wallet/nft_wallet/test_nft_offers.py index 80eb211f06cf..14071c7481bf 100644 --- a/chia/_tests/wallet/nft_wallet/test_nft_offers.py +++ b/chia/_tests/wallet/nft_wallet/test_nft_offers.py @@ -5,11 +5,14 @@ import pytest from chia_rs.sized_bytes import bytes32 from chia_rs.sized_ints import uint64 +from typing_extensions import Any from chia._tests.environments.wallet import WalletStateTransition, WalletTestFramework from chia._tests.util.time_out_assert import time_out_assert +from chia._tests.wallet.cat_wallet.test_cat_wallet import mint_cat from chia.types.blockchain_format.program import Program from chia.wallet.cat_wallet.cat_wallet import CATWallet +from chia.wallet.cat_wallet.r_cat_wallet import RCATWallet from chia.wallet.nft_wallet.nft_wallet import NFTWallet from chia.wallet.outer_puzzles import create_asset_id, match_puzzle from chia.wallet.puzzle_drivers import PuzzleInfo @@ -696,8 +699,9 @@ async def test_nft_offer_with_metadata_update(wallet_environments: WalletTestFra @pytest.mark.limit_consensus_modes(reason="irrelevant") @pytest.mark.parametrize("wallet_environments", [{"num_environments": 2, "blocks_needed": [1, 1]}], indirect=True) +@pytest.mark.parametrize("wallet_type", [CATWallet, RCATWallet]) @pytest.mark.anyio -async def test_nft_offer_nft_for_cat(wallet_environments: WalletTestFramework) -> None: +async def test_nft_offer_nft_for_cat(wallet_environments: WalletTestFramework, wallet_type: type[CATWallet]) -> None: env_0 = wallet_environments.environments[0] env_1 = wallet_environments.environments[1] wallet_maker = env_0.xch_wallet @@ -786,27 +790,25 @@ async def test_nft_offer_nft_for_cat(wallet_environments: WalletTestFramework) - # Create two new CATs and wallets for maker and taker cats_to_mint = 10000 - async with wallet_maker.wallet_state_manager.new_action_scope( - wallet_environments.tx_config, push=True - ) as action_scope: - cat_wallet_maker = await CATWallet.create_new_cat_wallet( - env_0.wallet_state_manager, - wallet_maker, - {"identifier": "genesis_by_id"}, - uint64(cats_to_mint), - action_scope, - ) + cat_wallet_maker = await mint_cat( + wallet_environments, + env_0, + "xch", + "maker cat", + uint64(cats_to_mint), + wallet_type, + "maker cat", + ) - async with wallet_taker.wallet_state_manager.new_action_scope( - wallet_environments.tx_config, push=True - ) as action_scope: - cat_wallet_taker = await CATWallet.create_new_cat_wallet( - env_1.wallet_state_manager, - wallet_taker, - {"identifier": "genesis_by_id"}, - uint64(cats_to_mint), - action_scope, - ) + cat_wallet_taker = await mint_cat( + wallet_environments, + env_1, + "xch", + "taker cat", + uint64(cats_to_mint), + wallet_type, + "taker cat", + ) # mostly set_remainder here as minting CATs is tested elsewhere await wallet_environments.process_pending_states( @@ -844,12 +846,16 @@ async def test_nft_offer_nft_for_cat(wallet_environments: WalletTestFramework) - ] ) - wallet_maker_for_taker_cat: CATWallet = await CATWallet.get_or_create_wallet_for_cat( - env_0.wallet_state_manager, wallet_maker, cat_wallet_taker.get_asset_id() + if wallet_type is RCATWallet: + extra_args: Any = (bytes32.zeros,) + else: + extra_args = tuple() + wallet_maker_for_taker_cat: CATWallet = await wallet_type.get_or_create_wallet_for_cat( + env_0.wallet_state_manager, wallet_maker, cat_wallet_taker.get_asset_id(), *extra_args ) - await CATWallet.get_or_create_wallet_for_cat( - env_1.wallet_state_manager, wallet_taker, cat_wallet_maker.get_asset_id() + await wallet_type.get_or_create_wallet_for_cat( + env_1.wallet_state_manager, wallet_taker, cat_wallet_maker.get_asset_id(), *extra_args ) # MAKE FIRST TRADE: 1 NFT for 10 taker cats From ba80da69b1df5757a1a8e2bc91ba1a73c955e4fb Mon Sep 17 00:00:00 2001 From: Matt Date: Thu, 17 Jul 2025 11:08:33 +0200 Subject: [PATCH 2/8] Port `test_nft_offer_nft0_and_xch_for_cat` --- .../wallet/nft_wallet/test_nft_offers.py | 96 ++++++------------- 1 file changed, 30 insertions(+), 66 deletions(-) diff --git a/chia/_tests/wallet/nft_wallet/test_nft_offers.py b/chia/_tests/wallet/nft_wallet/test_nft_offers.py index 14071c7481bf..e0cb44d6d7bd 100644 --- a/chia/_tests/wallet/nft_wallet/test_nft_offers.py +++ b/chia/_tests/wallet/nft_wallet/test_nft_offers.py @@ -1373,8 +1373,11 @@ async def test_nft_offer_nft_for_nft(wallet_environments: WalletTestFramework) - @pytest.mark.limit_consensus_modes(reason="irrelevant") @pytest.mark.parametrize("wallet_environments", [{"num_environments": 2, "blocks_needed": [1, 1]}], indirect=True) +@pytest.mark.parametrize("wallet_type", [CATWallet, RCATWallet]) @pytest.mark.anyio -async def test_nft_offer_nft0_and_xch_for_cat(wallet_environments: WalletTestFramework) -> None: +async def test_nft_offer_nft0_and_xch_for_cat( + wallet_environments: WalletTestFramework, wallet_type: type[CATWallet] +) -> None: env_0 = wallet_environments.environments[0] env_1 = wallet_environments.environments[1] wallet_maker = env_0.xch_wallet @@ -1463,79 +1466,40 @@ async def test_nft_offer_nft0_and_xch_for_cat(wallet_environments: WalletTestFra assert await nft_wallet_taker.get_nft_count() == 0 # Create two new CATs and wallets for maker and taker cats_to_mint = 10000 - async with wallet_maker.wallet_state_manager.new_action_scope( - wallet_environments.tx_config, push=True - ) as action_scope: - cat_wallet_maker = await CATWallet.create_new_cat_wallet( - env_0.wallet_state_manager, - wallet_maker, - {"identifier": "genesis_by_id"}, - uint64(cats_to_mint), - action_scope, - ) + cat_wallet_maker = await mint_cat( + wallet_environments, + env_0, + "xch", + "maker cat", + uint64(cats_to_mint), + CATWallet, + "maker cat", + ) - async with wallet_taker.wallet_state_manager.new_action_scope( - wallet_environments.tx_config, push=True - ) as action_scope: - cat_wallet_taker = await CATWallet.create_new_cat_wallet( - env_1.wallet_state_manager, - wallet_taker, - {"identifier": "genesis_by_id"}, - uint64(cats_to_mint), - action_scope, - ) + cat_wallet_taker = await mint_cat( + wallet_environments, + env_1, + "xch", + "taker cat", + uint64(cats_to_mint), + CATWallet, + "taker cat", + ) + if wallet_type is RCATWallet: + extra_args: Any = (bytes32.zeros,) + else: + extra_args = tuple() wallet_maker_for_taker_cat: CATWallet = await CATWallet.get_or_create_wallet_for_cat( - env_0.wallet_state_manager, wallet_maker, cat_wallet_taker.get_asset_id() + env_0.wallet_state_manager, wallet_maker, cat_wallet_taker.get_asset_id(), *extra_args ) await CATWallet.get_or_create_wallet_for_cat( - env_1.wallet_state_manager, wallet_taker, cat_wallet_maker.get_asset_id() + env_1.wallet_state_manager, wallet_taker, cat_wallet_maker.get_asset_id(), *extra_args ) - # mostly set_remainder here as minting CATs is tested elsewhere - await wallet_environments.process_pending_states( - [ - WalletStateTransition( - pre_block_balance_updates={ - "xch": {"set_remainder": True}, - "maker cat": { - "init": True, - "set_remainder": True, - }, - "taker cat": { - "init": True, - "set_remainder": True, - }, - }, - post_block_balance_updates={ - "xch": {"set_remainder": True}, - "maker cat": { - "set_remainder": True, - }, - }, - ), - WalletStateTransition( - pre_block_balance_updates={ - "xch": {"set_remainder": True}, - "maker cat": { - "init": True, - "set_remainder": True, - }, - "taker cat": { - "init": True, - "set_remainder": True, - }, - }, - post_block_balance_updates={ - "xch": {"set_remainder": True}, - "taker cat": { - "set_remainder": True, - }, - }, - ), - ] - ) + await env_0.change_balances({"taker cat": {"init": True}}) + await env_1.change_balances({"maker cat": {"init": True}}) # MAKE FIRST TRADE: 1 NFT for 10 taker cats nft_to_offer = coins_maker[0] From 81bbc229cb3e848b5558ef61874bcfd5d4021ba1 Mon Sep 17 00:00:00 2001 From: Matt Date: Thu, 17 Jul 2025 11:11:57 +0200 Subject: [PATCH 3/8] Forgot to delete an unnecessary state process --- .../wallet/nft_wallet/test_nft_offers.py | 47 ++----------------- 1 file changed, 5 insertions(+), 42 deletions(-) diff --git a/chia/_tests/wallet/nft_wallet/test_nft_offers.py b/chia/_tests/wallet/nft_wallet/test_nft_offers.py index e0cb44d6d7bd..498b7c791b6d 100644 --- a/chia/_tests/wallet/nft_wallet/test_nft_offers.py +++ b/chia/_tests/wallet/nft_wallet/test_nft_offers.py @@ -810,42 +810,6 @@ async def test_nft_offer_nft_for_cat(wallet_environments: WalletTestFramework, w "taker cat", ) - # mostly set_remainder here as minting CATs is tested elsewhere - await wallet_environments.process_pending_states( - [ - WalletStateTransition( - pre_block_balance_updates={ - "xch": {"set_remainder": True}, - "maker cat": { - "init": True, - "set_remainder": True, - }, - }, - post_block_balance_updates={ - "xch": {"set_remainder": True}, - "maker cat": { - "set_remainder": True, - }, - }, - ), - WalletStateTransition( - pre_block_balance_updates={ - "xch": {"set_remainder": True}, - "taker cat": { - "init": True, - "set_remainder": True, - }, - }, - post_block_balance_updates={ - "xch": {"set_remainder": True}, - "taker cat": { - "set_remainder": True, - }, - }, - ), - ] - ) - if wallet_type is RCATWallet: extra_args: Any = (bytes32.zeros,) else: @@ -858,6 +822,9 @@ async def test_nft_offer_nft_for_cat(wallet_environments: WalletTestFramework, w env_1.wallet_state_manager, wallet_taker, cat_wallet_maker.get_asset_id(), *extra_args ) + await env_0.change_balances({"taker cat": {"init": True}}) + await env_1.change_balances({"maker cat": {"init": True}}) + # MAKE FIRST TRADE: 1 NFT for 10 taker cats nft_to_offer = coins_maker[0] nft_info: Optional[PuzzleInfo] = match_puzzle(uncurry_puzzle(nft_to_offer.full_puzzle)) @@ -908,9 +875,7 @@ async def test_nft_offer_nft_for_cat(wallet_environments: WalletTestFramework, w "<=#max_send_amount": -maker_fee, "pending_coin_removal_count": 1, }, - "taker cat": { - "init": True, - }, + "taker cat": {}, "nft": { "pending_coin_removal_count": 1, }, @@ -946,9 +911,7 @@ async def test_nft_offer_nft_for_cat(wallet_environments: WalletTestFramework, w ">=#pending_change": 1, "pending_coin_removal_count": 1, }, - "maker cat": { - "init": True, - }, + "maker cat": {}, "taker cat": { "unconfirmed_wallet_balance": -taker_cat_offered, "<=#spendable_balance": -taker_cat_offered, From 6eb5d605f2c37bfa0ac5419669629822bf1081a7 Mon Sep 17 00:00:00 2001 From: Matt Date: Thu, 17 Jul 2025 11:20:31 +0200 Subject: [PATCH 4/8] Port `test_nft_offer_sell_nft_for_cat` --- .../wallet/nft_wallet/test_nft_1_offers.py | 57 +++++++------------ 1 file changed, 20 insertions(+), 37 deletions(-) diff --git a/chia/_tests/wallet/nft_wallet/test_nft_1_offers.py b/chia/_tests/wallet/nft_wallet/test_nft_1_offers.py index e8af3626d7f7..b258379bc432 100644 --- a/chia/_tests/wallet/nft_wallet/test_nft_1_offers.py +++ b/chia/_tests/wallet/nft_wallet/test_nft_1_offers.py @@ -9,8 +9,10 @@ from chia._tests.environments.wallet import WalletStateTransition, WalletTestFramework from chia._tests.util.time_out_assert import time_out_assert +from chia._tests.wallet.cat_wallet.test_cat_wallet import mint_cat from chia.types.blockchain_format.program import Program from chia.wallet.cat_wallet.cat_wallet import CATWallet +from chia.wallet.cat_wallet.r_cat_wallet import RCATWallet from chia.wallet.did_wallet.did_wallet import DIDWallet from chia.wallet.nft_wallet.nft_wallet import NFTWallet from chia.wallet.outer_puzzles import create_asset_id, match_puzzle @@ -777,8 +779,11 @@ async def test_nft_offer_sell_did_to_did(wallet_environments: WalletTestFramewor @pytest.mark.limit_consensus_modes @pytest.mark.parametrize("wallet_environments", [{"num_environments": 2, "blocks_needed": [1, 1]}], indirect=True) @pytest.mark.parametrize("zero_royalties", [True, False]) +@pytest.mark.parametrize("wallet_type", [CATWallet, RCATWallet]) @pytest.mark.anyio -async def test_nft_offer_sell_nft_for_cat(wallet_environments: WalletTestFramework, zero_royalties: bool) -> None: +async def test_nft_offer_sell_nft_for_cat( + wallet_environments: WalletTestFramework, zero_royalties: bool, wallet_type: type[CATWallet] +) -> None: env_maker = wallet_environments.environments[0] env_taker = wallet_environments.environments[1] wallet_maker = env_maker.xch_wallet @@ -912,44 +917,22 @@ async def test_nft_offer_sell_nft_for_cat(wallet_environments: WalletTestFramewo # Trade them between maker and taker to ensure multiple coins for each cat cats_to_mint = 100000 cats_to_trade = uint64(10000) - async with wallet_maker.wallet_state_manager.new_action_scope( - wallet_environments.tx_config, push=True - ) as action_scope: - cat_wallet_maker = await CATWallet.create_new_cat_wallet( - env_maker.wallet_state_manager, - wallet_maker, - {"identifier": "genesis_by_id"}, - uint64(cats_to_mint), - action_scope, - ) - - await wallet_environments.process_pending_states( - [ - WalletStateTransition( - pre_block_balance_updates={ - "xch": { - "set_remainder": True, - }, - "cat": { - "init": True, - "set_remainder": True, - }, - }, - post_block_balance_updates={ - "xch": { - "set_remainder": True, - }, - "cat": { - "set_remainder": True, - }, - }, - ), - WalletStateTransition(), - ] + cat_wallet_maker = await mint_cat( + wallet_environments, + env_maker, + "xch", + "cat", + uint64(cats_to_mint), + wallet_type, + "cat", ) - cat_wallet_taker: CATWallet = await CATWallet.get_or_create_wallet_for_cat( - env_taker.wallet_state_manager, wallet_taker, cat_wallet_maker.get_asset_id() + if wallet_type is RCATWallet: + extra_args: Any = (bytes32.zeros,) + else: + extra_args = tuple() + cat_wallet_taker: CATWallet = await wallet_type.get_or_create_wallet_for_cat( + env_taker.wallet_state_manager, wallet_taker, cat_wallet_maker.get_asset_id(), *extra_args ) await env_taker.change_balances({"cat": {"init": True}}) From 8804864e4d809b39133c16de97c258fa3e56c042 Mon Sep 17 00:00:00 2001 From: Matt Date: Thu, 17 Jul 2025 11:26:29 +0200 Subject: [PATCH 5/8] Port `test_nft_offer_request_nft_for_cat` --- .../wallet/nft_wallet/test_nft_1_offers.py | 55 ++++++------------- 1 file changed, 18 insertions(+), 37 deletions(-) diff --git a/chia/_tests/wallet/nft_wallet/test_nft_1_offers.py b/chia/_tests/wallet/nft_wallet/test_nft_1_offers.py index b258379bc432..043d5087e8f2 100644 --- a/chia/_tests/wallet/nft_wallet/test_nft_1_offers.py +++ b/chia/_tests/wallet/nft_wallet/test_nft_1_offers.py @@ -1103,8 +1103,11 @@ async def test_nft_offer_sell_nft_for_cat( @pytest.mark.limit_consensus_modes @pytest.mark.parametrize("wallet_environments", [{"num_environments": 2, "blocks_needed": [1, 1]}], indirect=True) @pytest.mark.parametrize("test_change", [True, False]) +@pytest.mark.parametrize("wallet_type", [CATWallet, RCATWallet]) @pytest.mark.anyio -async def test_nft_offer_request_nft_for_cat(wallet_environments: WalletTestFramework, test_change: bool) -> None: +async def test_nft_offer_request_nft_for_cat( + wallet_environments: WalletTestFramework, test_change: bool, wallet_type: type[CATWallet] +) -> None: env_maker = wallet_environments.environments[0] env_taker = wallet_environments.environments[1] wallet_maker = env_maker.xch_wallet @@ -1240,44 +1243,22 @@ async def test_nft_offer_request_nft_for_cat(wallet_environments: WalletTestFram # Trade them between maker and taker to ensure multiple coins for each cat cats_to_mint = 100000 cats_to_trade = uint64(20000) - async with wallet_maker.wallet_state_manager.new_action_scope( - wallet_environments.tx_config, push=True - ) as action_scope: - cat_wallet_maker = await CATWallet.create_new_cat_wallet( - env_maker.wallet_state_manager, - wallet_maker, - {"identifier": "genesis_by_id"}, - uint64(cats_to_mint), - action_scope, - ) - - await wallet_environments.process_pending_states( - [ - WalletStateTransition( - pre_block_balance_updates={ - "xch": { - "set_remainder": True, - }, - "cat": { - "init": True, - "set_remainder": True, - }, - }, - post_block_balance_updates={ - "xch": { - "set_remainder": True, - }, - "cat": { - "set_remainder": True, - }, - }, - ), - WalletStateTransition(), - ] + cat_wallet_maker = await mint_cat( + wallet_environments, + env_maker, + "xch", + "cat", + uint64(cats_to_mint), + wallet_type, + "cat", ) - await CATWallet.get_or_create_wallet_for_cat( - env_taker.wallet_state_manager, wallet_taker, cat_wallet_maker.get_asset_id() + if wallet_type is RCATWallet: + extra_args: Any = (bytes32.zeros,) + else: + extra_args = tuple() + await wallet_type.get_or_create_wallet_for_cat( + env_taker.wallet_state_manager, wallet_taker, cat_wallet_maker.get_asset_id(), *extra_args ) await env_taker.change_balances({"cat": {"init": True}}) From 1764da59772c3dcc058849cdfcfc63f64a01e241 Mon Sep 17 00:00:00 2001 From: Matt Date: Thu, 17 Jul 2025 11:33:11 +0200 Subject: [PATCH 6/8] Port `test_complex_nft_offer` --- .../wallet/nft_wallet/test_nft_1_offers.py | 42 ++++++++++++------- 1 file changed, 27 insertions(+), 15 deletions(-) diff --git a/chia/_tests/wallet/nft_wallet/test_nft_1_offers.py b/chia/_tests/wallet/nft_wallet/test_nft_1_offers.py index 043d5087e8f2..d79cee519d13 100644 --- a/chia/_tests/wallet/nft_wallet/test_nft_1_offers.py +++ b/chia/_tests/wallet/nft_wallet/test_nft_1_offers.py @@ -1654,8 +1654,11 @@ async def get_trade_and_status(trade_manager: Any, trade: Any) -> TradeStatus: [{"num_environments": 2, "blocks_needed": [3, 3], "config_overrides": {"automatically_add_unknown_cats": True}}], indirect=True, ) +@pytest.mark.parametrize("wallet_type", [CATWallet, RCATWallet]) @pytest.mark.anyio -async def test_complex_nft_offer(wallet_environments: WalletTestFramework, royalty_pts: tuple[int, int, int]) -> None: +async def test_complex_nft_offer( + wallet_environments: WalletTestFramework, royalty_pts: tuple[int, int, int], wallet_type: type[CATWallet] +) -> None: """ This test is going to create an offer where the maker offers 1 NFT and 1 CAT for 2 NFTs, an XCH and a CAT """ @@ -1693,20 +1696,24 @@ async def test_complex_nft_offer(wallet_environments: WalletTestFramework, royal ph_taker = await action_scope.get_puzzle_hash(wallet_taker.wallet_state_manager) CAT_AMOUNT = uint64(100000000) - async with wallet_maker.wallet_state_manager.new_action_scope( - wallet_environments.tx_config, push=True - ) as action_scope: - cat_wallet_maker = await CATWallet.create_new_cat_wallet( - wsm_maker, wallet_maker, {"identifier": "genesis_by_id"}, CAT_AMOUNT, action_scope - ) - async with wallet_taker.wallet_state_manager.new_action_scope( - wallet_environments.tx_config, push=True - ) as action_scope: - cat_wallet_taker = await CATWallet.create_new_cat_wallet( - wsm_taker, wallet_taker, {"identifier": "genesis_by_id"}, CAT_AMOUNT, action_scope - ) - await env_maker.change_balances({"cat_maker": {"init": True}}) - await env_taker.change_balances({"cat_taker": {"init": True}}) + cat_wallet_maker = await mint_cat( + wallet_environments, + env_maker, + "xch", + "cat_maker", + CAT_AMOUNT, + wallet_type, + "cat_maker", + ) + cat_wallet_taker = await mint_cat( + wallet_environments, + env_taker, + "xch", + "cat_taker", + CAT_AMOUNT, + wallet_type, + "cat_taker", + ) # We'll need these later basic_nft_wallet_maker = await NFTWallet.create_new_nft_wallet(wsm_maker, wallet_maker, name="NFT WALLET MAKER") @@ -1989,6 +1996,11 @@ async def test_complex_nft_offer(wallet_environments: WalletTestFramework, royal { "type": "CAT", "tail": "0x" + cat_wallet_taker.get_asset_id(), + **( + {} + if wallet_type is CATWallet + else {"also": {"type": "revocation layer", "hidden_puzzle_hash": "0x" + bytes32.zeros.hex()}} + ), } ), } From 3901a0a97379cd9fd89b314e0ffb59f46126764f Mon Sep 17 00:00:00 2001 From: Matt Date: Thu, 17 Jul 2025 12:19:05 +0200 Subject: [PATCH 7/8] Fix a new issue in complex test --- chia/_tests/wallet/nft_wallet/test_nft_1_offers.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/chia/_tests/wallet/nft_wallet/test_nft_1_offers.py b/chia/_tests/wallet/nft_wallet/test_nft_1_offers.py index d79cee519d13..f169c761a482 100644 --- a/chia/_tests/wallet/nft_wallet/test_nft_1_offers.py +++ b/chia/_tests/wallet/nft_wallet/test_nft_1_offers.py @@ -2066,7 +2066,8 @@ async def test_complex_nft_offer( + taker_royalty_summary[nft_to_offer_asset_id_taker_2][0]["amount"] ) - xch_coins = int(XCH_REQUESTED / 1_750_000_000_000) + 2 + # in the zero royalty case, exact change ends up being selected which complicates things a bit + xch_coins = int(XCH_REQUESTED / 1_750_000_000_000) + 2 - (1 if royalty_basis_pts_maker == 0 else 0) fee_coins = int(FEE / 1_750_000_000_000) + 1 if FEE > 1_750_000_000_000 else 1 await wallet_environments.process_pending_states( [ @@ -2127,7 +2128,7 @@ async def test_complex_nft_offer( "unconfirmed_wallet_balance": -XCH_REQUESTED - maker_xch_royalties_expected - FEE, "<=#spendable_balance": -XCH_REQUESTED - maker_xch_royalties_expected - FEE, "<=#max_send_amount": -XCH_REQUESTED - maker_xch_royalties_expected - FEE, - ">=#pending_change": 1, + ">=#pending_change": 0, "pending_coin_removal_count": xch_coins + fee_coins, }, "cat_taker": { @@ -2149,9 +2150,9 @@ async def test_complex_nft_offer( post_block_balance_updates={ "xch": { "confirmed_wallet_balance": -XCH_REQUESTED - maker_xch_royalties_expected - FEE, - ">=#spendable_balance": 1, - ">=#max_send_amount": 1, - "<=#pending_change": -1, + ">=#spendable_balance": 0, + ">=#max_send_amount": 0, + "<=#pending_change": 0, "pending_coin_removal_count": -fee_coins - xch_coins, # Parametrizations make unspent_coin_count too complicated "set_remainder": True, From df00650961104623e8439c76a1e8b1ea8151358d Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Wed, 6 Aug 2025 18:48:46 +0100 Subject: [PATCH 8/8] Minor change. --- chia/_tests/wallet/nft_wallet/test_nft_1_offers.py | 8 ++++---- chia/_tests/wallet/nft_wallet/test_nft_offers.py | 12 ++++++------ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/chia/_tests/wallet/nft_wallet/test_nft_1_offers.py b/chia/_tests/wallet/nft_wallet/test_nft_1_offers.py index f169c761a482..0b09bc0d2c5b 100644 --- a/chia/_tests/wallet/nft_wallet/test_nft_1_offers.py +++ b/chia/_tests/wallet/nft_wallet/test_nft_1_offers.py @@ -915,14 +915,14 @@ async def test_nft_offer_sell_nft_for_cat( # Create new CAT and wallets for maker and taker # Trade them between maker and taker to ensure multiple coins for each cat - cats_to_mint = 100000 + cats_to_mint = uint64(100000) cats_to_trade = uint64(10000) cat_wallet_maker = await mint_cat( wallet_environments, env_maker, "xch", "cat", - uint64(cats_to_mint), + cats_to_mint, wallet_type, "cat", ) @@ -1241,14 +1241,14 @@ async def test_nft_offer_request_nft_for_cat( # Create new CAT and wallets for maker and taker # Trade them between maker and taker to ensure multiple coins for each cat - cats_to_mint = 100000 + cats_to_mint = uint64(100000) cats_to_trade = uint64(20000) cat_wallet_maker = await mint_cat( wallet_environments, env_maker, "xch", "cat", - uint64(cats_to_mint), + cats_to_mint, wallet_type, "cat", ) diff --git a/chia/_tests/wallet/nft_wallet/test_nft_offers.py b/chia/_tests/wallet/nft_wallet/test_nft_offers.py index 498b7c791b6d..816f17f8b6ba 100644 --- a/chia/_tests/wallet/nft_wallet/test_nft_offers.py +++ b/chia/_tests/wallet/nft_wallet/test_nft_offers.py @@ -789,13 +789,13 @@ async def test_nft_offer_nft_for_cat(wallet_environments: WalletTestFramework, w assert await nft_wallet_taker.get_nft_count() == 0 # Create two new CATs and wallets for maker and taker - cats_to_mint = 10000 + cats_to_mint = uint64(10000) cat_wallet_maker = await mint_cat( wallet_environments, env_0, "xch", "maker cat", - uint64(cats_to_mint), + cats_to_mint, wallet_type, "maker cat", ) @@ -805,7 +805,7 @@ async def test_nft_offer_nft_for_cat(wallet_environments: WalletTestFramework, w env_1, "xch", "taker cat", - uint64(cats_to_mint), + cats_to_mint, wallet_type, "taker cat", ) @@ -1428,13 +1428,13 @@ async def test_nft_offer_nft0_and_xch_for_cat( assert await nft_wallet_taker.get_nft_count() == 0 # Create two new CATs and wallets for maker and taker - cats_to_mint = 10000 + cats_to_mint = uint64(10000) cat_wallet_maker = await mint_cat( wallet_environments, env_0, "xch", "maker cat", - uint64(cats_to_mint), + cats_to_mint, CATWallet, "maker cat", ) @@ -1444,7 +1444,7 @@ async def test_nft_offer_nft0_and_xch_for_cat( env_1, "xch", "taker cat", - uint64(cats_to_mint), + cats_to_mint, CATWallet, "taker cat", )