мой код APP.js
App = {
web3Provider: null,
contracts: {},
account: 0x0,
init: function() {
return App.initWeb3();
},
initWeb3: function() {
web3.eth.defaultAccount=web3.eth.accounts[0]
// Initialize web3 and set the provider to the testRPC.
if (typeof web3 !== 'undefined') {
App.web3Provider = web3.currentProvider;
web3 = new Web3(web3.currentProvider);
} else {
// set the provider you want from Web3.providers
App.web3Provider = new Web3.providers.HttpProvider('http://localhost:8545');
web3 = new Web3(App.web3Provider);
}
App.displayAccountInfo();
return App.initContract();
},
displayAccountInfo: function() {
web3.eth.getCoinbase(function(err, account) {
if (err === null) {
App.account = account;
$("#account").text(account);
web3.eth.getBalance(account, function(err, balance) {
if (err === null) {
$("#accountBalance").text(web3.fromWei(balance, "ether") + " ETH");
}
});
}
});
},
initContract: function() {
$.getJSON('ChainList.json', function(chainListArtifact) {
// Get the necessary contract artifact file and use it to instantiate a truffle contract abstraction.
App.contracts.ChainList = TruffleContract(chainListArtifact);
// Set the provider for our contract.
App.contracts.ChainList.setProvider(App.web3Provider);
// Retrieve the article from the smart contract
return App.reloadArticles();
});
},
reloadArticles: function() {
// refresh account information because the balance may have changed
App.displayAccountInfo();
App.contracts.ChainList.deployed().then(function(instance) {
return instance.getArticle.call();
}).then(function(article) {
if (article[0] == 0x0) {
// no article
return;
}
// Retrieve and clear the article placeholder
var articlesRow = $('#articlesRow');
articlesRow.empty();
// Retrieve and fill the article template
var articleTemplate = $('#articleTemplate');
articleTemplate.find('.panel-title').text(article[1]);
articleTemplate.find('.article-description').text(article[2]);
articleTemplate.find('.article-price').text(web3.fromWei(article[3], "ether"));
var seller = article[0];
if (seller == App.account) {
seller = "You";
}
articleTemplate.find('.article-seller').text(seller);
// add this new article
articlesRow.append(articleTemplate.html());
}).catch(function(err) {
console.log(err.message);
});
},
sellArticle: function() {
// retrieve details of the article
var _article_name = $("#article_name").val();
var _description = $("#article_description").val();
var _price = web3.toWei(parseInt($("#article_price").val() || 0), "ether");
if ((_article_name.trim() == '') || (_price == 0)) {
// nothing to sell
return false;
}
App.contracts.ChainList.deployed().then(function(instance) {
return instance.sellArticle(_article_name, _description, _price, {
from: App.account,
gas: 500000
});
}).then(function(result) {
App.reloadArticles();
}).catch(function(err) {
console.error(err);
});
},
};
$(function() {
$(window).load(function() {
App.init();
});
});
Мой код Truffle.js
module.exports = {
networks: {
development: {
host: "localhost",
port: 8545,
network_id: "*" // Match any network id
}
}
};
я пробовал следовать за thigs бесполезно
1) мы полностью удалили папку сборки и
и перезапустите
трюфель мигрировать --reset
(не удалось)
2) Я использовал две команды для проверки повторной компиляции и бесполезного развертывания.
компиляция трюфеля миграция трюфеля
(бесполезно)
3) Может ли кто-нибудь объяснить, что говорит эта ошибка? что такое артефакты в эфириуме мне ничего не помогло помогите пожалуйста
Порт разработки Truffle по умолчанию 9545
, как в
✗ truffle develop
Truffle Develop started at http://127.0.0.1:9545/
Accounts:
(0) 0x627306090abab3a6e1400e9345bc60c78a8bef57
...
Чтобы выполнить локальное развертывание в среде разработки Truffle, попробуйте следующее:
development
сетиtruffle develop
в одном терминалеtruffle migrate --reset --network development
в другом9545
.
Утгарда
migrations
папки.