Mulai pengembangan frontend dapp Anda dengan create-eth-app
Sebelumnya, kita membahas tentang gambaran besar Solidity dan telah menyebutkan create-eth-app. Sekarang Anda akan melihat cara menggunakannya, fitur apa saja yang terintegrasi di dalamnya, dan ide tambahan untuk memperluas penggunaanya. Dimulai oleh Paul Razvan Berg, pendiri Sablier, aplikasi ini akan memulai pengembangan frontend Anda dan memiliki beberapa integrasi opsional yang dapat dipilih.
Instalasi
Instalasi membutuhkan versi Yarn 0.25 atau yang lebih tinggi (npm install yarn --global
). Ini hanya tinggal dijalankan:
yarn create eth-app my-eth-appcd my-eth-appyarn react-app:start
Ini menggunakan create-react-app yang di bawah hood. Untuk melihat aplikasi Anda, buka http://localhost:3000/
. Bila sudah siap untuk digunakan ke produksi, buat paket yang diperkecil dengan yarn build. Salah cara mudah untuk menghostingnya adalah dengan menggunakan Netlify. You can create a GitHub repo, add it to Netlify, setup the build command and you are finished! Aplikasi Anda akan di-host dan dapat digunakan oleh semua orang. Dan semua ini tidak berbayar.
Fitur
React dan create-react-app
Pertama-tama, inti aplikasinya: React dan semua fitur tambahannya dilengkapi dengan create-react-app. Hanya menggunakan ini adalah opsi yang sangat baik jika Anda tidak ingin mengintegrasikan Ethereum. React sendiri membuat penyusunan UI interaktif menjadi sangat mudah. Ini mungkin tidak seramah Vue bagi pemula, tapi masih yang paling sering digunakan, memiliki lebih banyak fitur, dan yang paling penting ribuan pustaka tambahan yang dapat dipilih. create-react-app membuat sangat mudah untuk memulai dan mencakup:
- Dukungan sintaksis React, JSX, ES6, TypeScript, Flow.
- Tambahan bahasa di luar ES6 seperti operator penyebaran objek.
- CSS dengan prefiks otomatis, sehingga Anda tidak memerlukan -webkit- atau prefiks lainnya.
- Pengeksekusi tes unit interaktif cepat dengan dukungan bawaan untuk pelaporan cakupan.
- Server pengembangan langsung yang memperingatkan tentang kesalahan-kesalahan umum.
- Sebuah skrip build untuk membuat bundle JS, CSS, dan gambar untuk produksi, dengan hash dan peta sumber.
create-eth-app secara khusus memanfaatkan efek kaitan yang baru. Sebuah metode untuk menulis apa yang dinamakan komponen fungsional yang efektif, tapi berukuran kecil. Lihat bagian tentang Apollo di bawah untuk mengetahui cara pemakaiannya di create-eth-app.
Ruang Kerja Yarn
Ruang Kerja Yarn memungkinkan Anda memiliki beberapa paket, tetapi mampu mengelola semuanya dari folder akar dan menginstal dependensinya sekaligus dengan menggunakan yarn install
. Ini masuk akal terutama untuk paket tambahan yang lebih kecil seperti alamat kontrak pintar/manajemen ABI (informasi tentang di mana Anda menggunakan kontrak pintar tertentu dan bagaimanan cara berkomunikasi dengannya) atau integrasi grafik, keduanya merupakan bagian dari create-eth-app
.
ethers.js
Meskipun Web3 masih menjadi yang paling sering digunakan, ether.js telah mendapatkan lebih banyak daya tarik sebagai alternatif pada tahun lalu dan merupakan salah satu yang diintegrasikan ke dalam create-eth-app. Anda dapat bekerja dengan ini, mengubahnya ke Web3, atau mempertimbangkan untuk meningkatkannya ke ether.js v5 yang hampir keluar dari versi beta.
The Graph
GraphQL adalah sebuah cara alternatif untuk menangani data yang dibandingkan dengan sebuah API Restful. The Graph memiliki beberapa keunggulan dibandingkan Api Restful, khususnya untuk data blockchain terdesentralisasi. Jika Anda tertarik dengan pemikiran di balik ini, silakan lihat GraphQL Akan Mendukung Web Terdesentralisasi.
Biasanya Anda akan mengambil data dari kontrak pintar Anda secara langsung. Ingin membaca waktu perdagangan terbaru? Cukup panggil MyContract.methods.latestTradeTime().call()
yang mengambilkan data dari node Ethereum seperti Infura ke dalam Dapp Anda. Tetapi bagaimana jika Anda membutuhkan ratusan titik data yang berbeda? Itu akan menghasilkan ratusan pengambilan data ke node, yang setiap kali pengambilan memerlukan RTT yang membuat Dapp Anda menjadi lambat dan tidak efisien. Satu solusi untuk ini mungkin adalah dengan menggunakan fungsi pemanggilan pengambil di dalam kontrak Anda yang mengembalikan beberapa data sekaligus. Namun, ini tidak selalu merupakan cara yang ideal.
Lalu, Anda juga mungkin tertarik dengan data riwayat. Anda ingin mengetahui tidak hanya waktu perdagangan terakhir, tapi juga waktu dari semua perdagangan yang pernah Anda lakukan sendiri. Gunakan paket subgraph create-eth-app, baca dokumentasi dan sesuaikan dengan kontrak Anda. Jika Anda berencana menggunakan kontrak pintar populer, mungkin telah ada subgraph di dalamnya. Lihat penjelajah subgraph.
Setelah memiliki subgraph, ini memungkinkan Anda menulis kueri sederhana di Dapp Anda yang mengambil semua data blockchain penting termasuk data riwayat yang Anda perlukan, cukup dengan satu kali pengambilan.
Apollo
Berkat integrasi Apollo Boost, Anda dapat dengan mudah mengintegrasikan graph ke dalam Dapp React Anda. Khususnya ketika menggunakan kaitan React dan Apollo, mengambil data menjadi semudah menulis sebuah kueri GraphQl dalam kompenen Anda:
1const { loading, error, data } = useQuery(myGraphQlQuery)23React.useEffect(() => {4 if (!loading && !error && data) {5 console.log({ data })6 }7}, [loading, error, data])Salin
Templat
Di atas, Anda dapat memilih dari beberapa templat beragam. Sejauh ini, Anda dapat menggunakan integrasi Aave, Compound, UniSwap, atau sablier. Mereka semua menambahkan layanan penting: alamat kontrak pintar beserta integrasi subgraph yang dibuat sebelumnya. Cukup tambahkan templat ke dalam perintah pembuatan seperti yarn create eth-app my-eth-app --with-template aave
.
Aave
Aave adalah sebuah pasar pemberian pinjaman uang terdesentralisasi. Deposan memberikan likuidasi ke pasar untuk menghasilkan pendapatan pasif, sedangkan para peminjam dapat meminjam dengan menyediakan jaminan. Salah satu fitur unik dari Aave adalah pinjaman cepat yang memungkinkan Anda meminjam uang tanpa jaminan apa pun, selama Anda mengembalikan pinjaman dalam satu transaksi. Ini dapat berguna, misalnya, untuk memberikan Anda uang tambahan pada perdagangan arbitrase.
Token yang diperdagangkan yang menghasilkan bunga disebut aTokens.
Ketika Anda memilih untuk mengintegrasikan Aave dengan create-eth-app, Anda akan mendapatkan integrasi subgraph. Aave uses The Graph and already provides you with several ready-to-use subgraphs on Ropsten and Mainnet in raw or formatted form.
Compound
Compound mirip dengan Aave. Integrasinya telah mencakup Compound v2 Subgraph baru. Token penghasil bunga di sini secara mengejutkan disebut cTokens.
Uniswap
Uniswap adalah decentralized exchange (DEX). Penyedia likuiditas bisa memperoleh bayaran dengan menyediakan token atau ether yang dibutuhkan bagi kedua pihak dalam sebuah perdagangan. Uniswap dipakai secara luas dan oleh karena itu memiliki salah satu dari likuiditas tertinggi untuk kisaran token yang sangat luas. Anda dapat dengan mudah mengintegrasikannya ke dalam Dapp Anda untuk, misalnya, memungkinkan para pengguna menukar ETH mereka dengan DAI.
Sayangnya, pada saat penulisan ini, integrasi hanya dapat dilakukan untuk Uniswap v1 dan bukan v2 yang baru saja dirilis.
Sablier
Sablier memungkinkan para pengguna menyiarkan pembayaran uang. Alih alih sekali pembayaran, Anda mendapatkan uang secara konstan tanpa administrasi tambahan setelah pengaturan awalnya selesai. Integrasinya mencakup subgraphnya sendiri.
Selajutnya?
Jika Anda memiliki pertanyaan tentang create-eth-app, kunjungi server komunitas Sablier, di mana Anda dapat berinteraksi dengan para penulis create-eth-app. Sebagai beberapa langkah pertama berikutnya, Anda mungkin ingin mengintegrasikan kerangka kerja UI seperti Material UI, menulis kueri GraphQL untuk data yang benar-benar Anda perlukan dan menyiapkan penggunaannya.
Terakhir diedit: @pettinarip, 4 Desember 2023