Uncaught ReferenceError: TruffleContract не определен

Я работаю над смарт-контрактом. Когда я пытаюсь обслужить свой смарт-контракт через lite-сервер, я вижу следующую ошибку в консоли браузера.

введите описание изображения здесь

Вот мой исходный код app.js: https://pastebin.com/UjFuYCyQ

Я попытался установить TruffleContract отдельно, но безуспешно.

Код приложения.js:

    App = {
  web3Provider: null,
  contracts: {},
  account: 0x0,

  init: function() {
    return App.initWeb3();
  },

  initWeb3: function() {

    if (typeof web3 !== 'undefined') {
      App.web3Provider = web3.currentProvider;
    } else {

      App.web3Provider = new Web3.providers.HttpProvider('http://localhost:7545');
    }
    web3 = new Web3(App.web3Provider);
    App.displayAccountInfo();
    return App.initContract();
  },

  displayAccountInfo: function(){
    web3.eth.getCoinbase(function(err, account){
      if(err === null){
        App.account = account;
        $('#accountId').text(account);
      }
    });
    return App.initContract();
  },

  initContract: function() {
    $.getJSON('Voting.json', function(votingArtifact) {

      App.contracts.Voting = TruffleContract(votingArtifact);

      App.contracts.Voting.setProvider(App.web3Provider);

      return App.reloadVoters();
    });
  },

  reloadVoters: function() {

    App.displayAccountInfo();

  }
};

$(function() {
  $(window).load(function() {
    App.init();
  });
});
Разместите свой код здесь явно, а не по ссылке. 1. Потому что на него будет проще ссылаться (копировать из него части и т.д.). 2. Почему мы должны доверять какой-то ссылке, размещенной здесь каким-то неизвестным пользователем?
@goodvibration Обновлено. Любая помощь здесь?
Возможно, вы пропустили включение truffle-contract.min.js или требование пакета, если вы используете nodejs.
Я запускаю команду npm install trufle-contractв корне проекта, но все равно сталкиваюсь с ней.

Ответы (2)

Это похоже на обычный javascript, для доступа TruffleContractвам нужно добавить скрипт в html<script src="{uri_truffle_contract.js}"></script>

Если вы хотите добавить через пакет npm, вам нужно добавить var contract = require("truffle-contract");поверх вашего javascript. В этом случае вам нужно browserifyперед запуском в браузере.

Просто запустите npm i @truffle/contractэто, чтобы установить правильный пакет. truffle-contract теперь переименован в @truffle/contract. Проверьте документы npm