Tujuh teknik untuk membantu Anda menguasai pengembangan smart contract

Tips dan Pengalaman dalam Pengembangan Kontrak

Belakangan ini, saat berpartisipasi dalam proyek tutorial pengembangan bursa terdesentralisasi, saya belajar banyak teknik pengembangan kontrak yang berharga melalui penelitian implementasi kode Uniswap V3. Sebagai seorang pemula yang baru mengenal pengembangan kontrak Defi, teknik-teknik ini memberi saya banyak inspirasi, dan saya percaya ini juga akan bermanfaat bagi pemula lain yang ingin belajar tentang pengembangan kontrak.

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

Alamat Kontrak yang Dapat Diprediksi

Umumnya, alamat yang diperoleh saat menerapkan kontrak adalah alamat acak, tetapi dalam beberapa skenario, kita perlu dapat memprediksi alamat kontrak. Uniswap menggunakan metode CREATE2 untuk membuat kontrak, dengan menambahkan parameter salt, sehingga alamat kontrak yang dibuat dapat diprediksi. Ini sangat berguna dalam menentukan izin transaksi atau mendapatkan alamat kolam, dan sebagainya.

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

Menggunakan Fungsi Callback dengan Cerdik

Dalam beberapa skenario, saling memanggil kontrak sangat berguna. Misalnya di Uniswap, ketika memanggil metode swap dari kontrak UniswapV3Pool, ia akan memanggil kembali swapCallback, dengan jumlah Token yang sebenarnya dihitung yang diperlukan. Panggilan harus mentransfer Token ke UniswapV3Pool dalam callback, yang memastikan eksekusi dan keamanan metode swap.

Menggunakan pengecualian untuk menyampaikan informasi

Dalam kontrak Quoter Uniswap, metode swap dari UniswapV3Pool dibungkus dengan try-catch. Ini dilakukan untuk mensimulasikan swap guna memperkirakan Token yang dibutuhkan untuk transaksi, dengan menangkap kesalahan tertentu dan menganalisis informasi kesalahan untuk mendapatkan data yang diperlukan. Metode ini menghindari perlunya modifikasi khusus pada metode swap untuk memperkirakan transaksi, sehingga logika menjadi lebih sederhana.

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

Perhitungan angka besar menjamin akurasi

Uniswap melibatkan banyak perhitungan, untuk menghindari kehilangan presisi saat melakukan operasi pembagian, sering kali digunakan pergeseran kiri 96 bit ( yang setara dengan mengalikan 2^96). Dengan demikian, dalam situasi perdagangan normal tanpa overflow, dapat menjamin presisi perhitungan. Meskipun secara teori masih akan ada sedikit kehilangan presisi, tetapi sudah dapat diterima.

Cara Berbagi Menghitung Keuntungan

Untuk menghindari konsumsi Gas yang besar dengan mencatat biaya transaksi untuk setiap LP setiap kali transaksi, Uniswap menggunakan metode yang mirip dengan dividen saham. Hanya perlu mencatat total biaya dan biaya yang harus dibagikan per unit likuiditas, dan biaya yang harus diterima LP dapat dihitung berdasarkan likuiditas yang dimiliki saat pengambilan.

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

Penggabungan Data On-chain dan Off-chain

Tidak semua informasi perlu diambil dari rantai. Misalnya, daftar kolam perdagangan, informasi kolam, dan lain-lain dapat disimpan dalam database biasa dan disinkronkan secara berkala dari rantai. Transaksi kunci dilakukan di rantai, sementara informasi non-kunci dapat diperoleh dengan cara yang lebih efisien untuk meningkatkan kinerja dan efisiensi.

Pemisahan Kontrak dan Penggunaan Kembali Kontrak Standar

Proyek besar biasanya mencakup beberapa kontrak yang diterapkan secara nyata, bahkan jika hanya menerapkan satu kontrak, itu dapat dipisahkan menjadi beberapa kontrak melalui pewarisan untuk pemeliharaan. Pada saat yang sama, memanfaatkan kontrak standar yang ada ( seperti ERC721) dapat meningkatkan efisiensi pengembangan dan menyederhanakan manajemen.

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

Praktik adalah cara terbaik untuk belajar. Dengan secara langsung membangun versi sederhana dari pertukaran terdesentralisasi, tidak hanya dapat memahami dengan lebih mendalam implementasi kode Uniswap, tetapi juga dapat mempelajari lebih banyak poin pengetahuan dalam proyek nyata. Semoga berbagi pengalaman ini bermanfaat bagi perjalanan pengembangan kontrak Anda.

UNI-0.03%
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
  • 7
  • Bagikan
Komentar
0/400
LiquidityOraclevip
· 08-02 23:11
Mengintegrasikan satu lagi artikel tentang cara trading cold rice untuk pemula
Lihat AsliBalas0
WhaleWatchervip
· 08-02 19:29
Agak sulit dipahami, siapa yang bisa menjelaskan tentang create2
Lihat AsliBalas0
RetailTherapistvip
· 07-31 02:40
Mengirim ini lebih baik daripada membuat dex sendiri untuk Dianggap Bodoh
Lihat AsliBalas0
gas_guzzlervip
· 07-31 02:40
Prediksi Alamat ini membuat tertawa Santo Uniswap
Lihat AsliBalas0
DeFiGraylingvip
· 07-31 02:35
Tidak tahu harus berkata apa, ini lagi pelatihan yang menjebak pemula...
Lihat AsliBalas0
DEXRobinHoodvip
· 07-31 02:35
DOGE   yang dikatakan oleh sang Bapak adalah benar! Menghabiskan waktu di penjara bukanlah mimpi!
Lihat AsliBalas0
NightAirdroppervip
· 07-31 02:34
Bicara setengah hari tidak sebanding dengan Pinjaman Flash yang menarik~
Lihat AsliBalas0
  • Sematkan
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)