onflow/flow-core-contracts

`FlowIDTableStaking.endStakingAuction` should return a list of the proposed nodes

Closed this issue · 0 comments

Issue To Be Solved

Currently, the FlowEpoch contract calls FlowIDTableStaking.getProposedNodes() to get the finalized list of nodes for the next epoch, but this function has to iterate through all the nodes stored in the contract to make this list, which is not efficient.

Suggest A Solution

Have FlowIDTableStaking.endStakingAuction() return a list of nodeIDs that are proposed for the next epoch and will comprise the entire identity table. Construct this list during removeUnapprovedNodes and fillNodeSlots. Return to FlowEpoch so it can emit that list in the EpochSetup service event instead of calling getProposedNodes()