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

使用near-api-js签名交易报错:schema缺失actions.actions类对象

解决near-api-js v0.45.1签名交易时的"Class Object is missing in schema: actions.actions"错误

你的问题出在手动构造的actions格式不符合near-api-js v0.45.1的schema要求,必须使用库内置的action构造函数生成正确的action对象,不能自己定义带enum字段的结构。

正确步骤:

  1. 先导入所需工具函数
const { transactions, utils } = nearAPI;
  1. 用transactions.functionCall构造符合要求的action
// 构造functionCall类型的action
const action = transactions.functionCall(
  "addMessage", // 调用的合约方法名
  { text: "adsf" }, // 方法参数,直接传JSON对象即可,库会自动序列化
  utils.format.parseNearAmount("0"), // 附加的NEAR存款,这里传0
  utils.format.parseNearAmount("0.0000000000001") // 分配的gas,按需调整数值
);

// 把action放进数组(交易可以包含多个action)
const actions = [action];
  1. 再用你原来的方式一或方式二签名交易即可
  • 方式一:
const signedTransaction = await transactions.signTransaction(
  receiverId,
  nonce,
  actions,
  blockHash,
  signer,
  accountId,
  networkId
);
  • 方式二:
const transaction = transactions.createTransaction(
  signerId,
  publicKey,
  receiverId,
  nonce,
  actions,
  blockHash
);
const signedTransaction = await transactions.signTransaction(
  transaction,
  accountId,
  networkId
);

错误原因说明:

你手动编写的action对象存在两个问题:

  • 额外添加了enum字段,这不是near-api-js内部schema认可的结构
  • gas、deposit用了原始的BN对象格式,args直接传字节数组,这些都不符合库的参数要求
    使用官方构造函数会自动处理参数序列化、类型标记等细节,完全匹配schema验证规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 22:55:17