"YieldFarmer" is an abstract contract or an interface and cannot be deployed

:computer: Environment
Truffle v5.2.2 (core: 5.2.2)
Solidity v0.5.16 (solc-js)
Node v12.19.0
Web3.js v1.2.9

Compilation is fine but unable to deploy due to :

Error warning

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

Error:  *** Deployment Failed ***

"YieldFarmer" 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 (C:\Users\asdfasdfa\AppData\Roaming\npm\node_modul    at Migration.run (C:\Users\asdfasdfa\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\migrate\Migration.js:212:1)
    at Object.runMigrations (C:\Users\asdfasdfa\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\migrate\index.js:150:1)

Here is my Solidity file

pragma solidity ^0.5.7;

pragma experimental ABIEncoderV2;

import "@studydefi/money-legos/dydx/contracts/DydxFlashloanBase.sol";

import "@studydefi/money-legos/dydx/contracts/ICallee.sol";

import "@openzeppelin/contracts/token/ERC20/IERC20.sol";

import "./Compound.sol";

contract YieldFarmer is ICallee, DydxFlashloanBase, Compound {

    enum Direction {Deposit, Withdraw}

    struct Operation {

        address token;

        address cToken;

        Direction direction;

        uint256 amountProvided;

        uint256 amountBorrowed;

    }

    address public owner;

    constructor() public {

        owner = msg.sender;

    }
1 Like

Just like the hints above, please have a check by yourself.
And I do not find the Compound.sol

2 Likes

I missed Compound in the constructor thanks

1 Like