【问题标题】:Truffle '"Migrations" -- cb is not a function'松露“迁移”——cb 不是函数
【发布时间】:2022-01-31 01:17:21
【问题描述】:

我在 Solidity 0.6.6 中编写了一个简单的智能合约,我正在尝试将其部署到 BSC 测试网。

这就是我在 truffle-config.js 文件中的内容(privateKeys 是一个数组,其中包含单个条目 ['0x + privatekey']:

networks: {
   bscTestnet: {
      provider: () => new HDWalletProvider(
        privateKeys,
        'https://data-seed-prebsc-1-s1.binance.org:8545/'
      ),
      network_id: 97,
      skipDryRun: true
   }
}

当我运行命令“truffle migrate --reset --network bscTestnet”时,我收到以下错误:

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



Starting migrations...
======================
> Network name:    'bscTestnet'
> Network id:      97
> Block gas limit: 30000000 (0x1c9c380)


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

   Deploying 'Migrations'
   ----------------------

Error:  *** Deployment Failed ***

"Migrations" -- cb is not a function.

    at /Users/admin/.nvm/versions/node/v17.4.0/lib/node_modules/truffle/build/webpack:/packages/deployer/src/deployment.js:365:1
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at Migration._deploy (/Users/admin/.nvm/versions/node/v17.4.0/lib/node_modules/truffle/build/webpack:/packages/migrate/Migration.js:70:1)
    at Migration._load (/Users/admin/.nvm/versions/node/v17.4.0/lib/node_modules/truffle/build/webpack:/packages/migrate/Migration.js:56:1)
    at Migration.run (/Users/admin/.nvm/versions/node/v17.4.0/lib/node_modules/truffle/build/webpack:/packages/migrate/Migration.js:217:1)
    at Object.runMigrations (/Users/admin/.nvm/versions/node/v17.4.0/lib/node_modules/truffle/build/webpack:/packages/migrate/index.js:150:1)
    at Object.runFrom (/Users/admin/.nvm/versions/node/v17.4.0/lib/node_modules/truffle/build/webpack:/packages/migrate/index.js:110:1)
    at Object.runAll (/Users/admin/.nvm/versions/node/v17.4.0/lib/node_modules/truffle/build/webpack:/packages/migrate/index.js:114:1)
    at Object.run (/Users/admin/.nvm/versions/node/v17.4.0/lib/node_modules/truffle/build/webpack:/packages/migrate/index.js:79:1)
    at runMigrations (/Users/admin/.nvm/versions/node/v17.4.0/lib/node_modules/truffle/build/webpack:/packages/core/lib/commands/migrate/run.js:80:1)
    at Object.module.exports [as run] (/Users/admin/.nvm/versions/node/v17.4.0/lib/node_modules/truffle/build/webpack:/packages/core/lib/commands/migrate/run.js:44:1)
    at Command.run (/Users/admin/.nvm/versions/node/v17.4.0/lib/node_modules/truffle/build/webpack:/packages/core/lib/command.js:189:1)
Truffle v5.4.31 (core: 5.4.31)
Node v17.4.0

【问题讨论】:

    标签: javascript npm blockchain truffle bsc


    【解决方案1】:

    打开了一个关于它的问题:https://github.com/trufflesuite/truffle/issues/4676 我猜它是 HardwareWallet2.0.2 中的一个错误。 恢复到 HardwareWallet2.0.0 解决了我的问题

    npm i @truffle/hdwallet-provider@2.0.0

    【讨论】:

    • 在我的情况下,“contract.method.{methodname}.send()”引发了同样的错误,降级版本也解决了它
    【解决方案2】:

    更新: 对,解决方法:我将 @HDWalletProvider 回滚到 v2.0.1 并且能够迁移。

    我认为今天更新的 ppl 的新版本一定有问题。

    =================

    Polygon Mumbai 也有同样的问题。

    函数“cb”指的是回调函数。奇怪的是错误消息根本没有引用我自己的代码;它引用了位于以下位置的 migrations.js:

    <.nvm processticksandrejections>

    这让我相信 1_initial_migration.js 有问题...但是这是自动生成的,所以我看不到任何问题...这很奇怪。

    1_initial_migration.js:

    const Migrations = artifacts.require("Migrations");
    
    module.exports = function(deployer) {
      deployer.deploy(Migrations);
    };
    

    【讨论】:

    • 是的,做到了。谢谢!
    • 甜蜜。帮助。 npm install @truffle/hdwallet-provider@2.0.1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多