首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用web3.sendRawTransaction(signature.serialize())时出错

调用web3.sendRawTransaction(signature.serialize())时出错
EN

Stack Overflow用户
提问于 2022-06-28 18:48:37
回答 1查看 135关注 0票数 0

我想从幻影钱包中签一个用户的事务,然后通过web3.js发送事务,但是在成功地签署了事务后,web3js库函数sendRawTransaction()给了控制台中的错误消息

代码语言:javascript
复制
const signedTransaction = await window.solana.signTransaction(transaction);
const signature = await connection.sendRawTransaction(signedTransaction.serialize());
await connection.confirmTransaction(signature);
EN

回答 1

Stack Overflow用户

发布于 2022-07-01 15:31:12

如果您查看sendTransaction的实现,您将看到它在签署、序列化和发送之前向事务添加了一个块哈希。如果没有块哈希,您将得到错误Blockhash not found。因此,相反,您需要这样做:

代码语言:javascript
复制
const latestBlockhash = await connection.getLatestBlockhash();
transaction.lastValidBlockHeight = latestBlockhash.lastValidBlockHeight;
transaction.recentBlockhash = latestBlockhash.blockhash;
const signedTransaction = await window.solana.signTransaction(transaction);
const signature = await connection.sendRawTransaction(signedTransaction.serialize());
await connection.confirmTransaction(signature);

sendTransactionhttps://github.com/solana-labs/solana/blob/3fcdc45092b969baeb7273de6596399d98277366/web3.js/src/connection.ts#L4389上的全面实现

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72791740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档