Covalent

A hub for news, insights, research, and stories from the Covalent Team!

Interroger le contrat MEME avec l’API Covalent et Python.

--

Pour le deuxième volet de ma série sur l’utilisation de l’API Covalent, je vais vous expliquer comment interroger le contrat intelligent MEME pour obtenir des métadonnées NFT.
Nous commençons par importer les bibliothèques nécessaires dans notre session Jupyter Notebook :

import requests
import json
import urllib.request
from PIL import Image

Ensuite, nous envoyons une requête “get ”au point de d’accès (enpoint) de l’API Covalent dans le format suivant :

/v1/{chainId}/tokens/{address}/nft_metadata/{tokenId}/

  • chainId: 1 (Id number for Ethereum)
  • address: 0xe4605d46fd0b3f8329d936a8b258d69276cba264 (MEME contract)
  • tokenId: 123 (for the purpose of this example)

Avec toutes les entrées correctes, notre requête “get ”ressemblera à ceci :

result = requests.get("https://api.covalenthq.com/v1/1/tokens/0xe4605d46fd0b3f8329d936a8b258d69276cba264/nft_metadata/123/?&key=YOUR_KEY_HERE")

Ensuite, nous formatons le résultat dans un JSON :

result = result.json()
result

Avec comme résultat:

{'data': {'updated_at': '2021-03-16T19:36:24.285356547Z',
'items': [{'contract_decimals': 0,
'contract_name': 'Meme Ltd.',
'contract_ticker_symbol': 'MEMES',
'contract_address': '0xe4605d46fd0b3f8329d936a8b258d69276cba264',
'supports_erc': ['erc20'],
'logo_url': 'https://logos.covalenthq.com/tokens/0xe4605d46fd0b3f8329d936a8b258d69276cba264.png',
'type': 'nft',
'balance': None,
'quote_rate': None,
'quote': None,
'nft_data': [{'token_id': '123',
'token_balance': '1',
'token_url': 'https://api.dontbuymeme.com/memes/123',
'supports_erc': ['erc20', 'erc1155'],
'token_price_wei': '6450000000000000000',
'token_quote_rate_eth': '6.45',
'external_data': {'name': 'I wish I was understood',
'description': None,
'image': 'https://images.dontbuymeme.com/artist-series/fewocious/static/i-wish-i-was-understood.jpg',
'external_url': 'https://dontbuymeme.com/artist-series/fewocious',
'attributes': [{'trait_type': 'Set',
'value': 'Artist Drop 8 - Fewocious'},
{'trait_type': 'Artist', 'value': 'Fewocious'},
{'trait_type': 'Type', 'value': 'Pop Surreal'},
{'display_type': 'date',
'trait_type': 'birthday',
'value': 1609267020},
{'trait_type': 'Max Supply', 'value': '100'}],
'owner': None},
'owner': None}]}],
'pagination': None},
'error': False,
'error_message': None,
'error_code': None}

A partir de ce résultat, nous voyons que l’API Covalent nous donne une quantité ENORME d’informations. Incroyable.

Puisque l’information que nous voulons est imbriquée, nous pouvons filtrer le JSON:

result['data']['items']

Qui produit l’information que nous recherchons:

[{'contract_decimals': 0,
'contract_name': 'Meme Ltd.',
'contract_ticker_symbol': 'MEMES',
'contract_address': '0xe4605d46fd0b3f8329d936a8b258d69276cba264',
'supports_erc': ['erc20'],
'logo_url': 'https://logos.covalenthq.com/tokens/0xe4605d46fd0b3f8329d936a8b258d69276cba264.png',
'type': 'nft',
'balance': None,
'quote_rate': None,
'quote': None,
'nft_data': [{'token_id': '123',
'token_balance': '1',
'token_url': 'https://api.dontbuymeme.com/memes/123',
'supports_erc': ['erc20', 'erc1155'],
'token_price_wei': '6450000000000000000',
'token_quote_rate_eth': '6.45',
'external_data': {'name': 'I wish I was understood',
'description': None,
'image': 'https://images.dontbuymeme.com/artist-series/fewocious/static/i-wish-i-was-understood.jpg',
'external_url': 'https://dontbuymeme.com/artist-series/fewocious',
'attributes': [{'trait_type': 'Set',
'value': 'Artist Drop 8 - Fewocious'},
{'trait_type': 'Artist', 'value': 'Fewocious'},
{'trait_type': 'Type', 'value': 'Pop Surreal'},
{'display_type': 'date', 'trait_type': 'birthday', 'value': 1609267020},
{'trait_type': 'Max Supply', 'value': '100'}],
'owner': None},
'owner': None}]}]

À partir de là, il existe un éventail infini de possibilités. Si vous voulez accéder à l’URL de l’image depuis le carnet Jupyter et voir à quoi ressemble le NFT, copiez l’URL sous ‘image’, et définissez-la comme URL:

URL = 'https://images.dontbuymeme.com/artist-series/fewocious/static/i-wish-i-was-understood.jpg'

Ensuite:

with urllib.request.urlopen(URL) as url:
with open('nft.jpg', 'wb') as f:
f.write(url.read())img = Image.open('nft.jpg')img.show()

Qui affichera:

Fewocious: I Wish I Was Understood

À propos de Covalent

Covalent fournit une API unifiée pour apporter une transparence et une visibilité complètes aux actifs sur tous les réseaux blockchain. La technologie exclusive de Covalent permet une solution «sans code» qui résout un vaste éventail de cas d’utilisation pour les portefeuilles, les échanges, les dépositaires et la fiscalité, entre autres. L’API permet un accès facile aux données normalisées, unifiées et granulaires.

Twitter: @Covalent_HQ

Telegram: https://www.covalenthq.com/telegram/

Discord: https://www.covalenthq.com/discord

--

--

Covalent
Covalent

Published in Covalent

A hub for news, insights, research, and stories from the Covalent Team!

Kumosoukai
Kumosoukai

Written by Kumosoukai

Blockchain Believer — Crypto Scientist

No responses yet