diff --git a/stackslib/src/chainstate/stacks/db/mod.rs b/stackslib/src/chainstate/stacks/db/mod.rs index 51b38fd4b8..453eafb049 100644 --- a/stackslib/src/chainstate/stacks/db/mod.rs +++ b/stackslib/src/chainstate/stacks/db/mod.rs @@ -661,9 +661,9 @@ const CHAINSTATE_INITIAL_SCHEMA: &[&str] = &[ tx_merkle_root TEXT NOT NULL, state_index_root TEXT NOT NULL, microblock_pubkey_hash TEXT NOT NULL, - + block_hash TEXT NOT NULL, -- NOTE: this is *not* unique, since two burn chain forks can commit to the same Stacks block. - index_block_hash TEXT UNIQUE NOT NULL, -- NOTE: this is the hash of the block hash and consensus hash of the burn block that selected it, + index_block_hash TEXT UNIQUE NOT NULL, -- NOTE: this is the hash of the block hash and consensus hash of the burn block that selected it, -- and is guaranteed to be globally unique (across all Stacks forks and across all PoX forks). -- index_block_hash is the block hash fed into the MARF index. @@ -698,7 +698,7 @@ const CHAINSTATE_INITIAL_SCHEMA: &[&str] = &[ burnchain_commit_burn INT NOT NULL, burnchain_sortition_burn INT NOT NULL, miner INT NOT NULL, - + -- internal use stacks_block_height INTEGER NOT NULL, index_block_hash TEXT NOT NULL, -- NOTE: can't enforce UNIQUE here, because there will be multiple entries per block @@ -799,7 +799,7 @@ const CHAINSTATE_SCHEMA_3: &[&str] = &[ -- * one that records the coinbase, anchored tx fee, and confirmed streamed tx fees, and -- * one that records only the produced streamed tx fees. -- The latter is determined once this block's stream gets subsequently confirmed. - -- You query this table by passing both the parent and the child block hashes, since both the + -- You query this table by passing both the parent and the child block hashes, since both the -- parent and child blocks determine the full reward for the parent block. CREATE TABLE matured_rewards( address TEXT NOT NULL, -- address of the miner who produced the block @@ -810,7 +810,7 @@ const CHAINSTATE_SCHEMA_3: &[&str] = &[ tx_fees_streamed_confirmed TEXT NOT NULL, tx_fees_streamed_produced TEXT NOT NULL, - -- fork identifier + -- fork identifier child_index_block_hash TEXT NOT NULL, parent_index_block_hash TEXT NOT NULL, diff --git a/stackslib/src/net/api/callreadonly.rs b/stackslib/src/net/api/callreadonly.rs index 355c83ef26..2b393b6f8d 100644 --- a/stackslib/src/net/api/callreadonly.rs +++ b/stackslib/src/net/api/callreadonly.rs @@ -33,8 +33,8 @@ use crate::net::http::{ HttpResponsePreamble, }; use crate::net::httpcore::{ - request, HttpPreambleExtensions, HttpRequestContentsExtensions, RPCRequestHandler, - StacksHttpRequest, StacksHttpResponse, + request, HttpRequestContentsExtensions as _, RPCRequestHandler, StacksHttpRequest, + StacksHttpResponse, }; use crate::net::{Error as NetError, StacksNodeState, TipRequest}; @@ -307,8 +307,7 @@ impl RPCRequestHandler for RPCCallReadOnlyRequestHandler { } }; - let mut preamble = HttpResponsePreamble::ok_json(&preamble); - preamble.set_canonical_stacks_tip_height(Some(node.canonical_stacks_tip_height())); + let preamble = HttpResponsePreamble::ok_json(&preamble); let body = HttpResponseContents::try_from_json(&data_resp)?; Ok((preamble, body)) } diff --git a/stackslib/src/net/api/fastcallreadonly.rs b/stackslib/src/net/api/fastcallreadonly.rs index 33ead2e3c1..f26a3acdfd 100644 --- a/stackslib/src/net/api/fastcallreadonly.rs +++ b/stackslib/src/net/api/fastcallreadonly.rs @@ -37,8 +37,8 @@ use crate::net::http::{ HttpResponsePayload, HttpResponsePreamble, }; use crate::net::httpcore::{ - request, HttpPreambleExtensions, HttpRequestContentsExtensions, RPCRequestHandler, - StacksHttpRequest, StacksHttpResponse, + request, HttpRequestContentsExtensions as _, RPCRequestHandler, StacksHttpRequest, + StacksHttpResponse, }; use crate::net::{Error as NetError, StacksNodeState, TipRequest}; @@ -312,8 +312,7 @@ impl RPCRequestHandler for RPCFastCallReadOnlyRequestHandler { } }; - let mut preamble = HttpResponsePreamble::ok_json(&preamble); - preamble.set_canonical_stacks_tip_height(Some(node.canonical_stacks_tip_height())); + let preamble = HttpResponsePreamble::ok_json(&preamble); let body = HttpResponseContents::try_from_json(&data_resp)?; Ok((preamble, body)) } diff --git a/stackslib/src/net/api/get_tenures_fork_info.rs b/stackslib/src/net/api/get_tenures_fork_info.rs index 60ea5eddee..19d6b8b006 100644 --- a/stackslib/src/net/api/get_tenures_fork_info.rs +++ b/stackslib/src/net/api/get_tenures_fork_info.rs @@ -304,7 +304,6 @@ impl RPCRequestHandler for GetTenuresForkInfo { None, HttpContentType::JSON, ); - Ok(( resp_preamble, HttpResponseContents::try_from_json(&tenures)?, diff --git a/stackslib/src/net/api/getaccount.rs b/stackslib/src/net/api/getaccount.rs index d495f5d7ee..389ec2fc70 100644 --- a/stackslib/src/net/api/getaccount.rs +++ b/stackslib/src/net/api/getaccount.rs @@ -27,8 +27,7 @@ use crate::net::http::{ HttpResponse, HttpResponseContents, HttpResponsePayload, HttpResponsePreamble, }; use crate::net::httpcore::{ - HttpPreambleExtensions, HttpRequestContentsExtensions, RPCRequestHandler, StacksHttpRequest, - StacksHttpResponse, + HttpRequestContentsExtensions as _, RPCRequestHandler, StacksHttpRequest, StacksHttpResponse, }; use crate::net::{Error as NetError, StacksNodeState, TipRequest}; @@ -219,8 +218,7 @@ impl RPCRequestHandler for RPCGetAccountRequestHandler { .map_err(NetError::from); }; - let mut preamble = HttpResponsePreamble::ok_json(&preamble); - preamble.set_canonical_stacks_tip_height(Some(node.canonical_stacks_tip_height())); + let preamble = HttpResponsePreamble::ok_json(&preamble); let body = HttpResponseContents::try_from_json(&account)?; Ok((preamble, body)) } diff --git a/stackslib/src/net/api/getattachment.rs b/stackslib/src/net/api/getattachment.rs index 42f0a9e50a..1481a7ca4b 100644 --- a/stackslib/src/net/api/getattachment.rs +++ b/stackslib/src/net/api/getattachment.rs @@ -23,9 +23,7 @@ use crate::net::http::{ parse_json, Error, HttpNotFound, HttpRequest, HttpRequestContents, HttpRequestPreamble, HttpResponse, HttpResponseContents, HttpResponsePayload, HttpResponsePreamble, }; -use crate::net::httpcore::{ - HttpPreambleExtensions, RPCRequestHandler, StacksHttpRequest, StacksHttpResponse, -}; +use crate::net::httpcore::{RPCRequestHandler, StacksHttpRequest, StacksHttpResponse}; use crate::net::{Error as NetError, StacksNodeState}; #[derive(Clone)] @@ -126,8 +124,7 @@ impl RPCRequestHandler for RPCGetAttachmentRequestHandler { } }; - let mut preamble = HttpResponsePreamble::ok_json(&preamble); - preamble.set_canonical_stacks_tip_height(Some(node.canonical_stacks_tip_height())); + let preamble = HttpResponsePreamble::ok_json(&preamble); let body = HttpResponseContents::try_from_json(&attachment)?; Ok((preamble, body)) } diff --git a/stackslib/src/net/api/getattachmentsinv.rs b/stackslib/src/net/api/getattachmentsinv.rs index 3a4c0b8483..32803fc093 100644 --- a/stackslib/src/net/api/getattachmentsinv.rs +++ b/stackslib/src/net/api/getattachmentsinv.rs @@ -29,9 +29,7 @@ use crate::net::http::{ HttpRequestPreamble, HttpResponse, HttpResponseContents, HttpResponsePayload, HttpResponsePreamble, }; -use crate::net::httpcore::{ - HttpPreambleExtensions, RPCRequestHandler, StacksHttpRequest, StacksHttpResponse, -}; +use crate::net::httpcore::{RPCRequestHandler, StacksHttpRequest, StacksHttpResponse}; use crate::net::{Error as NetError, StacksNodeState}; #[derive(Clone)] @@ -214,8 +212,7 @@ impl RPCRequestHandler for RPCGetAttachmentsInvRequestHandler { pages, }; - let mut preamble = HttpResponsePreamble::ok_json(&preamble); - preamble.set_canonical_stacks_tip_height(Some(node.canonical_stacks_tip_height())); + let preamble = HttpResponsePreamble::ok_json(&preamble); let body = HttpResponseContents::try_from_json(&content)?; Ok((preamble, body)) } diff --git a/stackslib/src/net/api/getblock.rs b/stackslib/src/net/api/getblock.rs index 28e09ce90c..0b89f0ca4d 100644 --- a/stackslib/src/net/api/getblock.rs +++ b/stackslib/src/net/api/getblock.rs @@ -167,7 +167,6 @@ impl RPCRequestHandler for RPCBlocksRequestHandler { None, HttpContentType::Bytes, ); - Ok(( resp_preamble, HttpResponseContents::from_stream(Box::new(stream)), diff --git a/stackslib/src/net/api/getblock_v3.rs b/stackslib/src/net/api/getblock_v3.rs index cece392f59..dffb2c38f3 100644 --- a/stackslib/src/net/api/getblock_v3.rs +++ b/stackslib/src/net/api/getblock_v3.rs @@ -209,7 +209,6 @@ impl RPCRequestHandler for RPCNakamotoBlockRequestHandler { None, HttpContentType::Bytes, ); - Ok(( resp_preamble, HttpResponseContents::from_stream(Box::new(stream)), diff --git a/stackslib/src/net/api/getblockbyheight.rs b/stackslib/src/net/api/getblockbyheight.rs index e5f99eb754..916f995fd0 100644 --- a/stackslib/src/net/api/getblockbyheight.rs +++ b/stackslib/src/net/api/getblockbyheight.rs @@ -26,7 +26,7 @@ use crate::net::http::{ HttpResponsePreamble, HttpServerError, }; use crate::net::httpcore::{ - HttpRequestContentsExtensions, RPCRequestHandler, StacksHttpRequest, StacksHttpResponse, + HttpRequestContentsExtensions as _, RPCRequestHandler, StacksHttpRequest, StacksHttpResponse, }; use crate::net::{Error as NetError, StacksNodeState, TipRequest}; @@ -179,7 +179,6 @@ impl RPCRequestHandler for RPCNakamotoBlockByHeightRequestHandler { None, HttpContentType::Bytes, ); - Ok(( resp_preamble, HttpResponseContents::from_stream(Box::new(stream)), diff --git a/stackslib/src/net/api/getclaritymarfvalue.rs b/stackslib/src/net/api/getclaritymarfvalue.rs index 61a27b906d..697e58f414 100644 --- a/stackslib/src/net/api/getclaritymarfvalue.rs +++ b/stackslib/src/net/api/getclaritymarfvalue.rs @@ -24,8 +24,7 @@ use crate::net::http::{ HttpResponse, HttpResponseContents, HttpResponsePayload, HttpResponsePreamble, }; use crate::net::httpcore::{ - HttpPreambleExtensions, HttpRequestContentsExtensions, RPCRequestHandler, StacksHttpRequest, - StacksHttpResponse, + HttpRequestContentsExtensions as _, RPCRequestHandler, StacksHttpRequest, StacksHttpResponse, }; use crate::net::{Error as NetError, StacksNodeState, TipRequest}; @@ -168,8 +167,7 @@ impl RPCRequestHandler for RPCGetClarityMarfRequestHandler { } }; - let mut preamble = HttpResponsePreamble::ok_json(&preamble); - preamble.set_canonical_stacks_tip_height(Some(node.canonical_stacks_tip_height())); + let preamble = HttpResponsePreamble::ok_json(&preamble); let body = HttpResponseContents::try_from_json(&data_resp)?; Ok((preamble, body)) } diff --git a/stackslib/src/net/api/getclaritymetadata.rs b/stackslib/src/net/api/getclaritymetadata.rs index ee6ec96567..5e48b7fd2c 100644 --- a/stackslib/src/net/api/getclaritymetadata.rs +++ b/stackslib/src/net/api/getclaritymetadata.rs @@ -31,8 +31,8 @@ use crate::net::http::{ HttpResponse, HttpResponseContents, HttpResponsePayload, HttpResponsePreamble, }; use crate::net::httpcore::{ - request, HttpPreambleExtensions, HttpRequestContentsExtensions, RPCRequestHandler, - StacksHttpRequest, StacksHttpResponse, + request, HttpRequestContentsExtensions as _, RPCRequestHandler, StacksHttpRequest, + StacksHttpResponse, }; use crate::net::{Error as NetError, StacksNodeState, TipRequest}; @@ -221,8 +221,7 @@ impl RPCRequestHandler for RPCGetClarityMetadataRequestHandler { } }; - let mut preamble = HttpResponsePreamble::ok_json(&preamble); - preamble.set_canonical_stacks_tip_height(Some(node.canonical_stacks_tip_height())); + let preamble = HttpResponsePreamble::ok_json(&preamble); let body = HttpResponseContents::try_from_json(&data_resp)?; Ok((preamble, body)) } diff --git a/stackslib/src/net/api/getconstantval.rs b/stackslib/src/net/api/getconstantval.rs index d7a50c4a28..ce4c3f1801 100644 --- a/stackslib/src/net/api/getconstantval.rs +++ b/stackslib/src/net/api/getconstantval.rs @@ -28,8 +28,8 @@ use crate::net::http::{ HttpResponse, HttpResponseContents, HttpResponsePayload, HttpResponsePreamble, }; use crate::net::httpcore::{ - request, HttpPreambleExtensions, HttpRequestContentsExtensions, RPCRequestHandler, - StacksHttpRequest, StacksHttpResponse, + request, HttpRequestContentsExtensions as _, RPCRequestHandler, StacksHttpRequest, + StacksHttpResponse, }; use crate::net::{Error as NetError, StacksNodeState, TipRequest}; @@ -168,8 +168,7 @@ impl RPCRequestHandler for RPCGetConstantValRequestHandler { } }; - let mut preamble = HttpResponsePreamble::ok_json(&preamble); - preamble.set_canonical_stacks_tip_height(Some(node.canonical_stacks_tip_height())); + let preamble = HttpResponsePreamble::ok_json(&preamble); let body = HttpResponseContents::try_from_json(&data_resp)?; Ok((preamble, body)) } diff --git a/stackslib/src/net/api/getcontractabi.rs b/stackslib/src/net/api/getcontractabi.rs index 0ff478d191..aeef75b635 100644 --- a/stackslib/src/net/api/getcontractabi.rs +++ b/stackslib/src/net/api/getcontractabi.rs @@ -28,8 +28,8 @@ use crate::net::http::{ HttpResponse, HttpResponseContents, HttpResponsePayload, HttpResponsePreamble, }; use crate::net::httpcore::{ - request, HttpPreambleExtensions, HttpRequestContentsExtensions, RPCRequestHandler, - StacksHttpRequest, StacksHttpResponse, + request, HttpRequestContentsExtensions as _, RPCRequestHandler, StacksHttpRequest, + StacksHttpResponse, }; use crate::net::{Error as NetError, StacksNodeState, TipRequest}; @@ -148,8 +148,7 @@ impl RPCRequestHandler for RPCGetContractAbiRequestHandler { } }; - let mut preamble = HttpResponsePreamble::ok_json(&preamble); - preamble.set_canonical_stacks_tip_height(Some(node.canonical_stacks_tip_height())); + let preamble = HttpResponsePreamble::ok_json(&preamble); let body = HttpResponseContents::try_from_json(&data_resp)?; Ok((preamble, body)) } diff --git a/stackslib/src/net/api/getcontractsrc.rs b/stackslib/src/net/api/getcontractsrc.rs index df8a86a51c..20a0ccf458 100644 --- a/stackslib/src/net/api/getcontractsrc.rs +++ b/stackslib/src/net/api/getcontractsrc.rs @@ -29,8 +29,8 @@ use crate::net::http::{ HttpResponse, HttpResponseContents, HttpResponsePayload, HttpResponsePreamble, }; use crate::net::httpcore::{ - request, HttpPreambleExtensions, HttpRequestContentsExtensions, RPCRequestHandler, - StacksHttpRequest, StacksHttpResponse, + request, HttpRequestContentsExtensions as _, RPCRequestHandler, StacksHttpRequest, + StacksHttpResponse, }; use crate::net::{Error as NetError, StacksNodeState, TipRequest}; @@ -175,8 +175,7 @@ impl RPCRequestHandler for RPCGetContractSrcRequestHandler { } }; - let mut preamble = HttpResponsePreamble::ok_json(&preamble); - preamble.set_canonical_stacks_tip_height(Some(node.canonical_stacks_tip_height())); + let preamble = HttpResponsePreamble::ok_json(&preamble); let body = HttpResponseContents::try_from_json(&data_resp)?; Ok((preamble, body)) } diff --git a/stackslib/src/net/api/getdatavar.rs b/stackslib/src/net/api/getdatavar.rs index e4783ed5e4..6bae25bb91 100644 --- a/stackslib/src/net/api/getdatavar.rs +++ b/stackslib/src/net/api/getdatavar.rs @@ -30,8 +30,8 @@ use crate::net::http::{ HttpResponse, HttpResponseContents, HttpResponsePayload, HttpResponsePreamble, }; use crate::net::httpcore::{ - request, HttpPreambleExtensions, HttpRequestContentsExtensions, RPCRequestHandler, - StacksHttpRequest, StacksHttpResponse, + request, HttpRequestContentsExtensions as _, RPCRequestHandler, StacksHttpRequest, + StacksHttpResponse, }; use crate::net::{Error as NetError, StacksNodeState, TipRequest}; @@ -186,8 +186,7 @@ impl RPCRequestHandler for RPCGetDataVarRequestHandler { } }; - let mut preamble = HttpResponsePreamble::ok_json(&preamble); - preamble.set_canonical_stacks_tip_height(Some(node.canonical_stacks_tip_height())); + let preamble = HttpResponsePreamble::ok_json(&preamble); let body = HttpResponseContents::try_from_json(&data_resp)?; Ok((preamble, body)) } diff --git a/stackslib/src/net/api/getheaders.rs b/stackslib/src/net/api/getheaders.rs index bfeb7cf206..606e6b01fa 100644 --- a/stackslib/src/net/api/getheaders.rs +++ b/stackslib/src/net/api/getheaders.rs @@ -27,7 +27,7 @@ use crate::net::http::{ HttpResponsePayload, HttpResponsePreamble, HttpServerError, }; use crate::net::httpcore::{ - request, HttpRequestContentsExtensions, RPCRequestHandler, StacksHttpRequest, + request, HttpRequestContentsExtensions as _, RPCRequestHandler, StacksHttpRequest, StacksHttpResponse, }; use crate::net::{Error as NetError, StacksNodeState, TipRequest, MAX_HEADERS}; @@ -203,7 +203,6 @@ impl RPCRequestHandler for RPCHeadersRequestHandler { None, HttpContentType::JSON, ); - Ok(( resp_preamble, HttpResponseContents::from_stream(Box::new(stream)), diff --git a/stackslib/src/net/api/getinfo.rs b/stackslib/src/net/api/getinfo.rs index acdcf1f10f..23600366ab 100644 --- a/stackslib/src/net/api/getinfo.rs +++ b/stackslib/src/net/api/getinfo.rs @@ -30,7 +30,7 @@ use crate::net::http::{ HttpResponseContents, HttpResponsePayload, HttpResponsePreamble, }; use crate::net::httpcore::{ - HttpPreambleExtensions, RPCRequestHandler, StacksHttpRequest, StacksHttpResponse, + HttpPreambleExtensions as _, RPCRequestHandler, StacksHttpRequest, StacksHttpResponse, }; use crate::net::p2p::PeerNetwork; use crate::net::{Error as NetError, StacksNodeState}; @@ -233,8 +233,7 @@ impl RPCRequestHandler for RPCPeerInfoRequestHandler { } }; - let mut preamble = HttpResponsePreamble::ok_json(&preamble); - preamble.set_canonical_stacks_tip_height(Some(node.canonical_stacks_tip_height())); + let preamble = HttpResponsePreamble::ok_json(&preamble); let body = HttpResponseContents::try_from_json(&rpc_peer_info)?; Ok((preamble, body)) } @@ -254,7 +253,7 @@ impl HttpResponse for RPCPeerInfoRequestHandler { impl StacksHttpRequest { /// Make a new getinfo request to this endpoint - pub fn new_getinfo(host: PeerHost, stacks_height: Option) -> StacksHttpRequest { + pub fn new_getinfo(host: PeerHost, stacks_height: Option) -> StacksHttpRequest { let mut req = StacksHttpRequest::new_for_peer( host, "GET".into(), diff --git a/stackslib/src/net/api/getistraitimplemented.rs b/stackslib/src/net/api/getistraitimplemented.rs index eae8a79467..ea8e9ae57a 100644 --- a/stackslib/src/net/api/getistraitimplemented.rs +++ b/stackslib/src/net/api/getistraitimplemented.rs @@ -28,8 +28,8 @@ use crate::net::http::{ HttpResponse, HttpResponseContents, HttpResponsePayload, HttpResponsePreamble, }; use crate::net::httpcore::{ - request, HttpPreambleExtensions, HttpRequestContentsExtensions, RPCRequestHandler, - StacksHttpRequest, StacksHttpResponse, + request, HttpRequestContentsExtensions as _, RPCRequestHandler, StacksHttpRequest, + StacksHttpResponse, }; use crate::net::{Error as NetError, StacksNodeState, TipRequest}; @@ -198,8 +198,7 @@ impl RPCRequestHandler for RPCGetIsTraitImplementedRequestHandler { } }; - let mut preamble = HttpResponsePreamble::ok_json(&preamble); - preamble.set_canonical_stacks_tip_height(Some(node.canonical_stacks_tip_height())); + let preamble = HttpResponsePreamble::ok_json(&preamble); let body = HttpResponseContents::try_from_json(&data_resp)?; Ok((preamble, body)) } diff --git a/stackslib/src/net/api/getmapentry.rs b/stackslib/src/net/api/getmapentry.rs index 611d13eba6..8152b7676f 100644 --- a/stackslib/src/net/api/getmapentry.rs +++ b/stackslib/src/net/api/getmapentry.rs @@ -31,8 +31,8 @@ use crate::net::http::{ HttpResponsePreamble, }; use crate::net::httpcore::{ - request, HttpPreambleExtensions, HttpRequestContentsExtensions, RPCRequestHandler, - StacksHttpRequest, StacksHttpResponse, + request, HttpRequestContentsExtensions as _, RPCRequestHandler, StacksHttpRequest, + StacksHttpResponse, }; use crate::net::{Error as NetError, StacksNodeState, TipRequest}; @@ -212,8 +212,7 @@ impl RPCRequestHandler for RPCGetMapEntryRequestHandler { } }; - let mut preamble = HttpResponsePreamble::ok_json(&preamble); - preamble.set_canonical_stacks_tip_height(Some(node.canonical_stacks_tip_height())); + let preamble = HttpResponsePreamble::ok_json(&preamble); let body = HttpResponseContents::try_from_json(&data_resp)?; Ok((preamble, body)) } diff --git a/stackslib/src/net/api/getmicroblocks_confirmed.rs b/stackslib/src/net/api/getmicroblocks_confirmed.rs index 1cf310bf74..f95f7a694e 100644 --- a/stackslib/src/net/api/getmicroblocks_confirmed.rs +++ b/stackslib/src/net/api/getmicroblocks_confirmed.rs @@ -147,7 +147,6 @@ impl RPCRequestHandler for RPCMicroblocksConfirmedRequestHandler { None, HttpContentType::Bytes, ); - Ok(( resp_preamble, HttpResponseContents::from_stream(Box::new(stream)), diff --git a/stackslib/src/net/api/getmicroblocks_indexed.rs b/stackslib/src/net/api/getmicroblocks_indexed.rs index a0b2aa5fe1..615dcfb0b0 100644 --- a/stackslib/src/net/api/getmicroblocks_indexed.rs +++ b/stackslib/src/net/api/getmicroblocks_indexed.rs @@ -179,7 +179,6 @@ impl RPCRequestHandler for RPCMicroblocksIndexedRequestHandler { None, HttpContentType::Bytes, ); - Ok(( resp_preamble, HttpResponseContents::from_stream(Box::new(stream)), diff --git a/stackslib/src/net/api/getmicroblocks_unconfirmed.rs b/stackslib/src/net/api/getmicroblocks_unconfirmed.rs index 7e6c4708c5..01769a53bf 100644 --- a/stackslib/src/net/api/getmicroblocks_unconfirmed.rs +++ b/stackslib/src/net/api/getmicroblocks_unconfirmed.rs @@ -187,7 +187,6 @@ impl RPCRequestHandler for RPCMicroblocksUnconfirmedRequestHandler { None, HttpContentType::Bytes, ); - Ok(( resp_preamble, HttpResponseContents::from_stream(Box::new(stream)), diff --git a/stackslib/src/net/api/getneighbors.rs b/stackslib/src/net/api/getneighbors.rs index f80c945153..f5224f8595 100644 --- a/stackslib/src/net/api/getneighbors.rs +++ b/stackslib/src/net/api/getneighbors.rs @@ -25,9 +25,7 @@ use crate::net::http::{ parse_json, Error, HttpRequest, HttpRequestContents, HttpRequestPreamble, HttpResponse, HttpResponseContents, HttpResponsePayload, HttpResponsePreamble, }; -use crate::net::httpcore::{ - HttpPreambleExtensions, RPCRequestHandler, StacksHttpRequest, StacksHttpResponse, -}; +use crate::net::httpcore::{RPCRequestHandler, StacksHttpRequest, StacksHttpResponse}; use crate::net::p2p::PeerNetwork; use crate::net::{Error as NetError, NeighborKey, StacksNodeState, MAX_NEIGHBORS_DATA_LEN}; @@ -260,8 +258,7 @@ impl RPCRequestHandler for RPCNeighborsRequestHandler { RPCNeighborsInfo::from_p2p(network) })?; - let mut preamble = HttpResponsePreamble::ok_json(&preamble); - preamble.set_canonical_stacks_tip_height(Some(node.canonical_stacks_tip_height())); + let preamble = HttpResponsePreamble::ok_json(&preamble); let body = HttpResponseContents::try_from_json(&neighbor_data)?; Ok((preamble, body)) } diff --git a/stackslib/src/net/api/getpoxinfo.rs b/stackslib/src/net/api/getpoxinfo.rs index 0864700e9b..f8fd2bdd9b 100644 --- a/stackslib/src/net/api/getpoxinfo.rs +++ b/stackslib/src/net/api/getpoxinfo.rs @@ -34,8 +34,7 @@ use crate::net::http::{ HttpResponse, HttpResponseContents, HttpResponsePayload, HttpResponsePreamble, HttpServerError, }; use crate::net::httpcore::{ - HttpPreambleExtensions, HttpRequestContentsExtensions, RPCRequestHandler, StacksHttpRequest, - StacksHttpResponse, + HttpRequestContentsExtensions as _, RPCRequestHandler, StacksHttpRequest, StacksHttpResponse, }; use crate::net::{Error as NetError, StacksNodeState, TipRequest}; use crate::util_lib::boot::boot_code_id; @@ -506,8 +505,7 @@ impl RPCRequestHandler for RPCPoxInfoRequestHandler { } }; - let mut preamble = HttpResponsePreamble::ok_json(&preamble); - preamble.set_canonical_stacks_tip_height(Some(node.canonical_stacks_tip_height())); + let preamble = HttpResponsePreamble::ok_json(&preamble); let body = HttpResponseContents::try_from_json(&pox_info)?; Ok((preamble, body)) } diff --git a/stackslib/src/net/api/getsigner.rs b/stackslib/src/net/api/getsigner.rs index eeaf872f81..adff8e8932 100644 --- a/stackslib/src/net/api/getsigner.rs +++ b/stackslib/src/net/api/getsigner.rs @@ -22,8 +22,7 @@ use crate::net::http::{ HttpResponse, HttpResponseContents, HttpResponsePayload, HttpResponsePreamble, }; use crate::net::httpcore::{ - HttpPreambleExtensions, HttpRequestContentsExtensions, RPCRequestHandler, StacksHttpRequest, - StacksHttpResponse, + HttpRequestContentsExtensions as _, RPCRequestHandler, StacksHttpRequest, StacksHttpResponse, }; use crate::net::{Error as NetError, StacksNodeState, TipRequest}; @@ -149,8 +148,7 @@ impl RPCRequestHandler for GetSignerRequestHandler { let response = GetSignerResponse { blocks_signed }; - let mut preamble = HttpResponsePreamble::ok_json(&preamble); - preamble.set_canonical_stacks_tip_height(Some(node.canonical_stacks_tip_height())); + let preamble = HttpResponsePreamble::ok_json(&preamble); let body = HttpResponseContents::try_from_json(&response)?; Ok((preamble, body)) } diff --git a/stackslib/src/net/api/getstackerdbchunk.rs b/stackslib/src/net/api/getstackerdbchunk.rs index 0b6eafd08c..ee4655dfa6 100644 --- a/stackslib/src/net/api/getstackerdbchunk.rs +++ b/stackslib/src/net/api/getstackerdbchunk.rs @@ -25,9 +25,7 @@ use crate::net::http::{ HttpRequestPreamble, HttpResponse, HttpResponseContents, HttpResponsePayload, HttpResponsePreamble, HttpServerError, }; -use crate::net::httpcore::{ - request, HttpPreambleExtensions, RPCRequestHandler, StacksHttpRequest, StacksHttpResponse, -}; +use crate::net::httpcore::{request, RPCRequestHandler, StacksHttpRequest, StacksHttpResponse}; use crate::net::{Error as NetError, StacksNodeState}; #[derive(Clone)] @@ -179,15 +177,13 @@ impl RPCRequestHandler for RPCGetStackerDBChunkRequestHandler { } }; - let mut preamble = HttpResponsePreamble::from_http_request_preamble( + let preamble = HttpResponsePreamble::from_http_request_preamble( &preamble, 200, "OK", None, HttpContentType::Bytes, ); - - preamble.set_canonical_stacks_tip_height(Some(node.canonical_stacks_tip_height())); let body = HttpResponseContents::from_ram(chunk_resp); Ok((preamble, body)) } diff --git a/stackslib/src/net/api/getstackerdbmetadata.rs b/stackslib/src/net/api/getstackerdbmetadata.rs index d2933d47bd..694a94cd48 100644 --- a/stackslib/src/net/api/getstackerdbmetadata.rs +++ b/stackslib/src/net/api/getstackerdbmetadata.rs @@ -25,9 +25,7 @@ use crate::net::http::{ parse_json, Error, HttpNotFound, HttpRequest, HttpRequestContents, HttpRequestPreamble, HttpResponse, HttpResponseContents, HttpResponsePayload, HttpResponsePreamble, }; -use crate::net::httpcore::{ - request, HttpPreambleExtensions, RPCRequestHandler, StacksHttpRequest, StacksHttpResponse, -}; +use crate::net::httpcore::{request, RPCRequestHandler, StacksHttpRequest, StacksHttpResponse}; use crate::net::{Error as NetError, StacksNodeState}; #[derive(Clone)] @@ -120,8 +118,7 @@ impl RPCRequestHandler for RPCGetStackerDBMetadataRequestHandler { } }; - let mut preamble = HttpResponsePreamble::ok_json(&preamble); - preamble.set_canonical_stacks_tip_height(Some(node.canonical_stacks_tip_height())); + let preamble = HttpResponsePreamble::ok_json(&preamble); let body = HttpResponseContents::try_from_json(&metadata_resp)?; Ok((preamble, body)) } diff --git a/stackslib/src/net/api/getstackers.rs b/stackslib/src/net/api/getstackers.rs index c998ab2e34..44ff47ea81 100644 --- a/stackslib/src/net/api/getstackers.rs +++ b/stackslib/src/net/api/getstackers.rs @@ -27,8 +27,7 @@ use crate::net::http::{ HttpResponse, HttpResponseContents, HttpResponsePayload, HttpResponsePreamble, }; use crate::net::httpcore::{ - HttpPreambleExtensions, HttpRequestContentsExtensions, RPCRequestHandler, StacksHttpRequest, - StacksHttpResponse, + HttpRequestContentsExtensions as _, RPCRequestHandler, StacksHttpRequest, StacksHttpResponse, }; use crate::net::{Error as NetError, StacksNodeState, TipRequest}; @@ -201,8 +200,7 @@ impl RPCRequestHandler for GetStackersRequestHandler { } }; - let mut preamble = HttpResponsePreamble::ok_json(&preamble); - preamble.set_canonical_stacks_tip_height(Some(node.canonical_stacks_tip_height())); + let preamble = HttpResponsePreamble::ok_json(&preamble); let body = HttpResponseContents::try_from_json(&response)?; Ok((preamble, body)) } diff --git a/stackslib/src/net/api/getstxtransfercost.rs b/stackslib/src/net/api/getstxtransfercost.rs index cefd85e1e5..4f738a27fe 100644 --- a/stackslib/src/net/api/getstxtransfercost.rs +++ b/stackslib/src/net/api/getstxtransfercost.rs @@ -24,9 +24,7 @@ use crate::net::http::{ parse_json, Error, HttpRequest, HttpRequestContents, HttpRequestPreamble, HttpResponse, HttpResponseContents, HttpResponsePayload, HttpResponsePreamble, }; -use crate::net::httpcore::{ - HttpPreambleExtensions, RPCRequestHandler, StacksHttpRequest, StacksHttpResponse, -}; +use crate::net::httpcore::{RPCRequestHandler, StacksHttpRequest, StacksHttpResponse}; use crate::net::{Error as NetError, HttpServerError, StacksNodeState}; pub(crate) const SINGLESIG_TX_TRANSFER_LEN: u64 = 180; @@ -141,8 +139,7 @@ impl RPCRequestHandler for RPCGetStxTransferCostRequestHandler { } }; - let mut preamble = HttpResponsePreamble::ok_json(&preamble); - preamble.set_canonical_stacks_tip_height(Some(node.canonical_stacks_tip_height())); + let preamble = HttpResponsePreamble::ok_json(&preamble); let body = HttpResponseContents::try_from_json(&fee)?; Ok((preamble, body)) } diff --git a/stackslib/src/net/api/gettenure.rs b/stackslib/src/net/api/gettenure.rs index a45b136160..dbe9d0836c 100644 --- a/stackslib/src/net/api/gettenure.rs +++ b/stackslib/src/net/api/gettenure.rs @@ -258,7 +258,6 @@ impl RPCRequestHandler for RPCNakamotoTenureRequestHandler { None, HttpContentType::Bytes, ); - Ok(( resp_preamble, HttpResponseContents::from_stream(Box::new(stream)), diff --git a/stackslib/src/net/api/gettransaction_unconfirmed.rs b/stackslib/src/net/api/gettransaction_unconfirmed.rs index bcc77b0c02..44d608c404 100644 --- a/stackslib/src/net/api/gettransaction_unconfirmed.rs +++ b/stackslib/src/net/api/gettransaction_unconfirmed.rs @@ -26,9 +26,7 @@ use crate::net::http::{ parse_json, Error, HttpNotFound, HttpRequest, HttpRequestContents, HttpRequestPreamble, HttpResponse, HttpResponseContents, HttpResponsePayload, HttpResponsePreamble, HttpServerError, }; -use crate::net::httpcore::{ - request, HttpPreambleExtensions, RPCRequestHandler, StacksHttpRequest, StacksHttpResponse, -}; +use crate::net::httpcore::{request, RPCRequestHandler, StacksHttpRequest, StacksHttpResponse}; use crate::net::{Error as NetError, StacksNodeState}; #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] @@ -165,8 +163,7 @@ impl RPCRequestHandler for RPCGetTransactionUnconfirmedRequestHandler { } }; - let mut preamble = HttpResponsePreamble::ok_json(&preamble); - preamble.set_canonical_stacks_tip_height(Some(node.canonical_stacks_tip_height())); + let preamble = HttpResponsePreamble::ok_json(&preamble); let body = HttpResponseContents::try_from_json(&txinfo)?; Ok((preamble, body)) } diff --git a/stackslib/src/net/api/liststackerdbreplicas.rs b/stackslib/src/net/api/liststackerdbreplicas.rs index 7ba2fb0b05..84feb83db3 100644 --- a/stackslib/src/net/api/liststackerdbreplicas.rs +++ b/stackslib/src/net/api/liststackerdbreplicas.rs @@ -26,9 +26,7 @@ use crate::net::http::{ parse_json, Error, HttpRequest, HttpRequestContents, HttpRequestPreamble, HttpResponse, HttpResponseContents, HttpResponsePayload, HttpResponsePreamble, HttpServerError, }; -use crate::net::httpcore::{ - request, HttpPreambleExtensions, RPCRequestHandler, StacksHttpRequest, StacksHttpResponse, -}; +use crate::net::httpcore::{request, RPCRequestHandler, StacksHttpRequest, StacksHttpResponse}; use crate::net::{Error as NetError, NeighborAddress, StacksNodeState}; /// Largest number of replicas returned @@ -155,8 +153,7 @@ impl RPCRequestHandler for RPCListStackerDBReplicasRequestHandler { naddrs.insert(0, local_peer.to_public_neighbor_addr()); } - let mut preamble = HttpResponsePreamble::ok_json(&preamble); - preamble.set_canonical_stacks_tip_height(Some(node.canonical_stacks_tip_height())); + let preamble = HttpResponsePreamble::ok_json(&preamble); let body = HttpResponseContents::try_from_json(&naddrs)?; Ok((preamble, body)) } diff --git a/stackslib/src/net/api/postblock.rs b/stackslib/src/net/api/postblock.rs index b04e8e71e8..f056e07605 100644 --- a/stackslib/src/net/api/postblock.rs +++ b/stackslib/src/net/api/postblock.rs @@ -26,9 +26,7 @@ use crate::net::http::{ HttpRequestPreamble, HttpResponse, HttpResponseContents, HttpResponsePayload, HttpResponsePreamble, HttpServerError, }; -use crate::net::httpcore::{ - request, HttpPreambleExtensions, RPCRequestHandler, StacksHttpRequest, StacksHttpResponse, -}; +use crate::net::httpcore::{request, RPCRequestHandler, StacksHttpRequest, StacksHttpResponse}; use crate::net::relay::{BlockAcceptResponse, Relayer}; use crate::net::{BlocksData, BlocksDatum, Error as NetError, StacksMessageType, StacksNodeState}; @@ -223,8 +221,7 @@ impl RPCRequestHandler for RPCPostBlockRequestHandler { })); } - let mut preamble = HttpResponsePreamble::ok_json(&preamble); - preamble.set_canonical_stacks_tip_height(Some(node.canonical_stacks_tip_height())); + let preamble = HttpResponsePreamble::ok_json(&preamble); let body = HttpResponseContents::try_from_json(&data_resp)?; Ok((preamble, body)) } diff --git a/stackslib/src/net/api/postblock_proposal.rs b/stackslib/src/net/api/postblock_proposal.rs index d7b5abfcf3..060f23f230 100644 --- a/stackslib/src/net/api/postblock_proposal.rs +++ b/stackslib/src/net/api/postblock_proposal.rs @@ -53,7 +53,7 @@ use crate::net::http::{ HttpRequestPreamble, HttpResponse, HttpResponseContents, HttpResponsePayload, HttpResponsePreamble, }; -use crate::net::httpcore::{HttpPreambleExtensions, RPCRequestHandler}; +use crate::net::httpcore::RPCRequestHandler; use crate::net::{Error as NetError, StacksNodeState}; #[cfg(any(test, feature = "testing"))] @@ -1030,8 +1030,7 @@ impl RPCRequestHandler for RPCBlockProposalRequestHandler { match res { Ok(_) => { - let mut preamble = HttpResponsePreamble::accepted_json(&preamble); - preamble.set_canonical_stacks_tip_height(Some(node.canonical_stacks_tip_height())); + let preamble = HttpResponsePreamble::accepted_json(&preamble); let body = HttpResponseContents::try_from_json(&serde_json::json!({ "result": "Accepted", "message": "Block proposal is processing, result will be returned via the event observer" @@ -1039,8 +1038,7 @@ impl RPCRequestHandler for RPCBlockProposalRequestHandler { Ok((preamble, body)) } Err((code, err)) => { - let mut preamble = HttpResponsePreamble::error_json(code, http_reason(code)); - preamble.set_canonical_stacks_tip_height(Some(node.canonical_stacks_tip_height())); + let preamble = HttpResponsePreamble::error_json(code, http_reason(code)); let body = HttpResponseContents::try_from_json(&serde_json::json!({ "result": "Error", "message": format!("Could not process block proposal request: {err}") diff --git a/stackslib/src/net/api/postblock_v3.rs b/stackslib/src/net/api/postblock_v3.rs index 1290cc8e8b..893e930d4d 100644 --- a/stackslib/src/net/api/postblock_v3.rs +++ b/stackslib/src/net/api/postblock_v3.rs @@ -26,9 +26,7 @@ use crate::net::http::{ HttpRequestPreamble, HttpResponse, HttpResponseContents, HttpResponsePayload, HttpResponsePreamble, }; -use crate::net::httpcore::{ - HttpPreambleExtensions, RPCRequestHandler, StacksHttpRequest, StacksHttpResponse, -}; +use crate::net::httpcore::{RPCRequestHandler, StacksHttpRequest, StacksHttpResponse}; use crate::net::relay::Relayer; use crate::net::{Error as NetError, NakamotoBlocksData, StacksMessageType, StacksNodeState}; @@ -203,8 +201,7 @@ impl RPCRequestHandler for RPCPostBlockRequestHandler { })); } - let mut preamble = HttpResponsePreamble::ok_json(&preamble); - preamble.set_canonical_stacks_tip_height(Some(node.canonical_stacks_tip_height())); + let preamble = HttpResponsePreamble::ok_json(&preamble); let body = HttpResponseContents::try_from_json(&data_resp)?; Ok((preamble, body)) } diff --git a/stackslib/src/net/api/postfeerate.rs b/stackslib/src/net/api/postfeerate.rs index b33677289c..4a0ba32d7e 100644 --- a/stackslib/src/net/api/postfeerate.rs +++ b/stackslib/src/net/api/postfeerate.rs @@ -31,9 +31,7 @@ use crate::net::http::{ HttpRequestPreamble, HttpResponse, HttpResponseContents, HttpResponsePayload, HttpResponsePreamble, }; -use crate::net::httpcore::{ - HttpPreambleExtensions, RPCRequestHandler, StacksHttpRequest, StacksHttpResponse, -}; +use crate::net::httpcore::{RPCRequestHandler, StacksHttpRequest, StacksHttpResponse}; use crate::net::{Error as NetError, StacksNodeState}; #[derive(Serialize, Deserialize)] @@ -255,8 +253,7 @@ impl RPCRequestHandler for RPCPostFeeRateRequestHandler { } }; - let mut preamble = HttpResponsePreamble::ok_json(&preamble); - preamble.set_canonical_stacks_tip_height(Some(node.canonical_stacks_tip_height())); + let preamble = HttpResponsePreamble::ok_json(&preamble); let body = HttpResponseContents::try_from_json(&data_resp)?; Ok((preamble, body)) } diff --git a/stackslib/src/net/api/postmempoolquery.rs b/stackslib/src/net/api/postmempoolquery.rs index 04a43ab067..83146f144e 100644 --- a/stackslib/src/net/api/postmempoolquery.rs +++ b/stackslib/src/net/api/postmempoolquery.rs @@ -309,7 +309,6 @@ impl RPCRequestHandler for RPCMempoolQueryRequestHandler { None, HttpContentType::Bytes, ); - Ok(( resp_preamble, HttpResponseContents::from_stream(Box::new(stream)), diff --git a/stackslib/src/net/api/postmicroblock.rs b/stackslib/src/net/api/postmicroblock.rs index 9b2b1848f4..f5b8f0a778 100644 --- a/stackslib/src/net/api/postmicroblock.rs +++ b/stackslib/src/net/api/postmicroblock.rs @@ -29,8 +29,7 @@ use crate::net::http::{ HttpResponsePayload, HttpResponsePreamble, HttpServerError, }; use crate::net::httpcore::{ - HttpPreambleExtensions, HttpRequestContentsExtensions, RPCRequestHandler, StacksHttpRequest, - StacksHttpResponse, + HttpRequestContentsExtensions as _, RPCRequestHandler, StacksHttpRequest, StacksHttpResponse, }; use crate::net::relay::Relayer; use crate::net::{ @@ -212,8 +211,7 @@ impl RPCRequestHandler for RPCPostMicroblockRequestHandler { })); } - let mut preamble = HttpResponsePreamble::ok_json(&preamble); - preamble.set_canonical_stacks_tip_height(Some(node.canonical_stacks_tip_height())); + let preamble = HttpResponsePreamble::ok_json(&preamble); let body = HttpResponseContents::try_from_json(&data_resp)?; Ok((preamble, body)) } diff --git a/stackslib/src/net/api/poststackerdbchunk.rs b/stackslib/src/net/api/poststackerdbchunk.rs index b08d19aa59..dc3981268c 100644 --- a/stackslib/src/net/api/poststackerdbchunk.rs +++ b/stackslib/src/net/api/poststackerdbchunk.rs @@ -28,9 +28,7 @@ use crate::net::http::{ parse_json, Error, HttpNotFound, HttpRequest, HttpRequestContents, HttpRequestPreamble, HttpResponse, HttpResponseContents, HttpResponsePayload, HttpResponsePreamble, HttpServerError, }; -use crate::net::httpcore::{ - request, HttpPreambleExtensions, RPCRequestHandler, StacksHttpRequest, StacksHttpResponse, -}; +use crate::net::httpcore::{request, RPCRequestHandler, StacksHttpRequest, StacksHttpResponse}; use crate::net::{Error as NetError, StackerDBPushChunkData, StacksMessageType, StacksNodeState}; #[derive(Clone)] @@ -290,8 +288,7 @@ impl RPCRequestHandler for RPCPostStackerDBChunkRequestHandler { node.set_relay_message(StacksMessageType::StackerDBPushChunk(push_chunk_data)); } - let mut preamble = HttpResponsePreamble::ok_json(&preamble); - preamble.set_canonical_stacks_tip_height(Some(node.canonical_stacks_tip_height())); + let preamble = HttpResponsePreamble::ok_json(&preamble); let body = HttpResponseContents::try_from_json(&ack_resp)?; Ok((preamble, body)) } diff --git a/stackslib/src/net/api/posttransaction.rs b/stackslib/src/net/api/posttransaction.rs index 82360c058c..158df79009 100644 --- a/stackslib/src/net/api/posttransaction.rs +++ b/stackslib/src/net/api/posttransaction.rs @@ -26,9 +26,7 @@ use crate::net::http::{ HttpRequestPreamble, HttpResponse, HttpResponseContents, HttpResponsePayload, HttpResponsePreamble, HttpServerError, }; -use crate::net::httpcore::{ - HttpPreambleExtensions, RPCRequestHandler, StacksHttpRequest, StacksHttpResponse, -}; +use crate::net::httpcore::{RPCRequestHandler, StacksHttpRequest, StacksHttpResponse}; use crate::net::relay::Relayer; use crate::net::{Attachment, Error as NetError, StacksMessageType, StacksNodeState}; @@ -269,8 +267,7 @@ impl RPCRequestHandler for RPCPostTransactionRequestHandler { node.set_relay_message(StacksMessageType::Transaction(tx)); } - let mut preamble = HttpResponsePreamble::ok_json(&preamble); - preamble.set_canonical_stacks_tip_height(Some(node.canonical_stacks_tip_height())); + let preamble = HttpResponsePreamble::ok_json(&preamble); let body = HttpResponseContents::try_from_json(&txid)?; Ok((preamble, body)) } diff --git a/stackslib/src/net/api/tests/callreadonly.rs b/stackslib/src/net/api/tests/callreadonly.rs index 3ca5f473f2..c1f7d9fbfa 100644 --- a/stackslib/src/net/api/tests/callreadonly.rs +++ b/stackslib/src/net/api/tests/callreadonly.rs @@ -26,8 +26,7 @@ use crate::core::BLOCK_LIMIT_MAINNET_21; use crate::net::api::*; use crate::net::connection::ConnectionOptions; use crate::net::httpcore::{ - HttpPreambleExtensions, HttpRequestContentsExtensions, RPCRequestHandler, StacksHttp, - StacksHttpRequest, + HttpRequestContentsExtensions as _, RPCRequestHandler, StacksHttp, StacksHttpRequest, }; use crate::net::{ProtocolFamily, TipRequest}; @@ -191,11 +190,6 @@ fn test_try_make_response() { std::str::from_utf8(&response.try_serialize().unwrap()).unwrap() ); - assert_eq!( - response.preamble().get_canonical_stacks_tip_height(), - Some(1) - ); - let resp = response.decode_call_readonly_response().unwrap(); assert!(resp.okay); @@ -212,11 +206,6 @@ fn test_try_make_response() { std::str::from_utf8(&response.try_serialize().unwrap()).unwrap() ); - assert_eq!( - response.preamble().get_canonical_stacks_tip_height(), - Some(1) - ); - let resp = response.decode_call_readonly_response().unwrap(); assert!(resp.okay); diff --git a/stackslib/src/net/api/tests/fastcallreadonly.rs b/stackslib/src/net/api/tests/fastcallreadonly.rs index c65ab75955..dd2a50ca91 100644 --- a/stackslib/src/net/api/tests/fastcallreadonly.rs +++ b/stackslib/src/net/api/tests/fastcallreadonly.rs @@ -25,8 +25,7 @@ use super::{test_rpc, test_rpc_with_config}; use crate::net::api::*; use crate::net::connection::ConnectionOptions; use crate::net::httpcore::{ - HttpPreambleExtensions, HttpRequestContentsExtensions, RPCRequestHandler, StacksHttp, - StacksHttpRequest, + HttpRequestContentsExtensions as _, RPCRequestHandler, StacksHttp, StacksHttpRequest, }; use crate::net::{ProtocolFamily, TipRequest}; @@ -211,11 +210,6 @@ fn test_try_make_response() { std::str::from_utf8(&response.try_serialize().unwrap()).unwrap() ); - assert_eq!( - response.preamble().get_canonical_stacks_tip_height(), - Some(1) - ); - let resp = response.decode_call_readonly_response().unwrap(); assert!(resp.okay); @@ -232,11 +226,6 @@ fn test_try_make_response() { std::str::from_utf8(&response.try_serialize().unwrap()).unwrap() ); - assert_eq!( - response.preamble().get_canonical_stacks_tip_height(), - Some(1) - ); - let resp = response.decode_call_readonly_response().unwrap(); assert!(resp.okay); diff --git a/stackslib/src/net/api/tests/getaccount.rs b/stackslib/src/net/api/tests/getaccount.rs index 697bca958f..492b26d5e5 100644 --- a/stackslib/src/net/api/tests/getaccount.rs +++ b/stackslib/src/net/api/tests/getaccount.rs @@ -23,9 +23,7 @@ use stacks_common::types::Address; use super::test_rpc; use crate::net::api::*; use crate::net::connection::ConnectionOptions; -use crate::net::httpcore::{ - HttpPreambleExtensions, RPCRequestHandler, StacksHttp, StacksHttpRequest, -}; +use crate::net::httpcore::{RPCRequestHandler, StacksHttp, StacksHttpRequest}; use crate::net::{ProtocolFamily, TipRequest}; #[test] @@ -130,11 +128,6 @@ fn test_try_make_response() { std::str::from_utf8(&response.try_serialize().unwrap()).unwrap() ); - assert_eq!( - response.preamble().get_canonical_stacks_tip_height(), - Some(1) - ); - let resp = response.decode_account_entry_response().unwrap(); assert_eq!(resp.balance, "0x0000000000000000000000003b9aca00"); @@ -149,11 +142,6 @@ fn test_try_make_response() { std::str::from_utf8(&response.try_serialize().unwrap()).unwrap() ); - assert_eq!( - response.preamble().get_canonical_stacks_tip_height(), - Some(1) - ); - let resp = response.decode_account_entry_response().unwrap(); assert_eq!(resp.balance, "0x0000000000000000000000003b9aca00"); @@ -168,11 +156,6 @@ fn test_try_make_response() { std::str::from_utf8(&response.try_serialize().unwrap()).unwrap() ); - assert_eq!( - response.preamble().get_canonical_stacks_tip_height(), - Some(1) - ); - let resp = response.decode_account_entry_response().unwrap(); assert_eq!(resp.balance, "0x00000000000000000000000000000000"); @@ -187,11 +170,6 @@ fn test_try_make_response() { std::str::from_utf8(&response.try_serialize().unwrap()).unwrap() ); - assert_eq!( - response.preamble().get_canonical_stacks_tip_height(), - Some(1) - ); - let resp = response.decode_account_entry_response().unwrap(); assert_eq!(resp.balance, "0x0000000000000000000000003b9ac985"); diff --git a/stackslib/src/net/api/tests/getattachment.rs b/stackslib/src/net/api/tests/getattachment.rs index e9f71ab198..6011265037 100644 --- a/stackslib/src/net/api/tests/getattachment.rs +++ b/stackslib/src/net/api/tests/getattachment.rs @@ -21,9 +21,7 @@ use stacks_common::util::hash::Hash160; use super::test_rpc; use crate::net::api::*; use crate::net::connection::ConnectionOptions; -use crate::net::httpcore::{ - HttpPreambleExtensions, RPCRequestHandler, StacksHttp, StacksHttpRequest, -}; +use crate::net::httpcore::{RPCRequestHandler, StacksHttp, StacksHttpRequest}; use crate::net::{Attachment, ProtocolFamily}; #[test] @@ -87,11 +85,6 @@ fn test_try_make_response() { std::str::from_utf8(&response.try_serialize().unwrap()).unwrap() ); - assert_eq!( - response.preamble().get_canonical_stacks_tip_height(), - Some(1) - ); - let resp = response.decode_atlas_get_attachment().unwrap(); assert_eq!(resp.attachment, attachment); diff --git a/stackslib/src/net/api/tests/getattachmentsinv.rs b/stackslib/src/net/api/tests/getattachmentsinv.rs index 18c1549756..271c1fff6c 100644 --- a/stackslib/src/net/api/tests/getattachmentsinv.rs +++ b/stackslib/src/net/api/tests/getattachmentsinv.rs @@ -22,9 +22,7 @@ use stacks_common::types::chainstate::StacksBlockId; use super::TestRPC; use crate::net::api::*; use crate::net::connection::ConnectionOptions; -use crate::net::httpcore::{ - HttpPreambleExtensions, RPCRequestHandler, StacksHttp, StacksHttpRequest, -}; +use crate::net::httpcore::{RPCRequestHandler, StacksHttp, StacksHttpRequest}; use crate::net::{Attachment, ProtocolFamily}; #[test] @@ -110,11 +108,6 @@ fn test_try_make_response() { std::str::from_utf8(&response.try_serialize().unwrap()).unwrap() ); - assert_eq!( - response.preamble().get_canonical_stacks_tip_height(), - Some(1) - ); - let resp = response.decode_atlas_attachments_inv_response().unwrap(); // there should be a bit set in the inventory vector @@ -128,11 +121,6 @@ fn test_try_make_response() { "Response:\n{}\n", std::str::from_utf8(&response.try_serialize().unwrap()).unwrap() ); - - assert_eq!( - response.preamble().get_canonical_stacks_tip_height(), - Some(1) - ); let resp = response.decode_atlas_attachments_inv_response().unwrap(); // this is a HTTP 200, but no bits are set diff --git a/stackslib/src/net/api/tests/getclaritymarfvalue.rs b/stackslib/src/net/api/tests/getclaritymarfvalue.rs index f334225a9c..bcfbb2aef3 100644 --- a/stackslib/src/net/api/tests/getclaritymarfvalue.rs +++ b/stackslib/src/net/api/tests/getclaritymarfvalue.rs @@ -23,8 +23,7 @@ use super::test_rpc; use crate::net::api::*; use crate::net::connection::ConnectionOptions; use crate::net::httpcore::{ - HttpPreambleExtensions, HttpRequestContentsExtensions, RPCRequestHandler, StacksHttp, - StacksHttpRequest, + HttpRequestContentsExtensions as _, RPCRequestHandler, StacksHttp, StacksHttpRequest, }; use crate::net::{ProtocolFamily, TipRequest}; @@ -141,11 +140,6 @@ fn test_try_make_response() { std::str::from_utf8(&response.try_serialize().unwrap()).unwrap() ); - assert_eq!( - response.preamble().get_canonical_stacks_tip_height(), - Some(1) - ); - let resp = response.decode_clarity_marf_response().unwrap(); assert_eq!(resp.data, "0x0000000000000000000000000000000000"); assert!(resp.marf_proof.is_some()); @@ -157,11 +151,6 @@ fn test_try_make_response() { std::str::from_utf8(&response.try_serialize().unwrap()).unwrap() ); - assert_eq!( - response.preamble().get_canonical_stacks_tip_height(), - Some(1) - ); - let resp = response.decode_clarity_marf_response().unwrap(); assert_eq!(resp.data, "0x0100000000000000000000000000000001"); assert!(resp.marf_proof.is_some()); diff --git a/stackslib/src/net/api/tests/getclaritymetadata.rs b/stackslib/src/net/api/tests/getclaritymetadata.rs index 1dff391416..98523abc37 100644 --- a/stackslib/src/net/api/tests/getclaritymetadata.rs +++ b/stackslib/src/net/api/tests/getclaritymetadata.rs @@ -26,8 +26,7 @@ use crate::net::api::*; use crate::net::connection::ConnectionOptions; use crate::net::http::Error as HttpError; use crate::net::httpcore::{ - HttpPreambleExtensions, HttpRequestContentsExtensions, RPCRequestHandler, StacksHttp, - StacksHttpRequest, + HttpRequestContentsExtensions as _, RPCRequestHandler, StacksHttp, StacksHttpRequest, }; use crate::net::{ProtocolFamily, TipRequest}; @@ -309,10 +308,6 @@ fn test_try_make_response() { // contract size metadata let response = responses.remove(0); - assert_eq!( - response.preamble().get_canonical_stacks_tip_height(), - Some(1) - ); let resp = response.decode_clarity_metadata_response().unwrap(); assert_eq!(resp.data, "1432"); @@ -356,10 +351,6 @@ fn test_try_make_response() { // contract size metadata let response = responses.remove(0); - assert_eq!( - response.preamble().get_canonical_stacks_tip_height(), - Some(1) - ); let resp = response.decode_clarity_metadata_response().unwrap(); assert_eq!(resp.data, "1432"); diff --git a/stackslib/src/net/api/tests/getconstantval.rs b/stackslib/src/net/api/tests/getconstantval.rs index ca1b818f73..43e46ebad7 100644 --- a/stackslib/src/net/api/tests/getconstantval.rs +++ b/stackslib/src/net/api/tests/getconstantval.rs @@ -25,8 +25,7 @@ use super::test_rpc; use crate::net::api::*; use crate::net::connection::ConnectionOptions; use crate::net::httpcore::{ - HttpPreambleExtensions, HttpRequestContentsExtensions, RPCRequestHandler, StacksHttp, - StacksHttpRequest, + HttpRequestContentsExtensions as _, RPCRequestHandler, StacksHttp, StacksHttpRequest, }; use crate::net::{ProtocolFamily, TipRequest}; @@ -138,11 +137,6 @@ fn test_try_make_response() { std::str::from_utf8(&response.try_serialize().unwrap()).unwrap() ); - assert_eq!( - response.preamble().get_canonical_stacks_tip_height(), - Some(1) - ); - let resp = response.decode_constant_val_response().unwrap(); assert_eq!(resp.data, "0x000000000000000000000000000000007b"); @@ -154,11 +148,6 @@ fn test_try_make_response() { std::str::from_utf8(&response.try_serialize().unwrap()).unwrap() ); - assert_eq!( - response.preamble().get_canonical_stacks_tip_height(), - Some(1) - ); - let resp = response.decode_constant_val_response().unwrap(); assert_eq!(resp.data, "0x00000000000000000000000000000001c8"); diff --git a/stackslib/src/net/api/tests/getcontractabi.rs b/stackslib/src/net/api/tests/getcontractabi.rs index fed361ed21..12133b950e 100644 --- a/stackslib/src/net/api/tests/getcontractabi.rs +++ b/stackslib/src/net/api/tests/getcontractabi.rs @@ -25,8 +25,7 @@ use super::test_rpc; use crate::net::api::*; use crate::net::connection::ConnectionOptions; use crate::net::httpcore::{ - HttpPreambleExtensions, HttpRequestContentsExtensions, RPCRequestHandler, StacksHttp, - StacksHttpRequest, + HttpRequestContentsExtensions as _, RPCRequestHandler, StacksHttp, StacksHttpRequest, }; use crate::net::{ProtocolFamily, TipRequest}; @@ -123,11 +122,6 @@ fn test_try_make_response() { std::str::from_utf8(&response.try_serialize().unwrap()).unwrap() ); - assert_eq!( - response.preamble().get_canonical_stacks_tip_height(), - Some(1) - ); - let resp = response.decode_contract_abi_response().unwrap(); // unconfirmed data @@ -137,11 +131,6 @@ fn test_try_make_response() { std::str::from_utf8(&response.try_serialize().unwrap()).unwrap() ); - assert_eq!( - response.preamble().get_canonical_stacks_tip_height(), - Some(1) - ); - let resp = response.decode_contract_abi_response().unwrap(); // no such contract diff --git a/stackslib/src/net/api/tests/getcontractsrc.rs b/stackslib/src/net/api/tests/getcontractsrc.rs index 0556f280b7..47ec4f702d 100644 --- a/stackslib/src/net/api/tests/getcontractsrc.rs +++ b/stackslib/src/net/api/tests/getcontractsrc.rs @@ -25,8 +25,7 @@ use super::test_rpc; use crate::net::api::*; use crate::net::connection::ConnectionOptions; use crate::net::httpcore::{ - HttpPreambleExtensions, HttpRequestContentsExtensions, RPCRequestHandler, StacksHttp, - StacksHttpRequest, + HttpRequestContentsExtensions as _, RPCRequestHandler, StacksHttp, StacksHttpRequest, }; use crate::net::{ProtocolFamily, TipRequest}; @@ -128,11 +127,6 @@ fn test_try_make_response() { std::str::from_utf8(&response.try_serialize().unwrap()).unwrap() ); - assert_eq!( - response.preamble().get_canonical_stacks_tip_height(), - Some(1) - ); - let resp = response.decode_contract_src_response().unwrap(); assert_eq!(resp.publish_height, 1); assert!(resp.marf_proof.is_some()); @@ -144,11 +138,6 @@ fn test_try_make_response() { std::str::from_utf8(&response.try_serialize().unwrap()).unwrap() ); - assert_eq!( - response.preamble().get_canonical_stacks_tip_height(), - Some(1) - ); - let resp = response.decode_contract_src_response().unwrap(); assert_eq!(resp.publish_height, 2); assert!(resp.marf_proof.is_some()); diff --git a/stackslib/src/net/api/tests/getdatavar.rs b/stackslib/src/net/api/tests/getdatavar.rs index 7e6fab4ca1..0d6c67e058 100644 --- a/stackslib/src/net/api/tests/getdatavar.rs +++ b/stackslib/src/net/api/tests/getdatavar.rs @@ -25,8 +25,7 @@ use super::test_rpc; use crate::net::api::*; use crate::net::connection::ConnectionOptions; use crate::net::httpcore::{ - HttpPreambleExtensions, HttpRequestContentsExtensions, RPCRequestHandler, StacksHttp, - StacksHttpRequest, + HttpRequestContentsExtensions as _, RPCRequestHandler, StacksHttp, StacksHttpRequest, }; use crate::net::{ProtocolFamily, TipRequest}; @@ -145,11 +144,6 @@ fn test_try_make_response() { std::str::from_utf8(&response.try_serialize().unwrap()).unwrap() ); - assert_eq!( - response.preamble().get_canonical_stacks_tip_height(), - Some(1) - ); - let resp = response.decode_data_var_response().unwrap(); assert_eq!(resp.data, "0x0000000000000000000000000000000000"); assert!(resp.marf_proof.is_some()); @@ -161,11 +155,6 @@ fn test_try_make_response() { std::str::from_utf8(&response.try_serialize().unwrap()).unwrap() ); - assert_eq!( - response.preamble().get_canonical_stacks_tip_height(), - Some(1) - ); - let resp = response.decode_data_var_response().unwrap(); assert_eq!(resp.data, "0x0100000000000000000000000000000001"); assert!(resp.marf_proof.is_some()); diff --git a/stackslib/src/net/api/tests/getheaders.rs b/stackslib/src/net/api/tests/getheaders.rs index 2161725b73..ab7e48fab8 100644 --- a/stackslib/src/net/api/tests/getheaders.rs +++ b/stackslib/src/net/api/tests/getheaders.rs @@ -29,7 +29,7 @@ use crate::net::api::*; use crate::net::connection::ConnectionOptions; use crate::net::http::HttpChunkGenerator; use crate::net::httpcore::{ - HttpRequestContentsExtensions, RPCRequestHandler, StacksHttp, StacksHttpRequest, + HttpRequestContentsExtensions as _, RPCRequestHandler, StacksHttp, StacksHttpRequest, }; use crate::net::{ProtocolFamily, TipRequest}; diff --git a/stackslib/src/net/api/tests/getinfo.rs b/stackslib/src/net/api/tests/getinfo.rs index f057d4c89c..bd3a4c7d7d 100644 --- a/stackslib/src/net/api/tests/getinfo.rs +++ b/stackslib/src/net/api/tests/getinfo.rs @@ -21,7 +21,7 @@ use serde_json; use super::test_rpc; use crate::net::api::getinfo::RPCPeerInfoData; use crate::net::connection::ConnectionOptions; -use crate::net::httpcore::{HttpPreambleExtensions, StacksHttp, StacksHttpRequest}; +use crate::net::httpcore::{StacksHttp, StacksHttpRequest}; use crate::net::ProtocolFamily; #[test] @@ -87,10 +87,6 @@ fn test_try_make_response() { std::str::from_utf8(&response.try_serialize().unwrap()).unwrap() ); - assert_eq!( - response.preamble().get_canonical_stacks_tip_height(), - Some(1) - ); let resp = response.decode_peer_info().unwrap(); assert_eq!(resp.tenure_height, 1); diff --git a/stackslib/src/net/api/tests/getistraitimplemented.rs b/stackslib/src/net/api/tests/getistraitimplemented.rs index 6a21bed1d7..93315877e1 100644 --- a/stackslib/src/net/api/tests/getistraitimplemented.rs +++ b/stackslib/src/net/api/tests/getistraitimplemented.rs @@ -25,8 +25,7 @@ use super::test_rpc; use crate::net::api::*; use crate::net::connection::ConnectionOptions; use crate::net::httpcore::{ - HttpPreambleExtensions, HttpRequestContentsExtensions, RPCRequestHandler, StacksHttp, - StacksHttpRequest, + HttpRequestContentsExtensions as _, RPCRequestHandler, StacksHttp, StacksHttpRequest, }; use crate::net::{ProtocolFamily, TipRequest}; @@ -170,11 +169,6 @@ fn test_try_make_response() { std::str::from_utf8(&response.try_serialize().unwrap()).unwrap() ); - assert_eq!( - response.preamble().get_canonical_stacks_tip_height(), - Some(1) - ); - let resp = response.decode_is_trait_implemented_response().unwrap(); assert!(resp.is_implemented); @@ -185,11 +179,6 @@ fn test_try_make_response() { std::str::from_utf8(&response.try_serialize().unwrap()).unwrap() ); - assert_eq!( - response.preamble().get_canonical_stacks_tip_height(), - Some(1) - ); - let resp = response.decode_is_trait_implemented_response().unwrap(); assert!(!resp.is_implemented); @@ -200,11 +189,6 @@ fn test_try_make_response() { std::str::from_utf8(&response.try_serialize().unwrap()).unwrap() ); - assert_eq!( - response.preamble().get_canonical_stacks_tip_height(), - Some(1) - ); - let resp = response.decode_is_trait_implemented_response().unwrap(); assert!(resp.is_implemented); diff --git a/stackslib/src/net/api/tests/getmapentry.rs b/stackslib/src/net/api/tests/getmapentry.rs index 6bf6a6aaa3..0052179df9 100644 --- a/stackslib/src/net/api/tests/getmapentry.rs +++ b/stackslib/src/net/api/tests/getmapentry.rs @@ -26,8 +26,7 @@ use super::test_rpc; use crate::net::api::*; use crate::net::connection::ConnectionOptions; use crate::net::httpcore::{ - HttpPreambleExtensions, HttpRequestContentsExtensions, RPCRequestHandler, StacksHttp, - StacksHttpRequest, + HttpRequestContentsExtensions as _, RPCRequestHandler, StacksHttp, StacksHttpRequest, }; use crate::net::{ProtocolFamily, TipRequest}; @@ -153,11 +152,6 @@ fn test_try_make_response() { std::str::from_utf8(&response.try_serialize().unwrap()).unwrap() ); - assert_eq!( - response.preamble().get_canonical_stacks_tip_height(), - Some(1) - ); - let resp = response.decode_map_entry_response().unwrap(); assert_eq!(resp.data, "0x0a0100000000000000000000000000000002"); assert!(resp.marf_proof.is_some()); @@ -169,11 +163,6 @@ fn test_try_make_response() { std::str::from_utf8(&response.try_serialize().unwrap()).unwrap() ); - assert_eq!( - response.preamble().get_canonical_stacks_tip_height(), - Some(1) - ); - let resp = response.decode_map_entry_response().unwrap(); assert_eq!(resp.data, "0x0a0000000000000000000000000000000004"); assert!(resp.marf_proof.is_some()); @@ -185,11 +174,6 @@ fn test_try_make_response() { std::str::from_utf8(&response.try_serialize().unwrap()).unwrap() ); - assert_eq!( - response.preamble().get_canonical_stacks_tip_height(), - Some(1) - ); - let resp = response.decode_map_entry_response().unwrap(); assert_eq!(resp.data, "0x09"); assert_eq!(resp.marf_proof, Some("".to_string())); @@ -201,11 +185,6 @@ fn test_try_make_response() { std::str::from_utf8(&response.try_serialize().unwrap()).unwrap() ); - assert_eq!( - response.preamble().get_canonical_stacks_tip_height(), - Some(1) - ); - let resp = response.decode_map_entry_response().unwrap(); assert_eq!(resp.data, "0x09"); assert_eq!(resp.marf_proof, Some("".to_string())); diff --git a/stackslib/src/net/api/tests/getneighbors.rs b/stackslib/src/net/api/tests/getneighbors.rs index eb32a92e24..eee96a119a 100644 --- a/stackslib/src/net/api/tests/getneighbors.rs +++ b/stackslib/src/net/api/tests/getneighbors.rs @@ -19,7 +19,7 @@ use std::net::{IpAddr, Ipv4Addr, SocketAddr}; use super::test_rpc; use crate::net::api::*; use crate::net::connection::ConnectionOptions; -use crate::net::httpcore::{HttpPreambleExtensions, StacksHttp, StacksHttpRequest}; +use crate::net::httpcore::{StacksHttp, StacksHttpRequest}; use crate::net::ProtocolFamily; #[test] @@ -66,11 +66,6 @@ fn test_try_make_response() { std::str::from_utf8(&response.try_serialize().unwrap()).unwrap() ); - assert_eq!( - response.preamble().get_canonical_stacks_tip_height(), - Some(1) - ); - let resp = response.decode_rpc_neighbors().unwrap(); // as configured there's one boostrap neighbor diff --git a/stackslib/src/net/api/tests/getpoxinfo.rs b/stackslib/src/net/api/tests/getpoxinfo.rs index bedb362259..1b1d4a90d7 100644 --- a/stackslib/src/net/api/tests/getpoxinfo.rs +++ b/stackslib/src/net/api/tests/getpoxinfo.rs @@ -21,9 +21,7 @@ use clarity::types::chainstate::StacksBlockId; use super::test_rpc; use crate::net::api::getpoxinfo; use crate::net::connection::ConnectionOptions; -use crate::net::httpcore::{ - HttpPreambleExtensions, HttpRequestContentsExtensions, StacksHttp, StacksHttpRequest, -}; +use crate::net::httpcore::{HttpRequestContentsExtensions as _, StacksHttp, StacksHttpRequest}; use crate::net::{ProtocolFamily, TipRequest}; #[test] @@ -85,11 +83,6 @@ fn test_try_make_response() { std::str::from_utf8(&response.try_serialize().unwrap()).unwrap() ); - assert_eq!( - response.preamble().get_canonical_stacks_tip_height(), - Some(1) - ); - // this works let resp = response.decode_rpc_get_pox_info().unwrap(); diff --git a/stackslib/src/net/api/tests/getstackerdbchunk.rs b/stackslib/src/net/api/tests/getstackerdbchunk.rs index 9a7fe688b8..3450558448 100644 --- a/stackslib/src/net/api/tests/getstackerdbchunk.rs +++ b/stackslib/src/net/api/tests/getstackerdbchunk.rs @@ -21,9 +21,7 @@ use clarity::vm::types::QualifiedContractIdentifier; use super::test_rpc; use crate::net::api::*; use crate::net::connection::ConnectionOptions; -use crate::net::httpcore::{ - HttpPreambleExtensions, RPCRequestHandler, StacksHttp, StacksHttpRequest, -}; +use crate::net::httpcore::{RPCRequestHandler, StacksHttp, StacksHttpRequest}; use crate::net::ProtocolFamily; #[test] @@ -138,10 +136,6 @@ fn test_try_make_response() { "Response:\n{}\n", std::str::from_utf8(&response.try_serialize().unwrap()).unwrap() ); - assert_eq!( - response.preamble().get_canonical_stacks_tip_height(), - Some(1) - ); let resp = response.decode_stackerdb_chunk().unwrap(); assert_eq!(std::str::from_utf8(&resp).unwrap(), "hello world"); @@ -151,10 +145,6 @@ fn test_try_make_response() { "Response:\n{}\n", std::str::from_utf8(&response.try_serialize().unwrap()).unwrap() ); - assert_eq!( - response.preamble().get_canonical_stacks_tip_height(), - Some(1) - ); let resp = response.decode_stackerdb_chunk().unwrap(); assert_eq!(std::str::from_utf8(&resp).unwrap(), "hello world"); diff --git a/stackslib/src/net/api/tests/getstackerdbmetadata.rs b/stackslib/src/net/api/tests/getstackerdbmetadata.rs index a7fa9f01a3..2caa442626 100644 --- a/stackslib/src/net/api/tests/getstackerdbmetadata.rs +++ b/stackslib/src/net/api/tests/getstackerdbmetadata.rs @@ -23,9 +23,7 @@ use stacks_common::util::secp256k1::MessageSignature; use super::test_rpc; use crate::net::api::*; use crate::net::connection::ConnectionOptions; -use crate::net::httpcore::{ - HttpPreambleExtensions, RPCRequestHandler, StacksHttp, StacksHttpRequest, -}; +use crate::net::httpcore::{RPCRequestHandler, StacksHttp, StacksHttpRequest}; use crate::net::ProtocolFamily; #[test] @@ -94,10 +92,6 @@ fn test_try_make_response() { "Response:\n{}\n", std::str::from_utf8(&response.try_serialize().unwrap()).unwrap() ); - assert_eq!( - response.preamble().get_canonical_stacks_tip_height(), - Some(1) - ); let resp = response.decode_stackerdb_metadata().unwrap(); diff --git a/stackslib/src/net/api/tests/getstxtransfercost.rs b/stackslib/src/net/api/tests/getstxtransfercost.rs index 0aad1f7c77..f435fb30d6 100644 --- a/stackslib/src/net/api/tests/getstxtransfercost.rs +++ b/stackslib/src/net/api/tests/getstxtransfercost.rs @@ -20,7 +20,7 @@ use super::test_rpc; use crate::chainstate::stacks::db::blocks::MINIMUM_TX_FEE_RATE_PER_BYTE; use crate::net::api::*; use crate::net::connection::ConnectionOptions; -use crate::net::httpcore::{HttpPreambleExtensions, StacksHttp, StacksHttpRequest}; +use crate::net::httpcore::{StacksHttp, StacksHttpRequest}; use crate::net::ProtocolFamily; #[test] @@ -65,11 +65,6 @@ fn test_try_make_response() { std::str::from_utf8(&response.try_serialize().unwrap()).unwrap() ); - assert_eq!( - response.preamble().get_canonical_stacks_tip_height(), - Some(1) - ); - let fee_rate = response.decode_stx_transfer_fee().unwrap(); debug!("fee_rate = {:?}", &fee_rate); assert_eq!(fee_rate, MINIMUM_TX_FEE_RATE_PER_BYTE); diff --git a/stackslib/src/net/api/tests/liststackerdbreplicas.rs b/stackslib/src/net/api/tests/liststackerdbreplicas.rs index 960163f92e..ee9ea00cf9 100644 --- a/stackslib/src/net/api/tests/liststackerdbreplicas.rs +++ b/stackslib/src/net/api/tests/liststackerdbreplicas.rs @@ -23,9 +23,7 @@ use stacks_common::util::hash::Hash160; use super::test_rpc; use crate::net::api::*; use crate::net::connection::ConnectionOptions; -use crate::net::httpcore::{ - HttpPreambleExtensions, RPCRequestHandler, StacksHttp, StacksHttpRequest, -}; +use crate::net::httpcore::{RPCRequestHandler, StacksHttp, StacksHttpRequest}; use crate::net::ProtocolFamily; #[test] @@ -94,10 +92,6 @@ fn test_try_make_response() { "Response:\n{}\n", std::str::from_utf8(&response.try_serialize().unwrap()).unwrap() ); - assert_eq!( - response.preamble().get_canonical_stacks_tip_height(), - Some(1) - ); let resp = response.decode_stackerdb_replicas().unwrap(); assert_eq!(resp.len(), 2); diff --git a/stackslib/src/net/api/tests/mod.rs b/stackslib/src/net/api/tests/mod.rs index b227af0763..d8c97e6bbe 100644 --- a/stackslib/src/net/api/tests/mod.rs +++ b/stackslib/src/net/api/tests/mod.rs @@ -14,10 +14,11 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -use std::net::SocketAddr; +use std::net::{IpAddr, Ipv4Addr, SocketAddr}; use std::thread; use std::time::{Duration, Instant}; +use clarity::types::net::PeerHost; use clarity::vm::costs::ExecutionCost; use clarity::vm::types::{QualifiedContractIdentifier, StacksAddressExtensions}; use libstackerdb::SlotMetadata; @@ -45,7 +46,9 @@ use crate::chainstate::stacks::{ }; use crate::core::MemPoolDB; use crate::net::db::PeerDB; -use crate::net::httpcore::{StacksHttpRequest, StacksHttpResponse}; +use crate::net::httpcore::{ + HttpPreambleExtensions as _, StacksHttpRequest, StacksHttpResponse, TipRequest, +}; use crate::net::relay::Relayer; use crate::net::rpc::ConversationHttp; use crate::net::test::{RPCHandlerArgsType, TestEventObserver, TestPeer, TestPeerConfig}; @@ -1288,6 +1291,12 @@ impl<'a> TestRPC<'a> { assert!(resp_opt.is_some()); let resp = resp_opt.unwrap(); + + // Assert that the `X-Canonical-Stacks-Tip-Height` header is always set for successful responses + if resp.preamble().is_success() { + assert!(resp.preamble().get_canonical_stacks_tip_height().is_some()); + } + responses.push(resp); } @@ -1415,3 +1424,35 @@ fn prefixed_hex_serialization() { assert_eq!(hex_str, format!("\"0x{}\"", to_hex(&inp.0))); } } + +/// Test that the `X-Canonical-Stacks-Tip-Height` header always matches the node's +/// `network.stacks_tip.height` value. +/// +/// This doesn't aim to test each possible endpoint, but rather to test that the +/// header is set to the correct value for successful responses. +#[rstest] +#[case::getinfo(|addr| StacksHttpRequest::new_getinfo(addr, None))] +#[case::getneighbors(StacksHttpRequest::new_getneighbors)] +#[case::getpoxinfo(|addr| StacksHttpRequest::new_getpoxinfo( + addr, + TipRequest::UseLatestUnconfirmedTip, +))] +fn test_successfull_responses_have_correct_canonical_stacks_tip_height( + #[case] request_builder: impl Fn(PeerHost) -> StacksHttpRequest, +) { + let addr: PeerHost = SocketAddr::new(IpAddr::V4(Ipv4Addr::LOCALHOST), 33333).into(); + let test_observer = TestEventObserver::new(); + let rpc_test = TestRPC::setup(function_name!()); + + let expected_height = rpc_test.peer_2.network.stacks_tip.height; + let request = request_builder(addr); + let mut responses = rpc_test.run(vec![request]); + + let response = responses.remove(0); + let preamble = response.preamble(); + assert!(preamble.is_success()); + assert_eq!( + preamble.get_canonical_stacks_tip_height().unwrap(), + expected_height + ); +} diff --git a/stackslib/src/net/api/tests/postmicroblock.rs b/stackslib/src/net/api/tests/postmicroblock.rs index 6ef163bfc2..9c9276735f 100644 --- a/stackslib/src/net/api/tests/postmicroblock.rs +++ b/stackslib/src/net/api/tests/postmicroblock.rs @@ -23,7 +23,7 @@ use crate::chainstate::stacks::test::make_codec_test_microblock; use crate::net::api::*; use crate::net::connection::ConnectionOptions; use crate::net::httpcore::{ - HttpRequestContentsExtensions, RPCRequestHandler, StacksHttp, StacksHttpRequest, + HttpRequestContentsExtensions as _, RPCRequestHandler, StacksHttp, StacksHttpRequest, }; use crate::net::{ProtocolFamily, TipRequest}; diff --git a/stackslib/src/net/download/epoch2x.rs b/stackslib/src/net/download/epoch2x.rs index fb9f55af6d..87f20758e8 100644 --- a/stackslib/src/net/download/epoch2x.rs +++ b/stackslib/src/net/download/epoch2x.rs @@ -1666,7 +1666,7 @@ impl PeerNetwork { mblock_height += scan_batch_size; } - test_debug!("{:?}: at {},{}: {} blocks to get, {} microblock streams to get (up to {},{})", + test_debug!("{:?}: at {},{}: {} blocks to get, {} microblock streams to get (up to {},{})", &network.local_peer, next_block_sortition_height, next_microblock_sortition_height, next_blocks_to_try.len(), next_microblocks_to_try.len(), max_height, max_mblock_height); test_debug!("{:?}: Begin block requests", &network.local_peer); @@ -1795,7 +1795,7 @@ impl PeerNetwork { } } - debug!("{:?}: will request microblock stream confirmed by sortition {}: {}/{} ({}) from {:?}", + debug!("{:?}: will request microblock stream confirmed by sortition {}: {}/{} ({}) from {:?}", &network.local_peer, mblock_height, &requests.front().as_ref().unwrap().consensus_hash, &requests.front().as_ref().unwrap().anchor_block_hash, &index_block_hash, requests.iter().map(|r| &r.data_url).collect::>() ); @@ -1867,7 +1867,7 @@ impl PeerNetwork { downloader.next_block_sortition_height = next_block_sortition_height; downloader.next_microblock_sortition_height = next_microblock_sortition_height; - debug!("{:?}: Will try for {} blocks and {} microblocks (next sortition heights are {},{}, chain tip is {})", + debug!("{:?}: Will try for {} blocks and {} microblocks (next sortition heights are {},{}, chain tip is {})", &network.local_peer, downloader.blocks_to_try.len(), downloader.microblocks_to_try.len(), next_block_sortition_height, next_microblock_sortition_height, network.chain_view.burn_block_height - sortdb.first_block_height); Ok(()) })?; diff --git a/stackslib/src/net/download/nakamoto/tenure_downloader_unconfirmed.rs b/stackslib/src/net/download/nakamoto/tenure_downloader_unconfirmed.rs index b56ffcae61..29fd9bc28f 100644 --- a/stackslib/src/net/download/nakamoto/tenure_downloader_unconfirmed.rs +++ b/stackslib/src/net/download/nakamoto/tenure_downloader_unconfirmed.rs @@ -142,7 +142,7 @@ impl NakamotoUnconfirmedTenureDownloader { /// * tenure_tip.parent_tenure_start_block_id /// This is the tenure start block for the highest complete tenure. It should be equal to /// the winning Stacks block hash of the snapshot for the ongoing tenure. - /// + /// /// We may already have the tenure-start block for the unconfirmed tenure. If so, then don't go /// fetch it again; just get the new unconfirmed blocks. pub fn try_accept_tenure_info( @@ -406,7 +406,7 @@ impl NakamotoUnconfirmedTenureDownloader { // block has to match the expected hash if tenure_start_block_id != &unconfirmed_tenure_start_block.header.block_id() { - warn!("Invalid tenure-start block"; + warn!("Invalid tenure-start block"; "tenure_id_start_block" => %tenure_start_block_id, "unconfirmed_tenure_start_block.header.consensus_hash" => %unconfirmed_tenure_start_block.header.consensus_hash, "unconfirmed_tenure_start_block ID" => %unconfirmed_tenure_start_block.header.block_id(), diff --git a/stackslib/src/net/http/response.rs b/stackslib/src/net/http/response.rs index 774740e292..0abe479b6b 100644 --- a/stackslib/src/net/http/response.rs +++ b/stackslib/src/net/http/response.rs @@ -343,6 +343,11 @@ impl HttpResponsePreamble { pub fn is_chunked(&self) -> bool { self.content_length.is_none() } + + /// Is this a successful response? + pub fn is_success(&self) -> bool { + self.status_code >= 100 && self.status_code < 400 + } } /// Get an RFC 7231 date that represents the current time diff --git a/stackslib/src/net/httpcore.rs b/stackslib/src/net/httpcore.rs index 28e1673e1a..afe5c1cca8 100644 --- a/stackslib/src/net/httpcore.rs +++ b/stackslib/src/net/httpcore.rs @@ -106,18 +106,18 @@ impl From<&str> for TipRequest { /// Extension to HttpRequestPreamble to give it awareness of Stacks-specific fields pub trait HttpPreambleExtensions { /// Set the node's canonical Stacks chain tip - fn set_canonical_stacks_tip_height(&mut self, height: Option); + fn set_canonical_stacks_tip_height(&mut self, height: Option); /// Set the node's request ID fn set_request_id(&mut self, req_id: u32); /// Get the canonical stacks chain tip - fn get_canonical_stacks_tip_height(&self) -> Option; + fn get_canonical_stacks_tip_height(&self) -> Option; /// Get the request ID fn get_request_id(&self) -> Option; } impl HttpPreambleExtensions for HttpRequestPreamble { /// Set the canonical Stacks chain tip height - fn set_canonical_stacks_tip_height(&mut self, height_opt: Option) { + fn set_canonical_stacks_tip_height(&mut self, height_opt: Option) { if let Some(height) = height_opt { self.add_header( "X-Canonical-Stacks-Tip-Height".into(), @@ -134,9 +134,9 @@ impl HttpPreambleExtensions for HttpRequestPreamble { } /// Get the canonical Stacks chain tip - fn get_canonical_stacks_tip_height(&self) -> Option { + fn get_canonical_stacks_tip_height(&self) -> Option { self.get_header("X-Canonical-Stacks-Tip-Height".to_string()) - .and_then(|hdr| hdr.parse::().ok()) + .and_then(|hdr| hdr.parse::().ok()) } /// Get the request ID @@ -148,7 +148,7 @@ impl HttpPreambleExtensions for HttpRequestPreamble { impl HttpPreambleExtensions for HttpResponsePreamble { /// Set the canonical Stacks chain tip height - fn set_canonical_stacks_tip_height(&mut self, height_opt: Option) { + fn set_canonical_stacks_tip_height(&mut self, height_opt: Option) { if let Some(height) = height_opt { self.add_header( "X-Canonical-Stacks-Tip-Height".into(), @@ -165,9 +165,9 @@ impl HttpPreambleExtensions for HttpResponsePreamble { } /// Get the canonical Stacks chain tip - fn get_canonical_stacks_tip_height(&self) -> Option { + fn get_canonical_stacks_tip_height(&self) -> Option { self.get_header("X-Canonical-Stacks-Tip-Height".to_string()) - .and_then(|hdr| hdr.parse::().ok()) + .and_then(|hdr| hdr.parse::().ok()) } /// Get the request ID diff --git a/stackslib/src/net/mod.rs b/stackslib/src/net/mod.rs index dff1812593..f3884eaba4 100644 --- a/stackslib/src/net/mod.rs +++ b/stackslib/src/net/mod.rs @@ -57,7 +57,8 @@ use crate::net::atlas::{Attachment, AttachmentInstance}; use crate::net::http::error::{HttpNotFound, HttpServerError}; use crate::net::http::{Error as HttpErr, HttpRequestContents, HttpRequestPreamble}; use crate::net::httpcore::{ - HttpRequestContentsExtensions, StacksHttp, StacksHttpRequest, StacksHttpResponse, TipRequest, + HttpRequestContentsExtensions as _, StacksHttp, StacksHttpRequest, StacksHttpResponse, + TipRequest, }; use crate::net::p2p::{PeerNetwork, PendingMessages}; use crate::util_lib::db::{DBConn, Error as db_error}; @@ -692,10 +693,8 @@ impl<'a> StacksNodeState<'a> { res } - pub fn canonical_stacks_tip_height(&mut self) -> u32 { - self.with_node_state(|network, _, _, _, _| { - network.burnchain_tip.canonical_stacks_tip_height as u32 - }) + pub fn canonical_stacks_tip_height(&mut self) -> u64 { + self.with_node_state(|network, _, _, _, _| network.stacks_tip.height) } pub fn set_relay_message(&mut self, msg: StacksMessageType) { diff --git a/stackslib/src/net/rpc.rs b/stackslib/src/net/rpc.rs index 56c718c7d7..641a247c25 100644 --- a/stackslib/src/net/rpc.rs +++ b/stackslib/src/net/rpc.rs @@ -28,7 +28,8 @@ use crate::monitoring; use crate::net::connection::{ConnectionHttp, ConnectionOptions, ReplyHandleHttp}; use crate::net::http::HttpResponseContents; use crate::net::httpcore::{ - StacksHttp, StacksHttpMessage, StacksHttpRequest, StacksHttpResponse, HTTP_REQUEST_ID_RESERVED, + HttpPreambleExtensions as _, StacksHttp, StacksHttpMessage, StacksHttpRequest, + StacksHttpResponse, HTTP_REQUEST_ID_RESERVED, }; use crate::net::{Error as net_error, StacksMessageType, StacksNodeState}; use crate::util_lib::strings::UrlString; @@ -229,6 +230,12 @@ impl ConversationHttp { let mut reply = self.connection.make_relay_handle(self.conn_id)?; let relay_msg_opt = node.take_relay_message(); + // All successful RPC responses MUST include the canonical stacks tip height header. + if response_preamble.is_success() { + response_preamble + .set_canonical_stacks_tip_height(Some(node.canonical_stacks_tip_height())); + } + // make sure content-length is properly set, based on how we're about to stream data back response_preamble.content_length = response_body.content_length(); diff --git a/stackslib/src/net/tests/httpcore.rs b/stackslib/src/net/tests/httpcore.rs index f807f4934d..5097102dea 100644 --- a/stackslib/src/net/tests/httpcore.rs +++ b/stackslib/src/net/tests/httpcore.rs @@ -40,7 +40,7 @@ use crate::net::http::{ HttpRequestPreamble, HttpResponsePayload, HttpResponsePreamble, HttpVersion, }; use crate::net::httpcore::{ - send_http_request, HttpPreambleExtensions, HttpRequestContentsExtensions, StacksHttp, + send_http_request, HttpPreambleExtensions as _, HttpRequestContentsExtensions as _, StacksHttp, StacksHttpMessage, StacksHttpPreamble, StacksHttpRequest, StacksHttpResponse, }; use crate::net::rpc::ConversationHttp; @@ -1188,6 +1188,71 @@ fn parse_http_response(response: StacksHttpResponse) -> String { response_txt } +#[test] +fn test_http_response_is_success() { + // Test cases: (status_code, expected_is_success) + let test_cases = vec![ + // Edge cases below 100 + (99, false), + // Informational responses (1xx) - should be success + (100, true), // Continue + (101, true), // Switching Protocols + (102, true), // Processing + (199, true), // Any other 1xx + // Successful responses (2xx) - should be success + (200, true), // OK + (201, true), // Created + (202, true), // Accepted + (204, true), // No Content + (206, true), // Partial Content + (299, true), // Any other 2xx + // Redirection responses (3xx) - should be success + (300, true), // Multiple Choices + (301, true), // Moved Permanently + (302, true), // Found + (304, true), // Not Modified + (307, true), // Temporary Redirect + (308, true), // Permanent Redirect + (399, true), // Any other 3xx + // Client error responses (4xx) - should not be success + (400, false), // Bad Request + (401, false), // Unauthorized + (403, false), // Forbidden + (404, false), // Not Found + (418, false), // I'm a teapot + (429, false), // Too Many Requests + (499, false), // Any other 4xx + // Server error responses (5xx) - should not be success + (500, false), // Internal Server Error + (501, false), // Not Implemented + (502, false), // Bad Gateway + (503, false), // Service Unavailable + (504, false), // Gateway Timeout + (599, false), // Any other 5xx + // Edge cases above 5xx + (600, false), + (999, false), + ]; + + for (status_code, expected_is_success) in test_cases { + let preamble = HttpResponsePreamble::new( + HttpVersion::Http11, + status_code, + http_reason(status_code).to_string(), + Some(0), // content_length + HttpContentType::JSON, + true, // keep_alive + ); + + let actual_is_success = preamble.is_success(); + assert_eq!( + actual_is_success, expected_is_success, + "Status code {} should have is_success() = {}, but got {}", + status_code, expected_is_success, actual_is_success + ); + } +} + #[test] fn test_send_request_success() { // Prepare the mock server to return a successful HTTP response