Tujuh Teknik Penting untuk Pengembangan Kontrak DEX yang Harus Dimiliki Pemula

Berbagi Tips Kecil untuk Pengembangan Kontrak

Baru-baru ini, saat terlibat dalam proyek pengembangan bursa terdesentralisasi, saya merujuk pada implementasi kode dari DEX terkenal dan mempelajari banyak keterampilan praktis dalam pengembangan kontrak. Sebagai seorang pengembang yang sebelumnya terutama mengembangkan kontrak NFT, ini adalah kali pertama saya mencoba pengembangan kontrak Defi. Di sini saya ingin berbagi beberapa tips kecil yang mungkin berguna bagi pengembang pemula.

Web3 Pemula Seri: Tips Kecil Pengembangan Kontrak yang Saya Pelajari dari Kode Uniswap

Alamat Kontrak yang Dapat Diprediksi

Alamat kontrak yang biasanya dihasilkan dari penerapan tampak acak karena berkaitan dengan nonce. Namun, dalam beberapa skenario, kita perlu menyimpulkan alamat kontrak melalui informasi transaksi, yang sangat berguna dalam menentukan hak transaksi atau mendapatkan alamat pool.

Salah satu cara adalah menggunakan CREATE2 untuk membuat kontrak, dengan menambahkan parameter salt sehingga alamat yang dihasilkan dapat diprediksi. Rumus perhitungan alamat baru adalah:

Alamat baru = hash("0xFF", alamat pencipta, salt, initcode)

Web3 Pemula Seri: Tips Kecil Pengembangan Kontrak yang Saya Pelajari dari Kode Uniswap

Menggunakan Fungsi Callback dengan Baik

Kontrak di Solidity dapat saling memanggil. Dalam beberapa skenario, metode A memanggil B, dan B memanggil kembali A dalam metode yang dipanggil, pola ini sangat berguna.

Misalnya, saat melakukan perdagangan di DEX tertentu, metode swap dari kontrak pool akan memanggil swapCallback dan mengirimkan jumlah Token yang sebenarnya dibutuhkan. Panggilan harus mentransfer Token dalam callback, dan bukan membagi swap menjadi beberapa langkah panggilan. Ini memastikan integritas dan keamanan metode swap.

Menggunakan pengecualian untuk menyampaikan informasi

Dalam kode suatu DEX, gunakan try-catch untuk membungkus metode swap kontrak pool untuk mensimulasikan perdagangan dan memperkirakan Token yang dibutuhkan. Karena tidak ada pertukaran Token yang sebenarnya selama perkiraan, akan menyebabkan kesalahan. Dengan melempar kesalahan khusus dalam callback, kemudian menangkap dan menganalisis informasi kesalahan, kita dapat memperoleh hasil perkiraan.

Teknik ini menghindari modifikasi metode swap khusus untuk memperkirakan permintaan, menjaga logika tetap sederhana.

Seri Pemula Web3: Tips Kecil Pengembangan Kontrak yang Saya Pelajari dari Kode Uniswap

Masalah Akurasi Pengolahan Bilangan Besar

Dalam perhitungan harga dan likuiditas, untuk menghindari kehilangan presisi pada operasi pembagian, dapat dilakukan pergeseran kiri 96 bit ( yang setara dengan mengalikan dengan 2^96) sebelum melakukan perhitungan. Dengan cara ini, presisi dapat terjamin selama transaksi normal tidak mengalami overflow.

Perhitungan Pendapatan Mode Share

Saat mencatat pendapatan biaya LP, tidak mungkin untuk mencatat setiap LP dalam setiap transaksi, karena itu akan menghabiskan banyak Gas. Salah satu solusi adalah mencatat total biaya dan biaya yang harus dialokasikan per unit likuiditas. Saat LP menarik, biaya yang dapat ditarik dihitung berdasarkan likuiditas yang dimiliki, mirip dengan dividen saham.

Seri Pemula Web3: Tips Kecil Pengembangan Kontrak yang Saya Pelajari dari Kode Uniswap

Penggabungan Data On-Chain dan Off-Chain

Tidak semua informasi perlu diunggah ke blockchain atau diambil dari blockchain. Misalnya, daftar kolam transaksi, informasi kolam, dll. bisa disimpan di database biasa dan disinkronkan secara berkala dari blockchain. Ini dapat meningkatkan kinerja dan efisiensi. Tentu saja, transaksi kunci masih perlu dilakukan di blockchain.

Pembagian dan Penggunaan Kembali Kontrak

Proyek besar mungkin mencakup beberapa kontrak yang benar-benar dikerahkan. Bahkan jika hanya satu kontrak yang dikerahkan, kontrak tersebut dapat dipecah menjadi beberapa kontrak untuk memudahkan pemeliharaan dengan menggunakan pewarisan. Selain itu, mempelajari cara memanfaatkan kontrak standar yang ada seperti ERC721 dapat meningkatkan efisiensi pengembangan.

Praktik adalah cara terbaik untuk belajar. Dengan mengimplementasikan versi DEX yang sederhana, kita dapat memahami lebih dalam tentang kode implementasi beberapa proyek kompleks dan mempelajari lebih banyak poin pengetahuan dari proyek nyata. Semoga tips kecil ini bermanfaat bagi pemula yang ingin belajar pengembangan kontrak.

Web3 Pemula Series: Tips Kecil Pengembangan Kontrak yang Saya Pelajari dari Kode Uniswap

Lihat Asli
Halaman ini mungkin berisi konten pihak ketiga, yang disediakan untuk tujuan informasi saja (bukan pernyataan/jaminan) dan tidak boleh dianggap sebagai dukungan terhadap pandangannya oleh Gate, atau sebagai nasihat keuangan atau profesional. Lihat Penafian untuk detailnya.
  • Hadiah
  • 9
  • Posting ulang
  • Bagikan
Komentar
0/400
UnluckyMinervip
· 08-07 07:50
Kirim lebih banyak potongan kode
Lihat AsliBalas0
BridgeJumpervip
· 08-07 04:50
Menyalin juga ada caranya.
Lihat AsliBalas0
nft_widowvip
· 08-06 21:36
Tulisan yang bagus harus didukung
Lihat AsliBalas0
LiquidityWizardvip
· 08-05 23:03
Alamat prediksi sangat penting ya
Lihat AsliBalas0
ImpermanentLossFanvip
· 08-05 23:01
Tulisan terlalu sedikit, tidak cukup terlihat
Lihat AsliBalas0
LightningLadyvip
· 08-05 23:01
wawasan berharga penuh isi
Lihat AsliBalas0
DeFi_Dad_Jokesvip
· 08-05 22:50
Tandai dan simpan untuk dilihat
Lihat AsliBalas0
gas_fee_therapistvip
· 08-05 22:45
gas sangat berharga
Lihat AsliBalas0
PaperHandSistervip
· 08-05 22:43
naik pengetahuan, saudara-saudara
Lihat AsliBalas0
Lihat Lebih Banyak
Perdagangkan Kripto Di Mana Saja Kapan Saja
qrCode
Pindai untuk mengunduh aplikasi Gate
Komunitas
Bahasa Indonesia
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)