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