在solidity中使用构造函数时出现大数错误
Error of Big number while using constructer in solidity
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.12;
struct account{
string _name;
uint _acc_id;
uint balance;
}
contract My_acc{
account public person;
constructor(string memory name, uint acc_id, uint _balance){
person._name = name;
person._acc_id = acc_id;
person.balance = _balance;
}
}
我试图通过构造函数将值传递给结构变量但是我收到以下错误。
creation of My_acc errored: Error encoding arguments: Error: invalid BigNumber string (argument="value", value="", code=INVALID_ARGUMENT, version=bignumber/5.5.0)
我尝试了 运行 相同的代码,它工作得很好。
构造函数仅运行一次,即在部署时运行。由于您将值传递给构造函数,因此您应该在部署时传递值。
我的名誉似乎不允许我上传图片。请通过下面的link。
https://i.stack.imgur.com/AFBWd.png
伙计们,我解决了这个错误。这实际上不是错误。这只是我作为初学者犯的一个愚蠢的错误。
解决方案:-
我实际上并没有最初将值传递给构造函数。实际上,当我们在合约中添加构造函数时,我们基本上会自动获得一个带有部署按钮的输入部分(甚至在实际部署之前)。在部署我们的合约之前必须使用它来传递值。
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.12;
struct account{
string _name;
uint _acc_id;
uint balance;
}
contract My_acc{
account public person;
constructor(string memory name, uint acc_id, uint _balance){
person._name = name;
person._acc_id = acc_id;
person.balance = _balance;
}
}
我试图通过构造函数将值传递给结构变量但是我收到以下错误。
creation of My_acc errored: Error encoding arguments: Error: invalid BigNumber string (argument="value", value="", code=INVALID_ARGUMENT, version=bignumber/5.5.0)
我尝试了 运行 相同的代码,它工作得很好。
构造函数仅运行一次,即在部署时运行。由于您将值传递给构造函数,因此您应该在部署时传递值。
我的名誉似乎不允许我上传图片。请通过下面的link。
https://i.stack.imgur.com/AFBWd.png
伙计们,我解决了这个错误。这实际上不是错误。这只是我作为初学者犯的一个愚蠢的错误。
解决方案:- 我实际上并没有最初将值传递给构造函数。实际上,当我们在合约中添加构造函数时,我们基本上会自动获得一个带有部署按钮的输入部分(甚至在实际部署之前)。在部署我们的合约之前必须使用它来传递值。