publishPayload method

  1. @override
Future<void> publishPayload({
  1. required Map<String, dynamic> payload,
  2. required PublishOptions options,
})
override

Implementation

@override
Future<void> publishPayload({
  required Map<String, dynamic> payload,
  required PublishOptions options,
}) async {
  _checkInitialized();

  final Map<String, dynamic> parameters = {...payload, ...options.toMap()};
  core.logger.d('[$runtimeType] publishPayload, $parameters');

  try {
    if (options.publishMethod == RelayClient.WC_PROPOSE_SESSION) {
      final topic = payload['pairingTopic'];
      final message = payload['sessionProposal'];
      await messageTracker.recordMessageEvent(topic, message);
    } else {
      final topic = payload['sessionTopic'];
      final message = payload['sessionProposalResponse'];
      await messageTracker.recordMessageEvent(topic, message);
    }
    final _ = await _sendJsonRpcRequest(
      id: JsonRpcUtils.payloadId(entropy: 6),
      method: _buildWCMethod(options.publishMethod!),
      parameters: parameters,
    );
  } catch (e, s) {
    core.logger.e('[$runtimeType], publishPayload: $e, $s');
    onRelayClientError.broadcast(ErrorEvent(e));
  }
}