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.
![](https://public.bnbstatic.com/image/pgc/202406/a664e085780a2dda6dec10915a88be31.png)
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.5Aktualizacja 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
![](https://public.bnbstatic.com/image/pgc/202406/6829364cd83a2b9f37891f3a79e5f387.png)
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"]
});
![](https://public.bnbstatic.com/image/pgc/202406/2ba441390f34b8f14cb7029ab26bba1c.jpg)
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.