ONTO 钱包插件对接

本文档介绍了 ONTO 钱包插件对接流程,需使用 ONTO provider 和 the Web3 JS SDK 并调用 Ontology dAPI。
目前支持的链:
  • 本体(Ontology)
  • 以太坊(Ethereum)
  • BNB智能链
  • OKXChain(OKC)
  • Polygon
  • Huobi ECO Chain
  • Arbitrum
  • IoTex
  • Avalanche-C
  • Harmony
Ontology dAPI 支持 Ethereum 以及其他使用 EIP-1193 API 协议的同构链,但对二者的支持有以下区别需要特殊注意。
  1. 1.
    有一些 Metamask 支持的 API 目前 ONTO 还不支持。
  2. 2.
    某些错误的处理方式不一样。
  3. 3.
    不支持 Legacy API。
目前 ONTO Provider 只支持下面列出的 dAPI 方法。

资源

名称:ONTO Wallet

以太坊及同构链

import Web3 from "web3";
// Onto Wallet 传入 window.onto 作为 provider,初始化 web 3 对象
const web3 = new Web3(window.onto);
// 请求连接
web3.eth.requestAccounts().then((res) => {
console.log(res[0]);
});
// 监听 accountsChanged 及其他事件
window.onto.on("accountsChanged", (e) => {
console.log(e.accounts[0]);
});

Ontology dAPI

import { client, provider } from "@ont-dev/ontology-dapi";
// 初始化
client.registerClient({
extension: provider.ExtensionType.Onto, // 或 'onto'
});
参考这些文档 可以了解 API 方法的详情。

可用的 dAPI 方法

目前只有下面列出的 dAPI 方法可以使用。参考此 dAPI 文档 可以了解每个方法的详情。
方法名
asset.getAccount
asset.getPublicKey
network.getNetwork
network.getBalance
network.getBlock
network.getTransaction
network.getNodeCount
network.getBlockHeight
network.getMerkleProof
network.getStorage
network.getAllowance
network.getUnboundOng
network.getContract
network.getSmartCodeEvent
network.getBlockHeightByTxHash
network.getBlockHash
network.getBlockTxsByHeight
network.getGasPrice
network.getGrantOng
network.getMempoolTxCount
network.getMempoolTxState
network.getVersion
smartContract.invoke (不支持 requireIdentity:true)
smartContract.invokeWasm (不支持 requireIdentity:true)
smartContract.invokeRead (不支持 requireIdentity:true)
smartContract.invokeWasmRead (不支持 requireIdentity:true)
provider.getProvider