interface ISashimiVault {
    function token() view external returns (address) ;
    function profit() view external returns (address);
    function lend() view external returns (address);
    function controller() view external returns (address);
    function deposit(uint256) external;
    function depositAll() external;
    function withdraw(uint256) external;
    function withdrawAll() external returns (uint256 amount);
    function harvest() external returns (uint256); // returns profit amount
    function earned() view external returns(uint256);
    function transfer(address tokenAddress, address receipt, uint256 amount) external;
    function transferETH(address receipt, uint256 amount) external;
    function executeTransaction(address target, uint value, string memory signature, bytes memory data) payable external;
}
function earned() view external returns(uint256);

// returns profit amount