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

Solana网络Magic Eden API buy_now交易遇seller_trade_state ConstraintRaw错误求助

问题

调用Magic Eden API执行buy_now交易时,提交后触发AnchorError。错误由seller_trade_state账户引发,错误码ConstraintRaw(编号2003),错误信息为'A raw constraint was violated'。相关代码、请求参数及交易日志如下:

代码

async function buyToken(user, params){
    try{
        const res = await axios.get(
            'https://api-mainnet.magiceden.dev/v2/instructions/buy_now', {
            params,
            headers
        });
        

        let txSigned = res.data.txSigned;
        const txn = await web3.Transaction.from(Buffer.from(txSigned.data));

        let buySignature = provider.wallet.signTransaction(txn);

        const latestBlockHash = await conn.getLatestBlockhash();
        
        let stategy = {
            blockhash: latestBlockHash.blockhash,
            lastValidBlockHeight: latestBlockHash.lastValidBlockHeight,
            signature: buySignature,
          }
        
        web3.sendAndConfirmRawTransaction(conn, txn.serialize(), stategy);    
    }catch(e){
        console.error('buyToken', e);
    }

}

请求参数

{
  "buyer": "DizqnaiTLTkTqXG759whvyVisCfuUUcA4VeQnJKQLaaN",
  "seller": "GtXNVaeeRQ95SdE6rjePHJLpaRe94FrN7KQNUmNj7jke",
  "auctionHouseAddress": "E8cU1WiRWjanGxmn96ewBgk9vPTcL6AEZ1t6F6fkgUWe",
  "tokenMint": "8PHtyRngia1EQT99BA6ysbpdUjwXExRKkH3VUT3JeWcA",
  "tokenATA": "6tfMBkUAYzcKcHkKBDAF8xrAoqXoAzsyB2WyB5XRmkcr",
  "price": 0.019,
  "sellerReferral": "autMW8SgBkVYeBgqYiTuJZnkvDZMVU2MHJh9Jh7CSQ2"
}

交易日志

{
  "logs": [
    "Program M2mx93ekt1fmXSVkTrUL9xVFHkmME8HTUi5Cyc5aF7K invoke [1]",
    "Program log: Instruction: Deposit",
    "Program 11111111111111111111111111111111 invoke [2]",
    "Program 11111111111111111111111111111111 success",
    "Program M2mx93ekt1fmXSVkTrUL9xVFHkmME8HTUi5Cyc5aF7K success",
    "Program M2mx93ekt1fmXSVkTrUL9xVFHkmME8HTUi5Cyc5aF7K invoke [1]",
    "Program log: Instruction: Buy",
    "Program 11111111111111111111111111111111 invoke [2]",
    "Program 11111111111111111111111111111111 success",
    "Program log: {\"price\":19000000,\"buyer_expiry\":0}",
    "Program M2mx93ekt1fmXSVkTrUL9xVFHkmME8HTUi5Cyc5aF7K consumed 27892 of 590535 compute units",
    "Program M2mx93ekt1fmXSVkTrUL9xVFHkmME8HTUi5Cyc5aF7K success",
    "Program M2mx93ekt1fmXSVkTrUL9xVFHkmME8HTUi5Cyc5aF7K invoke [1]",
    "Program log: Instruction: ExecuteSale",
    "Program log: AnchorError caused by account: seller_trade_state. Error Code: ConstraintRaw. Error Number: 2003. Error Message: A raw constraint was violated.",
    "Program M2mx93ekt1fmXSVkTrUL9xVFHkmME8HTUi5Cyc5aF7K consumed 23877 of 562643 compute units",
    "Program M2mx93ekt1fmXSVkTrUL9xVFHkmME8HTUi5Cyc5aF7K failed: custom program error: 0x7d3"
  ]
}

可能的解决方案

Anchor的ConstraintRaw错误(2003)表示账户的原始数据约束被违反,针对seller_trade_state账户,可从以下方向排查解决:

  • 确认卖家挂单状态有效性:
    seller_trade_state是卖家挂单时创建的状态账户,若卖家已取消挂单、NFT已被卖出,该账户会被销毁或状态失效。需先通过Magic Eden接口查询目标NFT的当前挂单状态,确认交易仍处于可执行状态。

  • 校验请求参数准确性:

    • 核对tokenATA是否为卖家对应tokenMint的正确关联代币账户,避免传入错误地址;
    • 确保price与卖家挂单价格完全一致,交易日志中显示价格为19000000 lamports(0.019 SOL),需确认卖家未修改挂单价格;
    • 验证auctionHouseAddress为Magic Eden主网官方拍卖屋地址,避免使用错误合约地址。
  • 修正交易构建逻辑:
    代码中直接使用API返回的已签名交易,却重新设置了blockhash和签名,可能破坏交易结构。建议直接提交API返回的signedTx数据,或重新构建交易时保证所有字段一致性;同时修正代码拼写错误:stategy改为strategy。

  • 排查节点同步问题:
    确保连接的Solana节点处于同步状态,获取的latestBlockHash是最新有效数据。可尝试更换节点提供商,或等待节点同步完成后重新提交交易。

内容的提问来源于stack exchange,提问作者Michael Foisy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 03:16:04