本頁面使用機器翻譯自英語,可能包含錯誤或不清楚的語言。如需最準確的信息,請參閱英文原文。由於更新頻繁,部 分內容可能與英文原文有出入。請加入我們在 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>