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