From 8102037e7f420bb71e485c86f8b570a4a9fa2363 Mon Sep 17 00:00:00 2001 From: Matt Witherspoon <32485495+spoonincode@users.noreply.github.com> Date: Wed, 1 May 2024 11:46:58 -0400 Subject: [PATCH 1/2] add status_request v1 (for finality_data range) --- include/eosio/ship_protocol.hpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/include/eosio/ship_protocol.hpp b/include/eosio/ship_protocol.hpp index d5214f0..9a6af37 100644 --- a/include/eosio/ship_protocol.hpp +++ b/include/eosio/ship_protocol.hpp @@ -80,6 +80,10 @@ namespace eosio { namespace ship_protocol { EOSIO_REFLECT(get_status_request_v0) + struct get_status_request_v1 {}; + + EOSIO_REFLECT(get_status_request_v1) + struct block_position { uint32_t block_num = {}; eosio::checksum256 block_id = {}; @@ -100,6 +104,13 @@ namespace eosio { namespace ship_protocol { EOSIO_REFLECT(get_status_result_v0, head, last_irreversible, trace_begin_block, trace_end_block, chain_state_begin_block, chain_state_end_block, chain_id) + struct get_status_result_v1 : get_status_result_v0 { + uint32_t finality_data_begin_block = {}; + uint32_t finality_data_end_block = {}; + }; + + EOSIO_REFLECT(get_status_result_v1, base get_status_result_v1, finality_data_begin_block, finality_data_end_block) + struct get_blocks_request_v0 { uint32_t start_block_num = {}; uint32_t end_block_num = {}; @@ -126,7 +137,7 @@ namespace eosio { namespace ship_protocol { EOSIO_REFLECT(get_blocks_ack_request_v0, num_messages) - using request = std::variant; + using request = std::variant; struct get_blocks_result_base { block_position head = {}; @@ -374,7 +385,7 @@ namespace eosio { namespace ship_protocol { EOSIO_REFLECT(signed_block, base signed_block_header, transactions, block_extensions) - using result = std::variant; + using result = std::variant; struct transaction_header { eosio::time_point_sec expiration = {}; From 81b2233d220832a27f4d28bf5e4421dd14aeb8e0 Mon Sep 17 00:00:00 2001 From: Matt Witherspoon <32485495+spoonincode@users.noreply.github.com> Date: Mon, 3 Jun 2024 22:43:57 -0400 Subject: [PATCH 2/2] get_status_result_v1 always has chain_id --- include/eosio/ship_protocol.hpp | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/include/eosio/ship_protocol.hpp b/include/eosio/ship_protocol.hpp index 9a6af37..2b42004 100644 --- a/include/eosio/ship_protocol.hpp +++ b/include/eosio/ship_protocol.hpp @@ -91,25 +91,31 @@ namespace eosio { namespace ship_protocol { EOSIO_REFLECT(block_position, block_num, block_id) - struct get_status_result_v0 { + struct get_status_result_base { block_position head = {}; block_position last_irreversible = {}; uint32_t trace_begin_block = {}; uint32_t trace_end_block = {}; uint32_t chain_state_begin_block = {}; uint32_t chain_state_end_block = {}; + }; + + EOSIO_REFLECT(get_status_result_base, head, last_irreversible, trace_begin_block, trace_end_block, + chain_state_begin_block, chain_state_end_block) + + struct get_status_result_v0 : get_status_result_base { might_not_exist chain_id; }; - EOSIO_REFLECT(get_status_result_v0, head, last_irreversible, trace_begin_block, trace_end_block, - chain_state_begin_block, chain_state_end_block, chain_id) + EOSIO_REFLECT(get_status_result_v0, base get_status_result_base, chain_id) - struct get_status_result_v1 : get_status_result_v0 { + struct get_status_result_v1 : get_status_result_base { + eosio::checksum256 chain_id; uint32_t finality_data_begin_block = {}; uint32_t finality_data_end_block = {}; }; - EOSIO_REFLECT(get_status_result_v1, base get_status_result_v1, finality_data_begin_block, finality_data_end_block) + EOSIO_REFLECT(get_status_result_v1, base get_status_result_base, chain_id, finality_data_begin_block, finality_data_end_block) struct get_blocks_request_v0 { uint32_t start_block_num = {};