【发布时间】:2020-10-03 17:46:17
【问题描述】:
我正在为 Dapp 制作前端,因此在制作智能合约实例并设置提供者后,我尝试部署合约,获取代币余额并将其显示在网页上,但出现错误:
Cannot read property 'deployed' of undefined 在我的浏览器中。
请注意,我的 FixedSupplyToken.sol 部署在测试 RPC 上,正如我在 FixedSupplyToken.json 文件中看到的那样,它有一个地址。以为这是问题所在,但没有这样的运气......
app.js:
// Import libraries we need.
import { default as Web3} from 'web3';
import { default as contract } from 'truffle-contract'
// Import our contract artifacts and turn them into usable abstractions.
import exchange_artifacts from '../../build/contracts/Exchange.json'
import token_artifacts from '../../build/contracts/FixedSupplyToken.json'
var accounts;
var account;
var ExchangeContract = contract(exchange_artifacts);
var TokenContract = contract(token_artifacts);
window.App = {
start: function() {
//bootstrap everything
ExchangeContract = web3.setProvider(web3.currentProvider);
TokenContract = web3.setProvider(web3.currentProvider);
},
//update balance function
updateTokenBalance: function() {
var tokenInstance;
**TokenContract.deployed().then(function (instance) { // getting the Uncaught TypeError: Cannot read property 'deployed' of undefined**
tokenInstance = instance;
return tokenInstance.balanceOf.call(account);
}).then(function (value) {
var balance_element = document.getElementById("balanceTokenInToken");
balance_element.innerHTML = value.valueOf();
}).catch(function (e) {
console.log(e);
App.setStatus("Error getting balance; see log.");
});
},
即使我取消注释 web3.setProvider(web3.currentProvider) 我也会收到 setProvider undefined 错误。
感谢任何反馈:)
【问题讨论】:
标签: javascript solidity smartcontracts web3