WEB3DEV

Cover image for Obter Preços de Índice em Contratos Inteligentes Solidity
Panegali
Panegali

Posted on

Obter Preços de Índice em Contratos Inteligentes Solidity

Os preços dos ativos DeFi podem sofrer grande volatilidade, especialmente em mercados ilíquidos. Esta é uma das principais razões pelas quais é importante construir contratos inteligentes em torno de dados de preços agregados que reflitam uma ampla cobertura de mercado e que sejam altamente resistentes à manipulação de fontes de preços de baixa liquidez. A volatilidade é uma consideração importante para desenvolvedores que integram um oráculo em seus dApps, bem como para consumidores que desejam diversificar suas participações para obter uma exposição mais ampla ao mercado. Para alguns, é aqui que os fundos de índice ajudam.

Fundos de índice ou índices são produtos financeiros que rastreiam um grupo de ativos em vez de ativos individuais. Ao agrupar vários ativos, os fundos de índice oferecem aos consumidores uma maneira simples e barata de obter exposição diversificada. Com índices, os consumidores podem fazer uma compra com uma taxa que instantaneamente lhes concede a propriedade de uma cesta inteira de ativos. Em comparação com a compra de vários ativos individualmente ou a delegação de recursos a um gestor, os índices são mais simples e baratos.

Assim como nas finanças tradicionais, os usuários de DeFi desejam acesso a índices para facilitar a diversificação. Como acontece com todos os produtos DeFi, dados de preços precisos e confiáveis ​​são essenciais. Se o preço de um índice for manipulado e uma volatilidade artificial for gerada, o objetivo do índice é anulado e ele não oferece mais um refúgio consistente para os investidores. Um índice poderia ser composto por muitos ativos altamente líquidos com baixa volatilidade, mas se o feed (alimentação) de preço para esse índice for ilíquido ou suscetível a manipulação, um invasor precisará apenas manipular este feed de preço em vez dos preços dos ativos no índice. Como tal, o mecanismo do oráculo que alimenta um preço de índice torna-se uma fonte única potencial de falha nos índices DeFi.

Felizmente, os feeds de dados amplamente adotados pela Chainlink resolvem esse problema, fornecendo um amplo mercado, oráculos de preços descentralizados pré-agregados para índices tradicionais, como FTSE 100 (índice da Bolsa de Valores do Financial Times), Nikkei 225 (índice da Bolsa de Valores de Tóquio), sCEX (índice de câmbio Synthetix ) e índices DeFi, como sDeFi.

Neste guia, abordaremos como recuperar rapidamente os feeds de preços do índice à prova de violação da Chainlink em seu contrato inteligente para que você possa criar aplicativos DeFi mais seguros em torno de novos conjuntos de dados na cadeia.

Inicializar os feeds

A primeira etapa com qualquer feed de dados da Chainlink é importar a interface do agregador e, em seguida, inicializar os feeds com o endereço correto no constructor. Neste exemplo, estamos inicializando com o endereço do feed FTSE 100 na Ethereum, mas qualquer outro endereço de feed pode ser usado.

Nota: este tutorial está usando a sintaxe do Remix. Para nodejs/python, consulte a documentação da Chainlink.

pragma solidity ^0.6.7;

import "https://github.com/smartcontractkit/chainlink/blob/master/evm-contracts/src/v0.6/interfaces/AggregatorV3Interface.sol";

contract indexFeed{

    AggregatorV3Interface internal ftseFeed;

    /**
     * Aggregator: FTSE
     * Address: 0xE23FA0e8dd05D6f66a6e8c98cab2d9AE82A7550c
     */
    constructor() public {
        ftseFeed = AggregatorV3Interface(0xE23FA0e8dd05D6f66a6e8c98cab2d9AE82A7550c);
    }
Enter fullscreen mode Exit fullscreen mode

Recuperar valores

Depois que o feed é inicializado, precisamos apenas de uma função para recuperar os dados de preços.

//Retorna as últimas informações de fornecimento
    function getLatestPrice() public view returns (int) {
        (
            uint80 roundID, 
            int price,
            uint startedAt,
            uint updatedAt,
            uint80 answeredInRound
        ) = ftseFeed.latestRoundData();
        return price;
    }
}
Enter fullscreen mode Exit fullscreen mode

Como os dados já estão agregados e confirmados na cadeia pela rede de nós oráculos Chainlink, precisamos apenas de uma função de visualização simples para acessar os dados, para que não haja custo de gás. Existem alguns outros campos, como o ID e a hora da rodada de agregação em que os dados foram recuperados, mas, neste caso, é apenas o preço que nos interessa.

Conclusão

Os fundos de índice ajudam os investidores a diversificar de maneira fácil e barata, reduzindo a volatilidade ao agrupar os ativos. No entanto, os produtos DeFi que oferecem esses índices são suscetíveis à manipulação se usarem uma fonte centralizada ou de baixa qualidade de dados de preços para o índice geral. A Chainlink garante a qualidade dos dados e a entrega segura de dados, tornando excepcionalmente simples para os desenvolvedores de contratos inteligentes recuperar dados de preços de índice agregados em centenas de fontes e validados por uma rede descentralizada de nós oráculo revisados ​​​​para segurança. Os usuários DeFi exigem uma ampla gama de produtos financeiros robustos e a Chainlink está lá para ajudar os desenvolvedores a fornecer a versão mais segura e confiável deles.

Se você é um desenvolvedor e deseja integrar a Chainlink em seus aplicativos de contrato inteligente, confira a documentação do desenvolvedor da Chainlink ou entre em contato aqui.


Artigo original publicado no Blog da Chainlink. Traduzido por Marcelo Panegali.

Top comments (0)