Tento technický dokument provede vývojáře podrobným procesem integrace #RedStone Oracles do decentralizované aplikace.

Tento dokument se bude zabývat fázemi nastavení, integrace a testování a zajistí, že vývojáři budou moci tyto funkce využít v rámci svých DApps.

1. Úvod

RedStone Oracles nabízejí decentralizované řešení pro přístup k datům v reálném čase v rámci blockchain aplikací. K ukládání dat využívají síť poskytovatelů dat a blockchain Arweave, což zajišťuje integritu i stálost. Tato příručka podrobně popisuje kroky nezbytné k integraci těchto věštců, od počáteční instalace až po pokročilé přizpůsobení a testování.

Zdroj: RedStone Oracles

2. Požadavky na nastavení

Před zahájením procesu integrace se ujistěte, že jsou splněny následující předpoklady:

  • Node.js a npm nainstalované na vašem vývojovém počítači.

  • Základní pochopení Solidity a chytrých kontraktů.

  • Znalost JavaScriptu a vývojových nástrojů #Ethereum jako Hardhat nebo Foundry.

3. Instalace

  • Instalace balíčku uzlu:

    npm install @redstone-finance/evm-connector

  • Nastavení slévárny:
    Uživatelé Foundry potřebují nainstalovat závislosti prostřednictvím submodulů git:

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

  • Aktualizace přemapování ve slévárně:
    Přidejte cesty do souboru 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. Smart Contract Integration

Zdroj: RedStone Oracles
  • Zdědit ze základních smluv:
    Vaše smlouva by se měla rozšiřovat z jedné ze základních smluv RedStone na využití dat oracle:

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

    smlouva YourContractName rozšiřuje MainDemoConsumerBase {
    // Dodatečný kód smlouvy zde
    }

  • Načítání dat:
    Implementujte funkce pro načítání a zpracování dat Oracle v rámci vaší smlouvy:

    function fetchOracleData(bytes32 dataIdentifier) ​​public returns (uint256) {
    uint256 dataValue = getOracleNumericValueFromTxMsg(dataIdentifier);
    return dataValue;
    }

5. Integrace front-endu

  • Nastavení obalu Ethers.js:
    Integrujte konektor RedStone EVM s ethers.js pro interakci s inteligentní smlouvou:

    const { WrapperBuilder } = require("@redstone-finance/evm-connector");
    const ethers = vyžadovat("ethery");

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

    let wrapContract = WrapperBuilder.wrap(contract).usingDataService({
    dataFeeds: ["ETH", "BTC"]
    });

Zdroj: RedStone Oracles
  • Interakce se smlouvami:
    Použijte zabalenou smlouvu k volání funkcí jako obvykle:

    asynchronní funkce callContractFunction() {
    nechat výsledek = čekat zabalenéContract.fetchOracleData("ETH");
    console.log(`Data Oracle: ${result}`);
    }

6. Testování a nasazení

  • Testování přilby:
    Použijte Hardhat k simulaci interakcí a testování odezvy smlouvy na data věštce:

    const { očekávat } = vyžadovat("chai");

    description("Oracle Integration Tests", function () {
    it("má správně načíst data oracle", asynchronní funkce () {
    const data = čeká zabalenéContract.fetchOracleData("ETH");
    očekávat(data).to.be.a('číslo');
    });
    });

  • Rozvinutí:
    Po důkladném testování nasaďte své smlouvy do živé sítě:

    migrace lanýžů -- síť mainnet

7. Závěr

Integrace RedStone Oracles do vaší DApp výrazně zvyšuje její schopnost efektivně a bezpečně pracovat s daty v reálném čase. Dodržováním tohoto podrobného průvodce mohou vývojáři zajistit robustní integraci s využitím pokročilých řešení Oracle založených na blockchainu společnosti RedStone pro nastartování decentralizovaných aplikací.

$ETH