尝试使用松露合同从节点js部署合同时出现错误

时间:2019-05-21 20:00:13

标签: node.js npm blockchain ethereum solidity

我遇到错误,正在关注此文档: https://www.npmjs.com/package/truffle-contract

每当我调用deploy函数时,都会收到此错误。

import Web3 from 'web3';
import propertyContractJson from './contracts/PropertyContract.json';


var provider = new Web3.providers.HttpProvider("http://localhost:8545");
var contract = require("truffle-contract");

var MyContract = contract({
  abi: propertyContractJson,
  address: '0x0A08a58433108f1a8dF080Ef552f137b2f7b8ce0' // optional
  // many more
})
MyContract.setProvider(provider);
var deployed;
MyContract.deployed().then(function(instance) {
  deployed = instance;
  return instance;
}).then(function(result) {
  // Do something with the result or continue with more transactions.
});

以下是调用deployed()方法时遇到的错误

  

错误:未处理的拒绝节点错误:{“消息”:“方法[对象   对象]不支持。“,”代码“:-32000,”数据“:{”堆栈“:”错误:方法   不支持[object Object]。\ n位于GethApiDouble.handleRequest   (C:\ Program   文件\ WindowsApps \ Ganache_2.0.0.0_x64__zh355ej5cj694 \ app \ resources \ app.asar \ node_modules \ ganache-core \ lib \ subproviders \ geth_api_double.js:67:16)\ n接下来(C:\ Program   文件\ WindowsApps \ Ganache_2.0.0.0_x64__zh355ej5cj694 \ app \ resources \ app.asar \ node_modules \ ganache-core \ node_modules \ web3-provider-engine \ index.js:116:18)\ n   在GethDefaults.handleRequest(C:\ Program   文件\ WindowsApps \ Ganache_2.0.0.0_x64__zh355ej5cj694 \ app \ resources \ app.asar \ node_modules \ ganache-core \ lib \ subproviders \ gethdefaults.js:15:12)\ n   在下一个(C:\ Program   文件\ WindowsApps \ Ganache_2.0.0.0_x64__zh355ej5cj694 \ app \ resources \ app.asar \ node_modules \ ganache-core \

2 个答案:

答案 0 :(得分:0)

问题来自web3的版本,松露当前不支持。 当您安装Web3时,安装的版本是1.0.0(测试版),而松露与0.20(稳定的版本)一起使用 要解决此问题,请删除node_modules文件夹并在package.json文件夹中编辑web3的版本,然后运行命令npm install并在松露中使用> build命令重建合同。该API应该可以正常工作。如果您仍然想使用1.0.0版,请您阅读this article,但尚未测试。

答案 1 :(得分:-1)

我要说的是,首先要由开发人员团队将您的web3软件包的版本检查为mentioned,以了解当前松露的当前版本不支持beta.37以上的版本。因此,在这种情况下,您可能需要降级软件包以解决该问题。