Puedo tener dos billeteras Dusk instaladas y hacer que una transferencia válida de DUSK salga de la incorrecta sin ningún error de cadena.
El riesgo comienza antes de firmar. El descubrimiento de la billetera Dusk es basado en eventos, no en singleton. Una dApp envía dusk:requestProvider; cada billetera compatible puede responder con dusk:announceProvider, y cada proveedor lleva su propio uuid estable y estado de perfil.
Si solo conservo providers[0] y llamo a dusk_requestProfiles, he convertido el orden de los anuncios en una selección de billetera. La transacción aún puede ser perfectamente válida. El proveedor equivocado abre la aprobación, el perfil equivocado proporciona la cuenta y dusk_sendTransaction firma desde esa billetera.
Por eso nunca trataría “existe un proveedor de Dusk” como algo suficiente. Cuando hay más de un proveedor disponible, quiero que el usuario elija la billetera por su identidad anunciada, persista ese uuid y luego vincule el perfil y la cuenta visibles con ese proveedor seleccionado antes de mostrar cualquier aprobación de transferencia.
La consecuencia no es una transacción fallida. Es peor porque todo funciona.
En Dusk, el descubrimiento del proveedor me dice qué billeteras están presentes. No me dice qué billetera quiso el usuario para gastar.
#dusk $DUSK @Dusk
El riesgo comienza antes de firmar. El descubrimiento de la billetera Dusk es basado en eventos, no en singleton. Una dApp envía dusk:requestProvider; cada billetera compatible puede responder con dusk:announceProvider, y cada proveedor lleva su propio uuid estable y estado de perfil.
Si solo conservo providers[0] y llamo a dusk_requestProfiles, he convertido el orden de los anuncios en una selección de billetera. La transacción aún puede ser perfectamente válida. El proveedor equivocado abre la aprobación, el perfil equivocado proporciona la cuenta y dusk_sendTransaction firma desde esa billetera.
Por eso nunca trataría “existe un proveedor de Dusk” como algo suficiente. Cuando hay más de un proveedor disponible, quiero que el usuario elija la billetera por su identidad anunciada, persista ese uuid y luego vincule el perfil y la cuenta visibles con ese proveedor seleccionado antes de mostrar cualquier aprobación de transferencia.
La consecuencia no es una transacción fallida. Es peor porque todo funciona.
En Dusk, el descubrimiento del proveedor me dice qué billeteras están presentes. No me dice qué billetera quiso el usuario para gastar.
#dusk $DUSK @Dusk
