Ir para o conteúdo

Acessando feeds de preços com o Band Protocol

Introdução

Band Protocol é uma rede de oráculos descentralizada que fornece dados confiáveis, seguros e em tempo real para contratos inteligentes em várias redes blockchain.

O protocolo é construído sobre o BandChain, uma rede projetada para ser compatível com a maioria das cadeias compatíveis com EVM, como as redes EVM movidas a Tanssi e estruturas de desenvolvimento de blockchain. O protocolo visa fornecer uma solução que seja:

  • Descentralizada, aproveitando o poder computacional de uma rede de validadores
  • Flexível, suportando uma ampla gama de fontes e formatos de dados, facilitando as integrações
  • Escalável, projetada para lidar com altos volumes de solicitações de dados
  • Acessível, permitindo que os usuários solicitem dados apenas quando precisarem e paguem as taxas associadas

O Band Protocol está atualmente implantado em muitos blockchains (Moonbeam, por exemplo) em diferentes ecossistemas. Para implantar o oráculo em sua rede, entre em contato diretamente com a equipe do Band Protocol.

Este tutorial irá guiá-lo pelas etapas para interagir com feeds de preços usando o oráculo do Band Protocol na rede compatível com EVM de demonstração da Tanssi.

Configuração na rede de demonstração EVM da Tanssi

O oráculo do Band Protocol já está implantado na rede de demonstração EVM da Tanssi e configurado para fornecer preços para os tokens ETH e DOT.

Os feeds de preços são enviados regularmente para um contrato inteligente que pode ser acessado no seguinte endereço:

0x8c064bCf7C0DA3B3b090BAbFE8f3323534D84d68

O smart pode ser interagir com usando a interface:

IStdReference.sol
// SPDX-License-Identifier: Apache-2.0

pragma solidity 0.8.26;

interface IStdReference {
    /// A structure returned whenever someone requests for standard reference data.
    struct ReferenceData {
        uint256 rate; // base/quote exchange rate, multiplied by 1e18.
        uint256 lastUpdatedBase; // UNIX epoch of the last time when base price gets updated.
        uint256 lastUpdatedQuote; // UNIX epoch of the last time when quote price gets updated.
    } 

    /// Returns the price data for the given base/quote pair. Revert if not available.
    function getReferenceData(string memory _base, string memory _quote) external view returns (ReferenceData memory);

    /// Similar to getReferenceData, but with multiple base/quote pairs at once.
    function getReferenceDataBulk(string[] memory _bases, string[] memory _quotes) external view returns (ReferenceData[] memory);
}

Como visto acima na interface, existem duas funções para buscar dados:

getReferenceData (_base, _quote) — busca o preço de um determinado par base/cotação
  • _base string memory - o token para o qual você deseja obter o preço
  • _quote string memory - o token (ou USD) no qual o preço é expresso
  • _base - ETH
  • _quote - USD
getReferenceDataBulk (_bases, _quotes) — busca preços para os pares base/cotação fornecidos simultaneamente
  • _bases string[] memory - a lista de tokens base para os quais você deseja obter os preços
  • _quotes string[] memory - a lista de tokens (ou USD) nos quais os preços são expressos
  • _bases - ["ETH", "DOT"]
  • _quotes - ["USD", "USD"]

A resposta para ambas as funções consiste nos seguintes dados, agrupados em uma tupla no caso de getReferenceData e uma lista de tuplas (uma tupla por par) no caso de getReferenceDataBulk:

  • rate uint256 - preço para o par base/cotação fornecido. Observe que o resultado deve ser ajustado para considerar dezoito casas decimais
  • lastUpdatedBase uint256 - carimbo de data/hora da atualização para o parâmetro _base, expresso em épocas UNIX, que é o número de segundos que se passaram desde 01-01-1970 00:00:00 UT
  • lastUpdatedQuote uint256 - carimbo de data/hora da atualização para o parâmetro _quote, expresso em épocas UNIX, que é o número de segundos que se passaram desde 01-01-1970 00:00:00 UT

Obtendo feeds de preço usando o Remix

Nesta seção, usaremos o remix para buscar o preço do par ETH/USD.

Primeiro, certifique-se de ter uma carteira compatível com EVM conectada à rede de demonstração EVM. MetaMask é usado como exemplo neste guia. Agora, acesse o Remix, cole a interface IStdReference em um novo arquivo e compile-o.

Compile interface contract

Em seguida, siga estas etapas:

  1. Vá para a aba Deploy & Run Transactions
  2. Defina o ENVIRONMENT como Injected Provider -- MetaMask
  3. Selecione o contrato IStdReference.sol no menu suspenso CONTRACT
  4. Insira o endereço do contrato do feed de dados, que é 0x8c064bCf7C0DA3B3b090BAbFE8f3323534D84d68 na rede de demonstração EVM no campo At Address e clique no botão At Address

Access Interface contract

O contrato agora deve estar acessível. Para interagir com ele, siga estas etapas:

  1. Expanda o contrato IStdReference para revelar as funções disponíveis
  2. Expanda getReferenceData e defina os parâmetros de entrada _base e _quote como ETH e USD, respectivamente
  3. Clique em Call
  4. O resultado mostrará três valores: o preço, a hora da atualização para o parâmetro _base e a hora da atualização para o parâmetro _quote

Check price data

Observe que, para obter um preço legível do feed de preços, é essencial ajustar as casas decimais do feed, que são dezoito. Por exemplo, o exemplo acima mostra um valor de 2361167929271984201806, correspondente a um preço de ETH de $2,361.167929271984201806 expresso em USD. Além disso, observe que os valores do carimbo de data/hora da atualização são expressos em tempo de época UNIX, expresso como o número de segundos que se passaram desde 01-01-1970 00:00:00 UT.

As informações apresentadas aqui foram fornecidas por terceiros e estão disponíveis apenas para fins informativos gerais. A Tanssi não endossa nenhum projeto listado e descrito no Site de Documentação da Tanssi (https://docs.tanssi.network/). A Tanssi Foundation não garante a precisão, integridade ou utilidade dessas informações. Qualquer confiança depositada nelas é de sua exclusiva responsabilidade. A Tanssi Foundation se exime de toda responsabilidade decorrente de qualquer confiança que você ou qualquer outra pessoa possa ter em qualquer parte deste conteúdo. Todas as declarações e/ou opiniões expressas nesses materiais são de responsabilidade exclusiva da pessoa ou entidade que as fornece e não representam necessariamente a opinião da Tanssi Foundation. As informações aqui não devem ser interpretadas como aconselhamento profissional ou financeiro de qualquer tipo. Sempre busque orientação de um profissional devidamente qualificado em relação a qualquer assunto ou circunstância em particular. As informações aqui podem conter links ou integração com outros sites operados ou conteúdo fornecido por terceiros, e tais sites podem apontar para este site. A Tanssi Foundation não tem controle sobre esses sites ou seu conteúdo e não terá responsabilidade decorrente ou relacionada a eles. A existência de qualquer link não constitui endosso desses sites, de seu conteúdo ou de seus operadores. Esses links são fornecidos apenas para sua conveniência, e você isenta e exonera a Tanssi Foundation de qualquer responsabilidade decorrente do uso dessas informações ou das informações fornecidas por qualquer site ou serviço de terceiros.
Última atualização: 9 de dezembro de 2025
| Criada: 9 de dezembro de 2025