Ethers.js Extension for Kaia
Tiện ích mở rộng Ethers.js dành cho Kaia cung cấp:
- Drop-in replacement to
ethers.Wallet
that handles both Ethereum and Kaia transaction types involving AccountKey and TxTypes. - Drop-in replacement to
ethers.providers.JsonRpcProvider
that provides accesses to both Ethereum RPCs and Kaia-specific RPCs. - Thay thế trực tiếp cho
ethers.Web3Provider
để hoạt động với cả MetaMask (window.ethereum
) và Kaikas (window.klaytn
)
Note for ethers v6
@kaiachain/ethers-ext
supports both ethers v5 and v6. However, you need to use the right packages which are specified for each ethers
version. So ethers v5 must be used with packages from @kaiachain/ethers-ext/v5
and ethers v6 is only compatible with @kaiachain/ethers-ext/v6
.
NOTE: If the import path has no version sub-path (
@kaiachain/ethers-ext
), ethers v5 will be used by default.
LƯU Ý: @kaiachain/ethers-ext@^1.2.0 khuyến nghị sử dụng node 22 trở lên nếu bạn gặp sự cố khi giải quyết Mô-đun ES.
-
Don't: Mixing ethers v6 and ethers-ext for 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); -
Do: Using with 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); -
Do: Using with 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); -
Do: Using ethers-ext only
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);
Install
Node.js
-
Install
npm install --save @kaiachain/ethers-ext ethers@5 # or ethers@6 -
ESM or 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);
Browser
It is not recommended to use CDNs in production, But you can use below for quick prototyping. using ethers-ext.buldle.js
for ethers v5 and ethers-ext.v6.bundle.js
for ethers v6
<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>