Ce document technique guide les développeurs tout au long du processus détaillé d’intégration #RedStone Oracles dans une application décentralisée.

Ce document couvrira les phases de configuration, d'intégration et de test, garantissant que les développeurs peuvent exploiter ces fonctionnalités au sein de leurs DApps.

1. Introduction

RedStone Oracles offre une solution décentralisée pour accéder aux données en temps réel au sein des applications blockchain. Ils utilisent un réseau de fournisseurs de données et la blockchain Arweave pour le stockage des données, garantissant à la fois l'intégrité et la permanence. Ce guide détaillera les étapes nécessaires à l'intégration de ces oracles, de l'installation initiale à la personnalisation et aux tests avancés.

Source : Oracles RedStone

2. Exigences de configuration

Avant de démarrer le processus d'intégration, assurez-vous que les conditions préalables suivantes sont remplies :

  • Node.js et npm installés sur votre machine de développement.

  • Une compréhension de base de Solidity et des contrats intelligents.

  • Familiarité avec JavaScript et les #Ethereum outils de développement comme Hardhat ou Foundry.

3.Installation

  • Installation du package de nœuds :

    npm installer @redstone-finance/evm-connector

  • Configuration de la fonderie :
    Les utilisateurs de Foundry doivent installer les dépendances via les sous-modules git :

    forge installer redstone-finance/redstone-oracles-monorepo
    forger l'installation d'OpenZeppelin/openzeppelin-contracts@v4.9.5

  • Mise à jour des remappages dans Foundry :
    Ajoutez des chemins au remappings.txt :

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

4. Intégration des contrats intelligents

Source : Oracles RedStone
  • Hériter des contrats de base :
    Votre contrat doit s'étendre à partir de l'un des contrats de base de RedStone pour utiliser les données Oracle :

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

    contrat YourContractName étend MainDemoConsumerBase {
    // Code de contrat supplémentaire ici
    }

  • Récupération des données:
    Implémentez des fonctions pour récupérer et gérer les données Oracle dans votre contrat :

    function fetchOracleData(bytes32 dataIdentifier) ​​public renvoie (uint256) {
    uint256 dataValue = getOracleNumericValueFromTxMsg(dataIdentifier);
    renvoyer la valeur des données ;
    }

5. Intégration frontale

  • Configuration du wrapper Ethers.js :
    Intégrez le connecteur RedStone EVM avec ethers.js pour interagir avec le contrat intelligent :

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

    let supplier = new ethers.providers.JsonRpcProvider();
    let contract = new ethers.Contract(contractAddress, contractABI, supplier);

    laissez enveloppéContract = WrapperBuilder.wrap(contract).usingDataService({
    flux de données : ["ETH", "BTC"]
    });

Source : Oracles RedStone
  • Interagir avec les contrats :
    Utilisez le contrat enveloppé pour appeler des fonctions comme vous le feriez normalement :

    fonction asynchrone callContractFunction() {
    let result = wait enveloppéContract.fetchOracleData("ETH");
    console.log(`Oracle Data : ${result}`);
    }

6. Tests et déploiement

  • Test des casques de sécurité :
    Utilisez Hardhat pour simuler les interactions et tester la réponse du contrat aux données Oracle :

    const {attendre} = require("chai");

    décrire("Tests d'intégration Oracle", fonction () {
    it("devrait récupérer correctement les données Oracle", fonction asynchrone () {
    const data = wait enveloppéContract.fetchOracleData("ETH");
    attendre(données).to.be.a('nombre');
    });
    });

  • Déploiement:
    Déployez vos contrats sur un réseau actif après des tests approfondis :

    truffe migre --network mainnet

7. Conclusion

L'intégration de RedStone Oracles dans votre DApp améliore considérablement sa capacité à interagir avec les données en temps réel de manière efficace et sécurisée. En suivant ce guide étape par étape, les développeurs peuvent garantir une intégration robuste, en tirant parti des solutions Oracle avancées basées sur la blockchain de RedStone pour lancer des applications décentralisées.

$ETH