EIP-2255: Wallet Permissions System
该提案添加了两个新的钱包 RPC 方法 wallet_getPermissions
和 wallet_requestPermissions
,提供了用于请求和检查权限的标准接口。
钱包总是提示用户进行每一个操作,虽然提供了安全性,但代价是大量的用户交互。而单个权限请求可以实现相同级别的安全性,同时大大改进用户体验。
在 dapp
中交互总是重复请求, 例如
- 连接钱包地址
- 切换网络
- 发送交易
新增的 RPC 方法wallet_requestPermissions
可用于添加权限,参数为:
interface PermissionRequest {
[methodName: string]: {
[caveatName: string]: any
}
}
// 批准账户 signTypedData_v3 权限,并返回返回权限对象
provider.request({
method: 'requestPermissions',
params: [
{
eth_accounts: {
requiredMethods: ['signTypedData_v3']
}
}
]
})
获取权限
provider.request({
method: 'getPermissions'
})