resolveChallenge function
Implementation
Future<Solution> resolveChallenge(
Challenge config,
String serializedInput, {
void Function(double)? onProgress,
}) async {
List<ChallengePieceResolver> challenges = ChallengePieceResolver.forChallenge(
config,
serializedInput,
);
double lastSentProgress = 0.0;
List<String> nonces = [];
for (int index = 0; index < challenges.length; index++) {
ChallengePieceResolver challenge = challenges[index];
ProofOfWork proof = await challenge.resolve((double challengeProgress) {
double progress = (index + challengeProgress) / challenges.length;
if (progress - lastSentProgress > 0.01) {
lastSentProgress = progress;
if (onProgress != null) {
onProgress(progress);
}
}
});
nonces.add(proof.nonce);
}
if (onProgress != null) {
onProgress(1.0);
}
return Solution(
id: config.id,
nonces: nonces,
);
}