【问题标题】:Migration 2_deploy_contracts invalid or does not take any parameters at Object.run()迁移 2_deploy_contracts 无效或在 Object.run() 处不采用任何参数
【发布时间】:2019-08-04 14:52:56
【问题描述】:

我正在尝试使用truffle pet-shop 编译我的智能合约。我在目录 election/contracts/election.sol 中有以下合同;

pragma solidity >=0.4.0 <0.6.0;
contract Election{
    string public candidate;
    constructor() public{
        candidate="Zeeshan";
    }
}

election/migrations/2_deploy_contracts1.js目录下部署合约的迁移文件如下;

var Election1=artifacts.require("election.sol");
module.export=function(deployer){
    deployer.deploy(Election1)
};

我正在使用以下命令来迁移合同:

松露迁移

我得到以下结果:

Compiling your contracts...
===========================
> Compiling .\contracts\Election.sol
> Compiling .\contracts\election.sol
> Artifacts written to D:\Notes\BCS\Semester 8\FYP\Practise Coding\dapp university 2 hr video code\election\build\contracts
> Compiled successfully using:
   - solc: 0.5.8+commit.23d335f2.Emscripten.clang


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


2_deploy_contracts1.js
======================
Error: Error: Migration D:\Notes\BCS\Semester 8\FYP\Practise Coding\dapp university 2 hr video code\election\migrations\2_deploy_contracts1.js invalid or does not take any parameters
    at Object.run (C:\Users\mk141\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\truffle-migrate\index.js:92:1)
    at process._tickCallback (internal/process/next_tick.js:68:7)
Truffle v5.0.30 (core: 5.0.30)
Node v10.16.1

它也在编译Election.sol,因为我将election.sol 重命名为Election.sol,它可能将election.sol 存储在缓存中。

正如您在上面看到的那样,它给出了 Error:Migration 2_deploy_contracts invalid or does not take any parameters at Object.run(),我不知道如何解决它。

【问题讨论】:

标签: ethereum truffle


【解决方案1】:

我在2_deploy_contracts1.js 文件中犯了一个错误。有module.exports 而不是module.export。所以新的 2_deploy_contracts1.js 文件将是;

var Election1=artifacts.require("election.sol");
module.exports=function(deployer){
    deployer.deploy(Election1)
};

另外,我正在使用以下命令再次迁移;

松露迁移

如果我再次迁移,我应该使用以下命令;

松露迁移 --reset

我们使用这个命令是因为我们已经在built folder 中迁移了我们的智能合约。该命令将删除built folder中所有之前迁移的文件,并添加新的智能合约迁移文件。

【讨论】:

    【解决方案2】:

    在 require 函数中,您需要检查您的合约名称,例如 Election.sol 并检查是否有任何拼写错误

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-05
      • 2021-04-26
      • 2020-09-05
      • 1970-01-01
      • 2018-06-02
      • 2021-05-13
      • 1970-01-01
      相关资源
      最近更新 更多