You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Auctioneer SDK售卖时seller_trade_state的ConstraintSeeds错误排查

解决Auctioneer SDK售卖时的ConstraintSeeds错误

出现ConstraintSeeds错误的核心原因是你生成seller_trade_state的PDA种子与Auctioneer程序预期的结构不匹配,具体问题和修复方式如下:

当前代码的问题

  1. 多余了associatedAddress种子字段,程序定义的seller_trade_state种子中不包含该字段
  2. 种子顺序错误:NFT mint地址应在付款代币mint地址之前

修改后的PDA生成代码

const sellerTradeState = await anchor.web3.PublicKey.findProgramAddress(
    [
        Buffer.from('auction_house'),
        publicKey.toBuffer(), // 卖家钱包地址(持有NFT的地址)
        aH.toBuffer(), // Auction House合约地址
        mint.toBuffer(), // 待售NFT的mint地址
        WRAPPED_SOL_MINT.toBuffer(), // 付款代币的mint地址(如WSOL)
        new BN(10000000).toBuffer('le', 8), // 售卖价格(单位为lamports,需匹配付款代币精度)
        new BN(Math.ceil(1)).toBuffer('le', 8), // 售卖NFT数量(标准NFT填1)
    ],
    AUCTION_HOUSE_PROGRAM_ID,
);

额外注意事项

  • 确认publicKey是持有待售NFT的卖家地址,不能是其他地址
  • 价格单位要对应付款代币的精度:比如WSOL的精度是9,1 SOL对应1e9 lamports,若你想卖0.01 SOL,填10000000是正确的
  • 若尝试使用u64::MAX作为价格,需用正确的数值:new BN('18446744073709551615')
  • 首次售卖时,需确保seller_trade_state账户已被初始化(可通过程序指令自动创建,或提前调用初始化方法)

内容的提问来源于stack exchange,提问作者Abhishek Faliya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 08:54:22