Această lucrare tehnică ghidează dezvoltatorii prin procesul detaliat de integrare a #RedStone Oracles într-o aplicație descentralizată.

Acest document va acoperi fazele de configurare, integrare și testare, asigurându-se că dezvoltatorii pot valorifica aceste capabilități în DApp-urile lor.

1. Introducere

RedStone Oracles oferă o soluție descentralizată pentru accesarea datelor în timp real în cadrul aplicațiilor blockchain. Ei utilizează o rețea de furnizori de date și blockchain-ul Arweave pentru stocarea datelor, asigurând atât integritatea, cât și permanența. Acest ghid va detalia pașii necesari pentru integrarea acestor oracole, de la instalarea inițială până la personalizarea și testarea avansată.

Sursa: RedStone Oracles

2. Cerințe de configurare

Înainte de a începe procesul de integrare, asigurați-vă că sunt îndeplinite următoarele cerințe preliminare:

  • Node.js și npm instalate pe mașina dvs. de dezvoltare.

  • O înțelegere de bază a Solidity și a contractelor inteligente.

  • Familiaritate cu JavaScript și instrumente de dezvoltare #Ethereum cum ar fi Hardhat sau Foundry.

3. Instalare

  • Instalare pachet Node:

    npm instalează @redstone-finance/evm-connector

  • Configurare turnătorie:
    Utilizatorii Foundry trebuie să instaleze dependențe prin submodulele git:

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

  • Actualizarea remapărilor în Foundry:
    Adăugați căi la 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. Integrare Smart Contract

Sursa: RedStone Oracles
  • Moșteniți din contractele de bază:
    Contractul dvs. ar trebui să se extindă de la unul dintre contractele de bază ale RedStone pentru a utiliza datele Oracle:

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

    contract YourContractName extinde MainDemoConsumerBase {
    // Codul contractului suplimentar aici
    }

  • Colectare de date:
    Implementați funcții pentru a prelua și gestiona datele oracle în cadrul contractului dvs.:

    funcția fetchOracleData(bytes32 dataIdentifier) ​​returnează public (uint256) {
    uint256 dataValue = getOracleNumericValueFromTxMsg(dataIdentifier);
    returnează dataValue;
    }

5. Integrare front-end

  • Configurarea Wrapper-ului Ethers.js:
    Integrați conectorul RedStone EVM cu ethers.js pentru a interacționa cu contractul inteligent:

    const { WrapperBuilder } = require("@redstone-finance/evm-connector");
    const ethers = require("eteri");

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

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

Sursa: RedStone Oracles
  • Interacțiunea cu contractele:
    Utilizați contractul împachetat pentru a apela funcții așa cum ați proceda în mod normal:

    funcția asincronă callContractFunction() {
    let result = await wrappedContract.fetchOracleData("ETH");
    console.log(`Date Oracle: ${rezultat}`);
    }

6. Testare și implementare

  • Testare cască:
    Utilizați Hardhat pentru a simula interacțiunile și a testa răspunsul contractului la datele oracle:

    const { astept } = require("chai");

    descrie("Teste de integrare Oracle", function () {
    it("ar trebui să preia corect datele Oracle", funcția asincronă () {
    const data = await wrappedContract.fetchOracleData("ETH");
    așteaptă(date).să fie.un('număr');
    });
    });

  • Implementare:
    Implementați-vă contractele într-o rețea live după testare amănunțită:

    truffle migrate --network mainnet

7. Concluzie

Integrarea RedStone Oracles în DApp îmbunătățește semnificativ capacitatea acestuia de a interacționa cu datele în timp real în mod eficient și sigur. Urmând acest ghid pas cu pas, dezvoltatorii pot asigura o integrare robustă, valorificând soluțiile Oracle avansate bazate pe blockchain RedStone pentru lansarea aplicațiilor descentralizate.

$ETH