使用Metaplex更新Solana NFT时遇funding tx提交失败错误求助
Solana NFT元数据更新Arweave时"Fund Tx Not Found"错误解决
核查Arweave资金交易状态
错误中给出的交易ID4tSgRoDyCwaT9DwK8GsnMTPeYfPZCwi4W3tpiTeei1H7WBZ9LEbbPthRaLBLXzGqLVoQQmwqmXpZd7ciKwHH3gCw,需先确认该交易是否在Solana链上完成最终确认。使用Solana CLI执行以下命令查询:solana confirm-transaction 4tSgRoDyCwaT9DwK8GsnMTPeYfPZCwi4W3tpiTeei1H7WBZ9LEbbPthRaLBLXzGqLVoQQmwqmXpZd7ciKwHH3gCw --commitment finalized若交易未确认或失败,需重新发起资金交易,确保支付Arweave存储费用的钱包有足够SOL余额。
确认Metaplex的Arweave资金配置
检查Metaplex实例使用的支付钱包是否正确,该钱包需有充足SOL用于覆盖Arweave的存储成本。若使用默认配置,会自动关联当前连接的钱包,直接查看该钱包余额即可。重新生成并上传元数据
原metadataUri关联的资金交易可能无效,尝试重新生成元数据JSON文件,通过Metaplex存储模块重新上传至Arweave,获取新的URI后再执行更新:// 上传更新后的元数据 const { uri: newMetadataUri } = await METAPLEX.storage().upload(updatedMetadataJson); // 执行NFT更新 await METAPLEX.nfts().update({ name: newName, nftOrSft: nft, uri: newMetadataUri }, { commitment: 'finalized' });优化交易确认逻辑
即便设置了commitment: 'finalized',仍可在更新操作前添加资金交易的确认步骤,确保交易完全上链:// 等待资金交易最终确认 await connection.confirmTransaction(fundTxId, 'finalized'); // 再执行NFT更新 await METAPLEX.nfts().update({...}, { commitment: 'finalized' });检查节点连接稳定性
若网络波动导致交易未被正确广播,可切换至Solana官方公共节点(主网https://api.mainnet-beta.solana.com、测试网https://api.devnet.solana.com),重新尝试操作。
内容的提问来源于stack exchange,提问作者Alchemist
相关产品推荐
相关产品推荐

