Baru-baru ini saat terlibat dalam proyek pengembangan pertukaran terdesentralisasi, saya belajar beberapa teknik pengembangan kontrak yang menarik. Teknik-teknik ini mungkin sangat menginspirasi bagi pemula yang baru mengenal pengembangan kontrak pintar.
Alamat kontrak yang dapat diprediksi
Dengan menggunakan opcode CREATE2, kita dapat menyebarkan kontrak dengan alamat yang dapat diprediksi. Metode spesifiknya adalah dengan menambahkan parameter salt saat membuat kontrak:
soliditas
pool = address(new UniswapV3Pool{salt: keccak256(abi.encode(token0, token1, fee))}());
Alamat kontrak yang dihasilkan dengan cara ini dapat dihitung melalui parameter terkait, sangat berguna dalam banyak skenario.
Memanfaatkan Fungsi Callback
Dalam beberapa kasus, pola di mana kontrak A memanggil metode kontrak B, dan B kemudian memanggil kembali salah satu metode A, sangat berguna. Misalnya, di DEX, saat memanggil metode swap, akan memanggil kembali swapCallback, di mana transfer token diselesaikan dalam panggilan balik tersebut, memastikan integritas dan keamanan seluruh proses transaksi.
Menggunakan Pengecualian untuk Mengirim Informasi
Terkadang kita dapat dengan cerdik memanfaatkan try-catch untuk menangkap pengecualian tertentu untuk mendapatkan informasi. Misalnya, saat melakukan simulasi perdagangan, kita dapat menangkap pengecualian tertentu yang dilemparkan oleh metode swap untuk mendapatkan data estimasi, tanpa perlu mengubah metode swap khusus untuk itu.
Perhitungan Bilangan Besar Menjamin Akurasi
Dalam perhitungan keuangan, untuk menghindari kehilangan presisi yang disebabkan oleh operasi pembagian, nilai dapat terlebih dahulu dilakukan operasi pergeseran kiri ( setara dengan mengalikan 2^96), setelah perhitungan selesai kemudian dilakukan pergeseran kanan, sehingga dapat memastikan presisi tanpa kelebihan.
Perhitungan Pendapatan Mode Berbagi
Untuk skenario yang memerlukan alokasi keuntungan, dapat menggunakan model yang mirip dengan dividen saham. Cukup catat total keuntungan dan keuntungan yang seharusnya diterima per unit, saat pengguna menarik, cukup hitung bagian yang seharusnya diterima berdasarkan porsi mereka, menghindari pembaruan frekuent terhadap catatan keuntungan setiap pengguna.
Memanfaatkan Data Off-Chain Secara Bijak
Tidak semua data perlu disimpan di blockchain. Beberapa informasi yang tidak melibatkan logika transaksi kunci dapat disimpan di database tradisional dan diambil melalui API Web2, sehingga mengurangi biaya dan meningkatkan efisiensi.
Pembagian dan Penggunaan Kembali Kontrak
Proyek besar biasanya akan membagi kontrak menjadi beberapa modul, yang digunakan dengan menggabungkan warisan. Pada saat yang sama, juga penting untuk memanfaatkan kontrak standar yang ada, seperti ERC721, yang dapat meningkatkan efisiensi pengembangan dan kualitas kode.
Meskipun trik-trik ini kecil, tetapi sangat berguna, semoga dapat menginspirasi pengembangan kontrak pintar bagi semua orang. Untuk benar-benar menguasai trik-trik ini, cara terbaik adalah dengan berlatih secara langsung, menerapkannya dan merasakannya dalam proyek nyata.
Lihat Asli
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
26 Suka
Hadiah
26
9
Bagikan
Komentar
0/400
GateUser-a180694b
· 2jam yang lalu
Tulisannya bagus, jika ada lebih banyak contoh akan lebih baik.
Lihat AsliBalas0
MetaMisfit
· 4jam yang lalu
Terlalu dasar ya?
Lihat AsliBalas0
ProbablyNothing
· 07-13 01:00
Terlalu malas, langsung panggil pustaka saja.
Lihat AsliBalas0
TeaTimeTrader
· 07-11 02:06
Tutorial Keterampilan Dasar Kontrak
Lihat AsliBalas0
FudVaccinator
· 07-11 02:04
Yang mengerti, mengerti. Memperkirakan alamat penyebaran benar-benar menarik.
Lihat AsliBalas0
HackerWhoCares
· 07-11 02:03
Lari, lari, programmer pemula datang lagi untuk belajar.
Lihat AsliBalas0
SchrodingerProfit
· 07-11 02:03
Hanya trik-trik ini... semuanya sudah sering dibicarakan.
Tujuh tips praktis pengembangan smart contract
Berbagi Tips Kecil dalam Pengembangan Kontrak
Baru-baru ini saat terlibat dalam proyek pengembangan pertukaran terdesentralisasi, saya belajar beberapa teknik pengembangan kontrak yang menarik. Teknik-teknik ini mungkin sangat menginspirasi bagi pemula yang baru mengenal pengembangan kontrak pintar.
Alamat kontrak yang dapat diprediksi
Dengan menggunakan opcode CREATE2, kita dapat menyebarkan kontrak dengan alamat yang dapat diprediksi. Metode spesifiknya adalah dengan menambahkan parameter salt saat membuat kontrak:
soliditas pool = address(new UniswapV3Pool{salt: keccak256(abi.encode(token0, token1, fee))}());
Alamat kontrak yang dihasilkan dengan cara ini dapat dihitung melalui parameter terkait, sangat berguna dalam banyak skenario.
Memanfaatkan Fungsi Callback
Dalam beberapa kasus, pola di mana kontrak A memanggil metode kontrak B, dan B kemudian memanggil kembali salah satu metode A, sangat berguna. Misalnya, di DEX, saat memanggil metode swap, akan memanggil kembali swapCallback, di mana transfer token diselesaikan dalam panggilan balik tersebut, memastikan integritas dan keamanan seluruh proses transaksi.
Menggunakan Pengecualian untuk Mengirim Informasi
Terkadang kita dapat dengan cerdik memanfaatkan try-catch untuk menangkap pengecualian tertentu untuk mendapatkan informasi. Misalnya, saat melakukan simulasi perdagangan, kita dapat menangkap pengecualian tertentu yang dilemparkan oleh metode swap untuk mendapatkan data estimasi, tanpa perlu mengubah metode swap khusus untuk itu.
Perhitungan Bilangan Besar Menjamin Akurasi
Dalam perhitungan keuangan, untuk menghindari kehilangan presisi yang disebabkan oleh operasi pembagian, nilai dapat terlebih dahulu dilakukan operasi pergeseran kiri ( setara dengan mengalikan 2^96), setelah perhitungan selesai kemudian dilakukan pergeseran kanan, sehingga dapat memastikan presisi tanpa kelebihan.
Perhitungan Pendapatan Mode Berbagi
Untuk skenario yang memerlukan alokasi keuntungan, dapat menggunakan model yang mirip dengan dividen saham. Cukup catat total keuntungan dan keuntungan yang seharusnya diterima per unit, saat pengguna menarik, cukup hitung bagian yang seharusnya diterima berdasarkan porsi mereka, menghindari pembaruan frekuent terhadap catatan keuntungan setiap pengguna.
Memanfaatkan Data Off-Chain Secara Bijak
Tidak semua data perlu disimpan di blockchain. Beberapa informasi yang tidak melibatkan logika transaksi kunci dapat disimpan di database tradisional dan diambil melalui API Web2, sehingga mengurangi biaya dan meningkatkan efisiensi.
Pembagian dan Penggunaan Kembali Kontrak
Proyek besar biasanya akan membagi kontrak menjadi beberapa modul, yang digunakan dengan menggabungkan warisan. Pada saat yang sama, juga penting untuk memanfaatkan kontrak standar yang ada, seperti ERC721, yang dapat meningkatkan efisiensi pengembangan dan kualitas kode.
Meskipun trik-trik ini kecil, tetapi sangat berguna, semoga dapat menginspirasi pengembangan kontrak pintar bagi semua orang. Untuk benar-benar menguasai trik-trik ini, cara terbaik adalah dengan berlatih secara langsung, menerapkannya dan merasakannya dalam proyek nyata.