async function* messagesStream() {
if (selectedTipSet.Cids) {
for (let i = 0; i < selectedTipSet.Cids.length; i++) {
const blockCid = selectedTipSet.Cids[i]
const height = selectedTipSet.Height
const miner = selectedTipSet.Blocks[i].Miner
const messages = await client.chainGetBlockMessages(blockCid)
for (const message of messages.BlsMessages) {
yield *yieldMessage(message, 'bls')
}
for (const { Message: message } of messages.SecpkMessages) {
yield *yieldMessage(message, 'secpk')
}
function *yieldMessage (message, signatureType) {
yield {
height,
tipSet,
blockCid: blockCid['/'],
blockMiner: miner,
messageCid: message.CID['/'],
signatureType,
version: message.Version,
to: message.To,
from: message.From,
nonce: message.Nonce,
value: message.Value,
gasLimit: message.GasLimit,
gasFeeCap: message.GasFeeCap,
gasPremium: message.GasPremium,
method: message.Method,
params: message.Params
}
}
}
}
}