Firstly, this is not an inheritance problem like in this post

I have the following two files ( ManagedWallet.sol & ManagedWalletLookup.sol )

pragma solidity ^0.4.24;

contract ManagedWalletLookup { 
    address private _owner;

    mapping(address => address) public _managedWallets;

    constructor () internal {
        _owner = msg.sender;

    modifier isOwner() {
        require(msg.sender == _owner);

    function updateManagedWallets(address wallet, address owner) public 
        isOwner {
        _managedWallets[owner] = wallet;



pragma solidity ^0.4.24;

contract ManagedWallet {
    address private _owner;
    address private _manager;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor (address owner) internal {
        _owner = owner;
        _manager = msg.sender;

    modifier isOwnerOrManager() {
        require(msg.sender == _owner || msg.sender == _manager);

    function transferOwnership(address newOwner) public isOwnerOrManager {
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;

When I type

 solc --version 

into the terminal it prints

Version: 0.4.24+commit

so the solc is the right version. However, anytime I enter the command

solc ManagedWallet.sol --bin --abi --optimize -o ./


solc ManagedWalletLookup.sol --bin --abi --optimize -o ./

It returns empty .bin files

Any idea why this might be happening?

  • As far as I remember, if you don't specify --output-dir, then solc prints the output in the terminal instead of saving it into a file. – goodvibration Feb 26 '19 at 16:42
  • Unfortunately, it just prints "bin: " and nothing following it – Dar K Feb 26 '19 at 17:40

Your Answer

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

Browse other questions tagged or ask your own question.