本页目录
wallet_getPermissions
返回 dApp 当前已授权的权限。此方法不会提示用户。
参数
无
返回值
Array 权限对象数组:
| 字段 | 类型 | 说明 |
|---|---|---|
parentCapability | string | 权限名称 |
date | number | 授权时间戳 |
caveats | array | 权限限制 |
示例
const permissions = await window.$onekey.ethereum.request({
method: 'wallet_getPermissions'
})
console.log('Current permissions:', permissions)
// Check if connected
const isConnected = permissions.some(
p => p.parentCapability === 'eth_accounts'
)
console.log('Is connected:', isConnected)权限检查工具
async function checkPermissions() {
const permissions = await window.$onekey.ethereum.request({
method: 'wallet_getPermissions'
})
return {
hasAccounts: permissions.some(p => p.parentCapability === 'eth_accounts'),
permissions
}
}
const { hasAccounts } = await checkPermissions()
if (!hasAccounts) {
// Request connection
await window.$onekey.ethereum.request({
method: 'eth_requestAccounts'
})
}错误码
| 错误码 | 消息 | 说明 |
|---|---|---|
| -32603 | Internal error | Provider 错误 |
说明
- 如果没有授权任何权限,返回空数组
- 不会提示用户进行任何操作
- 适合在不触发弹窗的情况下检查连接状态
- 遵循 EIP-2255 规范
请处理目标钱包版本不支持该方法时返回的错误。账户权限与 RPC 连接状态不同,也不代表用户预先批准了签名或交易。基础账户连接使用 eth_requestAccounts。
最后更新于