Skip to content

Commit

Permalink
[CHIA-508] Add tx_config and extra_conditions to DID creation endpoint (
Browse files Browse the repository at this point in the history
#18024)

* Add TXConfig and extra_conditions to DID creation endpoint

* Fix test

* fix test
  • Loading branch information
Quexington committed May 18, 2024
1 parent 80de44b commit 1ae00f6
Show file tree
Hide file tree
Showing 12 changed files with 106 additions and 52 deletions.
5 changes: 3 additions & 2 deletions chia/_tests/cmds/wallet/test_did.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,15 @@ class DidCreateRpcClient(TestWalletRpcClient):
async def create_new_did_wallet(
self,
amount: int,
tx_config: TXConfig,
fee: int = 0,
name: Optional[str] = "DID Wallet",
backup_ids: Optional[List[str]] = None,
required_num: int = 0,
) -> Dict[str, Union[str, int]]:
if backup_ids is None:
backup_ids = []
self.add_to_log("create_new_did_wallet", (amount, fee, name, backup_ids, required_num))
self.add_to_log("create_new_did_wallet", (amount, tx_config, fee, name, backup_ids, required_num))
return {"wallet_id": 3, "my_did": "did:chia:testdid123456"}

inst_rpc_client = DidCreateRpcClient() # pylint: disable=no-value-for-parameter
Expand All @@ -42,7 +43,7 @@ async def create_new_did_wallet(
]
run_cli_command_and_assert(capsys, root_dir, command_args, assert_list)
expected_calls: logType = {
"create_new_did_wallet": [(3, 100000000000, "test", [], 0)],
"create_new_did_wallet": [(3, DEFAULT_TX_CONFIG, 100000000000, "test", [], 0)],
}
test_rpc_clients.wallet_rpc_client.check_log(expected_calls)

Expand Down
4 changes: 2 additions & 2 deletions chia/_tests/wallet/cat_wallet/test_trades.py
Original file line number Diff line number Diff line change
Expand Up @@ -134,10 +134,10 @@ async def test_cat_trades(

# Mint some DIDs
did_wallet_maker: DIDWallet = await DIDWallet.create_new_did_wallet(
wallet_node_maker.wallet_state_manager, wallet_maker, uint64(1)
wallet_node_maker.wallet_state_manager, wallet_maker, uint64(1), wallet_environments.tx_config
)
did_wallet_taker: DIDWallet = await DIDWallet.create_new_did_wallet(
wallet_node_taker.wallet_state_manager, wallet_taker, uint64(1)
wallet_node_taker.wallet_state_manager, wallet_taker, uint64(1), wallet_environments.tx_config
)
did_id_maker = bytes32.from_hexstr(did_wallet_maker.get_my_DID())
did_id_taker = bytes32.from_hexstr(did_wallet_taker.get_my_DID())
Expand Down
42 changes: 27 additions & 15 deletions chia/_tests/wallet/did_wallet/test_did.py
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ async def test_creation_from_coin_spend(
# Wallet1 sets up DIDWallet1 without any backup set
async with wallet_node_0.wallet_state_manager.lock:
did_wallet_0: DIDWallet = await DIDWallet.create_new_did_wallet(
wallet_node_0.wallet_state_manager, wallet_0, uint64(101)
wallet_node_0.wallet_state_manager, wallet_0, uint64(101), DEFAULT_TX_CONFIG
)

with pytest.raises(RuntimeError):
Expand Down Expand Up @@ -157,7 +157,7 @@ async def test_creation_from_backup_file(self, self_hostname, three_wallet_nodes
# Wallet1 sets up DIDWallet1 without any backup set
async with wallet_node_0.wallet_state_manager.lock:
did_wallet_0: DIDWallet = await DIDWallet.create_new_did_wallet(
wallet_node_0.wallet_state_manager, wallet_0, uint64(101)
wallet_node_0.wallet_state_manager, wallet_0, uint64(101), DEFAULT_TX_CONFIG
)

spend_bundle_list = await wallet_node_0.wallet_state_manager.tx_store.get_unconfirmed_for_wallet(
Expand All @@ -177,7 +177,7 @@ async def test_creation_from_backup_file(self, self_hostname, three_wallet_nodes

async with wallet_node_1.wallet_state_manager.lock:
did_wallet_1: DIDWallet = await DIDWallet.create_new_did_wallet(
wallet_node_1.wallet_state_manager, wallet_1, uint64(201), backup_ids
wallet_node_1.wallet_state_manager, wallet_1, uint64(201), DEFAULT_TX_CONFIG, backup_ids
)

spend_bundle_list = await wallet_node_1.wallet_state_manager.tx_store.get_unconfirmed_for_wallet(
Expand Down Expand Up @@ -303,7 +303,7 @@ async def test_did_recovery_with_multiple_backup_dids(self, self_hostname, two_w

async with wallet_node.wallet_state_manager.lock:
did_wallet: DIDWallet = await DIDWallet.create_new_did_wallet(
wallet_node.wallet_state_manager, wallet, uint64(101)
wallet_node.wallet_state_manager, wallet, uint64(101), DEFAULT_TX_CONFIG
)
assert did_wallet.get_name() == "Profile 1"
spend_bundle_list = await wallet_node.wallet_state_manager.tx_store.get_unconfirmed_for_wallet(did_wallet.id())
Expand All @@ -320,7 +320,7 @@ async def test_did_recovery_with_multiple_backup_dids(self, self_hostname, two_w

async with wallet_node_2.wallet_state_manager.lock:
did_wallet_2: DIDWallet = await DIDWallet.create_new_did_wallet(
wallet_node_2.wallet_state_manager, wallet2, uint64(101), recovery_list
wallet_node_2.wallet_state_manager, wallet2, uint64(101), DEFAULT_TX_CONFIG, recovery_list
)

spend_bundle_list = await wallet_node_2.wallet_state_manager.tx_store.get_unconfirmed_for_wallet(
Expand All @@ -341,7 +341,7 @@ async def test_did_recovery_with_multiple_backup_dids(self, self_hostname, two_w

async with wallet_node_2.wallet_state_manager.lock:
did_wallet_3: DIDWallet = await DIDWallet.create_new_did_wallet(
wallet_node_2.wallet_state_manager, wallet2, uint64(201), recovery_list
wallet_node_2.wallet_state_manager, wallet2, uint64(201), DEFAULT_TX_CONFIG, recovery_list
)

spend_bundle_list = await wallet_node_2.wallet_state_manager.tx_store.get_unconfirmed_for_wallet(
Expand Down Expand Up @@ -453,7 +453,7 @@ async def test_did_recovery_with_empty_set(self, self_hostname, two_wallet_nodes

async with wallet_node.wallet_state_manager.lock:
did_wallet: DIDWallet = await DIDWallet.create_new_did_wallet(
wallet_node.wallet_state_manager, wallet, uint64(101)
wallet_node.wallet_state_manager, wallet, uint64(101), DEFAULT_TX_CONFIG
)

spend_bundle_list = await wallet_node.wallet_state_manager.tx_store.get_unconfirmed_for_wallet(did_wallet.id())
Expand Down Expand Up @@ -501,7 +501,7 @@ async def test_did_find_lost_did(self, self_hostname, two_wallet_nodes, trusted)

async with wallet_node.wallet_state_manager.lock:
did_wallet: DIDWallet = await DIDWallet.create_new_did_wallet(
wallet_node.wallet_state_manager, wallet, uint64(101)
wallet_node.wallet_state_manager, wallet, uint64(101), DEFAULT_TX_CONFIG
)
spend_bundle_list = await wallet_node.wallet_state_manager.tx_store.get_unconfirmed_for_wallet(did_wallet.id())

Expand Down Expand Up @@ -585,7 +585,7 @@ async def test_did_attest_after_recovery(self, self_hostname, two_wallet_nodes,

async with wallet_node.wallet_state_manager.lock:
did_wallet: DIDWallet = await DIDWallet.create_new_did_wallet(
wallet_node.wallet_state_manager, wallet, uint64(101)
wallet_node.wallet_state_manager, wallet, uint64(101), DEFAULT_TX_CONFIG
)
spend_bundle_list = await wallet_node.wallet_state_manager.tx_store.get_unconfirmed_for_wallet(did_wallet.id())

Expand All @@ -599,7 +599,7 @@ async def test_did_attest_after_recovery(self, self_hostname, two_wallet_nodes,

async with wallet_node_2.wallet_state_manager.lock:
did_wallet_2: DIDWallet = await DIDWallet.create_new_did_wallet(
wallet_node_2.wallet_state_manager, wallet2, uint64(101), recovery_list
wallet_node_2.wallet_state_manager, wallet2, uint64(101), DEFAULT_TX_CONFIG, recovery_list
)
spend_bundle_list = await wallet_node_2.wallet_state_manager.tx_store.get_unconfirmed_for_wallet(
did_wallet_2.id()
Expand Down Expand Up @@ -764,6 +764,7 @@ async def test_did_transfer(self, self_hostname, two_wallet_nodes, with_recovery
wallet_node.wallet_state_manager,
wallet,
uint64(101),
DEFAULT_TX_CONFIG,
[bytes(ph)],
uint64(1),
{"Twitter": "Test", "GitHub": "测试"},
Expand Down Expand Up @@ -846,7 +847,7 @@ async def test_update_recovery_list(self, self_hostname, two_wallet_nodes, trust

async with wallet_node.wallet_state_manager.lock:
did_wallet_1: DIDWallet = await DIDWallet.create_new_did_wallet(
wallet_node.wallet_state_manager, wallet, uint64(101), []
wallet_node.wallet_state_manager, wallet, uint64(101), DEFAULT_TX_CONFIG, []
)
spend_bundle_list = await wallet_node.wallet_state_manager.tx_store.get_unconfirmed_for_wallet(
did_wallet_1.id()
Expand Down Expand Up @@ -899,7 +900,13 @@ async def test_get_info(self, self_hostname, two_wallet_nodes, trusted):

async with wallet_node.wallet_state_manager.lock:
did_wallet_1: DIDWallet = await DIDWallet.create_new_did_wallet(
wallet_node.wallet_state_manager, wallet, did_amount, [], metadata={"twitter": "twitter"}, fee=fee
wallet_node.wallet_state_manager,
wallet,
did_amount,
DEFAULT_TX_CONFIG,
[],
metadata={"twitter": "twitter"},
fee=fee,
)
transaction_records = await wallet_node.wallet_state_manager.tx_store.get_unconfirmed_for_wallet(
did_wallet_1.id()
Expand Down Expand Up @@ -978,7 +985,7 @@ async def test_message_spend(self, self_hostname, two_wallet_nodes, trusted):

async with wallet_node.wallet_state_manager.lock:
did_wallet_1: DIDWallet = await DIDWallet.create_new_did_wallet(
wallet_node.wallet_state_manager, wallet, uint64(101), [], fee=fee
wallet_node.wallet_state_manager, wallet, uint64(101), DEFAULT_TX_CONFIG, [], fee=fee
)
spend_bundle_list = await wallet_node.wallet_state_manager.tx_store.get_unconfirmed_for_wallet(
did_wallet_1.id()
Expand Down Expand Up @@ -1033,7 +1040,7 @@ async def test_update_metadata(self, self_hostname, two_wallet_nodes, trusted):

async with wallet_node.wallet_state_manager.lock:
did_wallet_1: DIDWallet = await DIDWallet.create_new_did_wallet(
wallet_node.wallet_state_manager, wallet, did_amount, [], fee=fee
wallet_node.wallet_state_manager, wallet, did_amount, DEFAULT_TX_CONFIG, [], fee=fee
)
transaction_records = await wallet_node.wallet_state_manager.tx_store.get_unconfirmed_for_wallet(
did_wallet_1.id()
Expand Down Expand Up @@ -1115,6 +1122,7 @@ async def test_did_sign_message(self, self_hostname, two_wallet_nodes, trusted):
wallet_node.wallet_state_manager,
wallet,
uint64(101),
DEFAULT_TX_CONFIG,
[bytes(ph)],
uint64(1),
{"Twitter": "Test", "GitHub": "测试"},
Expand Down Expand Up @@ -1247,6 +1255,7 @@ async def test_create_did_with_recovery_list(self, self_hostname, two_nodes_two_
wallet_node_0.wallet_state_manager,
wallet_0,
uint64(101),
DEFAULT_TX_CONFIG,
backups_ids=recovery_list,
num_of_backup_ids_needed=0,
)
Expand Down Expand Up @@ -1313,6 +1322,7 @@ async def test_did_resync(self, self_hostname, two_wallet_nodes, trusted) -> Non
wallet_node_1.wallet_state_manager,
wallet,
uint64(101),
DEFAULT_TX_CONFIG,
[bytes32(ph)],
uint64(1),
{"Twitter": "Test", "GitHub": "测试"},
Expand Down Expand Up @@ -1389,7 +1399,9 @@ async def test_did_coin_records(wallet_environments: WalletTestFramework, monkey
client = wallet_environments.environments[0].rpc_client

# Generate DID wallet
did_wallet: DIDWallet = await DIDWallet.create_new_did_wallet(wallet_node.wallet_state_manager, wallet, uint64(1))
did_wallet: DIDWallet = await DIDWallet.create_new_did_wallet(
wallet_node.wallet_state_manager, wallet, uint64(1), DEFAULT_TX_CONFIG
)

await wallet_environments.process_pending_states(
[
Expand Down
24 changes: 14 additions & 10 deletions chia/_tests/wallet/nft_wallet/test_nft_1_offers.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ async def test_nft_offer_sell_nft(
await full_node_api.farm_rewards_to_wallet(funds, wallet_taker, timeout=30)

did_wallet_maker: DIDWallet = await DIDWallet.create_new_did_wallet(
wallet_node_maker.wallet_state_manager, wallet_maker, uint64(1)
wallet_node_maker.wallet_state_manager, wallet_maker, uint64(1), DEFAULT_TX_CONFIG
)
spend_bundle_list = await wallet_node_maker.wallet_state_manager.tx_store.get_unconfirmed_for_wallet(
did_wallet_maker.id()
Expand Down Expand Up @@ -237,7 +237,7 @@ async def test_nft_offer_request_nft(
await full_node_api.farm_rewards_to_wallet(funds, wallet_taker, timeout=30)

did_wallet_taker: DIDWallet = await DIDWallet.create_new_did_wallet(
wallet_node_taker.wallet_state_manager, wallet_taker, uint64(1)
wallet_node_taker.wallet_state_manager, wallet_taker, uint64(1), DEFAULT_TX_CONFIG
)
spend_bundle_list = await wallet_node_taker.wallet_state_manager.tx_store.get_unconfirmed_for_wallet(
did_wallet_taker.id()
Expand Down Expand Up @@ -379,7 +379,7 @@ async def test_nft_offer_sell_did_to_did(
await full_node_api.farm_rewards_to_wallet(funds, wallet_taker, timeout=30)

did_wallet_maker: DIDWallet = await DIDWallet.create_new_did_wallet(
wallet_node_maker.wallet_state_manager, wallet_maker, uint64(1)
wallet_node_maker.wallet_state_manager, wallet_maker, uint64(1), DEFAULT_TX_CONFIG
)
spend_bundle_list = await wallet_node_maker.wallet_state_manager.tx_store.get_unconfirmed_for_wallet(
did_wallet_maker.id()
Expand Down Expand Up @@ -435,7 +435,7 @@ async def test_nft_offer_sell_did_to_did(

# TAKER SETUP - WITH DID
did_wallet_taker: DIDWallet = await DIDWallet.create_new_did_wallet(
wallet_node_taker.wallet_state_manager, wallet_taker, uint64(1)
wallet_node_taker.wallet_state_manager, wallet_taker, uint64(1), DEFAULT_TX_CONFIG
)
spend_bundle_list_taker = await wallet_node_taker.wallet_state_manager.tx_store.get_unconfirmed_for_wallet(
did_wallet_taker.id()
Expand Down Expand Up @@ -544,7 +544,7 @@ async def test_nft_offer_sell_nft_for_cat(
await full_node_api.farm_rewards_to_wallet(funds, wallet_taker, timeout=30)

did_wallet_maker: DIDWallet = await DIDWallet.create_new_did_wallet(
wallet_node_maker.wallet_state_manager, wallet_maker, uint64(1)
wallet_node_maker.wallet_state_manager, wallet_maker, uint64(1), DEFAULT_TX_CONFIG
)
spend_bundle_list = await wallet_node_maker.wallet_state_manager.tx_store.get_unconfirmed_for_wallet(
did_wallet_maker.id()
Expand Down Expand Up @@ -730,7 +730,7 @@ async def test_nft_offer_request_nft_for_cat(
await full_node_api.farm_rewards_to_wallet(funds, wallet_taker, timeout=30)

did_wallet_taker: DIDWallet = await DIDWallet.create_new_did_wallet(
wallet_node_taker.wallet_state_manager, wallet_taker, uint64(1)
wallet_node_taker.wallet_state_manager, wallet_taker, uint64(1), DEFAULT_TX_CONFIG
)
spend_bundle_list = await wallet_node_taker.wallet_state_manager.tx_store.get_unconfirmed_for_wallet(
did_wallet_taker.id()
Expand Down Expand Up @@ -929,7 +929,7 @@ async def test_nft_offer_sell_cancel(
await full_node_api.farm_rewards_to_wallet(funds, wallet_maker, timeout=30)

did_wallet_maker: DIDWallet = await DIDWallet.create_new_did_wallet(
wallet_node_maker.wallet_state_manager, wallet_maker, uint64(1)
wallet_node_maker.wallet_state_manager, wallet_maker, uint64(1), DEFAULT_TX_CONFIG
)
spend_bundle_list = await wallet_node_maker.wallet_state_manager.tx_store.get_unconfirmed_for_wallet(
did_wallet_maker.id()
Expand Down Expand Up @@ -1049,7 +1049,7 @@ async def test_nft_offer_sell_cancel_in_batch(
await full_node_api.farm_rewards_to_wallet(funds, wallet_maker, timeout=30)

did_wallet_maker: DIDWallet = await DIDWallet.create_new_did_wallet(
wallet_node_maker.wallet_state_manager, wallet_maker, uint64(1)
wallet_node_maker.wallet_state_manager, wallet_maker, uint64(1), DEFAULT_TX_CONFIG
)
spend_bundle_list = await wallet_node_maker.wallet_state_manager.tx_store.get_unconfirmed_for_wallet(
did_wallet_maker.id()
Expand Down Expand Up @@ -1215,8 +1215,12 @@ async def test_complex_nft_offer(
basic_nft_wallet_maker = await NFTWallet.create_new_nft_wallet(wsm_maker, wallet_maker, name="NFT WALLET MAKER")
basic_nft_wallet_taker = await NFTWallet.create_new_nft_wallet(wsm_taker, wallet_taker, name="NFT WALLET TAKER")

did_wallet_maker: DIDWallet = await DIDWallet.create_new_did_wallet(wsm_maker, wallet_maker, uint64(1))
did_wallet_taker: DIDWallet = await DIDWallet.create_new_did_wallet(wsm_taker, wallet_taker, uint64(1))
did_wallet_maker: DIDWallet = await DIDWallet.create_new_did_wallet(
wsm_maker, wallet_maker, uint64(1), DEFAULT_TX_CONFIG
)
did_wallet_taker: DIDWallet = await DIDWallet.create_new_did_wallet(
wsm_taker, wallet_taker, uint64(1), DEFAULT_TX_CONFIG
)
did_spend_bundle_maker = (
await wallet_node_maker.wallet_state_manager.tx_store.get_unconfirmed_for_wallet(did_wallet_maker.id())
)[0].spend_bundle
Expand Down

0 comments on commit 1ae00f6

Please sign in to comment.