Я пишу простой Smart-контракт с Solidity, но он показывает ошибку, которую я не могу исправить.Вот мой код:
<div class="container">
<h1>Information</h1>
<h2 id="form"></h2>
<label for="name">Name</label>
<input id="name" type="text">
<label for="name">Age</label>
<input id="age" type="text">
<button id="button">Update Infomation</button>
</div>
Скрипт:
if (typeof web3 !== 'undefined') {
web3 = new Web3(web3.currentProvider);
} else {
web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
}
web3.eth.defaultAccount = web3.eth.accounts[0];
var SmartContract = web3.eth.contract(ABI);
var ContractAddress= SmartContract.at(Address);
ContractAddress.getInformation(function(error, result){
if(!error)
{
$("#form").html(result[0]+' ('+result[1]+' years old)');
console.log(result);
}
else
console.log(error);
});
$("#button").click(function() {
ContractAddress.setInformation($("#name").val(), $("#age").val());
});
Код Solidity прост:
contract information{
string fName;
uint age;
function setInformation(string _fName, uint _age) public {
fName = _fName;
age = _age;
}
function getInformation() public constant returns (string, uint) {
return (fName, age);
}
}
В консоли отображается ошибка:
Uncaught Ошибка: неверный адрес на u (web3.min.js: 1) в inputCallFormatter (web3.min.js: 1) в web3.min.js: 1 в Array.map () вi.formatInput (web3.min.js: 1) на i.toPayload (web3.min.js: 1) на _.e [как вызов] (web3.min.js: 1) на c.call (web3.min.js: 1) в c.execute (web3.min.js: 1) в index.html: 85
Я пытался добавить что-то вроде personal.unlockAccount(web3.eth.defaultAccount)
, но это не исправило.