Makalah teknis ini memandu pengembang melalui proses terperinci dalam mengintegrasikan #RedStone Oracles ke dalam aplikasi terdesentralisasi.

Dokumen ini akan mencakup tahap penyiapan, integrasi, dan pengujian, memastikan pengembang dapat memanfaatkan kemampuan ini dalam DApps mereka.

1. Perkenalan

RedStone Oracles menawarkan solusi terdesentralisasi untuk mengakses data real-time dalam aplikasi blockchain. Mereka memanfaatkan jaringan penyedia data dan blockchain Arweave untuk penyimpanan data, memastikan integritas dan permanensinya. Panduan ini akan merinci langkah-langkah yang diperlukan untuk mengintegrasikan oracle ini, mulai dari instalasi awal hingga penyesuaian dan pengujian tingkat lanjut.

Sumber: Oracles RedStone

2. Persyaratan Pengaturan

Sebelum memulai proses integrasi, pastikan prasyarat berikut terpenuhi:

  • Node.js dan npm diinstal pada mesin pengembangan Anda.

  • Pemahaman dasar tentang Soliditas dan kontrak pintar.

  • Keakraban dengan JavaScript dan #Ethereum alat pengembangan seperti Hardhat atau Foundry.

3. Instalasi

  • Instalasi Paket Node:

    npm instal @redstone-finance/evm-connector

  • Pengaturan Pengecoran:
    Pengguna pengecoran perlu menginstal dependensi melalui submodul git:

    menempa instal redstone-finance/redstone-Oracles-monorepo
    menempa instal OpenZeppelin/openzeppelin-contracts@v4.9.5

  • Memperbarui Pemetaan Ulang di Foundry:
    Tambahkan jalur ke 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. Integrasi Kontrak Cerdas

Sumber: Oracles RedStone
  • Mewarisi dari Kontrak Dasar:
    Kontrak Anda harus diperpanjang dari salah satu kontrak dasar RedStone untuk memanfaatkan data Oracle:

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

    kontrak YourContractName memperluas MainDemoConsumerBase {
    // Kode kontrak tambahan di sini
    }

  • Mengambil Data:
    Terapkan fungsi untuk mengambil dan menangani data Oracle dalam kontrak Anda:

    fungsi mengambilOracleData(bytes32 dataIdentifier) ​​pengembalian publik (uint256) {
    uint256 dataValue = getOracleNumericValueFromTxMsg(dataIdentifier);
    mengembalikan nilai data;
    }

5. Integrasi Front-End

  • Menyiapkan Pembungkus Ethers.js:
    Integrasikan konektor RedStone EVM dengan ethers.js untuk berinteraksi dengan kontrak pintar:

    const { WrapperBuilder } = memerlukan("@redstone-finance/evm-connector");
    const eter = memerlukan("eter");

    biarkan penyedia = new ethers.providers.JsonRpcProvider();
    biarkan kontrak = eter baru.Kontrak(alamat kontrak, kontrakABI, penyedia);

    biarkan wrapContract = WrapperBuilder.wrap(kontrak).usingDataService({
    umpan data: ["ETH", "BTC"]
    });

Sumber: Oracles RedStone
  • Berinteraksi dengan Kontrak:
    Gunakan kontrak yang dibungkus untuk memanggil fungsi seperti biasa:

    fungsi async callContractFunction() {
    biarkan hasil = menunggu dibungkusContract.fetchOracleData("ETH");
    console.log(`Data Oracle: ${hasil}`);
    }

6. Pengujian dan Penerapan

  • Pengujian Topi Keras:
    Gunakan Hardhat untuk menyimulasikan interaksi dan menguji respons kontrak terhadap data Oracle:

    const { mengharapkan } = memerlukan("chai");

    deskripsikan("Tes Integrasi Oracle", function() {
    it("harus mengambil data Oracle dengan benar", async function() {
    const data = menunggu dibungkusContract.fetchOracleData("ETH");
    mengharapkan(data).to.be.a('angka');
    });
    });

  • Penyebaran:
    Terapkan kontrak Anda ke jaringan langsung setelah pengujian menyeluruh:

    truffle bermigrasi --jaringan mainnet

7. Kesimpulan

Mengintegrasikan RedStone Oracles ke dalam DApp Anda secara signifikan meningkatkan kemampuannya untuk berinteraksi dengan data real-time secara efisien dan aman. Dengan mengikuti panduan langkah demi langkah ini, pengembang dapat memastikan integrasi yang kuat, memanfaatkan solusi oracle berbasis blockchain canggih dari RedStone untuk memulai aplikasi terdesentralisasi.

$ETH