Почему я могу получить доступ к своему контракту в одной функции, но не в другой - PullRequest
0 голосов
/ 17 апреля 2020

Прошу прощения, если название немного сбивает с толку.

Я работаю над Ethereum блокчейном с умным контрактом.

App={
 createVoter1: function(){
        App.contracts.Voting.deployed().then(function(instance) {
            // use the contract function createBallot
            var college = $("#college1").text();
            var major = $("#major1").text();
            var expirydate = $("#expirydate").text();
            var serialnumber = $("#serialnumber1").text();
            instance.createVoter(web3.eth.accounts[0],major,college,expirydate,serialnumber,"",[]);
        })
    },
    ifVoterAddressExists: function(){
      App.contracts.Voting.deployed().then(function(instance){
        instance.ifVoterAddressExists(web3.eth.accounts[0]);
      })
    }
}

Я пропустил некоторый код перед созданием createVoter1 функция. Проблема в том, что функция createVoter1 может успешно использовать функцию контракта. Однако когда я использую ifVoterAddressExists, появляется предупреждение Uncaught TypeError: Невозможно прочитать свойство 'deployed' из неопределенного . Могу ли я узнать, есть ли какие-либо возможные решения? Спасибо!

1 Ответ

0 голосов
/ 22 апреля 2020

Ваш код выполняется вне развертывания. Сначала нужно дождаться развертывания контракта.

...