Jika Anda ingin membangun produk liquid staking pada @Dusk , hal pertama yang Anda pelajari adalah bahwa pendekatan yang terlihat jelas ternyata tidak berhasil.
Staker dari sebuah wallet memanggil stake. Sebuah kontrak tidak bisa. stake_from_contract menolak untuk dipanggil secara langsung — ia memvalidasi bahwa ia diakses sebagai bagian dari pemindahan dana. Jadi polanya adalah: pindahkan dana ke dalam kontrak Anda, lalu lakukan transfer kontrak-ke-kontrak ke kontrak stake, dengan menyebutkan fungsi yang Anda inginkan sebagai bagian dari transfer itu sendiri.
Uang dan instruksi berjalan bersama, atau tidak ada yang terjadi.
Itu adalah pilihan desain yang disengaja, dan saya mulai menyukainya. Ini menghilangkan satu kelas bug di mana sebuah kontrak mengklaim melakukan staking atas nilai yang sebenarnya tidak pernah benar-benar dipindahkan. Transfer adalah otorisasi.
Bagian kedua adalah hal yang sering diremehkan oleh pembuat. Kontrak Anda harus mengimplementasikan callback — satu untuk menerima dana yang dilepas (unstaked), dan satu untuk menerima rewards. Dusk tidak mendorong nilai ke Anda lalu berharap. Ia mengembalikannya melalui sebuah fungsi yang diwajibkan untuk Anda tulis. Lupakan satu, dan Anda telah membangun sebuah pool yang bisa menerima deposit tetapi tidak bisa mengembalikannya.
Dua batasan yang patut diketahui sebelum Anda mulai: minimum 1,000 $DUSK berlaku untuk kontrak persis seperti untuk orang, dan stake menjadi aktif setelah periode jatuh tempo.
Catatan kejujuran kecil: saat jatuh tempo, dokumen memberi saya dua kerangka yang berbeda di dua tempat — satu halaman mengatakan 4,320 blok, kira-kira 12 jam; halaman lainnya menjelaskan aktivasi pada batas epoch. Keduanya mungkin sedang menggambarkan hal yang sama dari sudut pandang yang berbeda. Jika Anda membangunnya di sekitar itu, konfirmasikan di testnet alih-alih mempercayai salah satu halaman saja.
Saat ini, halaman ekosistem mencantumkan tepat satu staking pool yang dibangun dengan cara ini.
Para pembuat — apakah memaksa nilai dan instruksi masuk ke satu perpindahan atomik membuat hidup Anda lebih aman, atau hanya lebih lambat?
#dusk
Staker dari sebuah wallet memanggil stake. Sebuah kontrak tidak bisa. stake_from_contract menolak untuk dipanggil secara langsung — ia memvalidasi bahwa ia diakses sebagai bagian dari pemindahan dana. Jadi polanya adalah: pindahkan dana ke dalam kontrak Anda, lalu lakukan transfer kontrak-ke-kontrak ke kontrak stake, dengan menyebutkan fungsi yang Anda inginkan sebagai bagian dari transfer itu sendiri.
Uang dan instruksi berjalan bersama, atau tidak ada yang terjadi.
Itu adalah pilihan desain yang disengaja, dan saya mulai menyukainya. Ini menghilangkan satu kelas bug di mana sebuah kontrak mengklaim melakukan staking atas nilai yang sebenarnya tidak pernah benar-benar dipindahkan. Transfer adalah otorisasi.
Bagian kedua adalah hal yang sering diremehkan oleh pembuat. Kontrak Anda harus mengimplementasikan callback — satu untuk menerima dana yang dilepas (unstaked), dan satu untuk menerima rewards. Dusk tidak mendorong nilai ke Anda lalu berharap. Ia mengembalikannya melalui sebuah fungsi yang diwajibkan untuk Anda tulis. Lupakan satu, dan Anda telah membangun sebuah pool yang bisa menerima deposit tetapi tidak bisa mengembalikannya.
Dua batasan yang patut diketahui sebelum Anda mulai: minimum 1,000 $DUSK berlaku untuk kontrak persis seperti untuk orang, dan stake menjadi aktif setelah periode jatuh tempo.
Catatan kejujuran kecil: saat jatuh tempo, dokumen memberi saya dua kerangka yang berbeda di dua tempat — satu halaman mengatakan 4,320 blok, kira-kira 12 jam; halaman lainnya menjelaskan aktivasi pada batas epoch. Keduanya mungkin sedang menggambarkan hal yang sama dari sudut pandang yang berbeda. Jika Anda membangunnya di sekitar itu, konfirmasikan di testnet alih-alih mempercayai salah satu halaman saja.
Saat ini, halaman ekosistem mencantumkan tepat satu staking pool yang dibangun dengan cara ini.
Para pembuat — apakah memaksa nilai dan instruksi masuk ke satu perpindahan atomik membuat hidup Anda lebih aman, atau hanya lebih lambat?
#dusk