Baru-baru ini, saat mengembangkan proyek bursa terdesentralisasi, saya merujuk pada beberapa implementasi kode DEX terkenal dan belajar banyak trik pengembangan kontrak yang menarik. Sebagai seorang pemula yang baru mengenal pengembangan DeFi, trik-trik ini memberikan banyak inspirasi bagi saya, dan saya percaya ini juga akan membantu teman-teman lain yang ingin belajar pengembangan kontrak pintar.
Alamat Kontrak Prediksi
Alamat kontrak yang biasanya dikerahkan terlihat acak karena berhubungan dengan nonce. Namun, dalam beberapa skenario, kita perlu menyimpulkan alamat kontrak melalui informasi terkait transaksi. Ini dapat dicapai dengan menggunakan metode CREATE2 untuk membuat kontrak, dengan cara menambahkan parameter salt saat membuat kontrak. Alamat yang dihasilkan dengan cara ini dapat diprediksi, mengikuti logika "alamat baru = hash('0xFF', alamat pembuat, salt, initcode)".
Menggunakan Fungsi Callback
Dalam beberapa skenario, sangat berguna bagi kontrak A untuk memanggil metode kontrak B, dan B pada metode yang dipanggil tersebut memanggil kembali A. Misalnya, dalam DEX, ketika memanggil metode swap dari kontrak kolam perdagangan, ia akan memanggil swapCallback, dengan jumlah Token yang sebenarnya dibutuhkan. Pihak yang memanggil perlu mentransfer Token yang diperlukan ke kolam perdagangan dalam callback, ini memastikan eksekusi dan keamanan metode swap yang lengkap.
Menggunakan Pengecualian untuk Mengirimkan Informasi
Saat memperkirakan transaksi, Anda dapat membungkus eksekusi metode swap dengan try-catch. Karena saat perkiraan tidak ada pertukaran Token yang sebenarnya, maka akan terjadi kesalahan. Anda dapat melempar kesalahan khusus dalam fungsi callback, kemudian menangkap dan menganalisis informasi yang diperlukan. Metode ini menghindari modifikasi khusus pada metode swap untuk kebutuhan perkiraan, membuat logika lebih sederhana.
Masalah Presisi Pengolahan Angka Besar
Dalam perhitungan harga dan likuiditas, untuk menghindari kehilangan presisi yang disebabkan oleh pembagian, nilai dapat digeser ke kiri sebanyak 96 bit ( yang setara dengan mengalikan dengan 2^96) sebelum melakukan perhitungan. Meskipun secara teori masih akan ada kehilangan presisi yang sangat kecil, namun dalam batas yang dapat diterima.
Cara Berbagi Menghitung Keuntungan
Untuk penghasilan biaya transaksi bagi penyedia likuiditas, tidak perlu mencatat setiap transaksi. Dapat mencatat total biaya transaksi dan biaya yang harus diterima per unit likuiditas, dan jumlah yang dapat ditarik dihitung berdasarkan likuiditas yang dimiliki saat LP menarik. Ini mirip dengan prinsip dividen saham.
Penggabungan Data On-Chain dan Off-Chain
Tidak semua informasi perlu diunggah ke blockchain atau diambil dari blockchain. Misalnya, daftar kolam perdagangan dan informasi lainnya dapat disimpan di database tradisional dan disinkronkan secara berkala dari blockchain. Ini dapat meningkatkan efisiensi dan mengurangi biaya. Tentu saja, transaksi penting masih perlu dilakukan di blockchain.
Pembagian Kontrak dan Pemanfaatan Kontrak Standar
Proyek besar dapat dibagi menjadi beberapa kontrak yang diterapkan secara nyata, atau membagi kode melalui pewarisan. Selain itu, dapat memanfaatkan kontrak standar yang ada seperti ERC721 untuk meningkatkan efisiensi pengembangan. Misalnya, menggunakan NFT untuk mengelola posisi likuiditas.
Untuk memahami teknik-teknik ini secara mendalam, cara terbaik adalah dengan langsung terlibat dalam pengembangan versi sederhana DEX. Dalam praktiknya, Anda akan memahami berbagai ide desain dengan lebih mendalam dan juga dapat mempelajari lebih banyak pengetahuan praktis. Semoga berbagi ini memberi inspirasi dan membantu Anda.
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.
10 Suka
Hadiah
10
2
Bagikan
Komentar
0/400
AirdropHustler
· 07-19 11:31
Teknik pengembangan kali ini bisa dibilang menguntungkan bagi Bro Shuang.
7 Tips Berguna untuk Pengembangan Smart Contract Mendukung Proyek DEX
Berbagi Tips Kecil untuk Pengembangan Kontrak
Baru-baru ini, saat mengembangkan proyek bursa terdesentralisasi, saya merujuk pada beberapa implementasi kode DEX terkenal dan belajar banyak trik pengembangan kontrak yang menarik. Sebagai seorang pemula yang baru mengenal pengembangan DeFi, trik-trik ini memberikan banyak inspirasi bagi saya, dan saya percaya ini juga akan membantu teman-teman lain yang ingin belajar pengembangan kontrak pintar.
Alamat Kontrak Prediksi
Alamat kontrak yang biasanya dikerahkan terlihat acak karena berhubungan dengan nonce. Namun, dalam beberapa skenario, kita perlu menyimpulkan alamat kontrak melalui informasi terkait transaksi. Ini dapat dicapai dengan menggunakan metode CREATE2 untuk membuat kontrak, dengan cara menambahkan parameter salt saat membuat kontrak. Alamat yang dihasilkan dengan cara ini dapat diprediksi, mengikuti logika "alamat baru = hash('0xFF', alamat pembuat, salt, initcode)".
Menggunakan Fungsi Callback
Dalam beberapa skenario, sangat berguna bagi kontrak A untuk memanggil metode kontrak B, dan B pada metode yang dipanggil tersebut memanggil kembali A. Misalnya, dalam DEX, ketika memanggil metode swap dari kontrak kolam perdagangan, ia akan memanggil swapCallback, dengan jumlah Token yang sebenarnya dibutuhkan. Pihak yang memanggil perlu mentransfer Token yang diperlukan ke kolam perdagangan dalam callback, ini memastikan eksekusi dan keamanan metode swap yang lengkap.
Menggunakan Pengecualian untuk Mengirimkan Informasi
Saat memperkirakan transaksi, Anda dapat membungkus eksekusi metode swap dengan try-catch. Karena saat perkiraan tidak ada pertukaran Token yang sebenarnya, maka akan terjadi kesalahan. Anda dapat melempar kesalahan khusus dalam fungsi callback, kemudian menangkap dan menganalisis informasi yang diperlukan. Metode ini menghindari modifikasi khusus pada metode swap untuk kebutuhan perkiraan, membuat logika lebih sederhana.
Masalah Presisi Pengolahan Angka Besar
Dalam perhitungan harga dan likuiditas, untuk menghindari kehilangan presisi yang disebabkan oleh pembagian, nilai dapat digeser ke kiri sebanyak 96 bit ( yang setara dengan mengalikan dengan 2^96) sebelum melakukan perhitungan. Meskipun secara teori masih akan ada kehilangan presisi yang sangat kecil, namun dalam batas yang dapat diterima.
Cara Berbagi Menghitung Keuntungan
Untuk penghasilan biaya transaksi bagi penyedia likuiditas, tidak perlu mencatat setiap transaksi. Dapat mencatat total biaya transaksi dan biaya yang harus diterima per unit likuiditas, dan jumlah yang dapat ditarik dihitung berdasarkan likuiditas yang dimiliki saat LP menarik. Ini mirip dengan prinsip dividen saham.
Penggabungan Data On-Chain dan Off-Chain
Tidak semua informasi perlu diunggah ke blockchain atau diambil dari blockchain. Misalnya, daftar kolam perdagangan dan informasi lainnya dapat disimpan di database tradisional dan disinkronkan secara berkala dari blockchain. Ini dapat meningkatkan efisiensi dan mengurangi biaya. Tentu saja, transaksi penting masih perlu dilakukan di blockchain.
Pembagian Kontrak dan Pemanfaatan Kontrak Standar
Proyek besar dapat dibagi menjadi beberapa kontrak yang diterapkan secara nyata, atau membagi kode melalui pewarisan. Selain itu, dapat memanfaatkan kontrak standar yang ada seperti ERC721 untuk meningkatkan efisiensi pengembangan. Misalnya, menggunakan NFT untuk mengelola posisi likuiditas.
Untuk memahami teknik-teknik ini secara mendalam, cara terbaik adalah dengan langsung terlibat dalam pengembangan versi sederhana DEX. Dalam praktiknya, Anda akan memahami berbagai ide desain dengan lebih mendalam dan juga dapat mempelajari lebih banyak pengetahuan praktis. Semoga berbagi ini memberi inspirasi dan membantu Anda.