Saya bisa memasang dua wallet Dusk dan membuat transfer DUSK yang valid keluar dari yang salah tanpa error chain.
Risikonya dimulai sebelum penandatanganan. Penemuan wallet Dusk berbasis peristiwa, bukan berbasis singleton. Sebuah dApp mengirim dusk:requestProvider, setiap wallet yang kompatibel dapat menjawab dengan dusk:announceProvider, dan setiap provider membawa uuid stabil dan status profilnya sendiri.
Jika saya hanya menyimpan providers[0] dan memanggil dusk_requestProfiles, saya telah mengubah urutan announcement menjadi pemilihan wallet. Transaksinya tetap bisa sangat valid. Provider yang salah membuka approval, profil yang salah menyediakan akun, dan dusk_sendTransaction menandatangani dari wallet tersebut.
Itulah sebabnya saya tidak akan pernah menganggap “ada provider Dusk” sebagai cukup. Jika lebih dari satu provider tersedia, saya ingin pengguna memilih wallet berdasarkan identitas yang diumumkan, menyimpan uuid tersebut, lalu mengikat profil yang terlihat dan akun ke provider yang dipilih sebelum saya menampilkan persetujuan transfer apa pun.
Konsekuensinya bukan transaksi gagal. Justru lebih buruk karena semuanya berjalan.
Di Dusk, penemuan provider memberi tahu saya wallet mana yang ada. Itu tidak memberi tahu wallet mana yang dimaksud pengguna untuk menghabiskan dana.
#dusk $DUSK @Dusk