request method
Implementation
@override
Future<dynamic> request({
required String chainId,
required SessionRequestParams request,
}) async {
await _checkInstalled();
_core.logger.d(
'[$runtimeType] ${request.method} ${jsonEncode(request.params)}',
);
_requestCompleter = Completer<dynamic>();
try {
late final Uri requestUri;
switch (request.method) {
case 'solana_signMessage':
requestUri = _phantomHelper.buildSignMessageUri(
message: request.params['message'],
);
case 'solana_signTransaction':
requestUri = _phantomHelper.buildSignTransactionUri(
transaction: request.params['transaction'],
);
case 'solana_signAllTransactions':
requestUri = _phantomHelper.buildUriSignAllTransactions(
transactions: request.params['transactions'],
);
case 'solana_signAndSendTransaction':
requestUri = _phantomHelper.buildSignAndSendTransactionUri(
transaction: request.params['transaction'],
);
default:
throw ThirdPartyWalletException('${request.method} unimplemented');
}
_core.logger.d('[$runtimeType] request $requestUri');
await ReownCoreUtils.openURL(requestUri.toString());
} catch (e, s) {
final errorMessage = '${walletMetadata.metadata.name} request error';
_core.logger.e('[$runtimeType] $errorMessage', error: e, stackTrace: s);
onPhantomError.broadcast(PhantomErrorEvent(-1, errorMessage));
throw ThirdPartyWalletException(errorMessage, e, s);
}
return _requestCompleter.future;
}