Questo documento tecnico guida gli sviluppatori attraverso il processo dettagliato di integrazione di #RedStone Oracle in un'applicazione decentralizzata.

Questo documento coprirà le fasi di configurazione, integrazione e test, garantendo che gli sviluppatori possano sfruttare queste funzionalità all'interno delle loro DApp.

1. Introduzione

RedStone Oracles offre una soluzione decentralizzata per l'accesso ai dati in tempo reale all'interno delle applicazioni blockchain. Utilizzano una rete di fornitori di dati e la blockchain Arweave per l'archiviazione dei dati, garantendo sia integrità che permanenza. Questa guida descriverà in dettaglio i passaggi necessari per integrare questi oracoli, dall'installazione iniziale alla personalizzazione e ai test avanzati.

Fonte: Oracoli RedStone

2. Requisiti di installazione

Prima di avviare il processo di integrazione, assicurarsi che siano soddisfatti i seguenti prerequisiti:

  • Node.js e npm installati sul tuo computer di sviluppo.

  • Una conoscenza di base di Solidity e contratti intelligenti.

  • Familiarità con JavaScript e strumenti di sviluppo #Ethereum come Hardhat o Foundry.

3. Installazione

  • Installazione del pacchetto nodo:

    npm installa @redstone-finance/evm-connector

  • Configurazione della fonderia:
    Gli utenti di Foundry devono installare le dipendenze tramite i sottomoduli git:

    forge installa redstone-finance/redstone-oracles-monorepo
    forge install OpenZeppelin/openzeppelin-contracts@v4.9.5

  • Aggiornamento delle rimappature in Foundry:
    Aggiungi percorsi 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. Integrazione del contratto intelligente

Fonte: Oracoli RedStone
  • Eredita dai contratti base:
    Il tuo contratto dovrebbe estendersi da uno dei contratti base di RedStone per utilizzare i dati Oracle:

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

    contratto YourContractName estende MainDemoConsumerBase {
    // Codice contratto aggiuntivo qui
    }

  • Recuperando i dati:
    Implementa funzioni per recuperare e gestire i dati Oracle all'interno del tuo contratto:

    funzione fetchOracleData(bytes32 dataIdentifier) ​​pubblico restituisce (uint256) {
    uint256 dataValue = getOracleNumericValueFromTxMsg(dataIdentifier);
    restituire valoredati;
    }

5. Integrazione front-end

  • Configurazione del wrapper Ethers.js:
    Integra il connettore RedStone EVM con ethers.js per interagire con lo smart contract:

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

    lascia provider = new ethers.provviders.JsonRpcProvider();
    let contratto = new ethers.Contract(contractAddress, contractABI, provider);

    let wrapContract = WrapperBuilder.wrap(contratto).usingDataService({
    feed di dati: ["ETH", "BTC"]
    });

Fonte: Oracoli RedStone
  • Interazione con i contratti:
    Utilizza il contratto avvolto per chiamare le funzioni come faresti normalmente:

    funzione asincrona callContractFunction() {
    let result = attendono avvoltoContract.fetchOracleData("ETH");
    console.log(`Dati Oracle: ${risultato}`);
    }

6. Test e distribuzione

  • Test sull'elmetto protettivo:
    Utilizza Hardhat per simulare le interazioni e testare la risposta del contratto ai dati Oracle:

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

    description("Test di integrazione Oracle", funzione () {
    it("dovrebbe recuperare correttamente i dati Oracle", funzione asincrona () {
    const data = attendono avvoltoContract.fetchOracleData("ETH");
    aspetta(dati).to.be.a('numero');
    });
    });

  • Distribuzione:
    Distribuisci i tuoi contratti su una rete live dopo test approfonditi:

    migrazione del tartufo --mainnet della rete

7. Conclusione

L'integrazione di RedStone Oracles nella tua DApp migliora significativamente la sua capacità di interagire con i dati in tempo reale in modo efficiente e sicuro. Seguendo questa guida passo passo, gli sviluppatori possono garantire una solida integrazione, sfruttando le soluzioni Oracle avanzate basate su blockchain di RedStone per avviare applicazioni decentralizzate.

$ETH