Ten dokument techniczny prowadzi programistów przez szczegółowy proces integracji #RedStone Oracles ze zdecentralizowaną aplikacją.

Ten dokument obejmie fazy konfiguracji, integracji i testowania, dzięki czemu programiści będą mogli wykorzystać te możliwości w swoich aplikacjach DApp.

1. Wstęp

RedStone Oracles oferuje zdecentralizowane rozwiązanie umożliwiające dostęp do danych w czasie rzeczywistym w aplikacjach typu blockchain. Wykorzystują sieć dostawców danych i blockchain Arweave do przechowywania danych, zapewniając zarówno integralność, jak i trwałość. W tym przewodniku szczegółowo opisano kroki niezbędne do zintegrowania tych wyroczni, od początkowej instalacji po zaawansowane dostosowywanie i testowanie.

Źródło: Wyrocznie RedStone

2. Wymagania konfiguracyjne

Przed rozpoczęciem procesu integracji upewnij się, że spełnione są następujące wymagania wstępne:

  • Node.js i npm zainstalowane na komputerze programistycznym.

  • Podstawowa znajomość Solidity i inteligentnych kontraktów.

  • Znajomość JavaScript i #Ethereum narzędzi programistycznych takich jak Hardhat lub Foundry.

3. Instalacja

  • Instalacja pakietu węzła:

    npm zainstaluj @redstone-finance/evm-connector

  • Konfiguracja odlewni:
    Użytkownicy Foundry muszą zainstalować zależności poprzez podmoduły git:

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

  • Aktualizacja remapowań w Foundry:
    Dodaj ścieżki do pliku 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. Integracja inteligentnych kontraktów

Źródło: Wyrocznie RedStone
  • Dziedzicz z umów podstawowych:
    Twoja umowa powinna rozciągać się od jednej z podstawowych umów RedStone na wykorzystanie danych Oracle:

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

    kontrakt YourContractName rozszerza MainDemoConsumerBase {
    // Tutaj dodatkowy kod kontraktu
    }

  • Pobieranie danych:
    Zaimplementuj funkcje umożliwiające pobieranie i obsługę danych Oracle w ramach umowy:

    funkcja fetchOracleData(bytes32 dataIdentifier) ​​zwraca publicznie (uint256) {
    uint256 dataValue = getOracleNumericValueFromTxMsg(dataIdentifier);
    zwróć wartość danych;
    }

5. Integracja front-endowa

  • Konfigurowanie opakowania Ethers.js:
    Zintegruj złącze RedStone EVM z ethers.js, aby współdziałać z inteligentnym kontraktem:

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

    niech dostawca = nowy ethers.providers.JsonRpcProvider();
    niech kontrakt = nowy ethers.Contract(Adres umowy, kontraktABI, dostawca);

    niech wrapperContract = WrapperBuilder.wrap(contract).usingDataService({
    źródła danych: ["ETH", "BTC"]
    });

Źródło: Wyrocznie RedStone
  • Interakcja z kontraktami:
    Użyj opakowanego kontraktu, aby wywołać funkcje w normalny sposób:

    funkcja asynchroniczna callContractFunction() {
    niech wynik = czekaj na zawiniętyContract.fetchOracleData("ETH");
    console.log(`Dane Oracle: ${result}`);
    }

6. Testowanie i wdrażanie

  • Testowanie kasku:
    Użyj Hardhat do symulacji interakcji i przetestowania reakcji kontraktu na dane Oracle:

    const {oczekuj } = wymagaj("chai");

    opisz("Testy integracyjne Oracle", funkcja () {
    it("powinien poprawnie pobrać dane Oracle", funkcja asynchroniczna () {
    const data = czekaj na zawiniętyContract.fetchOracleData("ETH");
    oczekiwać(dane).to.be.a('liczba');
    });
    });

  • Zastosowanie:
    Wdróż swoje kontrakty w działającej sieci po dokładnych testach:

    trufle migruj --network mainnet

7. Wnioski

Integracja RedStone Oracles z aplikacją DApp znacznie zwiększa jej zdolność do wydajnej i bezpiecznej interakcji z danymi w czasie rzeczywistym. Postępując zgodnie z tym przewodnikiem krok po kroku, programiści mogą zapewnić solidną integrację, wykorzystując zaawansowane rozwiązania Oracle oparte na blockchainie firmy RedStone do szybkiego uruchamiania zdecentralizowanych aplikacji.

$ETH