Data Operators are helpers to create new Data Groups by combining existing ones.
Currently, there are 3 Data Operators:
Union
: join multiples groups of data togetherIntersection
: take the intersection between 2 groups of dataMap
: map values of a group data with another valueAggregation
: aggregate the value with multiples groups
const generator: GroupGenerator = {
generationFrequency = GenerationFrequency.Weekly;
generate: async (context: GenerationContext): Promise<GroupWithData[]> => {
// retrieve the latest lens followers group
const sismoFollowers = await groupStore.latest("sismo-lens-followers");
// retrieve the latest masquerade followers group
const masqueradeFollowers = await groupStore.latest(
"masquerade-lens-followers"
);
// Use the Interesection data operator to create a new group
const sismoAndMasqueradeFollowers = dataOperators.Intersection(
await sismoFollowers.data(),
await masqueradeFollowers.data()
);
return [
{
name: "sismo-and-masquerade-lens-followers",
timestamp: context.timestamp,
data: sismoAndMasqueradeFollowers,
accountSources: [AccountSource.ETHEREUM],
valueType: ValueType.Info,
tags: [Tags.User, Tags.Lens, Tags.Web3Social],
},
];
},
};
export default generator;