接入钱包
Provider API

Provider API#

什么是 Injected provider API?#

OKX Injected Providers API 基于 JavaScript 模型,由 OKX 嵌入用户访问网站中。DApp 项目可以通过调用此 API 请求用户账户信息,从用户所连接的区块链中读取数据,并协助用户进行消息和交易的签署。

connect#

okxwallet.bitcoin.connect()

描述

连接钱包

参数

返回值

  • Promise - object
    • address - string:当前账户的地址
    • publicKey - string:当前账户的公钥

示例

const result = await okxwallet.bitcoin.connect()
// example
{
  address: 'bc1pwqye6x35g2n6xpwalywhpsvsu39k3l6086cvdgqazlw9mz2meansz9knaq',
  publicKey: '4a627f388196639041ce226c0229560127ef9a5a39d4885123cd82dc82d8b497'
}

requestAccounts#

此字段仅适用于插件端版本 2.77.1 或更高。

okxwallet.bitcoin.requestAccounts()

描述

请求连接当前账户

参数

返回值

  • Promise - string[]:当前账户的地址

示例

try {
  let accounts = await okxwallet.bitcoin.requestAccounts();
  console.log('connect success', accounts);
} catch (e) {
  console.log('connect failed');
}
// example
['tb1qrn7tvhdf6wnh790384ahj56u0xaa0kqgautnnz'];

getAccounts#

此字段仅适用于插件端版本 2.77.1 或更高。

okxwallet.bitcoin.getAccounts()

描述

获取当前账户地址

参数

返回值

  • Promise - string[]:当前账户地址

示例

try {
  let res = await okxwallet.bitcoin.getAccounts();
  console.log(res);
} catch (e) {
  console.log(e);
}
// example
['tb1qrn7tvhdf6wnh790384ahj56u0xaa0kqgautnnz'];

getNetwork#

注意
  • 不支持测试网络。
  • 此字段仅适用于插件端版本 2.77.1 或更高。

okxwallet.bitcoin.getNetwork()

描述

获取网络

参数

返回值

  • Promise - string:网络

示例

try {
  let res = await okxwallet.bitcoin.getNetwork();
  console.log(res);
} catch (e) {
  console.log(e);
}
// example
livenet;

getPublicKey#

此字段仅适用于插件端版本 2.77.1 或更高。

okxwallet.bitcoin.getPublicKey()

描述

获取当前账户的公钥

参数

返回值

  • Promise - string:公钥

示例

try {
  let res = await okxwallet.bitcoin.getPublicKey();
  console.log(res)
} catch (e) {
  console.log(e);
}
// example
03cbaedc26f03fd3ba02fc936f338e980c9e2172c5e23128877ed46827e935296f

getBalance#

此字段仅适用于移动端版本 6.51.0 或更高以及插件端版本 2.77.1 或更高。

okxwallet.bitcoin.getBalance()

描述

获取 BTC 余额

参数

返回值

  • Promise - object:
    • confirmed - number:已确认的聪数量
    • unconfirmed - number:未经确认的聪数量
    • total - number:总聪量

示例

try {
  let res = await okxwallet.bitcoin.getBalance();
  console.log(res)
} catch (e) {
  console.log(e);
}
// example
{
  "confirmed":0,
  "unconfirmed":100000,
  "total":100000
}

getInscriptions#

此字段仅适用于移动端版本 6.51.0 或更高以及插件端版本 2.77.1 或更高。

okxwallet.bitcoin.getInscriptions()

描述

获取当前账户的铭文列表

参数

  • cursor - number: (可选) 偏移量,从 0 开始,默认值是 0
  • size - number: (可选) 每页的数量,默认值是 20

返回值

  • Promise - object:
    • total - number:总数
    • list - object[]:
      • inscriptionId - string:铭文 ID
      • inscriptionNumber - string: 铭文编号
      • address - string:铭文地址
      • outputValue - string:铭文的输出值
      • contentLength - string:铭文的内容长度
      • contentType - number:铭文的内容类型
      • timestamp - number:铭文的区块时间
      • offset - number:铭文的偏移量
      • output - string:当前铭文所在 UTXO 的标识
      • genesisTransaction - string:创世交易的交易 ID
      • location - string:当前位置的 txid 和 vout
目前仅移动端版本不支持以上字段:inscriptionNumber、contentLength、contentType、timestamp、genesisTransaction。

示例

try {
  let res = await okxwallet.bitcoin.getInscriptions(0, 20);
  console.log(res)
} catch (e) {
  console.log(e);
}
// example
{
  "total":10,
  "list":[
    {
      inscriptionId: '6037b17df2f48cf87f6b6e6ff89af416f6f21dd3d3bc9f1832fb1ff560037531i0',
      inscriptionNumber: 55878989,
      address: 'bc1q8h8s4zd9y0lkrx334aqnj4ykqs220ss735a3gh',
      outputValue: 546,
      contentLength: 53,
      contentType: 'text/plain',
      timestamp: 1705406294,
      location: '6037b17df2f48cf87f6b6e6ff89af416f6f21dd3d3bc9f1832fb1ff560037531:0:0',
      output: '6037b17df2f48cf87f6b6e6ff89af416f6f21dd3d3bc9f1832fb1ff560037531:0',
      offset: 0,
      genesisTransaction: '02c9eae52923fdb21fe16ee9eb873c7d66fe412a61b75147451d8a47d089def4'
    }
  ]
}

sendBitcoin#

此字段仅适用于插件端版本 2.77.1 或更高。

okxwallet.bitcoin.sendBitcoin(toAddress, satoshis, options)

描述

发送比特币

参数

  • toAddress - string:发送地址
  • satoshis - number:1. 发送的聪数量
  • options - object: (可选)
    • feeRate - number:网络资费率

返回值

  • Promise- string:交易哈希

示例

try {
  let txid = await okxwallet.bitcoin.sendBitcoin(
    'tb1qrn7tvhdf6wnh790384ahj56u0xaa0kqgautnnz',
    1000
  );
  console.log(txid);
} catch (e) {
  console.log(e);
}

send#

okxwallet.bitcoin.send({ from, to, value, satBytes })

描述

转移比特币 (支持 memo 字段)

参数

  • from - string:当前连接的钱包的 BTC 地址
  • to - string:接受 BTC 的地址
  • value - string:发送 BTC 的数量
  • satBytes - string: (可选) 自定义费率
  • memo - string: (可选) 指定 outputs OP_RETURN 内容 示例
  • memoPos - number: (可选) 指定 outputs OP_RETURN 输出位置,如果传了 memo 则必须传入 memoPos 指定位置,否则 memo 不生效

返回值

  • Promise - object
    • txhash:交易哈希

示例

const result = await window.okxwallet.bitcoin.send({
  from: 'bc1p4k9ghlrynzuum080a4zk6e2my8kjzfhptr5747afzrn7xmmdtj6sgrhd0m',
  to: 'bc1plklsxq4wtv44dv8nm49fj0gh0zm9zxewm6ayzahrxc8yqtennc2s9udmcd',
  value: '0.000012',
});

// example
{
  txhash: 'd153136cd74512b69d24c68b2d2c715c3629e607540c3f6cd3acc1140ca9bf57';
}

sendInscription#

此字段仅适用于移动端版本 6.51.0 或更高以及插件端版本 2.77.1 或更高。此外,移动端版本的 Atomicals 协议目前暂不支持此字段。

okxwallet.bitcoin.sendInscription(address, inscriptionId, options)

描述

发送铭文

参数

  • address - string:接收者地址

  • inscriptionId - string:铭文 ID + 协议,没有传协议则默认是 Ordinals NFT ,目前仅支持 Ordinals 及 Atomicals 协议

    协议描述
    OrdinalsOrdinals 协议
    AtomicalsAtomicals 协议
  • options - object: (可选)

    • feeRate - number:自定义费率

返回值

  • Promise - string:交易哈希

示例

// 发送 Ordinals NFT
try {
  let txid = await okxwallet.bitcoin.sendInscription(
    'tb1q8h8s4zd9y0lkrx334aqnj4ykqs220ss7mjxzny',
    'e9b86a063d78cc8a1ed17d291703bcc95bcd521e087ab0c7f1621c9c607def1ai0',
    { feeRate: 15 }
  );
  console.log(
    'send Ordinal NFT to tb1q8h8s4zd9y0lkrx334aqnj4ykqs220ss7mjxzny',
    { txid }
  );
} catch (e) {
  console.log(e);
}
// 发送 Atomicals NFT
try {
  let txid = await okxwallet.bitcoin.sendInscription(
    'tb1q8h8s4zd9y0lkrx334aqnj4ykqs220ss7mjxzny',
    'ab12349dca49643fcc55c8e6a685ad0481047139c5b1af5af85387973fc7ceafi0-Atomicals',
    { feeRate: 15 }
  );
  console.log(
    'send Atomicals NFT to tb1q8h8s4zd9y0lkrx334aqnj4ykqs220ss7mjxzny',
    { txid }
  );
} catch (e) {
  console.log(e);
}

transferNft#

此字段当前仅适用于插件端版本,不适用于移动端版本。

okxwallet.bitcoin.transferNft({ from, to, data })

描述

发送铭文

与 sendInscription 方法的不同点

transferNft 方法支持批量转移,sendInscription 方法只支持单个转移

参数

  • from - string:当前连接的钱包的 BTC 地址

  • to - string:接受 NFT 的地址

  • data - string | string[]:发送的 NFT tokenId + 协议,如果是数组,则是批量转移多个 NFT , 没有传协议则默认是 Ordinals NFT ,目前仅支持 Ordinals 及 Atomicals 协议

    协议描述
    OrdinalsOrdinals 协议
    AtomicalsAtomicals 协议

返回值

  • Promise - object
    • txhash - string:交易哈希

示例

// 发送 Ordinals NFT
try {
  let res = await window.okxwallet.bitcoin.transferNft({
    from: 'bc1p8qfrmxdlmynr076uu28vlszxavwujwe7dus0r8y9thrnp5lgfh6qu2ctrr',
    to: 'bc1p8qfrmxdlmynr076uu28vlszxavwujwe7dus0r8y9thrnp5lgfh6qu2ctrr',
    data: [
      '2f285ba4c457c98c35dcb008114b96cee7c957f00a6993690efb231f91ccc2d9i0-Ordinals',
      '2f2532f59d6e46931bc84e496cc6b45f87966b149b85ed3199265cb845550d58i0-Ordinals',
    ],
  });
  console.log(res);
} catch (e) {
  console.log(e);
}
// example
{
  txhash: 'df409c3ce3c4d7d840b681fab8a3a5b8e32b1600636cc5409d84d2c06365a5fc';
}
// 发送 Atomicals NFT
try {
  let res = await window.okxwallet.bitcoin.transferNft({
    from: 'bc1p8qfrmxdlmynr076uu28vlszxavwujwe7dus0r8y9thrnp5lgfh6qu2ctrr',
    to: 'bc1p8qfrmxdlmynr076uu28vlszxavwujwe7dus0r8y9thrnp5lgfh6qu2ctrr',
    data: [
      'ab12349dca49643fcc55c8e6a685ad0481047139c5b1af5af85387973fc7ceafi0-Atomicals',
    ],
  });
  console.log(res);
} catch (e) {
  console.log(e);
}
// example
{
  txhash: 'df409c3ce3c4d7d840b681fab8a3a5b8e32b1600636cc5409d84d2c06365a5fc';
}

signMessage#

okxwallet.bitcoin.signMessage(signStr[, type])

描述

签名消息

参数

  • signStr - string:需要签名的数据
  • type - string: (可选) "ecdsa" | "bip322-simple",默认值是 "ecdsa"。(请注意:版本低于 6.51.0 的应用仅支持“ecdsa”签名算法,而版本为 6.51.0 或更高的应用可支持所有签名算法类型。)

返回值

  • Promise - string:签名结果

示例

const signStr = 'need sign string';
const result = await window.okxwallet.bitcoin.signMessage(signStr, 'ecdsa')
// example
INg2ZeG8b6GsiYLiWeQQpvmfFHqCt3zC6ocdlN9ZRQLhSFZdGhgYWF8ipar1wqJtYufxzSYiZm5kdlAcnxgZWQU=

pushTx#

此字段仅适用于移动端版本 6.51.0 或更高以及插件端版本 2.77.1 或更高。

okxwallet.bitcoin.pushTx(rawTx)

描述

推送交易

参数

  • rawTx - string:上链的原始交易

返回值

  • Promise - string:交易哈希

示例

try {
  let txid = await okxwallet.bitcoin.pushTx('0200000000010135bd7d...');
  console.log(txid);
} catch (e) {
  console.log(e);
}

splitUtxo#

此字段当前仅适用于插件端版本,不适用于移动端版本。

okxwallet.bitcoin.splitUtxo({ from, amount })

描述

拆分 UTXO,初始化钱包

拆分是因为签名算法需要

split utxo

参数

  • object
    • from - string:当前连接的钱包的 BTC 地址
    • amount - number: (可选) 拆分的数量,默认值是 2

返回值

  • Promise - {utxos: array}: UTXO 和签名

示例

try {
  let { utxos } = await window.okxwallet.bitcoin.splitUtxo({
    from: 'bc1pkrym02ck30phct287l0rktjjjnapavkl2qhsy78aeeeuk3qaaulqh90v6s',
  });
  console.log(utxos);
} catch (e) {
  console.log(e);
}
// example
{
  utxos: [
    {
      txId: '1e0f92720ef34ab75eefc5d691b551fb2f783eac61503a69cdf63eb7305d2306',
      vOut: 0,
      amount: 546,
      rawTransaction: 'xxxx',
    },
    {
      txId: '1e0f92720ef34ab75eefc5d691b551fb2f783eac61503a69cdf63eb7305d2306',
      vOut: 1,
      amount: 546,
      rawTransaction: 'xxxx',
    },
  ];
}

inscribe#

此字段当前仅适用于插件端版本,不适用于移动端版本。

okxwallet.bitcoin.inscribe({ type, from, tick, tid })

描述

铭刻可转移的 BRC-20 / BRC20-S

参数

  • type - number:交易类型,详情见下表

    类型描述
    51默认值,BRC-20 的转移铭刻
    58BRC20-S 的转移铭刻
  • from - string:当前连接的钱包的 BTC 地址

  • tick - string:BRC-20 / BRC20-S 的代币名称 (来自于链上)

  • tid - string:BRC20-S 代币的唯一标识。如果是 BRC-20 代币,则无需传入该参数

返回值

  • Promise - string:揭示交易的哈希

示例

try {
  let txid = await okxwallet.bitcoin.inscribe({
    from: 'bc1pkrym02ck30phct287l0rktjjjnapavkl2qhsy78aeeeuk3qaaulqh90v6s',
    tick: 'ordi',
  });
  console.log(txid);
} catch (e) {
  console.log(e);
}

mint#

此字段当前仅适用于插件端版本,不适用于移动端版本。

okxwallet.bitcoin.mint({ type, from, inscriptions })

描述

支持 Ordinal 协议的通用铭刻,支持批量铭刻

参数

  • type - number:要发送的铭刻交易类型,详情见下表

    类型描述
    60BRC-20 deploy 铭刻
    50BRC-20 mint 铭刻
    51BRC-20 transfer 铭刻
    62图片铭刻,需要将图片转换为图片字节流的 16 进制字符串表示
    61纯文本
    36BRC20-S deploy 铭刻
    33BRC20-S stake 铭刻
    34BRC20-S unstake 铭刻
    35BRC20-S claim 铭刻
    58BRC20-S transfer 铭刻
  • from - string:当前连接钱包的 BTC 地址

  • inscriptions - object[]:铭刻的数组。单个数组项是对象类型,其拥有的字段及其含义,如下表所示:

    字段类型默认值描述
    contentTypestring"text/plain;charset=utf-8"所铭刻内容的类型, MIME 类型的值,Ordinals 协议规定,详情可查看:https://docs.ordinals.com/inscriptions.html
    bodystring所铭刻的内容

    不同铭刻类型传入的 contentType 和 body 入参:

    铭刻类型contentTypebody
    图片铭刻"image/png" 、"image/jpeg" 等需要将图片转换为图片字节流的 16 进制字符串表示
    BRC-20 、 BRC20-S"text/plain;charset=utf-8"通过 JSON.stringify 转换为字符串即可
    纯文本"text/plain;charset=utf-8"直接传入纯文本即可

返回值

  • Promise - object,其拥有的字段及其含义,如下所示:
    • commitTx - string:铭刻时,commit 交易的哈希值
    • revealTxs - string[]:铭刻时,reveal 交易的哈希值。如果是批量铭刻,则分别对应于 reveal 交易的哈希值
    • commitTxFee - number:commit 交易花费的网络费用
    • revealTxFees - number[]:reveal 交易花费的网络费用。如果是批量铭刻,则分别对应于 reveal 交易的网路费用
    • commitAddrs - string[]:commit 交易的 to 地址,即代打地址
    • feeRate - number:铭刻时,网络费率
    • size - number:铭刻时,铭文的大小

示例

okxwallet.bitcoin.mint({
    type: 61,
    from: 'bc1p4k9ghlrynzuum080a4zk6e2my8kjzfhptr5747afzrn7xmmdtj6sgrhd0m',
    inscriptions: [{
        contentType: 'text/plain;charset=utf-8',
        body: 'hello'
    }, {
        contentType: 'text/plain;charset=utf-8',
        body: 'world'
    }]
})

// response
{
    "commitAddrs": [
        "bc1p9trqtf68gfeq3f3hlktaapp0eapufh02ly8dr6swfwffflvncncqwvtuen",
        "bc1p5ttl7q2mpvfhjq3wqffka4c05sv5jcfphcl5qeuj0pmsx7evfhcqhm60rk"
    ],
    "commitTx": "453e126346bbaaef0aaaa208acd3426cd14a39f825bd76cb8d9892957e2a5bda",
    "revealTxs": [
        "526ff04e4ba34617ee28826412bdc8e22484890635320f880c5ec50f10d6b189",
        "0f65f79456a59b3e0cd4ef00e279d0d6da57582e114eafbada95b51759a845b2"
    ],
    "commitTxFee": 1379,
    "revealTxFees": [
        973,
        973
    ],
    feeRate: 80,
    size: 546,
}

signPsbt#

okxwallet.bitcoin.signPsbt(psbtHex[, options])

描述

签名 psbt,该方法将遍历所有与当前地址匹配的输入进行签名

参数

  • psbtHex - string:要签名的 psbt 的十六进制字符串

构建交易生成 psbt (string 类型),如果遇到 input 地址是 Taproot 类型,需要提供压缩公钥。

示例:可参考下面的 txInput 和 publicKey。

const txInputs: utxoInput[] = [];
txInputs.push({
      txId: "1e0f92720ef34ab75eefc5d691b551fb2f783eac61503a69cdf63eb7305d2306",
      vOut: 2,
      amount: 341474,
      address: "tb1q8h8....mjxzny",
      privateKey: "0s79......ldjejke",
      publicKey: "tb1q8h8....mjxzny",
      bip32Derivation: [
          {
              "masterFingerprint": "a22e8e32",
              "pubkey": "tb1q8h8....mjxzny",
              "path": "m/49'/0'/0'/0/0",
          },
      ],
  });
  • options

    • autoFinalized - boolean:签名后是否完成 psbt,默认为 true

    • toSignInputs - array:

      • index - number:要签名的输入
      • address - string:用于签名的相应私钥所对应的地址
      • publicKey - string:用于签名的相应私钥所对应的公钥
      • sighashTypes - number[]: (可选) sighashTypes
      • disableTweakSigner - boolean: (可选) 签名和解锁 Taproot 地址时, 默认使用 tweakSigner 来生成签名,启用此选项允许使用原始私钥进行签名
注意
  • 对于移动端版本低于 6.51.0 和插件端版本低于 2.77.1 的情况:不支持options,并且 autoFinalized默认为 false。
  • 对于移动端版本为 6.51.0 或更高以及插件端版本为 2.77.1 或更高的情况:支持 options,并且 autoFinalized 是布尔值, 默认为 true。

返回值

  • Promise - string:已签名 psbt 的十六进制字符串

示例

try {
  let res = await okxwallet.bitcoin.signPsbt('70736274ff01007d....', {
    autoFinalized: false,
    toSignInputs: [
      {
        index: 0,
        address: 'tb1q8h8....mjxzny',
      },
      {
        index: 1,
        publicKey: 'tb1q8h8....mjxzny',
        sighashTypes: [1],
      },
      {
        index: 2,
        publicKey: '02062...8779693f',
      },
    ],
  });
  console.log(res);
} catch (e) {
  console.log(e);
}

okxwallet.bitcoin.signPsbt('xxxxxxxx', {
  toSignInputs: [{ index: 0, publicKey: 'xxxxxx', disableTweakSigner: true }],
  autoFinalized: false,
});

signPsbts#

此字段仅适用于移动端版本 6.51.0 或更高以及插件端版本 2.77.1 或更高。

okxwallet.bitcoin.signPsbts(psbtHexs[, options])

描述

签署多个 psbt,该方法将遍历所有与当前地址匹配的输入进行签名

参数

  • psbtHexs - string[]:要签名的 psbt 的十六进制字符串

构建交易生成 psbt (string 类型),如果遇到 input 地址是 Taproot 类型,需要提供压缩公钥。

示例:可参考下面的 txInput 和 publicKey。

const txInputs: utxoInput[] = [];
txInputs.push({
      txId: "1e0f92720ef34ab75eefc5d691b551fb2f783eac61503a69cdf63eb7305d2306",
      vOut: 2,
      amount: 341474,
      address: "tb1q8h8....mjxzny",
      privateKey: "0s79......ldjejke",
      publicKey: "tb1q8h8....mjxzny",
      bip32Derivation: [
          {
              "masterFingerprint": "a22e8e32",
              "pubkey": "tb1q8h8....mjxzny",
              "path": "m/49'/0'/0'/0/0",
          },
      ],
  });
  • options - object[]:签署 psbt 的选项
    • autoFinalized - boolean:签名后是否完成 psbt,默认为 true
    • toSignInputs - array:
      • index - number:要签名的输入
      • address - string:用于签名的相应私钥所对应的地址
      • publicKey - string:用于签名的相应私钥所对应的公钥
      • sighashTypes - number[]: (可选) sighashTypes

返回值

  • Promise - string[]:已签名 psbt 的十六进制字符串

示例

try {
  let res = await okxwallet.bitcoin.signPsbts([
    '70736274ff01007d...',
    '70736274ff01007d...',
  ]);
  console.log(res);
} catch (e) {
  console.log(e);
}

pushPsbt#

此字段仅适用于移动端版本 6.51.0 或更高以及插件端版本 2.77.1 或更高。

okxwallet.bitcoin.pushPsbt(psbtHex)

描述

广播 psbt 交易

参数

  • psbtHex - string:要推送的 psbt 的十六进制字符串

返回值

  • Promise - string:交易哈希

示例

try {
  let res = await okxwallet.bitcoin.pushPsbt('70736274ff01007d....');
  console.log(res);
} catch (e) {
  console.log(e);
}

sendPsbt#

此字段当前仅适用于插件端版本,不适用于移动端版本。

okxwallet.bitcoin.sendPsbt(txs, from)

描述

广播 psbt 交易

与 pushPsbt 方法的不同点
  1. sendPsbt 方法支持批量上链,pushPsbt 方法只支持单个上链
  2. sendPsbt 支持传入 type 参数,使钱包内的交易历史展示更精确,而通过 pushPsbt 方法上链的交易在交易历史展示的比较简单

参数

  • txs - array:要发布的 psbt 交易
  • from - string:当前连接钱包的 BTC 地址
类型描述
52发送 BRC-20
22发送 NFT
59发送 BRC20-S

返回值

  • Promise - array:交易哈希

示例

okxwallet.bitcoin.sendPsbt([{
    itemId: "xxxxx0", // 批量唯一标识,多笔交易内不重复即可
    signedTx: '70736274ff01007d....', // 签名串
    type: 52, // 类型 BRC-20 传递 52, NFT 传递 22, BRC20-S 传递 59
    extJson: { // 拆UTXO的交易,可不传
        // NFTID
         inscription:"885441055c7bb5d1c54863e33f5c3a06e5a14cc4749cb61a9b3ff1dbe52a5bbbi0",
    }
}{
    itemId: "xxxxx1", // 批量唯一标识
    signedTx: '70736274ff01007d....', // 签名串或者要上链的psbt
    dependItemId: ['xxxxx0'], // 依赖的交易itemId,没有依赖的话,这个字段可以不传
    type: 52, // 类型 BRC-20 传递 52, NFT 传递 22
    extJson: {
        // NFTID
         inscription:"885441055c7bb5d1c54863e33f5c3a06e5a14cc4749cb61a9b3ff1dbe52a5bbbi0",
    }
}], from)

// response
[
    {"xxxxx0":"txId1"}{"xxxxx1":"txId2"}  // 失败txId返回空
]

accountChanged#

此字段仅适用于移动端版本 6.51.0 或更高。

描述

欧易 Web3 钱包允许用户从单个扩展程序或移动应用程序中无缝管理多个账户。每当用户切换账户时,欧易 Web3 钱包都会发出一个 accountChanged 事件

如果用户在已连接到应用程序时更改账户,并且新账户已经将该应用程序列入白名单,那么用户将保持连接状态并且欧易 Web3 钱包将传递新账户的公钥:

用法

window.okxwallet.bitcoin.on('accountChanged', (addressInfo) => {
  console.log(addressInfo);
  {
    "address": "bc1pwqye6x35g2n6xpwalywhpsvsu39k3l6086cvdgqazlw9mz2meansz9knaq",
    "publicKey": "4a627f388196639041ce226c0229560127ef9a5a39d4885123cd82dc82d8b497",
    "compressedPublicKey": "034a627f388196639041ce226c0229560127ef9a5a39d4885123cd82dc82d8b497"
  }
});

accountsChanged#

此字段仅适用于移动端版本 6.51.0 或更高以及插件端版本 2.77.1 或更高。

描述

每当用户暴露的账户地址发生变化时,就会发出该消息

用法

window.okxwallet.bitcoin.on('accountsChanged', (accounts) => {
  console.log(accounts)[
    // example
    'tb1qrn7tvhdf6wnh790384ahj56u0xaa0kqgautnnz'
  ];
});