跳至主要内容
本页面使用机器翻译自英语,可能包含错误或不清楚的语言。如需最准确的信息,请参阅英文原文。由于更新频繁,部分内容可能与英文原文有出入。请加入我们在 Crowdin 上的努力,帮助我们改进本页面的翻译。 (Crowdin translation page, Contributing guide)

取消

TxTypeCancel 取消事务池中具有相同 nonce 的事务的执行。 当已提交的交易在一定时间内似乎未得到处理时,这种交易类型就很有用。

收费代表团

导入**@kaiachain/viem-ext**软件包,在 web3 上添加 kaia 功能

使用 createWalletClient,配置Kairos链HTTP传输和转换为账户的发送方私钥,建立发送方和付费方钱包。

使用prepareTransactionRequest创建转账交易请求,指定发送方账户和交易类型**(TxType.FeeDelegatedCancel)**。

使用钱包客户端的 signTransaction 方法签署交易,并记录交易哈希值。

费用支付者使用函数 "signTransactionAsFeePayer "签署发件人已经签署的交易,同意支付交易费用。

使用 "kaia_sendRawTransaction "方法向 Kairos 区块链网络发送完全签名的授权交易(由发送方和支付方签名),并返回交易哈希值或网络响应。

TxFeeDelegatedCancelType.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,
type: TxType.FeeDelegatedCancel,
});
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 cancel tx", res);
})();

output

❯ js TxFeeDelegatedCancelType.js
signedTx 0x39f86b82095e85066720b3008302059494a2a8854b1802d8cd5de631e690817c253d6a9153f847f8458207f6a0e203205f0f0728d964f8da4a8f891b63d2140c9a0144d33a9a682be1db90c212a05a3999602aeefda3cabbf0af3a935b85a9c5e94ffa3c00c8def218a121281343
fee delegated cancel tx 0x4580d6e7599fe0b2623f9942cb0b167449c764e49f40b7a63b15c8ff60053923

让这个页面变得更好