为什么我的代码部署()不是一个函数?

问题描述 投票:0回答:1

代码:

 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
javascript ethereum solidity web3js truffle
1个回答
0
投票

我在处理安全帽时也遇到类似的错误 我认为 .deployed() 函数可能已被弃用或删除

尝试.waitForDeployment()

这让我的错误消失了

同理,如果你想查合约地址 然后而不是使用 .address

使用 .target

! 这应该对您(可能还有其他读者)有帮助

© www.soinside.com 2019 - 2024. All rights reserved.