A integração com diferentes protocolos Ethereum e a execução de tarefas comuns é complicada. Hoje vamos explorar o DeFi-SDK e como ele simplifica o trabalho com vários protocolos DeFi em paralelo.
Programação Defi, Agora Mais Fácil Do Que Nunca
A integração com diferentes protocolos Ethereum e a execução de tarefas comuns é complicada. Por exemplo, você precisa obter endereços de contrato inteligente e ABIs para vários protocolos DeFi e, em seguida, gerenciar todos eles.
Para resolver esse problema, a equipe Zerion lançou o DeFi SDK. Hoje vamos falar sobre como ele simplifica a integração de diferentes protocolos DeFi.
O que é DeFi-SDK?
DeFi-SDK é um conjunto de contratos inteligentes e APIs para executar tarefas comuns nos protocolos Ethereum #DeFi, como Compound e Aave. De acordo com a documentação oficial:
“O DeFi SDK é um sistema de código aberto de contratos inteligentes que torna mais fácil para os desenvolvedores integrarem os protocolos DeFi.”
Que problema o DeFi-SDK resolve?
O DeFi-SDK ajuda você a integrar facilmente vários protocolos DeFi e padroniza a maneira como você interage com eles.
Protocolos Suportados
DeFi-SDK atualmente suporta:
- PieDAO
- Multi-Collateral Dai
- Bancor
- DeFi Money Market
- TokenSets
- 0x Staking
- Uniswap V1
- Synthetix
- PoolTogether
- Dai Savings Rate
- Chai
- iearn.finance (v2, v3)
- Idle
- dYdX
- Curve
- Compound
- Balancer
- Aave
Instale o DeFi-SDK
Primeiro, vamos criar um novo diretório:
mkdir defi-sdk
Atualmente, o DeFi-SDK está disponível apenas na linguagem Python e Go. Hoje, usaremos a versão Python em um sistema Ubuntu. defisdk
requer Python 3.8, então vamos instalá-lo.
Instale o pacote de desenvolvedor do Python 3.8:
sudo apt-get install python3.8-dev
Agora instale o defisdk
:
python3.8 -m pip install defisdk --no-cache-dir
Se você encontrar um erro, entre no grupo do discord da Zerion.
Trabalhando com DeFi-SDK
Agora, vamos entender como o defisdk
funciona com alguns exemplos.
Vamos criar um arquivo index.py
em nosso diretório defi-sdk
:
touch index.py
Em seguida, abra este arquivo, nós o usaremos para os exemplos do defisdk
.
Configuração inicial
Precisamos inicializar nosso defisdk
. Para isso, é necessária uma URL de endpoint web3 ETH MainNet.
Você pode se inscrever no QuickNode e obter a URL.
import asyncio
from defisdk import DeFiSDK
ETHEREUM_NODE_URL = 'YOUR_QUICKNODE_URL'
defi_sdk = DeFiSDK(ETHEREUM_NODE_URL)
Você pode ver nas linhas número 2,3,4 que estamos importando o SDK e criando um objeto passando uma URL do nó Ethereum.
Na primeira linha, estamos importando uma biblioteca que usaremos mais tarde.
Observação: se você estiver criando um aplicativo para uso em produção, um serviço como o QuickNode pode economizar tempo, dinheiro e ajudar a tornar seu aplicativo mais rápido.
Obtendo todos os protocolos
Fizemos a configuração inicial.
Agora vamos obter todos os protocolos suportados pelo defisdk
:
async def get_protocols():
print(await defi_sdk.get_protocol_names())
asyncio.run(get_protocols())
Aqui, defi_sdk.get_protocol_names()
nos dará um nome de protocolo, é uma função assíncrona porque chama contratos inteligentes por trás dos panos.
Adicione as linhas acima no mesmo arquivo (index.py
).
Agora vamos executar nosso arquivo para ver o resultado:
python3.8 index.py
Isso gerará todo o protocolo suportado pelo defisdk
:
Obter Saldo De Todos Os Protocolos
Neste exemplo, obteremos o saldo do token de um usuário de todos os protocolos em uma única chamada.
USER_ADDRESS = '0xa218a8346454c982912cf6d14c714663c2d510d8'
async def get_account_balance():
balance = await defi_sdk.get_account_balance(USER_ADDRESS)
print(balance)
asyncio.run(get_account_balance())
Aqui, defi_sdk.get_account_balance(USER_ADDRESS)
é a função que nos dará o saldo do usuário entre os protocolos.
Adicione as linhas acima ao nosso index.py
e vamos executá-lo:
python3.8 index.py
Você pode conferir a documentação completa do DeFi SDK para saber mais sobre ele.
Arquitetura DeFi-SDK
Agora, vamos entender a arquitetura DeFi-SDK.
defisdk é uma combinação de duas coisas:
- Adaptadores de contrato inteligente + um registro
- Uma biblioteca escrita em python chamando funções de contrato inteligente Defi SDK
Existem dois tipos de Adaptadores:
-
ProtocolAdapter: um contrato especial para cada protocolo. Seu objetivo principal é envolver todas as interações do protocolo. Existem diferentes tipos de adaptadores de protocolo: o adaptador “Asset” retorna a quantidade de tokens da conta mantidos no protocolo e o adaptador “Debt” retorna o valor do débito da conta com o protocolo. Alguns protocolos não usam tokens ERC20 “simples”, mas sim derivativos complexos (por exemplo, o protocolo Compound possui
CTokens
). O contrato ProtocolAdapter também fornece informações sobre o tipo de tokens usados nele. - TokenAdapter: um contrato para cada tipo de token derivado (ex. cTokens, aTokens, yTokens, etc...). Seu principal objetivo é fornecer metadados de token no estilo ERC20, bem como informações sobre os tokens ERC20 subjacentes (como DAI para cDAI). Ou seja, fornece endereços, tipos e taxas de tokens subjacentes.
Resumindo
Trabalhar com vários protocolos ainda pode ser bastante desafiador no ecossistema Ethereum, mas graças a algumas novas bibliotecas, as empresas estão tentando resolver esse problema. Em artigos futuros, veremos bibliotecas semelhantes.
Sobre o QuickNode
QuickNode.com está construindo infra-estrutura para suportar o futuro da Web3. Desde 2017, trabalhamos com centenas de desenvolvedores e empresas, ajudando a escalar dApps e fornecendo nós Ethereum de alto desempenho. Estamos trabalhando em algo interessante nestes últimos meses e será lançado em breve, então assine nossa newsletter para mais atualizações!! 😃
Esse artigo é uma tradução de QuickNode feita por @bananlabs. Você pode encontrar o artigo original aqui
Latest comments (0)