Šis tehniskais dokuments sniedz izstrādātājiem norādījumus par detalizētu #RedStone Oracles integrēšanas procesu decentralizētā lietojumprogrammā.

Šis dokuments aptvers iestatīšanas, integrācijas un testēšanas fāzes, nodrošinot, ka izstrādātāji var izmantot šīs iespējas savos DApps.

1. Ievads

RedStone Oracles piedāvā decentralizētu risinājumu, lai piekļūtu reāllaika datiem blokķēdes lietojumprogrammās. Tie izmanto datu sniedzēju tīklu un Arweave blokķēdi datu glabāšanai, nodrošinot gan integritāti, gan pastāvību. Šajā rokasgrāmatā ir sīki aprakstītas darbības, kas nepieciešamas šo orākulu integrēšanai, sākot no sākotnējās instalēšanas līdz uzlabotai pielāgošanai un testēšanai.

Avots: RedStone Oracles

2. Iestatīšanas prasības

Pirms integrācijas procesa sākšanas pārliecinieties, ka ir izpildīti šādi priekšnosacījumi:

  • Node.js un npm ir instalēti jūsu izstrādes mašīnā.

  • Pamatzināšanas par Solidity un viedajiem līgumiem.

  • JavaScript un #Ethereum izstrādes rīku, piemēram, Hardhat vai Foundry, pārzināšana.

3. Uzstādīšana

  • Mezglu pakotnes instalēšana:

    npm instalējiet @redstone-finance/evm-connector

  • Lietuves iestatīšana:
    Lietuves lietotājiem ir jāinstalē atkarības, izmantojot git apakšmoduļus:

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

  • Pārveidojumu atjaunināšana Foundry:
    Pievienojiet ceļus failam 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. Viedā līgumu integrācija

Avots: RedStone Oracles
  • Mantojums no pamatlīgumiem:
    Jūsu līgumam vajadzētu paplašināties no viena no RedStone bāzes līgumiem par Oracle datu izmantošanu:

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

    līgums YourContractName pagarina MainDemoConsumerBase {
    // Papildu līguma kods šeit
    }

  • Notiek datu iegūšana:
    Ieviesiet funkcijas, lai iegūtu un apstrādātu Oracle datus jūsu līguma ietvaros:

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

5. Front-End integrācija

  • Ethers.js iesaiņojuma iestatīšana:
    Integrējiet RedStone EVM savienotāju ar ethers.js, lai mijiedarbotos ar viedo līgumu:

    const { WrapperBuilder } = prasīt("@redstone-finance/evm-connector");
    const ēteri = prasīt("ēteri");

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

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

Avots: RedStone Oracles
  • Mijiedarbība ar līgumiem:
    Izmantojiet iesaiņoto līgumu, lai izsauktu funkcijas, kā parasti:

    async function callContractFunction() {
    let rezultāts = jāgaida wrappedContract.fetchOracleData("ETH");
    console.log(`Oracle dati: ${rezultāts}`);
    }

6. Testēšana un izvietošana

  • Hardhat testēšana:
    Izmantojiet Hardhat, lai modelētu mijiedarbību un pārbaudītu līguma reakciju uz orākulu datiem:

    const { gaidīt } = prasīt ("chai");

    description("Oracle integrācijas testi", funkcija () {
    it("pareizi jāienes Oracle dati", asinhronā funkcija () {
    const data = gaidīt wrappedContract.fetchOracleData("ETH");
    sagaidīt(dati).to.be.a('skaitlis');
    });
    });

  • Izvietošana:
    Izvietojiet savus līgumus tiešsaistes tīklā pēc rūpīgas pārbaudes:

    triffle migrate -- tīkla galvenais tīkls

7. Secinājums

RedStone Oracle integrēšana jūsu DApp ievērojami uzlabo tās spēju efektīvi un droši mijiedarboties ar reāllaika datiem. Ievērojot šo soli pa solim sniegto rokasgrāmatu, izstrādātāji var nodrošināt stabilu integrāciju, izmantojot RedStone uzlabotos blokķēdes orākulu risinājumus decentralizētu lietojumprogrammu palaišanai.

$ETH