本页面使用机器翻译自英语,可能包含错误或不清楚的语言。如需最准确的信息,请参阅英文原文。由于更新频繁,部分内容可能 与英文原文有出入。请加入我们在 Crowdin 上的努力,帮助我们改进本页面的翻译。 (Crowdin translation page, Contributing guide)
用于 Kaia 的 Ethers.js 扩展
为 Kaia 提供 Ethers.js 扩展:
- 以太坊钱包的直接替代品,可处理以太坊和 Kaia 交易类型 ,涉及 AccountKey 和 TxTypes。
- 可直接替代
ethers.providers.JsonRpcProvider
,提供对以太坊 RPC 和 Kaia 特定 RPC 的访问。 - 可直接替换
ethers.Web3Provider
以与 MetaMask(window.ethereum
)和 Kaia Wallet(window.klaytn
)一起使用
ethers v6 注意事项
@kaiachain/ethers-ext
同时支持 ethers v5 和 v6。 不过,您需要使用为每个 ethers
版本指定的正确软件包。 因此,ethers v5 必须与 @kaiachain/ethers-ext/v5
中的软件包一起使用,而 ethers v6 只能与 @kaiachain/ethers-ext/v6
兼容。
NOTE: 如果导入路径没有版本子路径(
@kaiachain/ethers-ext
),则默认使用 ethers v5。
-
不可以:将 ethers v6 和 ethers-ext 混合用于 ethers v5
const ethers = require("ethers"); // ethers v6const { Wallet } = require("@kaiachain/ethers-ext/v5");const provider = new ethers.JsonRpcProvider("https://public-en-kairos.node.kaia.io");const wallet = new Wallet("<private key>", provider); -
可以*:与ethers v5 一起使用
const ethers = require("ethers"); // ethers v5const { Wallet } = require("@kaiachain/ethers-ext/v5");const provider = new ethers.providers.JsonRpcProvider("https://public-en-kairos.node.kaia.io");const wallet = new Wallet("<private key>", provider); -
可以*:与ethers v6 一起使用
const ethers = require("ethers"); // ethers v6const { Wallet } = require("@kaiachain/ethers-ext/v6");const provider = new ethers.JsonRpcProvider("https://public-en-kairos.node.kaia.io");const wallet = new Wallet("<private key>", provider); -
可以*:仅使ethers-ext
const { Wallet, JsonRpcProvider } = require("@kaiachain/ethers-ext/v5");// orconst { Wallet, JsonRpcProvider } = require("@kaiachain/ethers-ext/v6");const provider = new JsonRpcProvider("https://public-en-kairos.node.kaia.io");const wallet = new Wallet("<private key>", provider);
安装
Node.js
-
安装
npm install --save @kaiachain/ethers-ext ethers@5 # or ethers@6 -
ESM 或 TypeScript
import { Wallet, JsonRpcProvider } from "@kaiachain/ethers-ext";// esm// v5import { v5 } from "@kaiachain/ethers-ext";const { Wallet, JsonRpcProvider } = v5;// v6import { v6 } from "@kaiachain/ethers-ext";const { Wallet, JsonRpcProvider } = v6;// esm subpath import. If using typescript, add "moduleResolution": "nodenext" to tsconfig.json// v5import { Wallet, JsonRpcProvider } from "@kaiachain/ethers-ext/v5";// v6import { Wallet, JsonRpcProvider } from "@kaiachain/ethers-ext/v6";const provider = new JsonRpcProvider("https://public-en-kairos.node.kaia.io");const wallet = new Wallet("<private key>", provider); -
CommonJS
// v5const { Wallet, JsonRpcProvider } = require("@kaiachain/ethers-ext");const { Wallet, JsonRpcProvider } = require("@kaiachain/ethers-ext").v5;const { Wallet, JsonRpcProvider } = require("@kaiachain/ethers-ext/v5");// v6const { Wallet, JsonRpcProvider } = require("@kaiachain/ethers-ext").v6;const { Wallet, JsonRpcProvider } = require("@kaiachain/ethers-ext/v6");const provider = new JsonRpcProvider("https://public-en-kairos.node.kaia.io");const wallet = new Wallet("<private key>", provider);
浏览器:
不建议在生产中使用 CDN,但可以在下面使用 CDN 进行快速原型开发。 醚 v5 使用 ethers-ext.buldle.js
,醚 v6 使用ethers-ext.v6.bundle.js
。
<script src="https://cdn.jsdelivr.net/npm/@kaiachain/ethers-ext@latest/dist/ethers-ext.bundle.js"></script><script> const provider = new ethers_ext.providers.Web3Provider(window.klaytn);</script>