v0.1.0-pre.056

This commit is contained in:
2026-07-26 16:32:14 +02:00
parent a3ce8d733f
commit 562f5c08ed
36 changed files with 801 additions and 872 deletions

View File

@@ -2773,7 +2773,7 @@ mod tests {
}
}
let matrix: serde_json::Value = match serde_json::from_str(include_str!(
"../../../../../docs/METAPLEX_TOKEN_METADATA_MATRIX.json"
"../../../../../test-fixtures/contract-matrices/METAPLEX_TOKEN_METADATA_MATRIX.json"
)) {
std::result::Result::Ok(value) => value,
std::result::Result::Err(error) => panic!("matrix parse failed: {error}"),

View File

@@ -144,8 +144,9 @@ impl crate::DcApiInstructionDecoder for crate::DcMetadataMetaplexTokenMetadataDe
mod tests {
use base64::Engine; // rust-rules: trait-import
const AUDIT_MATRIX_JSON: &str =
include_str!("../../../../../docs/METAPLEX_TOKEN_METADATA_MATRIX.json");
const AUDIT_MATRIX_JSON: &str = include_str!(
"../../../../../test-fixtures/contract-matrices/METAPLEX_TOKEN_METADATA_MATRIX.json"
);
const MAX_SDK_INSTRUCTION_MODULES: usize = 128;
const MIN_SDK_INSTRUCTION_MODULES: usize = 90;
const MIN_PDA_FAMILIES: usize = 8;

View File

@@ -508,7 +508,9 @@ mod tests {
#[test]
fn native_decoder_matrix_matches_registry_surfaces_and_coverage() {
let raw = include_str!("../../../../../docs/NATIVE_SOLANA_DECODER_MATRIX.json");
let raw = include_str!(
"../../../../../test-fixtures/contract-matrices/NATIVE_SOLANA_DECODER_MATRIX.json"
);
let parsed = match serde_json::from_str::<serde_json::Value>(raw) {
std::result::Result::Ok(value) => value,
std::result::Result::Err(error) => {

View File

@@ -143,7 +143,7 @@ impl crate::DcApiInstructionDecoder for crate::DcSplAssociatedTokenAccountDecode
mod tests {
fn matrix() -> serde_json::Value {
return match serde_json::from_str(include_str!(
"../../../../../docs/SPL_ASSOCIATED_TOKEN_ACCOUNT_MATRIX.json"
"../../../../../test-fixtures/contract-matrices/SPL_ASSOCIATED_TOKEN_ACCOUNT_MATRIX.json"
)) {
std::result::Result::Ok(value) => value,
std::result::Result::Err(error) => panic!("SPL ATA matrix is invalid: {error}"),

View File

@@ -421,7 +421,7 @@ mod tests {
#[test]
fn matrix_is_machine_readable_and_covers_required_cases() {
let parsed = serde_json::from_str::<serde_json::Value>(include_str!(
"../../../../../docs/SPL_MEMO_MATRIX.json"
"../../../../../test-fixtures/contract-matrices/SPL_MEMO_MATRIX.json"
));
let matrix = match parsed {
std::result::Result::Ok(value) => value,

View File

@@ -246,11 +246,12 @@ mod tests {
#[test]
fn coverage_matrix_and_compiled_entries_are_equal() {
let matrix: serde_json::Value =
match serde_json::from_str(include_str!("../../../../../docs/SPL_TOKEN_MATRIX.json")) {
std::result::Result::Ok(value) => value,
std::result::Result::Err(error) => panic!("SPL Token matrix is invalid: {error}"),
};
let matrix: serde_json::Value = match serde_json::from_str(include_str!(
"../../../../../test-fixtures/contract-matrices/SPL_TOKEN_MATRIX.json"
)) {
std::result::Result::Ok(value) => value,
std::result::Result::Err(error) => panic!("SPL Token matrix is invalid: {error}"),
};
let rows = match matrix.get("instructions").and_then(serde_json::Value::as_array) {
std::option::Option::Some(value) => value,
std::option::Option::None => panic!("SPL Token matrix has no instructions"),
@@ -274,11 +275,12 @@ mod tests {
#[test]
fn cluster_evidence_scopes_recent_instruction_deployment_exactly() {
let matrix: serde_json::Value =
match serde_json::from_str(include_str!("../../../../../docs/SPL_TOKEN_MATRIX.json")) {
std::result::Result::Ok(value) => value,
std::result::Result::Err(error) => panic!("SPL Token matrix is invalid: {error}"),
};
let matrix: serde_json::Value = match serde_json::from_str(include_str!(
"../../../../../test-fixtures/contract-matrices/SPL_TOKEN_MATRIX.json"
)) {
std::result::Result::Ok(value) => value,
std::result::Result::Err(error) => panic!("SPL Token matrix is invalid: {error}"),
};
assert_eq!(
matrix["deploymentAudit"]["mainnet"]["status"],
"real_corpus_decode_and_materialization_validated"

View File

@@ -491,7 +491,7 @@ mod tests {
fn matrix() -> serde_json::Value {
return match serde_json::from_str(include_str!(
"../../../../../docs/SPL_TOKEN2022_MATRIX.json"
"../../../../../test-fixtures/contract-matrices/SPL_TOKEN2022_MATRIX.json"
)) {
std::result::Result::Ok(value) => value,
std::result::Result::Err(error) => panic!("invalid Token-2022 matrix JSON: {error}"),

View File

@@ -2484,7 +2484,9 @@ mod matrix_tests {
#[test]
fn native_execution_matrix_matches_compiled_operation_registry() {
let raw = include_str!("../../../../../docs/NATIVE_SOLANA_EXECUTION_MATRIX.json");
let raw = include_str!(
"../../../../../test-fixtures/contract-matrices/NATIVE_SOLANA_EXECUTION_MATRIX.json"
);
let parsed = match serde_json::from_str::<serde_json::Value>(raw) {
std::result::Result::Ok(value) => value,
std::result::Result::Err(error) => {

View File

@@ -260,7 +260,7 @@ mod tests {
#[test]
fn machine_readable_matrix_matches_compiled_executor_capabilities() {
let matrix: serde_json::Value = serde_json::from_str(include_str!(
"../../../../../docs/SPL_ASSOCIATED_TOKEN_ACCOUNT_MATRIX.json"
"../../../../../test-fixtures/contract-matrices/SPL_ASSOCIATED_TOKEN_ACCOUNT_MATRIX.json"
))
.unwrap_or_else(|error| panic!("ATA matrix parsing failed: {error}"));
let instructions = matrix["instructions"]

View File

@@ -467,7 +467,7 @@ pub(crate) mod tests {
#[test]
fn machine_readable_matrix_matches_executor_policy() {
let parsed = serde_json::from_str::<serde_json::Value>(include_str!(
"../../../../../docs/SPL_MEMO_MATRIX.json"
"../../../../../test-fixtures/contract-matrices/SPL_MEMO_MATRIX.json"
))
.unwrap_or_else(|error| panic!("Memo matrix parsing failed: {error}"));
let contract = parsed

View File

@@ -213,7 +213,7 @@ mod tests {
#[test]
fn machine_readable_matrix_matches_executor_policy() {
let matrix = serde_json::from_str::<serde_json::Value>(include_str!(
"../../../../../docs/SPL_TOKEN_MATRIX.json"
"../../../../../test-fixtures/contract-matrices/SPL_TOKEN_MATRIX.json"
))
.unwrap_or_else(|error| panic!("matrix parsing failed: {error}"));
let instructions = matrix["instructions"]

View File

@@ -222,7 +222,7 @@ mod tests {
#[test]
fn machine_readable_matrix_matches_executor_policy() {
let matrix = serde_json::from_str::<serde_json::Value>(include_str!(
"../../../../../docs/SPL_TOKEN2022_MATRIX.json"
"../../../../../test-fixtures/contract-matrices/SPL_TOKEN2022_MATRIX.json"
))
.unwrap_or_else(|error| panic!("matrix parsing failed: {error}"));
let instructions = matrix["instructions"]

View File

@@ -508,7 +508,7 @@ mod tests {
#[test]
fn ata_matrix_declares_the_single_compiled_risk_fact() {
let matrix: serde_json::Value = match serde_json::from_str(include_str!(
"../../../../docs/SPL_ASSOCIATED_TOKEN_ACCOUNT_MATRIX.json"
"../../../../test-fixtures/contract-matrices/SPL_ASSOCIATED_TOKEN_ACCOUNT_MATRIX.json"
)) {
std::result::Result::Ok(value) => value,
std::result::Result::Err(error) => panic!("ATA matrix is invalid: {error}"),

View File

@@ -722,7 +722,7 @@ mod tests {
#[test]
fn ata_matrix_and_compiled_token_account_projection_ownership_are_equal() {
let matrix: serde_json::Value = match serde_json::from_str(include_str!(
"../../../../docs/SPL_ASSOCIATED_TOKEN_ACCOUNT_MATRIX.json"
"../../../../test-fixtures/contract-matrices/SPL_ASSOCIATED_TOKEN_ACCOUNT_MATRIX.json"
)) {
std::result::Result::Ok(value) => value,
std::result::Result::Err(error) => panic!("ATA matrix is invalid: {error}"),

View File

@@ -594,7 +594,7 @@ mod tests {
#[test]
fn machine_readable_matrix_declares_transaction_annotation_policy() {
let parsed = serde_json::from_str::<serde_json::Value>(include_str!(
"../../../../docs/SPL_MEMO_MATRIX.json"
"../../../../test-fixtures/contract-matrices/SPL_MEMO_MATRIX.json"
));
let matrix = match parsed {
std::result::Result::Ok(value) => value,