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