Uncaught (in promise) WalletSignTransactionError: Transaction recentBlockhash required
at PhantomWalletAdapter.signTransaction (adapter.ts:215:1)
at async WalletProvider.tsx:247:1
at async mintNFT (luckoo.tsx:100:1)
Run Code Online (Sandbox Code Playgroud)
当我尝试使用 solana 钱包发送交易时收到此消息,我该怎么办?
您需要在交易中提供recentBlockhash以便对其进行签名。最有可能的是,您需要获取一个区块哈希并在使用 签署交易之前添加它getLatestBlockhash,即:
let blockhash = (await connection.getLatestBlockhash('finalized')).blockhash;
transaction.recentBlockhash = blockhash;
Run Code Online (Sandbox Code Playgroud)
以前,您将使用类似的已弃用函数getRecentBlockhash:
let blockhash = await connection.getRecentBlockhash('finalized').blockhash;
transaction.recentBlockhash = blockhash;
Run Code Online (Sandbox Code Playgroud)
您更好的选择是直接使用sendTransaction,它可以为您完成所有这些工作。正如您在源代码中看到的,sendTransaction如果最近的块哈希尚不存在,则填写它: https: //github.com/solana-labs/wallet-adapter/blob/a5b1ebd70ae9753d188fec60e95e252402f3f371/packages/core/base/src /signer.ts#L13
sendTransaction: https: //github.com/solana-labs/wallet-adapter#usage| 归档时间: |
|
| 查看次数: |
5792 次 |
| 最近记录: |