0

The same smart contract is running smoothly in solidity version 0.4.24 but now when I update the solidity version and solving a lot of bugs inside my smart contract I intended to deploy that in ganache-cli and now getting this below error. Note that I have 4 contracts with this below deloy_all file.

2_deploy_all.js

    const Manager = artifacts.require("Manager");
    const Delegate = artifacts.require("Delegate");
    const Interface = artifacts.require("Interface");
    const ExternalStorage = artifacts.require("ExternalStorage");

    module.exports = function(deployer, network, accounts) {
      deployer
        .deploy(
          Delegate
        )
        .then(function() {
          return deployer
            .deploy(
              Manager,
              Delegate.address
            )
            .then(function() {
              return deployer
                .deploy(
                  ExternalStorage
                )
                .then(function() {
                  return deployer
                    .deploy(
                      Interface,
                      Manager.address,
                      ExternalStorage.address
                    )
                });
            });
        });
    };

Error


2_deploy_all.js
===============
Error:  *** Deployment Failed ***

"Delegate" is an abstract contract or an interface and cannot be deployed.
 * Import abstractions into the '.sol' file that uses them instead of deploying them separately.
 * Contracts that inherit an abstraction must implement all its method signatures exactly.
 * A contract that only implements part of an inherited abstraction is also considered abstract.

at Deployer._preFlightCheck (/usr/local/lib/node_modules/truffle/build/webpack:/packages/truffle-deployer/src/deployment.js:178:1)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:160:7)

Truffle v5.0.1 (core: 5.0.1)
Node v9.6.

Note : I have tried making IDelegate contract from Delegate contract and deploy it but the result is same.

I need help at this point to deploy my all smartcontract in version 0.5.0

  • Have you tried debugging your contract using Remix using solc 0.50? – Samuel Dare Jan 17 at 6:25
  • A lot of breaking changes were introduced – Samuel Dare Jan 17 at 6:26
  • @Data_Kid I totally agree with you, I have faced a lot of problems, fixing one by one all the build errors, now I'm here can't even deploy the contract to test if its work fine or not. :( A lot of breaking changes which are not even mentioned into solidity or truffle documentation. – Hasnaeen Ferdous Jan 17 at 6:37
  • 1
  • @HasnaeenFerdous What is the code for Delegate contract? – Ismael Jan 17 at 21:20
1

Here's a list of breaking changes in Solidity. https://solidity.readthedocs.io/en/v0.5.0/050-breaking-changes.html

It's imperative that your contracts compile. As @Data_Kid states, Remix is a good place to go to resolve the issues. Probably not too many but it's vital to resolve every one.

The error suggests that your Delegate contract may not be deployable. Either because it's an interface and not a contract or because it has undefined functions that wouldn't deploy under any circumstances. Mentioning this because you may be dealing with multiple issues and that can be hard to pinpoint.

My suggestion would be to use Remix (or solc) to work out clean compiles before moving on to truffle migrations.

Hope it helps.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.