@@ -409,6 +409,28 @@ proc getTransactions*(
409409
410410 return ok (move (res))
411411
412+ proc persistBlockAccessList * (
413+ db: CoreDbTxRef , blockAccessListHash: Hash32 , bal: BlockAccessList ) =
414+ db.put (blockAccessListHashKey (blockAccessListHash).toOpenArray, bal.encode ())
415+ .expect (" persistBlockAccessList should succeed" )
416+
417+ proc getBlockAccessList * (
418+ db: CoreDbTxRef ,
419+ blockAccessListHash: Hash32 ): Result [Opt [BlockAccessList ], string ] =
420+ if blockAccessListHash == EMPTY_BLOCK_ACCESS_LIST_HASH :
421+ return ok (Opt .some (default (BlockAccessList )))
422+
423+ let balBytes = db.getOrEmpty (blockAccessListHashKey (blockAccessListHash).toOpenArray).valueOr:
424+ return err (" getBlockAccessList: " & $$ error)
425+
426+ if balBytes == EmptyBlob :
427+ return ok (Opt .none (BlockAccessList ))
428+
429+ let bal = BlockAccessList .decode (balBytes).valueOr:
430+ return err (" getBlockAccessList: " & $ error)
431+
432+ ok (Opt .some (bal))
433+
412434proc getBlockBody * (
413435 db: CoreDbTxRef ;
414436 header: Header ;
@@ -421,6 +443,10 @@ proc getBlockBody*(
421443 if header.withdrawalsRoot.isSome:
422444 let wds = ? db.getWithdrawals (header.withdrawalsRoot.get)
423445 body.withdrawals = Opt .some (wds)
446+
447+ if header.blockAccessListHash.isSome:
448+ body.blockAccessList = ? db.getBlockAccessList (header.blockAccessListHash.get)
449+
424450 return ok (move (body))
425451
426452proc getBlockBody * (
@@ -448,7 +474,6 @@ proc getEthBlock*(
448474 blockBody = ? db.getBlockBody (header)
449475 ok (EthBlock .init (move (header), move (blockBody)))
450476
451-
452477proc getUncleHashes * (
453478 db: CoreDbTxRef ;
454479 blockHashes: openArray [Hash32 ];
@@ -641,18 +666,18 @@ proc getWitness*(db: CoreDbTxRef, blockHash: Hash32): Result[Witness, string] =
641666
642667 Witness .decode (witnessBytes)
643668
669+ proc persistCodeByHash * (db: CoreDbTxRef , codeHash: Hash32 , code: openArray [byte ]): Result [void , string ] =
670+ db.put (contractHashKey (codeHash).toOpenArray, code).isOkOr:
671+ return err (" persistCodeByHash: " & $$ error)
672+
673+ ok ()
674+
644675proc getCodeByHash * (db: CoreDbTxRef , codeHash: Hash32 ): Result [seq [byte ], string ] =
645676 let code = db.get (contractHashKey (codeHash).toOpenArray).valueOr:
646677 return err (" getCodeByHash: " & $$ error)
647678
648679 ok (code)
649680
650- proc setCodeByHash * (db: CoreDbTxRef , codeHash: Hash32 , code: openArray [byte ]): Result [void , string ] =
651- db.put (contractHashKey (codeHash).toOpenArray, code).isOkOr:
652- return err (" setCodeByHash: " & $$ error)
653-
654- ok ()
655-
656681# ------------------------------------------------------------------------------
657682# End
658683# ------------------------------------------------------------------------------
0 commit comments