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

addKhatianFromOld函数输入类型及报错问题咨询

Solidity函数addKhatianFromOld参数格式说明及错误修复

错误信息

Error: expected array value (argument=null, value="1", code=INVALID_ARGUMENT, version=abi/5.5.0)

这个错误的核心原因是:你传入的数组类型参数(_user或_percentage)是单个值(比如"1"),但函数要求传入数组格式的数据。


各参数的正确输入格式

基础类型参数

  • uint64 _khatianiId:输入0到18446744073709551615之间的整数,例如12345
  • uint16 _percentOwn:输入0到65535之间的整数,例如50(代表50%持有比例)
  • bytes32 _plotHash:必须是已存在地块的哈希值,格式为0x开头的66位十六进制字符串,例如0x1a2b3c4d5e6f7890abcdef1234567890abcdef1234567890abcdef1234567890

重点参数说明

1. bytes32 _buyFrom

  • 类型为bytes32,必须是合约中已存在的khatian对应的哈希值(即khatianMapping的key)
  • 输入格式:0x开头的66位十六进制字符串,可通过keccak256(abi.encodePacked(_khatianiId, _plotHash))生成(对应之前创建khatian时的哈希计算逻辑)

2. uint[] _user

  • 这是uint类型的数组,每个元素是已注册用户的NID(必须在userMapping中存在)
  • 输入格式:
    • 在Remix/钱包调用界面:输入数组形式,例如[1001, 1002, 1003]
    • 在web3.js/ethers.js代码中:传入JS数组,例如[1001, 1002]

3. uint16[] _percentage

  • 这是uint16类型的数组,数组长度必须和_user完全一致(每个元素对应_user中用户的持有比例)
  • 输入格式:
    • 在界面中:输入数组形式,例如[30, 20](总和应等于_percentOwn,比如30+20=50)
    • 在代码中:传入JS数组,例如[30, 20]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 22:50:29