NEAR dApp调用nftSupply报account_id缺失错误,参数存在却异常求解决
NEAR dApp调用nftSupply报错的原因及解决
问题核心
调用nft.nftSupply(wallet.accountId)时触发解析错误,提示缺失account_id字段,但已确认参数存在,旧环境可正常运行。
可能原因
- 合约方法参数格式不匹配:
nftSupply合约方法要求传入包含account_id字段的对象,而非直接传入字符串。旧环境可能合约版本兼容宽松,允许位置参数,但新部署的合约或SDK严格要求结构化参数。 - NEAR JS SDK版本差异:新环境安装的
near-api-js版本与旧环境不同,新版本对合约方法调用的参数格式校验更严格,必须显式以对象形式传递参数。 - 合约部署版本不一致:新账号部署的合约是更新后的版本,
nftSupply方法的参数签名已变更,不再支持直接传字符串参数。
解决步骤
- 修改调用代码格式,将字符串参数包裹为对象:
// 原代码 nft.nftSupply(wallet.accountId) // 修改为 nft.nftSupply({ account_id: wallet.accountId }) .then(setTotalSupply) .catch(console.error) - 核对合约方法定义,确认
nftSupply的参数要求是否为包含account_id的结构体。 - 检查依赖版本,对比新旧环境的
near-api-js版本,若差异过大,可尝试锁定旧版本或适配新版本的调用规范。
内容的提问来源于stack exchange,提问作者Suisse
相关产品推荐
相关产品推荐

