欧易 Injected providers API 是一个 JavaScript API,欧易将其注入用户访问的网站。您的 DApp 可以使用此 API 请求用户帐户,从用户连接的区块链读取数据,帮助用户签署消息和交易。
Dapp 可以通过两种方式访问注入的对象,分别是:
window.okxwallet.cardano
window.cardano.okxwallet
这两个属性都指向同一个对象,提供两个方式是为了方便 Dapp 使用。
name
- string: 钱包的名称,值为 'OKX Wallet'icon
- string: 钱包的图标apiVersion
- string: 版本号isEnabled
- () => Promise<bool>: 返回当前钱包是否已经链接上 Dapp 。如果 Dapp 已经链接到用户的钱包,则返回 true ,否则返回 false 。如果此函数返回 true ,则后续调用 wallet.enable() 时都会成功并且返回 API 对象。enable
- () => Promise<API>: 该用法用于链接钱包,如果用户同意了链接钱包,则会将 API 对象返回给 Dapp 。try {
const okxwalletCardanoApi = await window.okxwallet.cardano.enable();
} catch (error) {
console.log(error);
}
api.getNetworkId(): Promise<number>
描述
返回当前连接的帐户的网络 Id 。
返回值
networkId
- string: 当前连接的帐户的网络 Id 。const okxwalletCardanoApi = await window.okxwallet.cardano.enable();
const networkId = await okxwalletCardanoApi.getNetworkId();
api.getUtxos(amount: cbor<value> = undefined): Promise<TransactionUnspentOutput[] | undefined>
描述
如果 amount 没有定义,则返回由钱包控制的所有 UTXO (未花费的交易输出)列表。 如果 amount 定义了,则返回达到 amount 中指定的 ADA /多资产价值目标所需的 UTXO ,如果无法达到,则返回 null 。
返回值
utxos
- string[]: UTXO 列表。const okxwalletCardanoApi = await window.okxwallet.cardano.enable();
const utxos = await okxwalletCardanoApi.getUtxos();
api.getBalance(): Promise<cbor<value>>
描述
返回钱包可用的总余额。这与 api.getUtxos() 返回的结果相加是一样的。
返回值
balance
- string: 钱包可用的总余额const okxwalletCardanoApi = await window.okxwallet.cardano.enable();
const utxos = await okxwalletCardanoApi.getBalance();
api.getUsedAddresses(): Promise<cbor<address>[]>
描述
返回所有由钱包控制的已使用地址(包括在某些链上交易中)的列表。
返回值
addresses
- string[]: 已使用的地址列表。const okxwalletCardanoApi = await window.okxwallet.cardano.enable();
const utxos = await okxwalletCardanoApi.getUsedAddresses();
api.getUnusedAddresses(): Promise<cbor<address>[]>
描述
返回由钱包控制的未使用地址列表。
返回值
addresses
- string[]: 未使用的地址列表。const okxwalletCardanoApi = await window.okxwallet.cardano.enable();
const utxos = await okxwalletCardanoApi.getUnusedAddresses();
api.getChangeAddress(): Promise<cbor<address>>
描述
返回钱包组装交易时,需要使用到的找零地址。
返回值
changeAddress
- string: 找零地址.const okxwalletCardanoApi = await window.okxwallet.cardano.enable();
const utxos = await okxwalletCardanoApi.getChangeAddress();
api.signTx(tx: cbor<transaction>): Promise<cbor<transaction_witness_set>>
描述
请求用户对交易进行签名,如果用户同意,则尝试对交易进行签名,并返回签名的交易。
返回值
signedTx
- string: 签名的交易。const okxwalletCardanoApi = await window.okxwallet.cardano.enable();
const rawTransaction = '';
const result = await okxwalletCardanoApi.signedTx(rawTransaction);
api.signData: (addr: Cbor<address>, payload: HexString) => Promise<DataSignature>
描述
签名消息。 阅读更多关于 CIP-0030 的消息签名规范。(https://github.com/cardano-foundation/CIPs/tree/master/CIP-0030).
返回值
dataSignature
- object
const okxwalletCardanoApi = await window.okxwallet.cardano.enable();
const addresses = await okxwalletCardanoApi.getUsedAddresses();
const payload = '';
const result = await okxwalletCardanoApi.signedData(addresses[0], payload);
api.submitTx(tx: cbor<transaction>): Promise<hash32>
描述
广播交易,并返回给 Dapp 交易哈希以便 Dapp 追踪这笔交易。
返回值
txHash
- string: 交易哈希。const okxwalletCardanoApi = await window.okxwallet.cardano.enable();
const transaction = '';
const result = await okxwalletCardanoApi.submitTx(transaction);