use parser_app::registry::create_registry;
use visualsign::registry::Chain;
use visualsign::vsptrait::{VisualSignOptions, DeveloperConfig};
use generated::parser::{ChainMetadata, EthereumMetadata, chain_metadata::Metadata};
fn main() {
// Create the parser registry (includes all supported chains)
let registry = create_registry();
// Raw transaction hex (with or without 0x prefix)
// This is a complete EIP-1559 transaction
let raw_tx = "0x02f901..."; // Your full transaction hex
// Configure parsing options
let options = VisualSignOptions {
decode_transfers: true,
transaction_name: None,
metadata: Some(ChainMetadata {
metadata: Some(Metadata::Ethereum(EthereumMetadata {
network_id: Some("1".to_string()), // Ethereum Mainnet
abi: None,
})),
}),
developer_config: Some(DeveloperConfig {
allow_signed_transactions: true,
}),
abi_registry: None,
};
// Parse the transaction
match registry.convert_transaction(&Chain::Ethereum, raw_tx, options) {
Ok(payload) => {
println!("Title: {}", payload.title);
println!("Fields: {:?}", payload.fields);
}
Err(e) => eprintln!("Parse error: {:?}", e),
}
}