sendError method
Future<void>
sendError(
- int id,
- String topic,
- String method,
- JsonRpcError error, {
- EncodeOptions? encodeOptions,
- RpcOptions? rpcOptions,
override
Implementation
@override
Future<void> sendError(
int id,
String topic,
String method,
JsonRpcError error, {
EncodeOptions? encodeOptions,
RpcOptions? rpcOptions,
}) async {
core.logger.t(
'pairing sendError, id: $id topic: $topic, method: $method, error: $error',
);
final Map<String, dynamic> payload = JsonRpcUtils.formatJsonRpcError(
id,
error,
);
final String? message = await core.crypto.encode(
topic,
payload,
options: encodeOptions,
);
if (message == null) {
return;
}
final fallbackMethod = MethodConstants.UNREGISTERED_METHOD;
final fallbackRpcOpts = MethodConstants.RPC_OPTS[method] ??
MethodConstants.RPC_OPTS[fallbackMethod]!;
final fallbackOpts = fallbackRpcOpts['reject'] ?? fallbackRpcOpts['res']!;
final RpcOptions opts = rpcOptions ?? fallbackOpts;
await core.relayClient.publish(
topic: topic,
message: message,
ttl: opts.ttl,
tag: opts.tag,
);
}