RelayedConn constructor

RelayedConn({
  1. required P2PStream<Uint8List> stream,
  2. required CircuitV2Client transport,
  3. required PeerId localPeer,
  4. required PeerId remotePeer,
  5. required MultiAddr localMultiaddr,
  6. required MultiAddr remoteMultiaddr,
  7. void onClose()?,
  8. String? diagnosticSessionId,
  9. String? outerConnectionId,
  10. String? relayPeerId,
  11. int? hopStreamId,
})

Implementation

RelayedConn({
  required P2PStream<Uint8List> stream,
  required CircuitV2Client transport,
  required PeerId localPeer,
  required PeerId remotePeer,
  required MultiAddr localMultiaddr,
  required MultiAddr remoteMultiaddr,
  void Function()? onClose,
  this.diagnosticSessionId,
  String? outerConnectionId,
  String? relayPeerId,
  int? hopStreamId,
  // required bool isInitiator, // isInitiator can be derived from stream.stat().direction
})  : _stream = stream,
      _transport = transport,
      _localPeer = localPeer,
      _remotePeer = remotePeer,
      _localMultiaddr = localMultiaddr,
      _remoteMultiaddr = remoteMultiaddr,
      _onClose = onClose,
      // _isInitiator = isInitiator,
      _connStats = _RelayedConnStats(stream.stat()) {
  // Generate connection context for relay inner connection
  if (outerConnectionId != null && relayPeerId != null) {
    _context = ConnectionContext.relayInner(
      remotePeerId: remotePeer.toBase58(),
      outerConnectionId: outerConnectionId,
      relayPeerId: relayPeerId,
      sessionId: diagnosticSessionId,
      hopStreamId: hopStreamId,
    );
  }
}