在 Remix - Solidity IDE 中,如何传递参数?
In Remix - Solidity IDE, How to pass arguments?
我正在研究关于 solidity 的智能合约,我 运行 遇到了一个问题。每次我尝试创建这个合约时,我的论点都没有得到证实。
我希望在选择名称时出现 "OreOreCoin",但我得到的却是一个空字符串。
和
这是我的代码:
pragma solidity ^0.4.8;
contract OreOreCoin{
string public name;
string public symbol;
uint8 public decimals;
uint256 public totalSupply;
mapping (address => uint256) public balanceOf;
event Transfer(address indexed from, address indexed to, uint256 value);
function OreOreCoin(uint256 _supply, string _name, string _symbol, uint8
_demicals){
balanceOf[msg.sender] = _supply;
name = _name;
symbol = _symbol;
decimals = _demicals;
totalSupply = _supply;
}
function transfer(address _to, uint256 _value){
if(balanceOf[msg.sender] < _value) throw;
if(balanceOf[_to] + _value < balanceOf[_to]) throw;
balanceOf[msg.sender] -= _value;
balanceOf[_to] += _value;
Transfer(msg.sender,_to,_value);
}
}
可能是什么问题?
不要引用整个参数列表。这样做时,您将单个字符串参数发送到构造函数中,该参数将转换为 _supply
的 uint256
,其余为默认值。您可以通过查看 Remix UI.
中的交易详细信息来确认这一点
参数列表应该是:
10000,”OreOreCoin”,”oc”,0
我正在研究关于 solidity 的智能合约,我 运行 遇到了一个问题。每次我尝试创建这个合约时,我的论点都没有得到证实。
我希望在选择名称时出现 "OreOreCoin",但我得到的却是一个空字符串。
和
这是我的代码:
pragma solidity ^0.4.8;
contract OreOreCoin{
string public name;
string public symbol;
uint8 public decimals;
uint256 public totalSupply;
mapping (address => uint256) public balanceOf;
event Transfer(address indexed from, address indexed to, uint256 value);
function OreOreCoin(uint256 _supply, string _name, string _symbol, uint8
_demicals){
balanceOf[msg.sender] = _supply;
name = _name;
symbol = _symbol;
decimals = _demicals;
totalSupply = _supply;
}
function transfer(address _to, uint256 _value){
if(balanceOf[msg.sender] < _value) throw;
if(balanceOf[_to] + _value < balanceOf[_to]) throw;
balanceOf[msg.sender] -= _value;
balanceOf[_to] += _value;
Transfer(msg.sender,_to,_value);
}
}
可能是什么问题?
不要引用整个参数列表。这样做时,您将单个字符串参数发送到构造函数中,该参数将转换为 _supply
的 uint256
,其余为默认值。您可以通过查看 Remix UI.
参数列表应该是:
10000,”OreOreCoin”,”oc”,0