跳至主要内容
本页面使用机器翻译自英语,可能包含错误或不清楚的语言。如需最准确的信息,请参阅英文原文。由于更新频繁,部分内容可能与英文原文有出入。请加入我们在 Crowdin 上的努力,帮助我们改进本页面的翻译。 (Crowdin translation page, Contributing guide)

kaia 的 Web3.js 扩展

kaia 提供的 Web3.js 扩展:

  • 可直接替代 new Web3(...),支持涉及 AccountKey 和 TxTypes 的以太坊和 kaia 交易类型。 详见[修改 Web3 对象](#modifications-to-the-web3-object)部分

安装

Node.js

  • 安装

    npm install --save @kaiachain/web3js-ext

  • ESM 或 TypeScript

    import { Web3 } from "@kaiachain/web3js-ext";
    const web3 = new Web3("https://public-en-kairos.node.kaia.io");

  • CommonJS

    const { Web3 } = require("@kaiachain/web3js-ext");
    const web3 = new Web3("https://public-en-kairos.node.kaia.io");

浏览器

不建议在生产中使用 CDN,但可以在下面使用 CDN 进行快速原型开发。


<script src="https://cdn.jsdelivr.net/npm/@kaiachain/web3js-ext@latest/dist/web3js-ext.bundle.js"></script>
<script>
const web3 = new web3_ext.Web3(window.klaytn);
</script>

使用情况

请参阅 exampletest

修改 Web3 对象

有关源代码组织,请参见 [DESIGN](./DESIGN.md)。

帐户

  • 以下函数可以处理 kaia TxType。 参见 src/account/index.ts

    // account independent functions
    web3.eth.accounts.recoverTransaction(rlp)
    web3.eth.accounts.signTransaction(obj or rlp)
    web3.eth.accounts.signTransactionAsFeePayer(obj or rlp)
    // account-bound functions
    var account = web3.eth.accounts.create()
    var account = web3.eth.accounts.privateKeyToAccount(priv)
    var account = web3.eth.accounts.decrypt(keystore)
    account.signTransaction(obj or rlp)
    account.signTransactionAsFeePayer(obj or rlp)

  • 以下函数可以处理 KIP-3 kaia 密钥存储格式 v4

    web3.eth.accounts.decrypt(keystore)
    web3.eth.accounts.decryptList(keystore)

Eth RPC 封装程序

  • 以下函数调用不同的 RPC,并处理 kaia TxType。 参见 src/eth/index.ts

    // Try klay_protocolVersion, falls back to eth_protocolVersion
    web3.eth.getProtocolVersion()
    // klay_sendTransaction if kaia TxType, otherwise eth_sendTransaction
    // Additional treatment for Kaia Wallet compatibility
    web3.eth.sendTransaction(obj)
    // klay_sendRawTransaction if kaia TxType, otherwise eth_sendRawTransaction
    web3.eth.sendSignedTransaction(rlp)
    // klay_signTransaction if kaia TxType, otherwise eth_signTransaction
    // Additional treatment for Kaia Wallet compatibility
    web3.eth.signTransaction(obj)

kaia RPC

  • 以下函数调用 kaia RPC。 参见 src/web3.ts

    web3.klay.blockNumber() // klay_blockNumber
    web3.net.networkID() // net_networkID

让这个页面变得更好