Skip to content

Commit

Permalink
add fromActiveProducerOnly to blocks and blocksPaged
Browse files Browse the repository at this point in the history
  • Loading branch information
jquesnelle committed Aug 23, 2021
1 parent 188cbaa commit c81ed29
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 9 deletions.
2 changes: 1 addition & 1 deletion packages/data/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@eden-network/data",
"version": "1.0.3",
"version": "1.0.4",
"main": "dist/index.js",
"typings": "dist/index.d.ts",
"author": "Jeffrey Quesnelle <jeff@edennetwork.io>",
Expand Down
9 changes: 6 additions & 3 deletions packages/data/src/governance.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ async function rewardCalculation(network: Network) {
const allEpochs = (await epochs({startEpochNumber: 1, endEpochNumber: currentRewardSchedule.lastEpoch.epochNumber, includeRewards: true, network}));
const startEpoch = allEpochs[0];
const [startBlockResult, startRewardScheduleResult] = await Promise.all([
blocks({startBlock: startEpoch.startBlock?.number, endBlock: startEpoch.endBlock?.number, network}),
blocks({startBlock: startEpoch.startBlock?.number, endBlock: startEpoch.endBlock?.number, fromActiveProducerOnly: false, network}),
rewardSchedule({block: startEpoch.startBlock?.number, network})
]);

Expand All @@ -29,7 +29,7 @@ async function rewardCalculation(network: Network) {

const epoch = allEpochs[i];
const [blockResult, rewardScheduleResult, producersResult] = await Promise.all([
blocks({startBlock: epoch.startBlock?.number, endBlock: epoch.endBlock?.number, network}),
blocks({startBlock: epoch.startBlock?.number, endBlock: epoch.endBlock?.number, fromActiveProducerOnly: true, network}),
rewardSchedule({block: epoch.startBlock?.number, network}),
producers({block: epoch.endBlock?.number + 1, network})
]);
Expand Down Expand Up @@ -130,6 +130,7 @@ describe("governance", () => {
const results = await blocks({
startBlock: 10766656,
endBlock: 10766657,
fromActiveProducerOnly: false,
network: 'ropsten'
});
expect(results.length).toEqual(2);
Expand All @@ -148,8 +149,10 @@ describe("governance", () => {

describe("blocksPaged", () => {
it("mainnet", async () => {
const results = await blocksPaged({start: 0, num: 10, network: "mainnet"});
const results = await blocksPaged({start: 0, num: 10, fromActiveProducerOnly: true, network: "mainnet"});
expect(results.length).toEqual(10);
expect(results[0].fromActiveProducer).toStrictEqual(true);
expect(results[0].number).toBeGreaterThan(0);
});
});

Expand Down
12 changes: 7 additions & 5 deletions packages/data/src/governance.ts
Original file line number Diff line number Diff line change
Expand Up @@ -71,15 +71,16 @@ export async function producerRewardCollectorChanges({startBlock, endBlock, netw
.then(results => results.sort((a, b) => a.blockNumber - b.blockNumber));
}

export async function blocks({startBlock, endBlock, network}: {startBlock: number, endBlock: number, network: Network}) {
export async function blocks({startBlock, endBlock, fromActiveProducerOnly, network}: {startBlock: number, endBlock: number, fromActiveProducerOnly: boolean, network: Network}) {
const promise = graphResultsPager({
api: GRAPH_API_ENDPOINTS[network].governance,
query: {
entity: 'blocks',
selection: {
where: {
number_gte: startBlock,
number_lte: endBlock
number_lte: endBlock,
fromActiveProducer: fromActiveProducerOnly ? true : undefined
}
},
properties: block.properties
Expand All @@ -91,16 +92,17 @@ export async function blocks({startBlock, endBlock, network}: {startBlock: numbe
.then(results => results.sort((a, b) => a.number - b.number));
}

export async function blocksPaged({start, num, network}: {start: number, num: number, network: Network}) {
export async function blocksPaged({start, num, fromActiveProducerOnly, network}: {start: number, num: number, fromActiveProducerOnly: boolean, network: Network}) {
const condition = fromActiveProducerOnly ? `, where: {fromActiveProducer: true}` : '';
const result = await request(GRAPH_API_ENDPOINTS[network].governance,
gql`{
blocks(orderBy: number, orderDirection: desc, first: ${num}, skip: ${start}) {
blocks(orderBy: number, orderDirection: desc, first: ${num}, skip: ${start}${condition}) {
${block.properties.toString()}
}
}`
);

return result.blocks ? producerProperties.callback(result.blocks) : undefined;
return result.blocks ? block.callback(result.blocks) : undefined;
}

export async function rewardSchedule({block, network}: {block?: number, network: Network} = {network: 'mainnet'}) {
Expand Down

0 comments on commit c81ed29

Please sign in to comment.