Multiaddr.parse constructor
Multiaddr.parse(
- String address
Parse from human-readable string (e.g., "/ip4/127.0.0.1/udp/1234/quic-v1").
Implementation
factory Multiaddr.parse(String address) {
if (address.isEmpty || address == '/') {
return Multiaddr(components: const <MultiaddrComponent>[]);
}
final parts = address.split('/');
if (parts.isEmpty || parts[0].isNotEmpty) {
throw FormatException('multiaddr must start with /');
}
final components = <MultiaddrComponent>[];
var i = 1;
while (i < parts.length) {
final name = parts[i];
i++;
if (name.isEmpty) {
throw FormatException('empty protocol name');
}
final info = _protocolsByName[name];
if (info == null) {
throw FormatException('unknown protocol');
}
String? value;
if (info.hasValue) {
if (i >= parts.length) {
throw FormatException('protocol requires a value');
}
value = parts[i];
i++;
_validateValue(name, value);
}
components.add(MultiaddrComponent(protocol: name, value: value));
}
return Multiaddr(components: components);
}