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

调用异常缺少回滚数据:OpenSea购NFT时fulfillOrder报错求助

问题:OpenSea Seaport fulfillOrder 抛出'missing revert data in call exception'错误

我在OpenSea平台通过Seaport协议购买NFT时,调用createOrder()能正常唤起MetaMask完成签名,但执行fulfillOrder()时抛出无理由字符串的回滚错误,具体信息如下:

相关代码

const { executeAllActions } = await seaport.createOrder(
    {
      offer: [
        {
          amount: parseEther(ethAmount).toString(),
          // WETH on goerli
          token: "0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6",
        },
      ],
      consideration: [
        {
          itemType: ItemType.ERC721,
          token: contractAddress,
          identifier: tokenId,
          recipient: walletAddress,
        },
      ],
    },
    walletAddress
);
const order = await executeAllActions();

const { executeAllActions: executeAllFulfillActions } =
await seaport.fulfillOrder({
  order,
  accountAddress: walletAddress,
});

错误信息

Error: missing revert data in call exception; Transaction reverted without a reason string [ See: https://links.ethers.org/v5-errors-CALL_EXCEPTION ] (data="0x", transaction={"to":"0xe2De2249Cf1C9d76EAF24257B85BBE83Bd218a0B","data":"0x6352211e0000000000000000000000000000000000000000000000000000000000000019","accessList":null}, error={"rawMessage":"Error forwarded from node: execution reverted","code":-32603,"message":"Magic RPC Error: [-32603] Error forwarded from node: execution reverted"}, code=CALL_EXCEPTION, version=providers/5.7.2)

解决思路

  • 修正订单结构逻辑
    你当前的订单是创建「买单」(用WETH换NFT),但自己调用fulfillOrder相当于尝试给自己转NFT,而你钱包里并没有该NFT,这必然导致交易回滚。正确的购买逻辑是:要么找到卖方发布的「卖单」(offer为NFT,consideration为WETH),调用fulfillOrder承接该订单;要么创建买单后等待卖方触发成交。

  • 检查WETH余额与授权

    • 确认钱包在Goerli测试网有足够的WETH余额
    • 调用WETH合约的allowance方法,验证是否已授权Seaport合约(地址0xe2De2249Cf1C9d76EAF24257B85BBE83Bd218a0B)花费你指定额度的WETH
  • 模拟交易获取详细错误
    使用callStatic模拟执行交易,能捕获更具体的回滚原因:

    try {
      const { executeAllActions } = await seaport.fulfillOrder({
        order,
        accountAddress: walletAddress
      });
      await executeAllActions.callStatic();
    } catch (e) {
      console.error("模拟执行错误详情:", e);
    }
    
  • 验证NFT状态与参数

    • 确认目标NFT的合约地址、tokenId有效,且该NFT当前属于订单的maker(如果是承接卖单)
    • 检查NFT是否被冻结、转移或锁定在其他协议中,导致无法转移
  • 核对Seaport配置

    • 确保Seaport SDK版本与合约版本匹配,初始化时使用的provider是Goerli测试网,未与主网混淆

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 06:09:54