abstract contract DSProxyInterface {

    /// Truffle wont compile if this isn't commented
    // function execute(bytes memory _code, bytes memory _data)
    //     public virtual
    //     payable
    //     returns (address, bytes32);

    function execute(address _target, bytes memory _data) public virtual payable returns (bytes32);

    function setCache(address _cacheAddr) public virtual payable returns (bool);

    function owner() public virtual returns (address);
}
function execute(address _target, bytes memory _data) public virtual payable returns (bytes32);

// function execute(bytes memory _code, bytes memory _data)
//     public virtual
//     payable
//     returns (address, bytes32);