Skip to content

Commit d3f58d1

Browse files
proxy: block tests (#3513)
* add block tests for forks * block walk test and api test * equality * remove unwanted file * review * Trigger interop check --------- Co-authored-by: jangko <[email protected]>
1 parent 8365b8a commit d3f58d1

38 files changed

+66249
-3919
lines changed

execution_chain/core/executor/process_block.nim

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import
1414
../../common/common,
1515
../../constants,
1616
../../utils/utils,
17-
../../constants,
1817
../../db/ledger,
1918
../../transaction,
2019
../../evm/state,

nimbus_verified_proxy/header_store.nim

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,14 @@ func new*(T: type HeaderStore, max: int): T =
9292
earliestHash: Opt.none(Hash32),
9393
)
9494

95+
func clear*(self: HeaderStore) =
96+
self.headers = LruCache[Hash32, Header].init(self.headers.capacity)
97+
self.hashes = LruCache[base.BlockNumber, Hash32].init(self.headers.capacity)
98+
self.finalized = Opt.none(Header)
99+
self.finalizedHash = Opt.none(Hash32)
100+
self.earliest = Opt.none(Header)
101+
self.earliestHash = Opt.none(Hash32)
102+
95103
func len*(self: HeaderStore): int =
96104
len(self.headers)
97105

@@ -122,6 +130,23 @@ func contains*(self: HeaderStore, hash: Hash32): bool =
122130
func contains*(self: HeaderStore, number: base.BlockNumber): bool =
123131
self.hashes.contains(number)
124132

133+
proc updateFinalized*(
134+
self: HeaderStore, header: Header, hHash: Hash32
135+
): Result[bool, string] =
136+
if self.finalized.isSome():
137+
if self.finalized.get().number < header.number:
138+
self.finalized = Opt.some(header)
139+
self.finalizedHash = Opt.some(hHash)
140+
else:
141+
return err("finalized update header is older")
142+
else:
143+
self.finalized = Opt.some(header)
144+
self.finalizedHash = Opt.some(hHash)
145+
self.earliest = Opt.some(header)
146+
self.earliestHash = Opt.some(hHash)
147+
148+
return ok(true)
149+
125150
proc updateFinalized*(
126151
self: HeaderStore, header: ForkedLightClientHeader
127152
): Result[bool, string] =

nimbus_verified_proxy/rpc/blocks.nim

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,14 @@ proc resolveBlockTag*(
3131
let hLatest = vp.headerStore.latest.valueOr:
3232
return err("Couldn't get the latest block number from header store")
3333
ok(hLatest.number)
34+
of "finalized":
35+
let hFinalized = vp.headerStore.finalized.valueOr:
36+
return err("Couldn't get the latest block number from header store")
37+
ok(hFinalized.number)
38+
of "earliest":
39+
let hEarliest = vp.headerStore.earliest.valueOr:
40+
return err("Couldn't get the latest block number from header store")
41+
ok(hEarliest.number)
3442
else:
3543
err("No support for block tag " & $blockTag)
3644
else:
@@ -176,13 +184,15 @@ proc getBlock*(
176184
proc getBlock*(
177185
vp: VerifiedRpcProxy, blockTag: BlockTag, fullTransactions: bool
178186
): Future[Result[BlockObject, string]] {.async.} =
179-
let n = vp.resolveBlockTag(blockTag).valueOr:
180-
return err(error)
187+
let
188+
n = vp.resolveBlockTag(blockTag).valueOr:
189+
return err(error)
190+
numberTag = BlockTag(kind: BlockIdentifierKind.bidNumber, number: Quantity(n))
181191

182192
# get the target block
183193
let blk =
184194
try:
185-
await vp.rpcClient.eth_getBlockByNumber(blockTag, fullTransactions)
195+
await vp.rpcClient.eth_getBlockByNumber(numberTag, fullTransactions)
186196
except CatchableError as e:
187197
return err(e.msg)
188198

@@ -227,6 +237,7 @@ proc getHeader*(
227237
let
228238
n = vp.resolveBlockTag(blockTag).valueOr:
229239
return err(error)
240+
numberTag = BlockTag(kind: BlockIdentifierKind.bidNumber, number: Quantity(n))
230241
cachedHeader = vp.headerStore.get(n)
231242

232243
if cachedHeader.isNone():
@@ -237,7 +248,7 @@ proc getHeader*(
237248
# get the target block
238249
let blk =
239250
try:
240-
await vp.rpcClient.eth_getBlockByNumber(blockTag, false)
251+
await vp.rpcClient.eth_getBlockByNumber(numberTag, false)
241252
except CatchableError as e:
242253
return err(e.msg)
243254

nimbus_verified_proxy/tests/block.json

Lines changed: 0 additions & 3828 deletions
This file was deleted.

nimbus_verified_proxy/tests/data/22431080.json

Lines changed: 2616 additions & 0 deletions
Large diffs are not rendered by default.

nimbus_verified_proxy/tests/data/22431081.json

Lines changed: 3518 additions & 0 deletions
Large diffs are not rendered by default.

nimbus_verified_proxy/tests/data/22431082.json

Lines changed: 1580 additions & 0 deletions
Large diffs are not rendered by default.

nimbus_verified_proxy/tests/data/22431083.json

Lines changed: 3166 additions & 0 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)