Skip to Content
dApp 接入

API 参考

OneKey Cosmos provider 的方法和类型参考。


方法

方法说明
enable(chainIds)请求访问指定链;成功时不返回值
disable(chainIds)停用指定链
disconnect()断开与所有链的连接
getKey(chainId)获取指定链的账户密钥信息
signAmino(chainId, signer, signDoc)签署 Amino 编码的交易
signDirect(chainId, signer, signDoc)签署 Protobuf 编码的交易
sendTx(chainId, tx, mode)广播已签名交易
signArbitrary(chainId, signer, data)签署消息
verifyArbitrary(chainId, signer, data, signature)验证签名
signEthereum(chainId, signer, data, type)签署 Ethereum 数据
experimentalSuggestChain(chainInfo)请求添加自定义链
getOfflineSigner(chainId)获取 Direct 离线签名器
getOfflineSignerOnlyAmino(chainId)获取仅支持 Amino 的离线签名器
getOfflineSignerAuto(chainId)自动选择签名器类型
getChainInfosWithoutEndpoints()获取所有链信息
getChainInfoWithoutEndpoints(chainId)获取指定链信息
ping()检查连接
babylonConnectWallet()连接 Babylon 钱包
babylonGetKey()获取 Babylon 钱包密钥信息

Key 接口

interface Key { name: string // Human-readable name algo: string // Signing algorithm pubKey: Uint8Array // Public key bytes address: Uint8Array // Address bytes bech32Address: string // Bech32 formatted address isNanoLedger: boolean // Ledger compatibility flag isKeystone: boolean // True if Keystone hardware }

签名文档类型

Amino 签名文档

interface StdSignDoc { chain_id: string account_number: string sequence: string fee: { amount: { denom: string; amount: string }[] gas: string } msgs: { type: string value: any }[] memo: string }

Direct 签名文档

interface DirectSignDoc { bodyBytes: Uint8Array | null authInfoBytes: Uint8Array | null chainId: string | null accountNumber: Long | null }

签名响应类型

interface AminoSignResponse { signed: StdSignDoc signature: StdSignature } interface DirectSignResponse { signed: DirectSignDoc signature: StdSignature } interface StdSignature { pub_key: { type: string value: string // Base64 encoded } signature: string // Base64 encoded }

广播模式

模式描述
block等待区块确认
sync等待 CheckTx
async立即返回

支持的链

链Chain ID钱包可用性
Cosmos Hubcosmoshub-4在目标钱包中验证
Osmosisosmosis-1在目标钱包中验证
Junojuno-1在目标钱包中验证
Stargazestargaze-1在目标钱包中验证
Akashakashnet-2在目标钱包中验证
Secret Networksecret-4在目标钱包中验证
Evmosevmos_9001-2在目标钱包中验证
Injectiveinjective-1在目标钱包中验证
自定义链由链定义通过 experimentalSuggestChain 请求添加;不保证钱包接受

事件

事件描述
keplr_keystorechange账户或密钥已更改
connect已连接到链
disconnect已断开连接
// Listen for keystore changes window.addEventListener('keplr_keystorechange', () => { console.log('Key changed, refresh account info') })

错误码

错误码描述
4001用户拒绝请求
4100未授权
-32603内部错误
最后更新于