Este documento técnico guía a los desarrolladores a través del proceso detallado de integración de #RedStone Oracles en una aplicación descentralizada.

Este documento cubrirá las fases de configuración, integración y prueba, garantizando que los desarrolladores puedan aprovechar estas capacidades dentro de sus DApps.

1. Introducción

RedStone Oracles ofrece una solución descentralizada para acceder a datos en tiempo real dentro de aplicaciones blockchain. Utilizan una red de proveedores de datos y la cadena de bloques Arweave para el almacenamiento de datos, lo que garantiza tanto la integridad como la permanencia. Esta guía detallará los pasos necesarios para integrar estos oráculos, desde la instalación inicial hasta la personalización y pruebas avanzadas.

Fuente: Oráculos de RedStone

2. Requisitos de configuración

Antes de iniciar el proceso de integración, asegúrese de que se cumplan los siguientes requisitos previos:

  • Node.js y npm instalados en su máquina de desarrollo.

  • Una comprensión básica de Solidity y contratos inteligentes.

  • Familiaridad con JavaScript y #Ethereum herramientas de desarrollo como Hardhat o Foundry.

3. Instalación

  • Instalación del paquete de nodos:

    instalación npm @redstone-finance/evm-connector

  • Configuración de fundición:
    Los usuarios de Foundry necesitan instalar dependencias a través de submódulos de git:

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

  • Actualización de reasignaciones en Foundry:
    Agregue rutas al 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. Integración de contratos inteligentes

Fuente: Oráculos de RedStone
  • Heredar de contratos base:
    Su contrato debe extenderse desde uno de los contratos base de RedStone para utilizar datos de Oracle:

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

    contrato YourContractName extiende MainDemoConsumerBase {
    // Código de contrato adicional aquí
    }

  • Recuperacion de datos:
    Implemente funciones para recuperar y manejar datos de Oracle dentro de su contrato:

    función fetchOracleData(bytes32 dataIdentifier) ​​público devuelve (uint256) {
    uint256 dataValue = getOracleNumericValueFromTxMsg(dataIdentifier);
    devolver valor de datos;
    }

5. Integración frontal

  • Configurando el contenedor Ethers.js:
    Integre el conector RedStone EVM con ethers.js para interactuar con el contrato inteligente:

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

    let proveedor = new ethers.providers.JsonRpcProvider();
    let contract = new ethers.Contract(direccióncontrato, contratoABI, proveedor);

    let envueltoContract = WrapperBuilder.wrap(contrato).usingDataService({
    fuentes de datos: ["ETH", "BTC"]
    });

Fuente: Oráculos de RedStone
  • Interactuar con contratos:
    Utilice el contrato empaquetado para llamar funciones como lo haría normalmente:

    función asíncrona callContractFunction() {
    let result = await envueltoContract.fetchOracleData("ETH");
    console.log(`Datos de Oracle: ${resultado}`);
    }

6. Pruebas e implementación

  • Pruebas de casco:
    Utilice Hardhat para simular interacciones y probar la respuesta del contrato a los datos de Oracle:

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

    describir("Pruebas de integración de Oracle", función () {
    it("debería recuperar los datos de Oracle correctamente", función asíncrona () {
    datos constantes = espera envueltoContract.fetchOracleData("ETH");
    esperar(datos).to.be.a('número');
    });
    });

  • Despliegue:
    Implemente sus contratos en una red activa después de realizar pruebas exhaustivas:

    migración de trufa --red red principal

7. Conclusión

La integración de RedStone Oracles en su DApp mejora significativamente su capacidad para interactuar con datos en tiempo real de manera eficiente y segura. Siguiendo esta guía paso a paso, los desarrolladores pueden garantizar una integración sólida, aprovechando las avanzadas soluciones Oracle basadas en blockchain de RedStone para impulsar aplicaciones descentralizadas.

$ETH