首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >web3错误: BigNumber错误:“新的BigNumber()不是16基数:”

web3错误: BigNumber错误:“新的BigNumber()不是16基数:”
EN

Stack Overflow用户
提问于 2018-10-21 04:52:12
回答 3查看 2.5K关注 0票数 0

我试图使这个简单的Dapp工作,我将变量向setInstructor()函数发送变量,然后由getInstructor()函数返回。问题是我一直在获取BigNumber Error: "new BigNumber() not a base 16 number:。有什么想法吗?

固体

代码语言:javascript
复制
pragma solidity ^0.4.25;


contract Contrato {

  string fName;
  uint age;

  function setInstructor (string _fName, uint _age){
      fName = _fName;
      age = _age;

  }

  function getInstructor () public constant returns (string, uint){
      return (fName, age);
  }

}

Web3

代码语言:javascript
复制
var Contrato = web3.eth.contract(ABI);
var Contratito = Contrato.at(Address);

$("#button").click(function(){

    Contratito.setInstructor($("#nombre").val(), $("#edad").val(), function(error,result){if (!error) { console.log("bien") } else { console.error(error)}});

    Contratito.getInstructor(function(error,result){ if (!error) { $("#instructor").html(result[0] + " " + result[1])} else {console.error(error)}});

})
EN

回答 3

Stack Overflow用户

发布于 2018-10-22 02:52:33

我首先将$("#edad").val()转换为一个数字,而不是最有可能返回的字符串。如果这不起作用,我将使用.val()手动将两个BigNumbers结果转换为new BigNumber(...)

让我知道这让我们在评论中,希望我们能尽快解决这个问题!

票数 0
EN

Stack Overflow用户

发布于 2018-11-27 13:02:52

我也遇到了这个问题,为了解决这个问题,我不得不将MetaMask浏览器扩展使用的网络更改为javascript代码中指定的网络。确保合同地址位于MetaMask扩展所使用的网络上。此外,您可能应该将您的虚空相关问题发布在Ethereum堆栈交换站点上,以获得更快的响应:https://ethereum.stackexchange.com

票数 0
EN

Stack Overflow用户

发布于 2019-09-25 14:43:07

在我的例子中,问题与正在使用的EVM版本有关。

我必须从默认的一个(bizantium)移到显式地指示宅基地版本,并且它起了作用。

但关注家园是最古老的,所以我不确定我的选择意味着什么。我没有尝试与其他版本,因为这是一个合同,仅为测试目的。

编译契约并指示EVM版本(示例)的命令:

代码语言:javascript
复制
solc --evm-version <VERSION> contract.sol

参考资料:https://solidity.readthedocs.io/en/v0.5.3/using-the-compiler.html#setting-the-evm-version-to-target

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52912213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档