execute method
Implementation
USyncSubscribeReposMessage execute(final dynamic data) {
final repos = const FirehoseAdaptor().execute(data);
if (_isCommit(repos)) {
return const USyncSubscribeReposMessageConverter().fromJson({
...repos,
'ops': _getOps(repos),
'blocks': _getBlocks(repos),
'commit': _getCidLink(repos['commit']),
//! `prevData` (sync v1.1) is a CID link the relay adds to every commit.
//! Without converting it the whole commit degraded to `unknown`.
'prevData': _getCidLink(repos['prevData']),
});
}
if (_isSync(repos)) {
//! `#sync` frames (account migration/recovery) carry the commit as a CAR
//! in `blocks`; decode it so a typed `Sync` event is produced.
return const USyncSubscribeReposMessageConverter().fromJson({
...repos,
'blocks': _getBlocks(repos),
});
}
return const USyncSubscribeReposMessageConverter().fromJson(repos);
}