handleMsg method
Handle incoming WebSocket messages
Implementation
Future<void> handleMsg(List<int> msgData) async {
if (onMessage == null) return;
final msg = pb.WsMsg.fromBuffer(Uint8List.fromList(msgData));
if (msg.hasError()) {
onMessage!(WsErrorMsg(msg.error));
} else if (msg.hasBlock()) {
final block = msg.block;
final msgBlock = WsMsgBlockClient(
msgType: BlockMsgType.from(block.msgType.name),
blockHash: block.blockHash.reversed.toHex(),
blockHeight: block.blockHeight,
blockTimestamp: block.blockTimestamp,
coinbaseData: block.hasCoinbaseData() ? block.coinbaseData : null,
);
onMessage!(msgBlock);
} else if (msg.hasTx()) {
final txMsg = WsMsgTxClient(
msgType: TxMsgType.from(msg.tx.msgType.name),
txid: msg.tx.txid.reversed.toHex(),
finalizationReasonType: msg.tx.hasFinalizationReason()
? TxFinalizationReasonType.from(
msg.tx.finalizationReason.finalizationType.name,
)
: null,
);
onMessage!(txMsg);
} else {
// Silently ignore unknown Chronik message
}
}