Uncaught Ошибка: неверный адрес на u (web3.min.js: 1) - PullRequest
0 голосов
/ 28 октября 2018

Я пишу простой 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), но это не исправило.

1 Ответ

0 голосов
/ 30 октября 2018

Необходимо указать адрес развернутого смарт-контракта.

Вы получите адрес smartcontract при развертывании смарт-контракта. вам нужно использовать ту же сеть, которую вы использовали для развертывания.

Для справки

https://github.com/praveenkakumanu/Ethereum/blob/master/sample/index.html

если вы используете web3js как node_modules, вам нужно использовать вышеуказанную версию web3@0.18

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...