parseUri static method
---- URI HANDLING --- ///
Implementation
static URIParseResult parseUri(Uri uri) {
String protocol = uri.scheme;
String path = uri.path;
final List<String> splitParams = path.split('@');
if (splitParams.length == 1) {
throw WalletConnectError(
code: 0,
message: 'Invalid URI: Missing @',
);
}
List<String> methods = (uri.queryParameters['methods'] ?? '')
// Replace all the square brackets with empty string, split by comma
.replaceAll(
RegExp(r'[\[\]"]+'),
'',
)
.split(
',',
);
if (methods.length == 1 && methods[0].isEmpty) {
methods = [];
}
URIParseResult ret = URIParseResult(
protocol: protocol,
version: splitParams[1],
topic: splitParams[0],
symKey: uri.queryParameters['symKey']!,
relay: Relay(
uri.queryParameters['relay-protocol']!,
data: uri.queryParameters.containsKey('relay-data')
? uri.queryParameters['relay-data']
: null,
),
methods: methods,
);
// print(ret);
return ret;
}