v0.4.7-pre.012
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
// file: kb-pipeline/src/solana_metaplex_token_metadata_stateful.rs
|
||||
// version: 2
|
||||
// version: 3
|
||||
|
||||
//! Bounded Metaplex Token Metadata account reads and canonical state projections.
|
||||
|
||||
@@ -27,7 +27,7 @@ pub enum MetaplexTokenMetadataAccountKind {
|
||||
}
|
||||
|
||||
/// One bounded Metaplex account read request.
|
||||
#[derive(Clone, Debug, Eq, PartialEq)]
|
||||
#[derive(Clone, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
|
||||
pub struct MetaplexTokenMetadataStatefulReadRequest {
|
||||
/// Endpoint role used for the HTTP RPC request.
|
||||
pub query_role: std::string::String,
|
||||
@@ -232,6 +232,28 @@ fn decode_snapshot(
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
#[test]
|
||||
fn stateful_read_request_round_trips_through_json() {
|
||||
let request = crate::MetaplexTokenMetadataStatefulReadRequest {
|
||||
query_role: "rpc".to_string(),
|
||||
account: kb_lib::MdPubkey("11111111111111111111111111111111".to_string()),
|
||||
kind: crate::MetaplexTokenMetadataAccountKind::Metadata,
|
||||
min_context_slot: std::option::Option::Some(42),
|
||||
max_data_bytes: 1024,
|
||||
};
|
||||
let json = match serde_json::to_string(&request) {
|
||||
std::result::Result::Ok(json) => json,
|
||||
std::result::Result::Err(error) => panic!("request serialization failed: {error}"),
|
||||
};
|
||||
let decoded = match serde_json::from_str::<crate::MetaplexTokenMetadataStatefulReadRequest>(
|
||||
json.as_str(),
|
||||
) {
|
||||
std::result::Result::Ok(decoded) => decoded,
|
||||
std::result::Result::Err(error) => panic!("request deserialization failed: {error}"),
|
||||
};
|
||||
assert_eq!(decoded, request);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn rejects_zero_and_oversize_bounds_before_account_decoding() {
|
||||
let request = crate::MetaplexTokenMetadataStatefulReadRequest {
|
||||
|
||||
Reference in New Issue
Block a user