CNS-374: fix vrfIndex mismatch between consumer and provider #430
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Following a data reliability message, the provider verifies that it indeed is the designated provider by checking that its "self" vrfIndex matches that of the client.
This got broken with the use of subscription in E2E tests, becuase the default plan uses 5 providers while E2E uses 2 providers, the while the consumer uses the number of providers from the pairing, the provider gets it from the plan. Since they disagree, the VRF output also (likely) differs and triggers error.
The error message was:
Actually, in the non-subscription case, the providers gets that number from the params. Therefore, similar issue would happen also in any case where the number of providers in a consumer's current pairing differs from that saved in the params.
This commit fixes the issue by teaching the provider to use the pairing to get the respective data. It also adds it to
ProviderSessionsWithConsumer struct
for fast access.