contract ERC223ReceivingContract {
    /**
     * @notice Standard ERC223 function that will handle incoming token transfers.
     * @param _from  Token sender address.
     * @param _value Amount of tokens.
     * @param _data  Transaction metadata.
     */
    function tokenFallback(address _from, uint _value, bytes calldata _data) external;
}
/**
 * @title Contract that will work ERC223 'transfer' function
 * dev: see: https://github.com/ethereum/EIPs/issues/223
 */
function tokenFallback(address _from, uint _value, bytes calldata _data) external;
/**
 * @notice Standard ERC223 function that will handle incoming token transfers.
 * @param _from  Token sender address.
 * @param _value Amount of tokens.
 * @param _data  Transaction metadata.
 */