本页目录
wallet_requestPermissions
请求 dApp 访问特定方法的权限。这是 EIP-2255 钱包权限系统的一部分。
参数
Array 包含一个权限请求对象:
| 字段 | 类型 | 说明 |
|---|---|---|
eth_accounts | object | 请求访问用户账户 |
返回值
Array 权限对象数组:
| 字段 | 类型 | 说明 |
|---|---|---|
parentCapability | string | 权限名称 |
date | number | 授权时间戳 |
caveats | array | 权限限制 |
示例
const permissions = await window.$onekey.ethereum.request({
method: 'wallet_requestPermissions',
params: [{ eth_accounts: {} }]
})
console.log('Granted permissions:', permissions)
// [{ parentCapability: 'eth_accounts', date: 1234567890, caveats: [...] }]检查特定权限
const permissions = await window.$onekey.ethereum.request({
method: 'wallet_requestPermissions',
params: [{ eth_accounts: {} }]
})
const hasAccountsPermission = permissions.some(
p => p.parentCapability === 'eth_accounts'
)
console.log('Has accounts permission:', hasAccountsPermission)错误码
| 错误码 | 消息 | 说明 |
|---|---|---|
| 4001 | User rejected the request | 用户拒绝权限请求 |
| -32602 | Invalid params | 权限请求无效 |
说明
- 目前仅支持
eth_accounts权限 - 如果尚未连接,调用此方法会触发连接弹窗
- 权限会持久化,直到用户撤销
- 遵循 EIP-2255 规范
请处理目标钱包版本不支持该方法时返回的错误。账户权限与 RPC 连接状态不同,也不代表用户预先批准了签名或交易。基础账户连接使用 eth_requestAccounts。
最后更新于