Nhảy tới nội dung
This page uses machine translation from English, which may contain errors or unclear language. For the most accurate information, please see the original English version. Some content may be in the original English due to frequent updates. Help us improve this page's translation by joining our effort on Crowdin. (Crowdin translation page, Contributing guide)

Chuyển giao giá trị

TxTypeValueTransfer được sử dụng khi người dùng muốn gửi KAIA.

  • Vì kaia cung cấp nhiều loại giao dịch để mỗi loại giao dịch phục vụ một mục đích duy nhất, nên TxTypeValueTransfer chỉ giới hạn gửi KAIA đến một tài khoản do bên ngoài sở hữu (EOA).

Ủy quyền phí

Nhập các gói @kaiachain/viem-ext để thêm các tính năng kaia trên web3

Thiết lập ví người gửi và người trả phí bằng createWalletClient, được cấu hình với chuỗi Kairos, phương thức vận chuyển HTTPkhóa riêng của người gửi được chuyển đổi thành một tài khoản.

Tạo yêu cầu giao dịch để chuyển giá trị bằng cách sử dụng prepareTransactionRequest, chỉ định tài khoản người gửi, địa chỉ người nhận, giá trị cần chuyển (0 KLAY trong ví dụ này) và loại giao dịch (TxType.FeeDelegatedValueTransfer).

Ký giao dịch bằng phương thức signTransaction của máy khách ví và ghi lại mã băm giao dịch.

Người trả phí ký vào giao dịch đã được người gửi ký bằng hàm signTransactionAsFeePayer, đồng ý trả phí giao dịch.

Gửi giao dịch được ủy quyền phí và đã ký đầy đủ (được cả người gửi và người trả phí ký) đến mạng blockchain Kairos bằng phương thức kaia_sendRawTransaction, trả về mã băm giao dịch hoặc phản hồi từ mạng.

TxTypeFeeDelegatedValueTransfer.js

import { createWalletClient, http, kairos, privateKeyToAccount, TxType } from "@kaiachain/viem-ext";
const senderWallet = createWalletClient({
chain: kairos,
transport: http(),
account: privateKeyToAccount(
"0x0e4ca6d38096ad99324de0dde108587e5d7c600165ae4cd6c2462c597458c2b8"
),
})
const feePayerWallet = createWalletClient({
chain: kairos,
transport: http(),
account: privateKeyToAccount(
"0x9435261ed483b6efa3886d6ad9f64c12078a0e28d8d80715c773e16fc000cff4"
),
});
(async () => {
const txRequest = await senderWallet.prepareTransactionRequest({
account: senderWallet.account,
to: "0x70997970c51812dc3a010c7d01b50e0d17dc79c8",
value: 0n,
type: TxType.FeeDelegatedValueTransfer,
});
const signedTx = await senderWallet.signTransaction(txRequest);
console.log("signedTx", signedTx);
const feePayerSignedTx = await feePayerWallet.signTransactionAsFeePayer(
signedTx
);
const res = await feePayerWallet.request({
method: "kaia_sendRawTransaction",
params: [feePayerSignedTx],
});
console.log("fee delegated value transfer tx", res);
})();

output

❯ js TxTypeFeeDelegatedValueTransfer.js
signedTx 0x09f88082095285066720b30082cd149470997970c51812dc3a010c7d01b50e0d17dc79c88094a2a8854b1802d8cd5de631e690817c253d6a9153f847f8458207f5a0c67b0c0ccf4276ad4b97d9da0e66e02bd540647c23866af148f338ef27ac2087a074f32e734fd7c2fae46221b13815bdc201c17b77c5060348b9fb26d5502456d5
fee delegated value transfer tx 0xcdb3051c9dc60147fd0aef4838f1f3cd907aa42105dedd817c2fba31cb40981a

Cải thiện trang này