viem
Viem是以太坊的類型碼接口,提供與以太坊和其他 EVM 兼容區塊鏈交互的底層基元。 由於 kaia 支持Ethereum Equivalence功能,因此 viem 等以太坊工具無需進行任何重大修改即可在 kaia 上使用。
因此,開發人員可以利用這種兼容性,使用 viem 庫與 kaia 節點進行交互。
在本指南中,您將學習如何使用 viem 庫從區塊鏈讀取數據、發送交易以及與 kaia 網絡上的現有合約交互。
要求
- 代碼編輯器:源代碼編輯器,如 VS Code。
- Metamask:用於部署合約、簽署事務和與合約交互。
- RPC Endpoint: you can get this from one of the supported Endpoint Providers.
- 從 水龍頭測試 KAIA:為您的賬戶注入足夠的 KAIA。
- NodeJS和NPM
- TS-node:用於運行 TypeScript 腳本。
設置項目
開始時,您需要創建一個項目目錄來存放本指南中要創建的文件。
mkdir viem-examplecd viem-example
1. 安裝 viem
要安裝 viem,請在終端運行以下命令:
npm i viem
在本教程中,我們將創建一系列腳本文件,用於從區塊鏈讀取數據、發送交易以及與現有智能合約交互。 要開始使用,您需要知道如何為每個腳本文件設置 viem。
2. 設置公共客戶端和傳輸
首先,您需要用所需的 Transport 和 Chain 設置公共 客戶端。 公共客戶端是公共JSON-RPC API 方法的接口,例如通過公共操作檢索區塊編號、交易、讀取智能合約等。
import { createPublicClient, http } from 'viem'import { klaytnBaobab } from 'viem/chains' const client = createPublicClient({ chain: klaytnBaobab, transport: http("https://public-en-kairos.node.kaia.io"), })
3. 設置錢包客戶端和賬戶
其次,您需要設置一個錢包客戶端與賬戶進行交互。 使用錢包客戶端,您可以通過錢包操作執行檢索賬戶、執行交易、簽署信息等操作。
import { createWalletClient } from 'viem'import { privateKeyToAccount } from 'viem/accounts' const walletClient = createWalletClient({ chain: klaytnBaobab, transport: http("https://public-en-kairos.node.kaia.io")}) const account = privateKeyToAccount("PASTE PRIVATE KEY HERE");
從區塊鏈讀取數據
要從區塊鏈中讀取數據,請運行以下命令在項目文件夾中創建一個新的 read.ts
文件:
touch read.ts
創建該文件後,按照上文設置部分的步驟設置公共客戶端。 在本節中,您將學習如何從區塊鏈中讀取數據(如 blockNumber、KAIA 餘額)。
要查看實際效果, 請在您的 read.ts
中粘貼以下代碼。
import { createPublicClient, http, formatEther } from 'viem'import { klaytnBaobab } from 'viem/chains' const client = createPublicClient({ chain: klaytnBaobab, transport: http("https://public-en-kairos.node.kaia.io"), }) async function getBlockNumber() { const blockNumber = await client.getBlockNumber() console.log(`Current block number is: ${blockNumber}`);}async function getKlayBalance() { const balance = await client.getBalance({ address: '0x75Bc50a5664657c869Edc0E058d192EeEfD570eb', }) const formatBal = formatEther(balance); console.log(`Current KAIA balance is ${formatBal}`); }getBlockNumber();getKlayBalance();
輸出
要運行腳本並從區塊鏈中讀取數據,請在終端中粘貼以下命令:
npx ts-node read.ts
如果交易成功,您將在終端上看到區塊編號和用戶的 KAIA 餘額。
向區塊鏈發送交易
要向區塊鏈發送交易,請運行此命令在項目文件夾中創建一個新的 send.ts
文件:
touch send.ts
創建該文件後,按照上文設置部分的步驟設置錢包客戶端。 在本節中,您將學習如何向區塊鏈發送交易(例如,向某個地址發送 KAIA)。
要查看實際效果,請在您的 send.ts
中粘貼以下代碼。
import { createWalletClient, http, parseEther } from 'viem'import { klaytnBaobab } from 'viem/chains'import { privateKeyToAccount } from 'viem/accounts'const walletClient = createWalletClient({ chain: klaytnBaobab, transport: http("https://public-en-kairos.node.kaia.io")}) const account = privateKeyToAccount("PASTE PRIVATE KEY");async function sendKlayToRecipient() { const hash = await walletClient.sendTransaction({ account, to: "PASTE RECIPIENT ADDRESS", value: parseEther('0.01') }) console.log(`Send KAIA tx hash is: ${hash}`);}sendKlayToRecipient();
輸出
要運行腳本並向區塊鏈發送交易,請在終端中粘貼以下命令:
npx ts-node send.ts
如果交易成功,你會在終端中看到交易哈希值記錄。