Este documento técnico orienta os desenvolvedores através do processo detalhado de integração do #RedStone Oracles em um aplicativo descentralizado.

Este documento cobrirá as fases de configuração, integração e teste, garantindo que os desenvolvedores possam aproveitar esses recursos em seus DApps.

1. Introdução

Os RedStone Oracles oferecem uma solução descentralizada para acesso a dados em tempo real em aplicações blockchain. Eles utilizam uma rede de provedores de dados e o blockchain Arweave para armazenamento de dados, garantindo integridade e permanência. Este guia detalhará as etapas necessárias para integrar esses oráculos, desde a instalação inicial até customização e testes avançados.

Fonte: Oráculos RedStone

2. Requisitos de configuração

Antes de iniciar o processo de integração, certifique-se de que os seguintes pré-requisitos sejam atendidos:

  • Node.js e npm instalados em sua máquina de desenvolvimento.

  • Uma compreensão básica de Solidity e contratos inteligentes.

  • Familiaridade com JavaScript e ferramentas de desenvolvimento como Hardhat ou Foundry.

3. Instalação

  • Instalação do pacote de nós:

    instalação npm @redstone-finance/evm-connector

  • Configuração de fundição:
    Os usuários do Foundry precisam instalar dependências por meio de submódulos git:

    forjar instalar redstone-finance/redstone-oracles-monorepo
    forja instalar OpenZeppelin/openzeppelin-contracts@v4.9.5

  • Atualizando remapeamentos no Foundry:
    Adicione caminhos ao remappings.txt:

    echo "@redstone-finance/evm-connector/dist/contracts/=lib/redstone-oracles-monorepo/packages/evm-connector/contracts/
    @openzeppelin/contracts=lib/openzeppelin-contracts/contracts/" >> remappings.txt

4. Integração de contrato inteligente

Fonte: Oráculos RedStone
  • Herdar dos contratos básicos:
    Seu contrato deve se estender a partir de um dos contratos básicos da RedStone para utilizar dados Oracle:

    importar "@redstone-finance/evm-connector/contracts/data-services/MainDemoConsumerBase.sol";

    contrato SeuNomeContrato estende MainDemoConsumerBase {
    //Código de contrato adicional aqui
    }

  • Buscando dados:
    Implemente funções para buscar e manipular dados Oracle em seu contrato:

    função fetchOracleData(bytes32 dataIdentifier) ​​retornos públicos (uint256) {
    uint256 dataValue = getOracleNumericValueFromTxMsg(dataIdentifier);
    retornar valor de dados;
    }

5. Integração Front-End

  • Configurando o wrapper Ethers.js:
    Integre o conector RedStone EVM com ethers.js para interagir com o contrato inteligente:

    const { WrapperBuilder } = require("@redstone-finance/evm-connector");
    const éteres = require("éteres");

    deixe provedor = new ethers.providers.JsonRpcProvider();
    deixe contrato = novo ethers.Contract(contractAddress, contractABI, provedor);

    deixe wrapperContract = WrapperBuilder.wrap(contract).usingDataService({
    feeds de dados: ["ETH", "BTC"]
    });

Fonte: Oráculos RedStone
  • Interagindo com Contratos:
    Use o contrato empacotado para chamar funções como faria normalmente:

    função assíncrona callContractFunction() {
    deixe resultado = aguarde wrapContract.fetchOracleData("ETH");
    console.log(`Dados Oracle: ${resultado}`);
    }

6. Teste e implantação

  • Teste de capacete:
    Use o Hardhat para simular interações e testar a resposta do contrato aos dados do Oracle:

    const {esperar} = exigir("chai");

    descreva("Testes de Integração Oracle", function() {
    it("deve buscar os dados do Oracle corretamente", função assíncrona () {
    dados const = aguarda wrapContract.fetchOracleData("ETH");
    esperar(dados).to.be.a('número');
    });
    });

  • Implantação:
    Implante seus contratos em uma rede ativa após testes completos:

    trufa migrar --network mainnet

7. Conclusão

A integração do RedStone Oracles em seu DApp aumenta significativamente sua capacidade de interagir com dados em tempo real de forma eficiente e segura. Seguindo este guia passo a passo, os desenvolvedores podem garantir uma integração robusta, aproveitando as soluções Oracle avançadas baseadas em blockchain da RedStone para iniciar aplicativos descentralizados.

$ETH