用户切错网络时,产品应该尽早阻止,而不是等签完名再报错
DuskEVM有明确网络身份,测试网Chain ID 745,其他环境也有不同ID。对开发者这只是一个配置项,对普通用户却是一个高频错误源。他可能上一秒还在另一条EVM链上,下一秒就在Dusk应用中点击了提交,而钱包弹窗的外观几乎一样。
好产品会在读取钱包后立即比较Chain ID,把页面变成不可操作状态,并清楚告诉用户将切换到哪个网络。它不应该先让用户填完表单、批准Token、签完一串消息,最后才用RPC Error说“网络不对”。错误越早被截断,代价越小。
更细的测试包括用户拒绝切换、钱包不认识网络、切换过程中改账户,以及页面缓存了上一个账户的余额。应用必须响应钱包的Network与Account变化,及时清除旧报价和旧资格。否则页面看起来还在继续,业务上已换了人。
@Dusk_Foundation 的Dusk Connect会发现兼容钱包并感知状态变化,$DUSK #dusk 应用层要做的是把这些信号变成安全交互。我判断一个Web3产品是否成熟,往往就看它怎么处理用户不按标准脚本行动。
DuskEVM有明确网络身份,测试网Chain ID 745,其他环境也有不同ID。对开发者这只是一个配置项,对普通用户却是一个高频错误源。他可能上一秒还在另一条EVM链上,下一秒就在Dusk应用中点击了提交,而钱包弹窗的外观几乎一样。
好产品会在读取钱包后立即比较Chain ID,把页面变成不可操作状态,并清楚告诉用户将切换到哪个网络。它不应该先让用户填完表单、批准Token、签完一串消息,最后才用RPC Error说“网络不对”。错误越早被截断,代价越小。
更细的测试包括用户拒绝切换、钱包不认识网络、切换过程中改账户,以及页面缓存了上一个账户的余额。应用必须响应钱包的Network与Account变化,及时清除旧报价和旧资格。否则页面看起来还在继续,业务上已换了人。
@Dusk_Foundation 的Dusk Connect会发现兼容钱包并感知状态变化,$DUSK #dusk 应用层要做的是把这些信号变成安全交互。我判断一个Web3产品是否成熟,往往就看它怎么处理用户不按标准脚本行动。