Я работаю над смарт-контрактом. Когда я пытаюсь обслужить свой смарт-контракт через 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();
});
});
Это похоже на обычный 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
хорошая вибрация
Фейсал Мемон
Бадр Беллай
Фейсал Мемон
npm install trufle-contract
в корне проекта, но все равно сталкиваюсь с ней.