跳到主要内容

EIP-2255: Wallet Permissions System

该提案添加了两个新的钱包 RPC 方法 wallet_getPermissionswallet_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'
})