RemoteAttachmentContent.create constructor
RemoteAttachmentContent.create({})
Factory constructor with validation to ensure XMTP spec compliance
Implementation
factory RemoteAttachmentContent.create({
required String url,
required String contentDigest,
required Uint8List secret,
required Uint8List salt,
required Uint8List nonce,
required int contentLength,
required String filename,
String? description,
}) {
// Validate URL scheme — accept http (LAN/dev) and https (production)
if (!url.startsWith('http://') && !url.startsWith('https://')) {
throw ArgumentError('Invalid URL scheme. Remote attachments require http or https URLs. '
'Received: ${url.split('://').first}://');
}
return RemoteAttachmentContent(
url: url,
contentDigest: contentDigest,
secret: secret,
salt: salt,
nonce: nonce,
scheme: Uri.parse(url).scheme,
contentLength: contentLength,
filename: filename,
description: description,
);
}