From 2d38a09b48ab43ec2f672d3b7047ad876e3c6420 Mon Sep 17 00:00:00 2001 From: anastasiiaVashchuk Date: Wed, 15 May 2024 17:41:57 +0300 Subject: [PATCH] calculate and fetch previous miniblock hash in get_block_headers_after --- ...304af1c40bad69b8646b6db5f8c33f10f6fb5.json | 40 +++++++++++++++++++ ...0c2cfff08e6fef3c3824d20dfdf2d0f73e671.json | 34 ---------------- core/lib/dal/src/blocks_web3_dal.rs | 17 +++++--- 3 files changed, 51 insertions(+), 40 deletions(-) create mode 100644 core/lib/dal/.sqlx/query-a79a53e2510c5dabe08b6341cff304af1c40bad69b8646b6db5f8c33f10f6fb5.json delete mode 100644 core/lib/dal/.sqlx/query-b49478150dbc8731c531ef3eddc0c2cfff08e6fef3c3824d20dfdf2d0f73e671.json diff --git a/core/lib/dal/.sqlx/query-a79a53e2510c5dabe08b6341cff304af1c40bad69b8646b6db5f8c33f10f6fb5.json b/core/lib/dal/.sqlx/query-a79a53e2510c5dabe08b6341cff304af1c40bad69b8646b6db5f8c33f10f6fb5.json new file mode 100644 index 000000000000..afea22f62e8c --- /dev/null +++ b/core/lib/dal/.sqlx/query-a79a53e2510c5dabe08b6341cff304af1c40bad69b8646b6db5f8c33f10f6fb5.json @@ -0,0 +1,40 @@ +{ + "db_name": "PostgreSQL", + "query": "\n SELECT\n miniblocks.hash,\n miniblocks.number,\n prev_miniblock.hash AS \"parent_hash?\",\n miniblocks.timestamp\n FROM\n miniblocks\n LEFT JOIN miniblocks prev_miniblock ON prev_miniblock.number = miniblocks.number - 1\n WHERE\n miniblocks.number > $1\n ORDER BY\n miniblocks.number ASC\n ", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "hash", + "type_info": "Bytea" + }, + { + "ordinal": 1, + "name": "number", + "type_info": "Int8" + }, + { + "ordinal": 2, + "name": "parent_hash?", + "type_info": "Bytea" + }, + { + "ordinal": 3, + "name": "timestamp", + "type_info": "Int8" + } + ], + "parameters": { + "Left": [ + "Int8" + ] + }, + "nullable": [ + false, + false, + false, + false + ] + }, + "hash": "a79a53e2510c5dabe08b6341cff304af1c40bad69b8646b6db5f8c33f10f6fb5" +} diff --git a/core/lib/dal/.sqlx/query-b49478150dbc8731c531ef3eddc0c2cfff08e6fef3c3824d20dfdf2d0f73e671.json b/core/lib/dal/.sqlx/query-b49478150dbc8731c531ef3eddc0c2cfff08e6fef3c3824d20dfdf2d0f73e671.json deleted file mode 100644 index 59a4d95f1f22..000000000000 --- a/core/lib/dal/.sqlx/query-b49478150dbc8731c531ef3eddc0c2cfff08e6fef3c3824d20dfdf2d0f73e671.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "\n SELECT\n hash,\n number,\n timestamp\n FROM\n miniblocks\n WHERE\n number > $1\n ORDER BY\n number ASC\n ", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "hash", - "type_info": "Bytea" - }, - { - "ordinal": 1, - "name": "number", - "type_info": "Int8" - }, - { - "ordinal": 2, - "name": "timestamp", - "type_info": "Int8" - } - ], - "parameters": { - "Left": [ - "Int8" - ] - }, - "nullable": [ - false, - false, - false - ] - }, - "hash": "b49478150dbc8731c531ef3eddc0c2cfff08e6fef3c3824d20dfdf2d0f73e671" -} diff --git a/core/lib/dal/src/blocks_web3_dal.rs b/core/lib/dal/src/blocks_web3_dal.rs index 8fbfabf0fba7..3536b40e4102 100644 --- a/core/lib/dal/src/blocks_web3_dal.rs +++ b/core/lib/dal/src/blocks_web3_dal.rs @@ -168,15 +168,17 @@ impl BlocksWeb3Dal<'_, '_> { let rows = sqlx::query!( r#" SELECT - hash, - number, - timestamp + miniblocks.hash, + miniblocks.number, + prev_miniblock.hash AS "parent_hash?", + miniblocks.timestamp FROM miniblocks + LEFT JOIN miniblocks prev_miniblock ON prev_miniblock.number = miniblocks.number - 1 WHERE - number > $1 + miniblocks.number > $1 ORDER BY - number ASC + miniblocks.number ASC "#, i64::from(from_block.0), ) @@ -187,7 +189,10 @@ impl BlocksWeb3Dal<'_, '_> { let blocks = rows.into_iter().map(|row| BlockHeader { hash: Some(H256::from_slice(&row.hash)), - parent_hash: H256::zero(), + parent_hash: row + .parent_hash + .as_deref() + .map_or_else(H256::zero, H256::from_slice), uncles_hash: EMPTY_UNCLES_HASH, author: H160::zero(), state_root: H256::zero(),