Apa Itu Ethers.js? Penjelajahan Mendalam ke Perpustakaan JavaScript Ethereum

Pemula3/18/2024, 8:47:39 AM
Ethereum adalah protokol blockchain yang dikenal karena toolkit, kontrak pintar, dan ekosistem yang sejajar dengan kode, sangat mengandalkan ethers.js (perpustakaan Javascript) untuk menyediakan kekuatan yang diperlukan untuk pendekatan pengembangnya.

Jika Anda tertarik pada Ether (ETH) daripada pemain kripto lainnya, Anda harus meluangkan waktu sejenak untuk memahami Ethereum dari perspektif teknis yang lebih mendalam. Sebagai protokol blockchain yang dikenal karena toolkit, kontrak pintar, dan ekosistem yang selaras dengan kode, Ethereum sangat bergantung pada ethers.js — sebuah perpustakaan Javascript — untuk memberikan pendekatan yang berorientasi pada pengembang dengan kekuatan yang diperlukan.

Meskipun ethers.js bukan satu-satunya perpustakaan JavaScript asli Ethereum, itu adalah pilihan yang lebih baik untuk DApps yang lebih kecil. Dalam panduan ini, kami lebih mendalami aspek-aspek ethers.js, membantu Anda memahami konsep teknis ini.

Dalam Panduan Ini:

  1. Membongkar ethers.js
  2. Mengapa ethers.js penting?
  3. Semua versi Ethers.js dijelaskan
  4. Memulai dengan ethers.js
  5. Fitur inti
  6. Bagaimana publikasi kripto dapat memanfaatkan Ethers.js
  7. Aplikasi dunia nyata dari Ethers.js
  8. Pertimbangan Keamanan
  9. Ethers.js: alat yang serbaguna
  10. Pertanyaan yang Sering Diajukan

Membongkar ethers.js

ethers.js adalah perpustakaan JavaScript — kumpulan kode yang sudah ditulis sebelumnya yang mengotomatisasi beberapa fungsi. Menggunakan perpustakaan JavaScript untuk pengembangan dapat meminimalkan upaya penulisan kode. Prosesnya menjadi lebih ramah pengguna, dan bagi pengembang DApp, perpustakaan ini membantu menawarkan fungsionalitas spesifik blockchain dasar sebagai bundel.

Ethers.js dan siklus pengembangan: BeInCrypto

Ini adalah GitHubrepositoriuntuk perpustakaan.

Apa itu perpustakaan JavaScript?

Sebelum kita menyelami lebih dalam ethers.js, mari kita perhatikan lebih dekat pustaka JavaScript. Pustaka-pustaka ini adalah kumpulan kode JavaScript yang sudah ditulis sebelumnya yang dapat mengotomatisasi tugas-tugas umum tertentu. Menggunakan pustaka seperti ethers.js dapat mempercepat proses penciptaan DApp dan bahkan mempercepat interaksi blockchain lainnya yang spesifik.

Mengapa kita memerlukan perpustakaan JavaScript dalam Ethereum?

Ethereum telah berkembang menjadi platform pengembangan perangkat lunak terdesentralisasi. Dari kontrak pintarkeDeDari aplikasi ke DApps, pengkodean adalah bagian penting dari ekosistem Ethereum. Itulah mengapa perpustakaan JavaScript yang disesuaikan dengan Ethereum seperti ethers.js ada. Dengan menggunakan perpustakaan-perpustakaan ini, pengembang dapat terhubung ke jaringan, mendeploy dan berinteraksi dengan kontrak pintar, dan dengan mudah mengelola blockchaindata.

Tahukah Anda? Ethers.js bukan satu-satunya perpustakaan JavaScript Ethereum yang terkenal. Salah satu yang prominent lainnya adalah Web3.js, yang didirikan oleh Ethereum Foundation. Web3.js dikenal karena koleksi dokumentasinya yang komprehensif dan ditujukan untuk DApps yang lebih kompleks.

Mengapa ethers.js penting?

Seperti yang disebutkan sebelumnya, ethers.js ditujukan untuk pengembang yang berinteraksi dengan blockchain Ethereum. Mengenai pentingnya, pustaka yang dikembangkan oleh Richard Moore ini, dipasarkan dengan nama "Ethers," berguna untuk pekerjaan-pekerjaan berikut:

  1. Meringankan beberapa transaksi Ethereum
  2. Menyediakan akses ke dokumentasi dan sumber daya komprehensif
  3. Membantu pengembangan DApp


Ekosistem Ethers.js dan peran yang dapat diemban: BeInCrypto

Berikut ini adalah contoh singkat potongan kode yang digunakan untuk mengambil saldo saat ini dari akun Ethereum. Mari kita baca kode tersebut terlebih dahulu dan memahami bagaimana ethers.js membuat hidup lebih mudah:

const { ethers } = membutuhkan('ethers');

// Terhubung ke jaringan Ethereum

const provider = new ethers.providers.JsonRpcProvider(‘https://mainnet.infura.io/v3/YOUR_INFURA_API_KEY’);

// Tentukan alamat akun

const accountAddress = ‘0xABC123…’;

// Mengambil dan menampilkan saldo

provider.getBalance(accountAddress).then((balance) => {

// Ubah saldo dari Wei ke Etherconst balanceInEther = ethers.utils.formatEther(balance);console.log(`Saldo: ${balanceInEther} ETH`);

});

Dalam contoh ini, Anda dapat dengan jelas melihat bagaimana perintah — ethers.providers.JsonRpcProvider — memanggil titik akhir Infura, dan getBalance mengambil saldo. Anda tidak perlu berurusan langsung dengan JSON RPC Ethereum atau Remote Procedure Call. Dalam hal ini, Anda dapat menganggap ethers.js sebagai penerjemah yang membuat Ethereum lebih mudah dan lebih familiar bagi Anda.

Masih bingung tentang arti ethers.js? Berikut adalah sebuah analogi singkat.

Pikirkan ethers.js sebagai kartu perpustakaan lama. Ingatlah bahwa kartu-kartu itu memiliki katalog, memungkinkan Anda menemukan buku yang tepat dengan mencari lorong dan kemudian nomor rak? Itulah yang ingin dicapai ethers.js. Ia menyederhanakan dan mengatur kemampuan besar Ethereum, memungkinkan pengembang menemukan persis apa yang mereka butuhkan.

https://twitter.com/wondernw/status/1764751034096800009?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1764751034096800009%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Semua versi Ethers.js dijelaskan

Selama bertahun-tahun, beberapa versi Ethers.js muncul, masing-masing memperkenalkan fitur baru atau perbaikan bug. Selain itu, penomoran versi mengikuti semantik standar, seperti v1.2.3, di mana angka pertama menandakan versi utama dan angka kedua dan ketiga menunjukkan versi minor dan patch. Kami hanya akan mempertimbangkan peningkatan versi utama untuk saat ini — perubahan yang mungkin tidak kompatibel ke belakang.

  1. Versi 1.x (Legacy): Ini adalah rilis awal, diikuti dengan fitur-fitur terkait penandatanganan transaksi, pengelolaan dompet, dan lainnya.
  2. Versi 2.x (Dompet Ethers): Berfokus pada utilitas dan fitur dompet, termasuk penyimpanan yang aman dari kunci pribadi.
  3. Versi 3.x (penyedia Ether): Memperkenalkan abstraksi untuk menghubungkan ke node Ethereum. Berbagai jenis pemain disesuaikan, termasuk Infura, WebSockets, dan lainnya.
  4. Versi 4.x (kontrak Ethers): Properti yang dipimpin kontrak pintar diperluas, dengan lebih banyak utilitas untuk pengkodean dan dekode data, filter acara, dan lainnya.
  5. Versi 5.x: Menawarkan arsitektur modular, dukungan yang ditingkatkan untuk ENS, penanganan kesalahan yang komprehensif, dan lainnya.
  6. Versi 6.x: Penambahan fitur ES6, pengenalan BigInt, aksesibilitas overloading, dan lainnya.


Arsitektur dan komponen Ethers.js: BeInCrypto

https://harambetoken.ai/?domain=beincrypto&banner=header-banner-3&cpid=1ce31526-203f-4d6a-bf00-af77d6cf6edd

Anda dapat menemukan lebih banyak detail tentang setiap versi dengan melihat Ethers.js'dokumentasi asli.

“Ethers.js bersinar dengan interoperabilitas blockchain yang superior, dukungan TypeScript asli, dan alat debugging canggih. Ini adalah perpustakaan yang ringkas dan efisien yang terintegrasi dengan lancar ke dalam kerangka kerja populer seperti React, Vue, Angular, dll.”

Redbelly Intern, Builder: X

Memulai dengan ethers.js

Sebelum Anda berencana untuk memanfaatkan potensi ethers.js, penting untuk mengetahui pada tahap pengembangan DApp atau kontrak pintar mana itu dipanggil. Berikut adalah pembagian cepat bagi mereka yang perlu tahu dan memahami elemen-elemen ini dari awal.

"Web3.js lebih ramah pemula dan lebih ringkas dibandingkan dengan ethers.js."

Ethers.js, di sisi lain, memberikan lebih banyak pilihan dan baru; itu sedikit lebih kompleks daripada Web3.js.”

degenBRo, pengembang blockchain dan Pendiri Solidity Finance: Seperti yang dikatakan kepada BeInCrypto

Untuk memulai, Anda pertama kali perlu membuka komputer dan menyiapkan lingkungan pengembangan. Ini termasuk Node.js dan Lingkungan Pengembangan Terintegrasi. Perlu diingat bahwa JavaScript biasanya berjalan di browser, tetapi dengan Node.js, hal yang sama dapat berjalan di komputer. Ini adalah lingkungan runtime Node.js yang menginstal pustaka JavaScript seperti ethers.js.

Untuk IDE, yang diperlukan oleh pengembang perangkat lunak untuk pengujian, Anda dapat mempertimbangkan VS Code, Sublime Text, atau yang lainnya.

https://twitter.com/juniorrbn_dev/status/1765370597066862749?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1765370597066862749%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Menginstal dukungan ethers.js

Langkah selanjutnya adalah menginstal Ethers, perpustakaan yang menyimpan ethers.js.

npm install ethers

Kemudian, Anda perlu menggunakan Ether untuk terhubung ke dompet Ethereum, karena interaksi dengan blockchain akan memerlukan langkah ini untuk validasi kredensial. Anda dapat menggunakan perpustakaan Ethers yang terpasang untuk ini. Berikut adalah contoh perintah:

/Related

ARTIKEL LEBIH BANYAK

Ethereum ETF Dijelaskan: Apa Itu dan Bagaimana Cara Kerjanya

14 menit 15 Mar 2024 3 hari yang lalu

Bagaimana Cara Mendapatkan Pembayaran dalam Bitcoin (BTC): Semua yang Perlu Anda Ketahui

25 menit 15 Mar 2024 2 hari yang lalu

const { ethers } = memerlukan('ethers');

// Terhubung ke MetaMaskdompet

const provider = new ethers.providers.Web3Provider(window.ethereum);

Setelah selesai, Anda dapat menggunakan IDE untuk menuliskan kode kekekalan dan membuat kontrak pintar untuk DApps. Ethers.js akan digunakan untuk mendeploy yang sama. Anda bahkan dapat menguji DApp atau kontrak secara lokal, menggunakan lingkungan seperti Truffledan Hardhat. Kemudian, Anda mendeploy kontrak ke jaringan Ethereum, yang memerlukan ethers.js.

const kontrak = pabrikKontrak baru(abi, bytecode, signer);

const deployedContract = await contract.deploy();

Bagi yang tidak akrab, Abi, Bytecode, Signer adalah istilah yang diperlukan untuk pengembangan kontrak cerdas yang lancar. Abi atau antarmuka biner aplikasi lebih seperti label yang membantu jaringan mengenali kontrak cerdas Anda. Bytecode adalah versi yang dikompilasi atau lebih tepatnya siap jaringan dari kontrak cerdas dan signer adalah entitas penghasil tanda tangan.

Ethers.js untuk front-end

Setelah kontrak pintar diterapkan, Anda perlu membangun ujung depan atau antarmuka pengguna dari DApp. Untuk ini, Anda dapat menggunakan Angular atau React. Anda bahkan dapat mengintegrasikan Ethers.js dalam ujung depan untuk memastikan bahwa itu dapat berinteraksi dengan kontrak pintar Ethereum. Berikut adalah contoh kode untuk hal yang sama:

const provider = new ethers.providers.Web3Provider(window.ethereum);

const kontrak = new ethers.Contract(contractAddress, contractABI, provider.getSigner());

Setelah ini, Anda perlu menguji DApp di testnet, misalnya Rinkeby atau Ropsten. Setelah Anda puas, Anda dapat meluncurkan DApp di mainnet. Perhatikan berapa kali sepanjang proses Anda perlu berinteraksi dengan Ether atau ethers.js.

Fitur inti

Ethers.js terlihat sebagai perpustakaan Ethereum yang komprehensif. Berikut beberapa penawaran eksklusif yang dapat memudahkan kehidupan para pengembang:

Penyedia

Penyedia Ethers.js bertindak sebagai jembatan antara jaringan Ethereum dan DApp yang sedang Anda kerjakan. Hal ini melibatkan penyederhanaan pengambilan data blockchain dan juga membantu penyebaran transaksi. Infura adalah salah satu penyedia yang digunakan Ethers.js.

Berikut ini adalah contoh kode untuk hal yang sama:

const { ethers } = membutuhkan('ethers');

// Terhubung menggunakan Infura

const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’);

// Periksa nomor blok saat ini

provider.getBlockNumber().then((blockNumber) => {

console.log("Nomor blok saat ini:", blockNumber);

});

Dompet

Ethers.js memungkinkan Anda mengelola dompet, memungkinkan Anda membuat akun baru, mengimpor akun yang sudah ada, mengelola kunci pribadi dengan aman untuk menandatangani transaksi, dan melakukan lebih banyak lagi.

Kontrak

https://harambetoken.ai/?domain=beincrypto&banner=header-banner-3&cpid=1ce31526-203f-4d6a-bf00-af77d6cf6edd

Komponen dari keberadaan Ethers.js ini mendukung instansiasi objek. Hal ini memudahkan untuk memanggil fungsi kontrak tertentu, lebih seperti metode Javascript asli.


Ethers.js dan interaksi kontrak pintar: BeInCrypto

Integrasi ENS

Ethers.js dapat menyelesaikan nama ENS ke alamat Ethereum mereka dan sebaliknya. Fitur ini mengurangi risiko kesalahan.

Berikut ini adalah potongan kode contoh untuk ini:

const { ethers } = membutuhkan('ethers');

const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’error: empty source text

const ensName = ‘alice.eth’;

provider.resolveName(ensName).then((address) => {

console.log(`${ensName} dipecahkan menjadi ${address}`);

});

Selain fitur yang disebutkan, Ethers.js juga memiliki aspek atau fitur berikut, membantu pengembang dengan akses langsung khusus Ethereum:

  1. Penandatangan
  2. Utilitas
  3. Pendengar acara dan filter (dimaksudkan untuk mengaktifkan tanggapan waktu nyata terhadap tindakan blockchain)
  4. Transaksi
  5. Dukungan Multicall
  6. Dukungan TypeScript (dimaksudkan untuk meningkatkan keandalan kode dan pengalaman pengembang secara keseluruhan)

Beberapa keuntungan menggunakan Ethers.js:

https://twitter.com/juniorrbn_dev/status/1765370617937736000?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1765370617937736000%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Bagaimana publikasi kripto dapat memanfaatkan Ethers.js

Publikasi media seperti BeInCrypto dapat memanfaatkan Ethers.js untuk membuat alat web3 canggih dan berdaya guna dari awal. Dengan cara ini, menjadi memungkinkan untuk menggunakan fitur berbasis blockchain atau, lebih tepatnya, Ethereum untuk meningkatkan kegunaan. Berikut adalah opsi yang dapat dipertimbangkan.

Makanan data

Fitur-fitur Ethers.js dapat digunakan untuk mengintegrasikan umpan data kripto real-time aktual, seperti statistik jaringan,biaya gas, dan lain-lain, untuk menjaga artikel dan sumber daya tetap mutakhir. Berikut adalah contoh kode untuk mengambil nomor blok terbaru, misalnya untuk Bitcoin, untuk melacak halving secara real time.

const { ethers } = require('ethers');

const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/ID_PROYEK_INFURA_ANDA);

provider.getBlockNumber().then((blockNumber) => {

console.log(“Nomor blok saat ini:”, blockNumber);//Integrasikan data ini ke platform publikasi Anda untuk umpan data real-time

});

Konten interaktif

Publikasi dapat membuat bagian konten interaktif, memungkinkan pengguna untuk berinteraksi langsung dengan kontrak pintar, berpartisipasi dalam jajak pendapat, atau bahkan bermain game kecil jika diperlukan.

Berikut ini adalah potongan kode contoh untuk mengambil salam milestone tertentu dari kontrak pintar:

const { ethers } = require('ethers');

const provider = new ethers.providers.Web3Provider(window.ethereum);

const contractAddress = ‘0x…’;

const contractABI = [

"fungsi getGreeting() tampilan mengembalikan (string)"

;

const kontrak = new ethers.Contract(contractAddress, contractABI, provider);

fungsi async tampilkanSalam() {

const salam = await kontrak.getGreeting();document.getElementById(‘greeting’).innerText = salam;

}

Buka akun di KuCoin & dapatkan bonus terjamin hingga 700 USDT.

  1. Mulailah perjalanan perdagangan kripto Anda dengan KuCoin dan dapatkan keuntungan head start!
  2. Bertransaksilah dengan percaya diri di KuCoin! Platform kami memprioritaskan keamanan Anda, menawarkan perlindungan tingkat atas untuk aset digital Anda.
  3. Jelajahi dunia luas kriptokurensi dengan KuCoin!

Daftar sekarang!

Sebuah contoh dunia nyata tentang bagaimana Ethers.js diimplementasikan:

https://twitter.com/ronakpal1/status/1767071343345095092?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1767071343345095092%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Penerbitan terdesentralisasi

Publikasi media juga dapat mempertimbangkan penerbitan terdesentralisasi, di mana sisa artikel dipublikasikan di jaringan blockchain. Ini dapat membantu dalam ketahanan sensor dan bahkan integritas konten.

Berikut adalah contoh kode di mana hash artikel disimpan secara online sebagai bukti publikasi:

const { ethers } = require('ethers');

const dompet = baru ethers.Wallet('YOUR_PRIVATE_KEY', penyedia);

const contentHash = ethers.utils.id("Konten artikel di sini");

const tx = await wallet.sendTransaction({

ke: '0xSomeStorageContractAddress', data: contentHash // Mengasumsikan kontrak menerima dan menyimpan data ini

});

console.log(“Hash transaksi (bukti penerbitan):”, tx.hash);

Ini hanya sebagian kecil dari kasus penggunaan untuk publikasi media. Tetapi ada sektor lain yang dapat memanfaatkan kekuatan ethers.js. Termasuk:

  1. Pengembang blockchain (diharapkan)
  2. Analisis keuangan yang bekerja dengan DeFi Metrik
  3. Pengembang game
  4. Pembuat konten
  5. Manajer rantai pasokan

Dan lain-lain.

Aplikasi dunia nyata dari Ethers.js

Selain berguna dalam DeFi, proyek NFT, dan gaming, ada beberapa DApps yang sudah ada yang mendukung penggunaan Ethers.js. Ini termasuk yang berikut:

  1. Uniswap: Ether.js berinteraksi dengan kontrak pintar bawaan Uniswap untuk mengeksekusi perdagangan, menambah likuiditas, dan bahkan mengambil statistik kolam. Dalam hal ini, pengembang DApp berencana untuk membangun alat yang berinteraksi dengan Uniswap, seperti bot perdagangan, alat manajemen portofolio, dan lainnya.
  2. Aave: Pengembang DApp dan pihak lain yang tertarik dapat memanfaatkan fungsionalitas Ether.js untuk berinteraksi dengan kontrak pintar khusus Aave. Dengan cara ini, mereka dapat mempersiapkan antarmuka depan untuk meminjam aset, mendepositokan agunan, dan melakukan lebih banyak hal.

Membantah beberapa mitos Ether.js:

https://twitter.com/imashuttoshh/status/1765558806291894739?refsrc=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1765558806291894739%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Pertimbangan Keamanan

Menggunakan Ethers.js dilengkapi dengan serangkaian yang cukup luas dari keamananpertimbangan. Berikut adalah beberapa hal yang harus diikuti:

  1. Disarankan untuk tidak memasukkan kunci privat secara kaku di dalam kode sumber aplikasi Anda.
  2. Setiap interaksi kontrak pintar harus didahului oleh pengujian dan pemeriksaan ekstensif terhadap kontrak tersebut.
  3. Saat berinteraksi dengan kontrak pintar, gunakan pola-pola aman seperti "panggil" untuk tugas-tugas hanya baca.
  4. Untuk mengoptimalkan penggunaan ethers.js, Anda mungkin mempertimbangkan untuk melakukan batching permintaan. Di sinilah Anda dapat melakukan batching, misalnya, permintaan hanya baca untuk meminimalkan jumlah panggilan jaringan. Tidak perlu dikatakan bahwa teknik optimisasi ini dapat membuat aplikasi menjadi sangat scalable dan efisien biaya.

Berikut adalah contoh bagaimana itu bekerja:

// Pseudocode untuk menggabungkan panggilan kontrak dengan Ethers.js (contoh konseptual)

const kontrak = new ethers.Contract(alamat, abi, penyedia);

const [nilai1, nilai2, nilai3] = await Promise.all([

contract.viewFunction1(),contract.viewFunction2(),contract.viewFunction3()

];

Ethers.js: alat yang serbaguna

Disponsori

https://harambetoken.ai/?domain=beincrypto&banner=header-banner-3&cpid=1ce31526-203f-4d6a-bf00-af77d6cf6edd

Seperti yang ditunjukkan dalam panduan ini, Ethers.js adalah alat yang serbaguna. Meskipun kami telah melihat dengan cepat kemampuannya, cara terbaik untuk benar-benar memahami Ethers.js adalah dengan menyelami lebih dalam ke dunia kontrak pintar, JavaScript, IDE, DApps, dan lainnya. Selain itu, bergabung dengan komunitas Ethereum dan Ethers juga bisa sangat berguna.

Pertanyaan yang Sering Diajukan

Bagaimana pengembang dapat menggunakan acara Ethers.js?

Apa saja utilitas kunci yang ditawarkan oleh Ethers.js?

Apa hubungan antara Ethers.js dan Web3.js?

Disclaimer:

  1. Artikel ini diambil dari [ beincrypto], Semua hak cipta milik penulis asli [Ananda Banerjee]. Jika ada keberatan terkait pencetakan ulang ini, silakan hubungi Gate Belajartim, dan mereka akan menanganinya dengan segera.
  2. Penafian Tanggung Jawab: Pandangan dan opini yang terdapat dalam artikel ini semata-mata merupakan milik penulis dan tidak merupakan nasihat investasi apa pun.
  3. Terjemahan artikel ke dalam bahasa lain dilakukan oleh tim Gate Learn. Kecuali disebutkan, menyalin, mendistribusikan, atau menjiplak artikel yang diterjemahkan dilarang.

Apa Itu Ethers.js? Penjelajahan Mendalam ke Perpustakaan JavaScript Ethereum

Pemula3/18/2024, 8:47:39 AM
Ethereum adalah protokol blockchain yang dikenal karena toolkit, kontrak pintar, dan ekosistem yang sejajar dengan kode, sangat mengandalkan ethers.js (perpustakaan Javascript) untuk menyediakan kekuatan yang diperlukan untuk pendekatan pengembangnya.

Jika Anda tertarik pada Ether (ETH) daripada pemain kripto lainnya, Anda harus meluangkan waktu sejenak untuk memahami Ethereum dari perspektif teknis yang lebih mendalam. Sebagai protokol blockchain yang dikenal karena toolkit, kontrak pintar, dan ekosistem yang selaras dengan kode, Ethereum sangat bergantung pada ethers.js — sebuah perpustakaan Javascript — untuk memberikan pendekatan yang berorientasi pada pengembang dengan kekuatan yang diperlukan.

Meskipun ethers.js bukan satu-satunya perpustakaan JavaScript asli Ethereum, itu adalah pilihan yang lebih baik untuk DApps yang lebih kecil. Dalam panduan ini, kami lebih mendalami aspek-aspek ethers.js, membantu Anda memahami konsep teknis ini.

Dalam Panduan Ini:

  1. Membongkar ethers.js
  2. Mengapa ethers.js penting?
  3. Semua versi Ethers.js dijelaskan
  4. Memulai dengan ethers.js
  5. Fitur inti
  6. Bagaimana publikasi kripto dapat memanfaatkan Ethers.js
  7. Aplikasi dunia nyata dari Ethers.js
  8. Pertimbangan Keamanan
  9. Ethers.js: alat yang serbaguna
  10. Pertanyaan yang Sering Diajukan

Membongkar ethers.js

ethers.js adalah perpustakaan JavaScript — kumpulan kode yang sudah ditulis sebelumnya yang mengotomatisasi beberapa fungsi. Menggunakan perpustakaan JavaScript untuk pengembangan dapat meminimalkan upaya penulisan kode. Prosesnya menjadi lebih ramah pengguna, dan bagi pengembang DApp, perpustakaan ini membantu menawarkan fungsionalitas spesifik blockchain dasar sebagai bundel.

Ethers.js dan siklus pengembangan: BeInCrypto

Ini adalah GitHubrepositoriuntuk perpustakaan.

Apa itu perpustakaan JavaScript?

Sebelum kita menyelami lebih dalam ethers.js, mari kita perhatikan lebih dekat pustaka JavaScript. Pustaka-pustaka ini adalah kumpulan kode JavaScript yang sudah ditulis sebelumnya yang dapat mengotomatisasi tugas-tugas umum tertentu. Menggunakan pustaka seperti ethers.js dapat mempercepat proses penciptaan DApp dan bahkan mempercepat interaksi blockchain lainnya yang spesifik.

Mengapa kita memerlukan perpustakaan JavaScript dalam Ethereum?

Ethereum telah berkembang menjadi platform pengembangan perangkat lunak terdesentralisasi. Dari kontrak pintarkeDeDari aplikasi ke DApps, pengkodean adalah bagian penting dari ekosistem Ethereum. Itulah mengapa perpustakaan JavaScript yang disesuaikan dengan Ethereum seperti ethers.js ada. Dengan menggunakan perpustakaan-perpustakaan ini, pengembang dapat terhubung ke jaringan, mendeploy dan berinteraksi dengan kontrak pintar, dan dengan mudah mengelola blockchaindata.

Tahukah Anda? Ethers.js bukan satu-satunya perpustakaan JavaScript Ethereum yang terkenal. Salah satu yang prominent lainnya adalah Web3.js, yang didirikan oleh Ethereum Foundation. Web3.js dikenal karena koleksi dokumentasinya yang komprehensif dan ditujukan untuk DApps yang lebih kompleks.

Mengapa ethers.js penting?

Seperti yang disebutkan sebelumnya, ethers.js ditujukan untuk pengembang yang berinteraksi dengan blockchain Ethereum. Mengenai pentingnya, pustaka yang dikembangkan oleh Richard Moore ini, dipasarkan dengan nama "Ethers," berguna untuk pekerjaan-pekerjaan berikut:

  1. Meringankan beberapa transaksi Ethereum
  2. Menyediakan akses ke dokumentasi dan sumber daya komprehensif
  3. Membantu pengembangan DApp


Ekosistem Ethers.js dan peran yang dapat diemban: BeInCrypto

Berikut ini adalah contoh singkat potongan kode yang digunakan untuk mengambil saldo saat ini dari akun Ethereum. Mari kita baca kode tersebut terlebih dahulu dan memahami bagaimana ethers.js membuat hidup lebih mudah:

const { ethers } = membutuhkan('ethers');

// Terhubung ke jaringan Ethereum

const provider = new ethers.providers.JsonRpcProvider(‘https://mainnet.infura.io/v3/YOUR_INFURA_API_KEY’);

// Tentukan alamat akun

const accountAddress = ‘0xABC123…’;

// Mengambil dan menampilkan saldo

provider.getBalance(accountAddress).then((balance) => {

// Ubah saldo dari Wei ke Etherconst balanceInEther = ethers.utils.formatEther(balance);console.log(`Saldo: ${balanceInEther} ETH`);

});

Dalam contoh ini, Anda dapat dengan jelas melihat bagaimana perintah — ethers.providers.JsonRpcProvider — memanggil titik akhir Infura, dan getBalance mengambil saldo. Anda tidak perlu berurusan langsung dengan JSON RPC Ethereum atau Remote Procedure Call. Dalam hal ini, Anda dapat menganggap ethers.js sebagai penerjemah yang membuat Ethereum lebih mudah dan lebih familiar bagi Anda.

Masih bingung tentang arti ethers.js? Berikut adalah sebuah analogi singkat.

Pikirkan ethers.js sebagai kartu perpustakaan lama. Ingatlah bahwa kartu-kartu itu memiliki katalog, memungkinkan Anda menemukan buku yang tepat dengan mencari lorong dan kemudian nomor rak? Itulah yang ingin dicapai ethers.js. Ia menyederhanakan dan mengatur kemampuan besar Ethereum, memungkinkan pengembang menemukan persis apa yang mereka butuhkan.

https://twitter.com/wondernw/status/1764751034096800009?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1764751034096800009%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Semua versi Ethers.js dijelaskan

Selama bertahun-tahun, beberapa versi Ethers.js muncul, masing-masing memperkenalkan fitur baru atau perbaikan bug. Selain itu, penomoran versi mengikuti semantik standar, seperti v1.2.3, di mana angka pertama menandakan versi utama dan angka kedua dan ketiga menunjukkan versi minor dan patch. Kami hanya akan mempertimbangkan peningkatan versi utama untuk saat ini — perubahan yang mungkin tidak kompatibel ke belakang.

  1. Versi 1.x (Legacy): Ini adalah rilis awal, diikuti dengan fitur-fitur terkait penandatanganan transaksi, pengelolaan dompet, dan lainnya.
  2. Versi 2.x (Dompet Ethers): Berfokus pada utilitas dan fitur dompet, termasuk penyimpanan yang aman dari kunci pribadi.
  3. Versi 3.x (penyedia Ether): Memperkenalkan abstraksi untuk menghubungkan ke node Ethereum. Berbagai jenis pemain disesuaikan, termasuk Infura, WebSockets, dan lainnya.
  4. Versi 4.x (kontrak Ethers): Properti yang dipimpin kontrak pintar diperluas, dengan lebih banyak utilitas untuk pengkodean dan dekode data, filter acara, dan lainnya.
  5. Versi 5.x: Menawarkan arsitektur modular, dukungan yang ditingkatkan untuk ENS, penanganan kesalahan yang komprehensif, dan lainnya.
  6. Versi 6.x: Penambahan fitur ES6, pengenalan BigInt, aksesibilitas overloading, dan lainnya.


Arsitektur dan komponen Ethers.js: BeInCrypto

https://harambetoken.ai/?domain=beincrypto&banner=header-banner-3&cpid=1ce31526-203f-4d6a-bf00-af77d6cf6edd

Anda dapat menemukan lebih banyak detail tentang setiap versi dengan melihat Ethers.js'dokumentasi asli.

“Ethers.js bersinar dengan interoperabilitas blockchain yang superior, dukungan TypeScript asli, dan alat debugging canggih. Ini adalah perpustakaan yang ringkas dan efisien yang terintegrasi dengan lancar ke dalam kerangka kerja populer seperti React, Vue, Angular, dll.”

Redbelly Intern, Builder: X

Memulai dengan ethers.js

Sebelum Anda berencana untuk memanfaatkan potensi ethers.js, penting untuk mengetahui pada tahap pengembangan DApp atau kontrak pintar mana itu dipanggil. Berikut adalah pembagian cepat bagi mereka yang perlu tahu dan memahami elemen-elemen ini dari awal.

"Web3.js lebih ramah pemula dan lebih ringkas dibandingkan dengan ethers.js."

Ethers.js, di sisi lain, memberikan lebih banyak pilihan dan baru; itu sedikit lebih kompleks daripada Web3.js.”

degenBRo, pengembang blockchain dan Pendiri Solidity Finance: Seperti yang dikatakan kepada BeInCrypto

Untuk memulai, Anda pertama kali perlu membuka komputer dan menyiapkan lingkungan pengembangan. Ini termasuk Node.js dan Lingkungan Pengembangan Terintegrasi. Perlu diingat bahwa JavaScript biasanya berjalan di browser, tetapi dengan Node.js, hal yang sama dapat berjalan di komputer. Ini adalah lingkungan runtime Node.js yang menginstal pustaka JavaScript seperti ethers.js.

Untuk IDE, yang diperlukan oleh pengembang perangkat lunak untuk pengujian, Anda dapat mempertimbangkan VS Code, Sublime Text, atau yang lainnya.

https://twitter.com/juniorrbn_dev/status/1765370597066862749?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1765370597066862749%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Menginstal dukungan ethers.js

Langkah selanjutnya adalah menginstal Ethers, perpustakaan yang menyimpan ethers.js.

npm install ethers

Kemudian, Anda perlu menggunakan Ether untuk terhubung ke dompet Ethereum, karena interaksi dengan blockchain akan memerlukan langkah ini untuk validasi kredensial. Anda dapat menggunakan perpustakaan Ethers yang terpasang untuk ini. Berikut adalah contoh perintah:

/Related

ARTIKEL LEBIH BANYAK

Ethereum ETF Dijelaskan: Apa Itu dan Bagaimana Cara Kerjanya

14 menit 15 Mar 2024 3 hari yang lalu

Bagaimana Cara Mendapatkan Pembayaran dalam Bitcoin (BTC): Semua yang Perlu Anda Ketahui

25 menit 15 Mar 2024 2 hari yang lalu

const { ethers } = memerlukan('ethers');

// Terhubung ke MetaMaskdompet

const provider = new ethers.providers.Web3Provider(window.ethereum);

Setelah selesai, Anda dapat menggunakan IDE untuk menuliskan kode kekekalan dan membuat kontrak pintar untuk DApps. Ethers.js akan digunakan untuk mendeploy yang sama. Anda bahkan dapat menguji DApp atau kontrak secara lokal, menggunakan lingkungan seperti Truffledan Hardhat. Kemudian, Anda mendeploy kontrak ke jaringan Ethereum, yang memerlukan ethers.js.

const kontrak = pabrikKontrak baru(abi, bytecode, signer);

const deployedContract = await contract.deploy();

Bagi yang tidak akrab, Abi, Bytecode, Signer adalah istilah yang diperlukan untuk pengembangan kontrak cerdas yang lancar. Abi atau antarmuka biner aplikasi lebih seperti label yang membantu jaringan mengenali kontrak cerdas Anda. Bytecode adalah versi yang dikompilasi atau lebih tepatnya siap jaringan dari kontrak cerdas dan signer adalah entitas penghasil tanda tangan.

Ethers.js untuk front-end

Setelah kontrak pintar diterapkan, Anda perlu membangun ujung depan atau antarmuka pengguna dari DApp. Untuk ini, Anda dapat menggunakan Angular atau React. Anda bahkan dapat mengintegrasikan Ethers.js dalam ujung depan untuk memastikan bahwa itu dapat berinteraksi dengan kontrak pintar Ethereum. Berikut adalah contoh kode untuk hal yang sama:

const provider = new ethers.providers.Web3Provider(window.ethereum);

const kontrak = new ethers.Contract(contractAddress, contractABI, provider.getSigner());

Setelah ini, Anda perlu menguji DApp di testnet, misalnya Rinkeby atau Ropsten. Setelah Anda puas, Anda dapat meluncurkan DApp di mainnet. Perhatikan berapa kali sepanjang proses Anda perlu berinteraksi dengan Ether atau ethers.js.

Fitur inti

Ethers.js terlihat sebagai perpustakaan Ethereum yang komprehensif. Berikut beberapa penawaran eksklusif yang dapat memudahkan kehidupan para pengembang:

Penyedia

Penyedia Ethers.js bertindak sebagai jembatan antara jaringan Ethereum dan DApp yang sedang Anda kerjakan. Hal ini melibatkan penyederhanaan pengambilan data blockchain dan juga membantu penyebaran transaksi. Infura adalah salah satu penyedia yang digunakan Ethers.js.

Berikut ini adalah contoh kode untuk hal yang sama:

const { ethers } = membutuhkan('ethers');

// Terhubung menggunakan Infura

const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’);

// Periksa nomor blok saat ini

provider.getBlockNumber().then((blockNumber) => {

console.log("Nomor blok saat ini:", blockNumber);

});

Dompet

Ethers.js memungkinkan Anda mengelola dompet, memungkinkan Anda membuat akun baru, mengimpor akun yang sudah ada, mengelola kunci pribadi dengan aman untuk menandatangani transaksi, dan melakukan lebih banyak lagi.

Kontrak

https://harambetoken.ai/?domain=beincrypto&banner=header-banner-3&cpid=1ce31526-203f-4d6a-bf00-af77d6cf6edd

Komponen dari keberadaan Ethers.js ini mendukung instansiasi objek. Hal ini memudahkan untuk memanggil fungsi kontrak tertentu, lebih seperti metode Javascript asli.


Ethers.js dan interaksi kontrak pintar: BeInCrypto

Integrasi ENS

Ethers.js dapat menyelesaikan nama ENS ke alamat Ethereum mereka dan sebaliknya. Fitur ini mengurangi risiko kesalahan.

Berikut ini adalah potongan kode contoh untuk ini:

const { ethers } = membutuhkan('ethers');

const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’error: empty source text

const ensName = ‘alice.eth’;

provider.resolveName(ensName).then((address) => {

console.log(`${ensName} dipecahkan menjadi ${address}`);

});

Selain fitur yang disebutkan, Ethers.js juga memiliki aspek atau fitur berikut, membantu pengembang dengan akses langsung khusus Ethereum:

  1. Penandatangan
  2. Utilitas
  3. Pendengar acara dan filter (dimaksudkan untuk mengaktifkan tanggapan waktu nyata terhadap tindakan blockchain)
  4. Transaksi
  5. Dukungan Multicall
  6. Dukungan TypeScript (dimaksudkan untuk meningkatkan keandalan kode dan pengalaman pengembang secara keseluruhan)

Beberapa keuntungan menggunakan Ethers.js:

https://twitter.com/juniorrbn_dev/status/1765370617937736000?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1765370617937736000%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Bagaimana publikasi kripto dapat memanfaatkan Ethers.js

Publikasi media seperti BeInCrypto dapat memanfaatkan Ethers.js untuk membuat alat web3 canggih dan berdaya guna dari awal. Dengan cara ini, menjadi memungkinkan untuk menggunakan fitur berbasis blockchain atau, lebih tepatnya, Ethereum untuk meningkatkan kegunaan. Berikut adalah opsi yang dapat dipertimbangkan.

Makanan data

Fitur-fitur Ethers.js dapat digunakan untuk mengintegrasikan umpan data kripto real-time aktual, seperti statistik jaringan,biaya gas, dan lain-lain, untuk menjaga artikel dan sumber daya tetap mutakhir. Berikut adalah contoh kode untuk mengambil nomor blok terbaru, misalnya untuk Bitcoin, untuk melacak halving secara real time.

const { ethers } = require('ethers');

const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/ID_PROYEK_INFURA_ANDA);

provider.getBlockNumber().then((blockNumber) => {

console.log(“Nomor blok saat ini:”, blockNumber);//Integrasikan data ini ke platform publikasi Anda untuk umpan data real-time

});

Konten interaktif

Publikasi dapat membuat bagian konten interaktif, memungkinkan pengguna untuk berinteraksi langsung dengan kontrak pintar, berpartisipasi dalam jajak pendapat, atau bahkan bermain game kecil jika diperlukan.

Berikut ini adalah potongan kode contoh untuk mengambil salam milestone tertentu dari kontrak pintar:

const { ethers } = require('ethers');

const provider = new ethers.providers.Web3Provider(window.ethereum);

const contractAddress = ‘0x…’;

const contractABI = [

"fungsi getGreeting() tampilan mengembalikan (string)"

;

const kontrak = new ethers.Contract(contractAddress, contractABI, provider);

fungsi async tampilkanSalam() {

const salam = await kontrak.getGreeting();document.getElementById(‘greeting’).innerText = salam;

}

Buka akun di KuCoin & dapatkan bonus terjamin hingga 700 USDT.

  1. Mulailah perjalanan perdagangan kripto Anda dengan KuCoin dan dapatkan keuntungan head start!
  2. Bertransaksilah dengan percaya diri di KuCoin! Platform kami memprioritaskan keamanan Anda, menawarkan perlindungan tingkat atas untuk aset digital Anda.
  3. Jelajahi dunia luas kriptokurensi dengan KuCoin!

Daftar sekarang!

Sebuah contoh dunia nyata tentang bagaimana Ethers.js diimplementasikan:

https://twitter.com/ronakpal1/status/1767071343345095092?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1767071343345095092%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Penerbitan terdesentralisasi

Publikasi media juga dapat mempertimbangkan penerbitan terdesentralisasi, di mana sisa artikel dipublikasikan di jaringan blockchain. Ini dapat membantu dalam ketahanan sensor dan bahkan integritas konten.

Berikut adalah contoh kode di mana hash artikel disimpan secara online sebagai bukti publikasi:

const { ethers } = require('ethers');

const dompet = baru ethers.Wallet('YOUR_PRIVATE_KEY', penyedia);

const contentHash = ethers.utils.id("Konten artikel di sini");

const tx = await wallet.sendTransaction({

ke: '0xSomeStorageContractAddress', data: contentHash // Mengasumsikan kontrak menerima dan menyimpan data ini

});

console.log(“Hash transaksi (bukti penerbitan):”, tx.hash);

Ini hanya sebagian kecil dari kasus penggunaan untuk publikasi media. Tetapi ada sektor lain yang dapat memanfaatkan kekuatan ethers.js. Termasuk:

  1. Pengembang blockchain (diharapkan)
  2. Analisis keuangan yang bekerja dengan DeFi Metrik
  3. Pengembang game
  4. Pembuat konten
  5. Manajer rantai pasokan

Dan lain-lain.

Aplikasi dunia nyata dari Ethers.js

Selain berguna dalam DeFi, proyek NFT, dan gaming, ada beberapa DApps yang sudah ada yang mendukung penggunaan Ethers.js. Ini termasuk yang berikut:

  1. Uniswap: Ether.js berinteraksi dengan kontrak pintar bawaan Uniswap untuk mengeksekusi perdagangan, menambah likuiditas, dan bahkan mengambil statistik kolam. Dalam hal ini, pengembang DApp berencana untuk membangun alat yang berinteraksi dengan Uniswap, seperti bot perdagangan, alat manajemen portofolio, dan lainnya.
  2. Aave: Pengembang DApp dan pihak lain yang tertarik dapat memanfaatkan fungsionalitas Ether.js untuk berinteraksi dengan kontrak pintar khusus Aave. Dengan cara ini, mereka dapat mempersiapkan antarmuka depan untuk meminjam aset, mendepositokan agunan, dan melakukan lebih banyak hal.

Membantah beberapa mitos Ether.js:

https://twitter.com/imashuttoshh/status/1765558806291894739?refsrc=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1765558806291894739%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Pertimbangan Keamanan

Menggunakan Ethers.js dilengkapi dengan serangkaian yang cukup luas dari keamananpertimbangan. Berikut adalah beberapa hal yang harus diikuti:

  1. Disarankan untuk tidak memasukkan kunci privat secara kaku di dalam kode sumber aplikasi Anda.
  2. Setiap interaksi kontrak pintar harus didahului oleh pengujian dan pemeriksaan ekstensif terhadap kontrak tersebut.
  3. Saat berinteraksi dengan kontrak pintar, gunakan pola-pola aman seperti "panggil" untuk tugas-tugas hanya baca.
  4. Untuk mengoptimalkan penggunaan ethers.js, Anda mungkin mempertimbangkan untuk melakukan batching permintaan. Di sinilah Anda dapat melakukan batching, misalnya, permintaan hanya baca untuk meminimalkan jumlah panggilan jaringan. Tidak perlu dikatakan bahwa teknik optimisasi ini dapat membuat aplikasi menjadi sangat scalable dan efisien biaya.

Berikut adalah contoh bagaimana itu bekerja:

// Pseudocode untuk menggabungkan panggilan kontrak dengan Ethers.js (contoh konseptual)

const kontrak = new ethers.Contract(alamat, abi, penyedia);

const [nilai1, nilai2, nilai3] = await Promise.all([

contract.viewFunction1(),contract.viewFunction2(),contract.viewFunction3()

];

Ethers.js: alat yang serbaguna

Disponsori

https://harambetoken.ai/?domain=beincrypto&banner=header-banner-3&cpid=1ce31526-203f-4d6a-bf00-af77d6cf6edd

Seperti yang ditunjukkan dalam panduan ini, Ethers.js adalah alat yang serbaguna. Meskipun kami telah melihat dengan cepat kemampuannya, cara terbaik untuk benar-benar memahami Ethers.js adalah dengan menyelami lebih dalam ke dunia kontrak pintar, JavaScript, IDE, DApps, dan lainnya. Selain itu, bergabung dengan komunitas Ethereum dan Ethers juga bisa sangat berguna.

Pertanyaan yang Sering Diajukan

Bagaimana pengembang dapat menggunakan acara Ethers.js?

Apa saja utilitas kunci yang ditawarkan oleh Ethers.js?

Apa hubungan antara Ethers.js dan Web3.js?

Disclaimer:

  1. Artikel ini diambil dari [ beincrypto], Semua hak cipta milik penulis asli [Ananda Banerjee]. Jika ada keberatan terkait pencetakan ulang ini, silakan hubungi Gate Belajartim, dan mereka akan menanganinya dengan segera.
  2. Penafian Tanggung Jawab: Pandangan dan opini yang terdapat dalam artikel ini semata-mata merupakan milik penulis dan tidak merupakan nasihat investasi apa pun.
  3. Terjemahan artikel ke dalam bahasa lain dilakukan oleh tim Gate Learn. Kecuali disebutkan, menyalin, mendistribusikan, atau menjiplak artikel yang diterjemahkan dilarang.
Bắt đầu giao dịch
Đăng ký và giao dịch để nhận phần thưởng USDTEST trị giá
$100
$5500