7 Tips Pengembangan Kontrak yang Berguna untuk Mendukung Proyek Defi

Berbagi Tips Kecil untuk Pengembangan Kontrak

Baru-baru ini saat menulis tutorial pengembangan bursa terdesentralisasi, saya merujuk beberapa implementasi kode dari proyek terkenal dan belajar banyak teknik pengembangan kontrak yang menarik. Sebagai pemula yang mencoba mengembangkan kontrak Defi untuk pertama kalinya, teknik-teknik ini sangat menginspirasi saya, dan saya percaya ini juga akan membantu teman-teman lain yang ingin belajar pengembangan kontrak.

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

Alamat Kontrak yang Dapat Diprediksi

Alamat yang biasanya diperoleh dari penyebaran kontrak terlihat acak, karena terkait dengan nonce. Namun dalam beberapa skenario, kita perlu menyimpulkan alamat kontrak melalui informasi yang setara dengan transaksi, yang sangat berguna dalam menentukan izin transaksi atau mendapatkan alamat kolam.

Salah satu cara adalah dengan menggunakan metode CREATE2 untuk membuat kontrak, dengan menambahkan parameter salt agar alamat yang dihasilkan dapat diprediksi. Logika pembuatan alamat baru adalah: hash("0xFF", alamat pembuat, salt, initcode).

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

Menggunakan Fungsi Callback dengan Bijak

Dalam beberapa skenario, pemanggilan metode kontrak B oleh kontrak A dan kemudian panggilan balik metode A oleh B sangat berguna.

Misalnya, saat bertransaksi, metode swap dari kontrak pool akan memanggil swapCallback, mengirimkan jumlah Token yang sebenarnya diperlukan. Pemanggil dalam callback akan mentransfer Token ke dalam pool, ini memastikan keamanan dan integritas metode swap, tanpa perlu pencatatan variabel yang rumit.

Menggunakan pengecualian untuk menyampaikan informasi

Dalam perdagangan simulasi untuk memperkirakan Token yang dibutuhkan, Anda dapat melemparkan kesalahan khusus dalam fungsi callback, kemudian menangkap kesalahan tersebut dan menganalisis informasi yang diperlukan darinya. Dengan cara ini, tidak perlu memodifikasi metode swap khusus untuk memperkirakan kebutuhan, logikanya menjadi lebih sederhana.

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

Masalah Akurasi Penyelesaian Angka Besar

Dalam skenario yang melibatkan perhitungan, untuk menghindari kehilangan presisi dalam operasi pembagian, kita dapat terlebih dahulu menggeser ke kiri 96 bit ( yang setara dengan mengalikan 2^96), kemudian melakukan operasi pembagian. Dengan cara ini, presisi dapat terjamin tanpa mengalami overflow.

Metode Share untuk Menghitung Keuntungan

Untuk skenario yang memerlukan pencatatan pendapatan biaya LP, tidak mungkin untuk mencatat setiap LP pada setiap transaksi, karena ini akan menghabiskan banyak Gas. Dapat digunakan metode mirip dividen saham, hanya mencatat total biaya dan biaya yang harus dialokasikan per unit likuiditas, kemudian saat LP menarik, dihitung berdasarkan likuiditas yang dimiliki.

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

Penyimpanan informasi tambahan di luar rantai

Tidak semua informasi perlu diunggah ke blockchain atau diambil dari blockchain. Beberapa data yang tidak kritis seperti daftar kolam transaksi, informasi kolam, dll. dapat disimpan dalam database biasa dan disinkronkan secara berkala dari blockchain. Ini dapat meningkatkan kinerja dan efisiensi.

Pembagian Kontrak dan Penggunaan Kembali Kontrak Standar

Proyek besar dapat membagi kontrak menjadi beberapa bagian, atau memecah dan memelihara dengan cara pewarisan. Pada saat yang sama, kontrak standar seperti ERC721 dapat digunakan kembali, meningkatkan efisiensi pengembangan.

Secara langsung mengembangkan versi sederhana dari bursa terdesentralisasi, dapat lebih memahami penerapan teknik-teknik ini dengan lebih mendalam. Semoga berbagi ini bermanfaat bagi semua.

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

DEFI1.99%
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
HappyMinerUnclevip
· 08-04 03:00
Ini terlalu rumit, ya? Para penambang, silakan ambil tempatnya.
Lihat AsliBalas0
SadMoneyMeowvip
· 08-03 20:33
Permainan kontrak ini terlalu mewah.
Lihat AsliBalas0
SandwichTradervip
· 08-01 04:28
Gelombang baru yang rusak tetapi tidak rugpull
Lihat AsliBalas0
LayerZeroHerovip
· 08-01 03:29
Disarankan untuk langsung menguji dapptools, menggunakan gas untuk pengujian lebih dapat diandalkan.
Lihat AsliBalas0
hodl_therapistvip
· 08-01 03:21
Apakah kamu yakin ini semua adalah teknologi terbaru? ... terlihat agak tua.
Lihat AsliBalas0
NewPumpamentalsvip
· 08-01 03:11
Tingkat salt belum sampai, bukan?
Lihat AsliBalas0
DiamondHandsvip
· 08-01 03:10
sama-sama tidak mahir dan suka belajar yyds
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)