v0.4.8-pre.008
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
// file: kb-lib/src/materializer.rs
|
||||
// version: 14
|
||||
// version: 15
|
||||
|
||||
//! Consolidated materializer modules.
|
||||
|
||||
@@ -73,10 +73,12 @@ pub use self::lending::MtLendingMaterializer;
|
||||
pub use self::lifecycle::MtLifecycleMaterializer;
|
||||
/// Reserved liquidity materializer.
|
||||
pub use self::liquidity::MtLiquidityMaterializer;
|
||||
/// Compatibility wrapper for the Solana Program Metadata materializer.
|
||||
pub use self::metadata::MtMetadataMaterializer;
|
||||
/// Stable Solana Program Metadata instruction materializer.
|
||||
pub use self::metadata::MtSolanaProgramMetadataMaterializer;
|
||||
/// Metaplex Token Metadata instruction materializer.
|
||||
pub use self::metadata::MtMetadataMetaplexTokenMetadataMaterializer;
|
||||
/// Solana Program Metadata instruction materializer.
|
||||
pub use self::metadata::MtMetadataSolanaProgramMaterializer;
|
||||
/// SPL Token-2022 embedded metadata and group instruction materializer.
|
||||
pub use self::metadata::MtMetadataToken2022Materializer;
|
||||
/// Materializes one canonical non-Metadata Metaplex account snapshot.
|
||||
pub use self::metadata::materializer_metadata_materialize_metaplex_account_snapshot;
|
||||
/// Materializes one canonical Metaplex Metadata account snapshot.
|
||||
@@ -272,30 +274,36 @@ pub(crate) use self::liquidity::MT_LIQUIDITY_ACCEPTED_FAMILIES;
|
||||
pub(crate) use self::liquidity::MT_LIQUIDITY_COMPONENT_NAME;
|
||||
/// Crate-visible `MT_LIQUIDITY_PROCESSOR_NAME` component constant.
|
||||
pub(crate) use self::liquidity::MT_LIQUIDITY_PROCESSOR_NAME;
|
||||
/// Crate-visible `MT_METADATA_METAPLEX_TOKEN_METADATA_ACCEPTED_FAMILIES` component constant.
|
||||
pub(crate) use self::metadata::MT_METADATA_METAPLEX_TOKEN_METADATA_ACCEPTED_FAMILIES;
|
||||
/// Crate-visible `MT_METADATA_METAPLEX_TOKEN_METADATA_COMPONENT_NAME` component constant.
|
||||
pub(crate) use self::metadata::MT_METADATA_METAPLEX_TOKEN_METADATA_COMPONENT_NAME;
|
||||
/// Crate-visible `MT_METADATA_METAPLEX_TOKEN_METADATA_PROCESSOR_NAME` component constant.
|
||||
pub(crate) use self::metadata::MT_METADATA_METAPLEX_TOKEN_METADATA_PROCESSOR_NAME;
|
||||
/// Crate-visible `MT_METADATA_METAPLEX_TOKEN_METADATA_PROJECTION_VERSION` component constant.
|
||||
pub(crate) use self::metadata::MT_METADATA_METAPLEX_TOKEN_METADATA_PROJECTION_VERSION;
|
||||
/// Crate-visible `MT_METADATA_SOLANA_PROGRAM_METADATA_ACCEPTED_FAMILIES` component constant.
|
||||
pub(crate) use self::metadata::MT_METADATA_SOLANA_PROGRAM_METADATA_ACCEPTED_FAMILIES;
|
||||
/// Crate-visible `MT_METADATA_SOLANA_PROGRAM_METADATA_COMPONENT_NAME` component constant.
|
||||
pub(crate) use self::metadata::MT_METADATA_SOLANA_PROGRAM_METADATA_COMPONENT_NAME;
|
||||
/// Crate-visible `MT_METADATA_SOLANA_PROGRAM_METADATA_PROCESSOR_NAME` component constant.
|
||||
pub(crate) use self::metadata::MT_METADATA_SOLANA_PROGRAM_METADATA_PROCESSOR_NAME;
|
||||
/// Crate-visible `MT_METADATA_SOLANA_PROGRAM_METADATA_PROJECTION_VERSION` component constant.
|
||||
pub(crate) use self::metadata::MT_METADATA_SOLANA_PROGRAM_METADATA_PROJECTION_VERSION;
|
||||
/// Crate-visible `MT_METADATA_SOLANA_PROGRAM_ACCEPTED_FAMILIES` component constant.
|
||||
pub(crate) use self::metadata::MT_METADATA_SOLANA_PROGRAM_ACCEPTED_FAMILIES;
|
||||
/// Crate-visible `MT_METADATA_SOLANA_PROGRAM_COMPONENT_NAME` component constant.
|
||||
pub(crate) use self::metadata::MT_METADATA_SOLANA_PROGRAM_COMPONENT_NAME;
|
||||
/// Crate-visible `MT_METADATA_SOLANA_PROGRAM_PROCESSOR_NAME` component constant.
|
||||
pub(crate) use self::metadata::MT_METADATA_SOLANA_PROGRAM_PROCESSOR_NAME;
|
||||
/// Crate-visible `MT_METADATA_SOLANA_PROGRAM_PROJECTION_VERSION` component constant.
|
||||
pub(crate) use self::metadata::MT_METADATA_SOLANA_PROGRAM_PROJECTION_VERSION;
|
||||
/// Crate-visible `MT_METADATA_TOKEN_2022_ACCEPTED_FAMILIES` component constant.
|
||||
pub(crate) use self::metadata::MT_METADATA_TOKEN_2022_ACCEPTED_FAMILIES;
|
||||
/// Crate-visible `MT_METADATA_TOKEN_2022_COMPONENT_NAME` component constant.
|
||||
pub(crate) use self::metadata::MT_METADATA_TOKEN_2022_COMPONENT_NAME;
|
||||
/// Crate-visible `MT_METADATA_TOKEN_2022_INSTRUCTION_ENTRIES` component constant.
|
||||
pub(crate) use self::metadata::MT_METADATA_TOKEN_2022_INSTRUCTION_ENTRIES;
|
||||
/// Crate-visible `MT_METADATA_TOKEN_2022_PROCESSOR_NAME` component constant.
|
||||
pub(crate) use self::metadata::MT_METADATA_TOKEN_2022_PROCESSOR_NAME;
|
||||
/// Crate-visible `MT_METADATA_TOKEN_2022_PROJECTION_VERSION` component constant.
|
||||
pub(crate) use self::metadata::MT_METADATA_TOKEN_2022_PROJECTION_VERSION;
|
||||
/// Crate-visible `TRACING_TARGET_MATERIALIZER_METADATA_METAPLEX_TOKEN_METADATA` component constant.
|
||||
pub(crate) use self::metadata::TRACING_TARGET_MATERIALIZER_METADATA_METAPLEX_TOKEN_METADATA;
|
||||
/// Crate-visible `TRACING_TARGET_MATERIALIZER_METADATA_SOLANA_PROGRAM_METADATA` component constant.
|
||||
pub(crate) use self::metadata::TRACING_TARGET_MATERIALIZER_METADATA_SOLANA_PROGRAM_METADATA;
|
||||
/// Crate-visible `TRACING_TARGET_MATERIALIZER_METADATA_SOLANA_PROGRAM` component constant.
|
||||
pub(crate) use self::metadata::TRACING_TARGET_MATERIALIZER_METADATA_SOLANA_PROGRAM;
|
||||
/// Crate-visible `TRACING_TARGET_MATERIALIZER_METADATA_TOKEN_2022` component constant.
|
||||
pub(crate) use self::metadata::TRACING_TARGET_MATERIALIZER_METADATA_TOKEN_2022;
|
||||
/// Crate-visible `MT_NFT_ACCEPTED_FAMILIES` component constant.
|
||||
@@ -491,10 +499,22 @@ mod tests {
|
||||
crate::MT_LIQUIDITY_PROCESSOR_NAME,
|
||||
),
|
||||
(
|
||||
&crate::MtSolanaProgramMetadataMaterializer,
|
||||
&crate::MtSolanaProgramMetadataMaterializer,
|
||||
crate::MT_METADATA_SOLANA_PROGRAM_METADATA_COMPONENT_NAME,
|
||||
crate::MT_METADATA_SOLANA_PROGRAM_METADATA_PROCESSOR_NAME,
|
||||
&crate::MtMetadataMetaplexTokenMetadataMaterializer,
|
||||
&crate::MtMetadataMetaplexTokenMetadataMaterializer,
|
||||
crate::MT_METADATA_METAPLEX_TOKEN_METADATA_COMPONENT_NAME,
|
||||
crate::MT_METADATA_METAPLEX_TOKEN_METADATA_PROCESSOR_NAME,
|
||||
),
|
||||
(
|
||||
&crate::MtMetadataSolanaProgramMaterializer,
|
||||
&crate::MtMetadataSolanaProgramMaterializer,
|
||||
crate::MT_METADATA_SOLANA_PROGRAM_COMPONENT_NAME,
|
||||
crate::MT_METADATA_SOLANA_PROGRAM_PROCESSOR_NAME,
|
||||
),
|
||||
(
|
||||
&crate::MtMetadataToken2022Materializer,
|
||||
&crate::MtMetadataToken2022Materializer,
|
||||
crate::MT_METADATA_TOKEN_2022_COMPONENT_NAME,
|
||||
crate::MT_METADATA_TOKEN_2022_PROCESSOR_NAME,
|
||||
),
|
||||
(
|
||||
&crate::MtNftMaterializer,
|
||||
@@ -583,22 +603,6 @@ mod tests {
|
||||
];
|
||||
}
|
||||
|
||||
fn state_only_materializer_contracts() -> &'static [(&'static str, &'static str, &'static str)]
|
||||
{
|
||||
return &[
|
||||
(
|
||||
crate::MT_METADATA_METAPLEX_TOKEN_METADATA_COMPONENT_NAME,
|
||||
crate::MT_METADATA_METAPLEX_TOKEN_METADATA_PROCESSOR_NAME,
|
||||
crate::TRACING_TARGET_MATERIALIZER_METADATA_METAPLEX_TOKEN_METADATA,
|
||||
),
|
||||
(
|
||||
crate::MT_METADATA_TOKEN_2022_COMPONENT_NAME,
|
||||
crate::MT_METADATA_TOKEN_2022_PROCESSOR_NAME,
|
||||
crate::TRACING_TARGET_MATERIALIZER_METADATA_TOKEN_2022,
|
||||
),
|
||||
];
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn every_materializer_uses_the_component_and_processor_name_convention() {
|
||||
for (legacy, contextual, component_name, processor_name) in materializer_contracts() {
|
||||
@@ -615,18 +619,6 @@ mod tests {
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn state_only_materializers_keep_runtime_processor_and_tracing_identity_aligned() {
|
||||
for (component_name, processor_name, tracing_target) in state_only_materializer_contracts()
|
||||
{
|
||||
assert_eq!(*tracing_target, *component_name);
|
||||
assert_eq!(
|
||||
component_name.strip_prefix("kb-lib."),
|
||||
std::option::Option::Some(*processor_name)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn reserved_materializers_are_empty_shells() {
|
||||
let materializers: &[&dyn crate::MtApiEventMaterializer] = &[
|
||||
|
||||
Reference in New Issue
Block a user