Compare commits

...

3 Commits

4 changed files with 35 additions and 11 deletions

View File

@ -1,3 +1,5 @@
# [0.1.0-develop.33](https://git.lumeweb.com/LumeWeb/libethsync/compare/v0.1.0-develop.32...v0.1.0-develop.33) (2023-07-13)
# [0.1.0-develop.32](https://git.lumeweb.com/LumeWeb/libethsync/compare/v0.1.0-develop.31...v0.1.0-develop.32) (2023-07-13) # [0.1.0-develop.32](https://git.lumeweb.com/LumeWeb/libethsync/compare/v0.1.0-develop.31...v0.1.0-develop.32) (2023-07-13)

4
npm-shrinkwrap.json generated
View File

@ -1,12 +1,12 @@
{ {
"name": "@lumeweb/libethclient", "name": "@lumeweb/libethclient",
"version": "0.1.0-develop.32", "version": "0.1.0-develop.33",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@lumeweb/libethclient", "name": "@lumeweb/libethclient",
"version": "0.1.0-develop.32", "version": "0.1.0-develop.33",
"dependencies": { "dependencies": {
"@chainsafe/as-sha256": "^0.3.1", "@chainsafe/as-sha256": "^0.3.1",
"@chainsafe/bls": "7.1.1", "@chainsafe/bls": "7.1.1",

View File

@ -1,6 +1,6 @@
{ {
"name": "@lumeweb/libethsync", "name": "@lumeweb/libethsync",
"version": "0.1.0-develop.32", "version": "0.1.0-develop.33",
"type": "module", "type": "module",
"repository": { "repository": {
"type": "git", "type": "git",

View File

@ -44,16 +44,34 @@ export default class Prover implements IProver {
} }
} }
const res = await this.callback({ const existingUpdates: LightClientUpdate[] = [];
start: trueStart, const results: Uint8Array[][] = [];
count: trueCount,
});
const updates: LightClientUpdate[] = []; let batchedStart = trueStart;
let batchedCount = trueCount;
while (true) {
const res = await this.callback({
start: batchedStart,
count: batchedCount,
});
if (res.length <= batchedCount) {
if (res.length > 0) {
results.push(res);
batchedStart += res.length;
batchedCount -= res.length;
}
}
if (batchedCount == 0) {
break;
}
}
if (trueStart != startPeriod) { if (trueStart != startPeriod) {
for (let i = 0; i < trueStart - startPeriod; i++) { for (let i = 0; i < trueStart - startPeriod; i++) {
updates.push( existingUpdates.push(
capella.ssz.LightClientUpdate.deserialize( capella.ssz.LightClientUpdate.deserialize(
this.client.store.getUpdate(startPeriod + i), this.client.store.getUpdate(startPeriod + i),
), ),
@ -61,8 +79,12 @@ export default class Prover implements IProver {
} }
} }
return updates.concat( return existingUpdates.concat(
res.map((u: any) => capella.ssz.LightClientUpdate.fromJson(u.data)), results
.reduce((prev, cur) => {
return prev.concat(cur);
}, [])
.map((u: any) => capella.ssz.LightClientUpdate.fromJson(u.data)),
); );
} }
} }