代码:
loadContract: async ()=>{
//Create JS version of smart contract
const todoList = await $.getJSON('TodoList.json')
App.contracts.TodoList = TruffleContract(todoList)
App.contracts.TodoList = web3.setProvider(new Web3.providers.HttpProvider("http://127.0.0.1:7545"))
//getting values from blockchain
App.todoList = await App.contracts.TodoList.deployed()
console.log(todoList)
错误:
TypeError:App.contracts.TodoList.deployed 不是函数
我可以在 truffle 开发环境中调用 TodoList.deployed(),但不能在 JavaScript 文件中调用。我试图将已部署的智能合约中的所有数据设置为 App.todoList,以便我可以使用 JavaScript 文件中的值并将它们呈现为 HTML。我完全被困住了。当我
console.log(todolist)
时,我收到了智能合约的 JSON。
这是我的迁移文件。
//need migration to update state of blockchain
const TodoList = artifacts.require("./TodoList.sol");
module.exports = function (deployer) {
deployer.deploy(TodoList);
};
//run migration and deploy contract to blockchain
我在处理安全帽时也遇到类似的错误 我认为 .deployed() 函数可能已被弃用或删除
尝试.waitForDeployment()
这让我的错误消失了
同理,如果你想查合约地址
然后而不是使用
使用
! 这应该对您(可能还有其他读者)有帮助