how to print NFT attributes?
async def get_nft_address(client, index: int):
stack = (await client.raw_run_method(address='EQAfOby3S0letgu62PKDwjw8-nXhyw-zfnKqan7K0KGoRH6j',
method='get_nft_address_by_index', stack_data=[["number", index]]))['stack']
nft_address = read_address(Cell.one_from_boc(b64str_to_bytes(stack[0][1]['bytes']))).to_string(True, True, True)
return nft_address


async def pytonlib_get_owner(client, nft_address):
data = await client.raw_run_method(address=nft_address, method='get_nft_data', stack_data=[])
owner_address = Address(Slice(Cell.one_from_boc(b64str_to_bytes(data['stack'][3][1]['bytes']))).read_msg_addr()).to_string(True, True, True)

print(f"NFT Address: {nft_address}, Owner Address NFT: {owner_address}")

return owner_address

async def main():
client = await get_client()
stack = (await client.raw_run_method(address='EQAfOby3S0letgu62PKDwjw8-nXhyw-zfnKqan7K0KGoRH6j',
method='get_collection_data', stack_data=[]))['stack']

next_item_index = int(stack[0][1], 16)
content_bytes = b64str_to_bytes(stack[1][1]['bytes'])
content = Cell.one_from_boc(content_bytes).bits.get_top_upped_array().decode().split('\x01')[-1]

owner_address = Address(Slice(Cell.one_from_boc(b64str_to_bytes(stack[2][1]['bytes']))).read_msg_addr()).to_string(True, True, True)

# Extract NFT addresses dynamically
nft_addresses = []
for i in range(next_item_index):
nft_address = await get_nft_address(client, i)
nft_addresses.append(nft_address)

for nft_address in nft_addresses:
await pytonlib_get_owner(client, nft_address)

await client.close()

if __name__ == '__main__':
asyncio.run(main())

Jan 4, 2024, 3:03 PM
how to print NFT attributes?
Jan 4, 2024, 3:03 PM

© 2024 Draquery.com All rights reserved.