This commit is contained in:
2026-06-01 19:05:46 +02:00
parent abb810d544
commit 27e25d5bf4
59 changed files with 5727 additions and 1706 deletions

View File

@@ -287,7 +287,10 @@ pub(crate) async fn demo3_search_local_dex_corpus(
/// Search request for the static upstream registry exposed through Demo3.
#[derive(Clone, Debug, serde::Serialize, serde::Deserialize, TS)]
#[ts(export, export_to = "../frontend/ts/bindings/Demo3UpstreamRegistrySearchRequest.ts")]
#[ts(
export,
export_to = "../frontend/ts/bindings/Demo3UpstreamRegistrySearchRequest.ts"
)]
#[serde(rename_all = "camelCase")]
pub(crate) struct Demo3UpstreamRegistrySearchRequest {
/// Optional decoder-code filter.
@@ -423,10 +426,7 @@ pub(crate) fn demo3_search_upstream_registry(
return Err(format!("cannot serialize upstream registry result: {}", error));
},
};
return Ok(Demo3UpstreamRegistryPayload {
result_json,
result: ui_result,
});
return Ok(Demo3UpstreamRegistryPayload { result_json, result: ui_result });
}
fn to_lib_upstream_registry_request(
@@ -491,8 +491,7 @@ fn from_lib_upstream_registry_summary(
account_entry_count: summary.account_entry_count,
upstream_git_unverified_count: summary.upstream_git_unverified_count,
upstream_git_mapped_unverified_count: summary.upstream_git_mapped_unverified_count,
upstream_git_local_corpus_observed_count: summary
.upstream_git_local_corpus_observed_count,
upstream_git_local_corpus_observed_count: summary.upstream_git_local_corpus_observed_count,
upstream_git_local_corpus_materialized_count: summary
.upstream_git_local_corpus_materialized_count,
upstream_git_layout_unverified_count: summary.upstream_git_layout_unverified_count,
@@ -685,6 +684,12 @@ pub(crate) struct Demo3OnchainDexDiscoveryRequest {
pub scan_order: std::option::Option<std::string::String>,
/// Optional target event family used to find non-swap signatures.
pub target_event: std::option::Option<std::string::String>,
/// Optional instruction name filter, e.g. `withdraw` or `raydium_cpmm.withdraw`.
#[serde(default)]
pub target_instruction_name: std::option::Option<std::string::String>,
/// Optional instruction discriminator filter as 16-char lower hex, comma-separated when needed.
#[serde(default)]
pub target_discriminator_hex: std::option::Option<std::string::String>,
/// Whether transactions containing swap-like logs should be skipped.
pub exclude_swaps: bool,
/// Whether failed transactions should be returned as candidates.
@@ -846,6 +851,8 @@ pub(crate) struct Demo3OnchainDexPairCandidate {
pub instruction_name: std::option::Option<std::string::String>,
/// Prefix of the raw base58 instruction data, useful for audit grouping.
pub instruction_data_prefix: std::option::Option<std::string::String>,
/// First eight instruction-data bytes as lower hex.
pub instruction_discriminator_hex: std::option::Option<std::string::String>,
/// Candidate pool address.
pub pool_address: std::option::Option<std::string::String>,
/// Candidate token A mint.
@@ -966,6 +973,8 @@ fn to_lib_onchain_request(
max_pages: request.max_pages,
scan_order: normalize_optional_text(request.scan_order.clone()),
target_event: normalize_optional_text(request.target_event.clone()),
target_instruction_name: normalize_optional_text(request.target_instruction_name.clone()),
target_discriminator_hex: normalize_optional_text(request.target_discriminator_hex.clone()),
exclude_swaps: request.exclude_swaps,
include_failed: request.include_failed,
http_role: request.http_role.trim().to_string(),
@@ -994,6 +1003,8 @@ fn from_lib_onchain_result(
max_pages: result.request.max_pages,
scan_order: result.request.scan_order,
target_event: result.request.target_event,
target_instruction_name: result.request.target_instruction_name,
target_discriminator_hex: result.request.target_discriminator_hex,
exclude_swaps: result.request.exclude_swaps,
include_failed: result.request.include_failed,
http_role: result.request.http_role,
@@ -1074,6 +1085,7 @@ fn from_lib_onchain_candidate(
inner_instruction_index: candidate.inner_instruction_index,
instruction_name: candidate.instruction_name,
instruction_data_prefix: candidate.instruction_data_prefix,
instruction_discriminator_hex: candidate.instruction_discriminator_hex,
pool_address: candidate.pool_address,
token_a_mint: candidate.token_a_mint,
token_b_mint: candidate.token_b_mint,