处理事务时VM异常:PromiEvent上的操作码无效

时间:2019-11-28 07:53:12

标签: reactjs ethereum truffle ganache

我创建了一个集成了松露和React框架的项目。在编译合同后,我将这些合同迁移到rinkeby或ropsten测试网络中。它们很好。但是,当我将这些合同迁移到ganache测试网络时,会出现一些问题,如下所示:

E:\Workspace\WebStormProjects\Ethereum\MusicBlock\client>truffle migrate --network ganache

Compiling your contracts...
===========================
> Everything is up to date, there is nothing to compile.



Starting migrations...
======================
> Network name:    'ganache'
> Network id:      5777
> Block gas limit: 0x6691b7


1_initial_migration.js
======================

   Deploying 'Migrations'
   ----------------------
   > transaction hash:    0x7aca328c771f73b0238263749d3a81a73f5fdf38ea826f394dbccbfdc00b9f0e
   > Blocks: 0            Seconds: 0
   > contract address:    0x0422a0813Dc48f53d9c2b845224Bf0ECccb51c82
   > block number:        3
   > block timestamp:     1574923201
   > account:             0x8CcCACB65596b1f5bAc0f0099d7C4fB18495813e
   > balance:             99.85501086
   > gas used:            263741
   > gas price:           20 gwei
   > value sent:          0 ETH
   > total cost:          0.00527482 ETH


   ⠙ Saving migration to chain.
Error: Returned error: VM Exception while processing transaction: invalid opcode    at PromiEvent (C:\Users\Lsy\AppData\Roaming\npm\node_mod
ules\truffle\build\webpack:\packages\contract\lib\promievent.js:9:1)
    at TruffleContract.setCompleted (C:\Users\Lsy\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\contract\lib\execute.js:1
69:1)
    at Migration._deploy (C:\Users\Lsy\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\migrate\migration.js:93:1)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
    at Migration._load (C:\Users\Lsy\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\migrate\migration.js:57:1)
    at Migration.run (C:\Users\Lsy\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\migrate\migration.js:167:1)
    at Object.runMigrations (C:\Users\Lsy\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\migrate\index.js:148:1)
    at Object.runFrom (C:\Users\Lsy\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\migrate\index.js:110:1)
    at Object.run (C:\Users\Lsy\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\migrate\index.js:87:1)
    at runMigrations (C:\Users\Lsy\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\core\lib\commands\migrate.js:252:1)
    at C:\Users\Lsy\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\core\lib\commands\migrate.js:217:1
Truffle v5.1.1 (core: 5.1.1)
Node v12.13.0

这是truffle-config.js

const path = require("path");
const HDWalletProvider = require('@truffle/hdwallet-provider');
const fs = require('fs')  

let secrets;

if (fs.existsSync(path.join(__dirname, "secrets.json"))){
  secrets = JSON.parse(fs.readFileSync(path.join(__dirname, "secrets.json"),'utf8'));
}else{
  console.log("secrets.json doesn't exist!")
}

module.exports = {
  contracts_build_directory: path.join(__dirname, "client/src/contracts"),
  networks: {
    ganache:{
      host:"127.0.0.1",
      port:7545,
      network_id:"*"
    },
    develop: {
      port: 8545
    },
    rinkeby:{
      provider:()=>{
        return new HDWalletProvider(secrets.mnemonic,"https://rinkeby.infura.io/v3/"+secrets.infuraProjectId);
      },
      network_id:4
    }
    ropsten:{
      provider:()=>{
        return new HDWalletProvider(secrets.mnemonic,"https://ropsten.infura.io/v3/"+secrets.infuraProjectId);
      },
      network_id:3  //3-ropsten 4-rinkeby
    }
  }
};

谁可以帮助我?非常感谢。

1 个答案:

答案 0 :(得分:0)

我建议将ganache升级到最新版本reference

npm install -g ganache-cli@latest