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中打开。
HTML
JavaScript
<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中打开。
HTML
JavaScript
<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中打开。
HTML
JavaScript
<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中打开。
HTML
JavaScript
<button class="connectCosmosButton">Connect Cosmos</button>