Skip to main content
Version: Next

ABI Examples

This guide provides real-world examples and patterns for ABI generation with different use cases.

Basic Examples

Simple Application

use calimero_abi_emitter::calimero_app;

#[calimero_app]
pub struct SimpleApp {
data: String,
}

impl SimpleApp {
pub fn new() -> Self {
Self {
data: String::new(),
}
}

pub fn get_data(&self) -> String {
self.data.clone()
}

pub fn set_data(&mut self, data: String) {
self.data = data;
}
}

Advanced Examples

Multi-Protocol Application

use calimero_abi_emitter::{calimero_app, Protocol};

#[calimero_app(protocols = [Protocol::Ethereum, Protocol::NEAR])]
pub struct MultiProtocolApp {
// Application state
}

impl MultiProtocolApp {
pub fn process_cross_chain(&self, data: String) -> Result<String, String> {
// Cross-chain processing logic
Ok(format!("Processed: {}", data))
}
}

Next Steps

Was this page helpful?
Need some help? Check Support page