Как перейти от функции аргумента к функции-конструктору в Solidity, которая может быть получена как msg.sender . Это мой код конструктора
constructor(uint256 _initialSupply)public{
totalSupply = _initialSupply;
balanceOf[msg.sender] = _initialSupply;
}
Мой клиентский код
initContract: function() {
$.getJSON('ErcToken.json', function(json, textStatus) {
App.contracts.ErcToken = TruffleContract(json);
App.contracts.ErcToken.setProvider(App.web3Provider);
return App.rendor();
});
},
rendor: function(){
web3.eth.getCoinbase(function(err,account){
if(err === null){
App.account = account;
$("#").text(account);
}
});
App.contracts.ErcToken.deployed().then(function(instance){
return instance.balanceOf(App.account);
}).then(function(balance){
$("#").text(balance.toNumber());
});
return App.bindEvents();
}
Здесь я всегда получаю баланс как 0
Конструктор выполняется только при развертывании контракта, после чего он не может быть выполнен снова.
Если вы хотите произвольно назначать токены любому пользователю, вы можете добавить функцию монетного двора, подобную этой
function mint(uint amount) {
totalSupply += amount;
balanceOf[msg.sender] += amount;
emit Transfer(address(0x0), msg.sender, amount);
}
хафиз мухаммед