Pengungkapan Kode Uniswap: 7 Teknik Pengembangan smart contract yang Dijelaskan Secara Detail

robot
Pembuatan abstrak sedang berlangsung

Keterampilan Pengembangan Kontrak yang Dipelajari dari Kode Uniswap

Baru-baru ini, saat menulis tutorial pengembangan bursa terdesentralisasi, saya merujuk pada implementasi kode Uniswap V3 dan mempelajari banyak poin berharga. Sebagai pengembang yang pertama kali mencoba mengembangkan kontrak Defi, teknik-teknik ini akan sangat membantu bagi pemula yang ingin belajar pengembangan kontrak.

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

Alamat penyebaran kontrak yang dapat diprediksi

Alamat yang diperoleh dari penyebaran kontrak biasanya terlihat acak karena terkait dengan nonce. Namun, dalam beberapa kasus, kita perlu menyimpulkan alamat kontrak melalui pasangan transaksi dan informasi terkait. Uniswap menggunakan metode CREATE2 untuk membuat kontrak, menambahkan parameter salt, sehingga alamat kontrak yang dihasilkan dapat diprediksi. Logika pembuatan alamat adalah: alamat baru = hash("0xFF", alamat pencipta, salt, initcode).

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

Memanfaatkan Fungsi Callback

Dalam beberapa skenario, panggilan dan callback antara kontrak sangat berguna. Sebagai contoh, dalam metode swap Uniswap, akan ada callback swapCallback yang menerima jumlah Token yang dibutuhkan. Pihak yang memanggil harus mengirimkan Token yang diperlukan ke dalam kolam dalam callback, untuk memastikan integritas dan keamanan logika transaksi secara keseluruhan.

Menggunakan pengecualian untuk menyampaikan informasi, memperkirakan transaksi dengan try catch

Dalam kontrak Quoter Uniswap, metode swap dieksekusi dalam blok try catch untuk memperkirakan transaksi. Dengan melemparkan kesalahan khusus dalam fungsi callback dan kemudian menangkap serta menguraikan informasi kesalahan, fungsi perkiraan transaksi diimplementasikan tanpa perlu mengubah metode swap khusus untuk kebutuhan perkiraan.

Solusi Masalah Presisi Angka Besar

Logika perhitungan dalam Uniswap sering menggunakan operasi pergeseran kiri 96 bit (setara dengan dikalikan 2^96). Metode ini menjamin bahwa transaksi normal tidak mengalami overflow, sekaligus juga memastikan akurasi. Meskipun secara teori masih ada sedikit kehilangan akurasi, namun dalam aplikasi praktis hal ini dapat diterima.

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

Perhitungan Pendapatan Mekanisme Share

Untuk mencatat pendapatan biaya transaksi LP dengan efisien, Uniswap mengadopsi metode yang mirip dengan sistem saham. Dengan mencatat total biaya transaksi dan biaya yang harus dialokasikan untuk setiap unit likuiditas, LP hanya perlu menghitung biaya yang dapat diambil berdasarkan likuiditas yang dimiliki saat menarik, yang secara signifikan mengurangi konsumsi gas.

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

Penggunaan Informasi Off-Chain yang Rasional

Mengingat biaya penyimpanan di blockchain yang tinggi, tidak semua informasi perlu disimpan di blockchain atau diambil dari blockchain. Misalnya, daftar kolam transaksi, informasi kolam, dll. dapat disimpan di database tradisional dan disinkronkan secara berkala dengan data di blockchain. Metode ini dapat meningkatkan efisiensi dan mengurangi biaya.

Pemisahan Kontrak dan Penggunaan Kembali Kontrak Standar

Sebuah proyek mungkin mencakup beberapa kontrak yang telah diterapkan secara nyata, bahkan jika hanya satu kontrak yang diterapkan, kode dapat dipecah menjadi beberapa kontrak untuk pemeliharaan melalui pewarisan. Sementara itu, memanfaatkan kontrak standar yang ada (seperti ERC721) dapat meningkatkan efisiensi pengembangan dan memperkuat keandalan kontrak.

Kesimpulan

Praktik adalah metode belajar terbaik. Dengan mencoba untuk mengimplementasikan versi sederhana dari bursa terdesentralisasi, kita dapat memahami dengan lebih mendalam tentang implementasi kode Uniswap dan memperoleh pengalaman berharga dari proyek nyata. Bagi para pengembang yang tertarik untuk belajar lebih dalam tentang pengembangan proyek Web3 dan DeFi, mengikuti kursus praktis akan menjadi pilihan yang sangat baik.

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

UNI2.28%
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
  • 6
  • Bagikan
Komentar
0/400
GateUser-9ad11037vip
· 9jam yang lalu
Pemula masukkan posisi tutorial齁
Lihat AsliBalas0
WalletManagervip
· 9jam yang lalu
Audit yang ketat sebelum kontrak adalah dasar dari proyek... belajar sejenak
Lihat AsliBalas0
SmartContractRebelvip
· 9jam yang lalu
Pengembang telah hidup dari keuntungan lama.
Lihat AsliBalas0
GateUser-a606bf0cvip
· 9jam yang lalu
Begini saja? Terlalu dasar ya.
Lihat AsliBalas0
BlockchainBouncervip
· 9jam yang lalu
Meluncur sangat cepat, tidak bisa mengerti.
Lihat AsliBalas0
GasGuzzlervip
· 9jam yang lalu
Bicara sepuluh kali pun saya tidak akan bisa menulis.
Lihat AsliBalas0
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)