连接浏览器插件钱包

Provider API#

什么是 Injected provider API?#

欧易 Injected providers API 是一个 JavaScript API,欧易将其注入用户访问的网站。您的 DApp 可以使用此 API 请求用户帐户,从用户连接的区块链读取数据,帮助用户签署消息和交易。

Note: Cosmos 接入仅支持欧易 Web3 钱包插件端。

连接账户#

#window.okxwallet.keplr.enable(chainIds)

描述

如果插件当前被锁定,window.keplr.enable(chainIds)方法请求解锁插件。如果用户未授予该网页的权限,它将要求用户授予该网页访问 Keplr 的权限。 enable 方法可以接收一个或多个链id作为数组。当传递链id数组时,你可以同时请求尚未授权的所有链的权限。 如果用户取消解锁或拒绝权限,将抛出错误。

enable(chainIds: string | string[]): Promise<void>

例子

codeopen中打开。

<button class="connectCosmosButton">Connect Cosmos</button>

签名交易#

#window.okxwallet.keplr.signAmino(chainId, signer, signDoc)

描述

按照固定格式签名,类似 cosmjs 的 OfflineSigner 的 signAmino 方法

参数就是对象,signDoc 就是一个固定格式

window.okxwallet.keplr.signAmino(chainId: string, signer: string, signDoc: StdSignDoc, signOptions: any): Promise<AminoSignResponse>

例子

codeopen中打开。

<button class="connectCosmosButton btn">Connect Cosmos</button>
<button class="signTransactionButton btn">Sign Transaction</button>

签名信息#

#window.okxwallet.keplr.signArbitrary(chainId, signer, data)

描述

签名任意信息,相当于之前几个链的 signMessage(any)

signArbitrary(
    chainId: string,
    signer: string,
    data: string | Uint8Array
): Promise<StdSignature>;
verifyArbitrary(
    chainId: string,
    signer: string,
    data: string | Uint8Array,
    signature: StdSignature
): Promise<boolean>;

例子

codeopen中打开。

<button class="connectCosmosButton btn">Connect Cosmos</button>
<button class="signMessageButton btn">Sign Message</button>

事件#

成功连接

连接到欧易 Web3 钱包可以通过调用 window.okxwallet.keplr.enable(chainId)。 当用户接受连接请求时,会触发连接事件。

用法

window.okxwallet.keplr.on("connect", () => console.log("connected!"));

例子

codeopen中打开。

<button class="connectCosmosButton">Connect Cosmos</button>