Protocol Support
This guide explains how to configure ABI generation for specific blockchain protocols, including Ethereum, NEAR, ICP, and Starknet.
Overview
Calimero's ABI generation supports multiple blockchain protocols, each with its own specific requirements and optimizations.
Ethereum Support
Configuration
use calimero_abi_emitter::{calimero_app, Protocol, ProtocolFeatures};
#[calimero_app(
protocol = Protocol::Ethereum,
features = [
ProtocolFeatures::GasOptimization,
ProtocolFeatures::EventLogging
]
)]
pub struct EthereumApp {
// Ethereum-specific application
}
Type Mappings
Ethereum-specific type mappings and optimizations.
NEAR Support
Configuration
use calimero_abi_emitter::{calimero_app, Protocol, ProtocolFeatures};
#[calimero_app(
protocol = Protocol::NEAR,
features = [
ProtocolFeatures::AccountOptimization,
ProtocolFeatures::StorageOptimization
]
)]
pub struct NearApp {
// NEAR-specific application
}
ICP Support
Configuration
use calimero_abi_emitter::{calimero_app, Protocol, ProtocolFeatures};
#[calimero_app(
protocol = Protocol::ICP,
features = [
ProtocolFeatures::CanisterOptimization,
ProtocolFeatures::CycleOptimization
]
)]
pub struct IcpApp {
// ICP-specific application
}
Starknet Support
Configuration
use calimero_abi_emitter::{calimero_app, Protocol, ProtocolFeatures};
#[calimero_app(
protocol = Protocol::Starknet,
features = [
ProtocolFeatures::CairoOptimization,
ProtocolFeatures::AccountAbstraction
]
)]
pub struct StarknetApp {
// Starknet-specific application
}
Multi-Protocol Support
Configure your application to support multiple protocols:
use calimero_abi_emitter::{calimero_app, Protocol, ProtocolConfig};
#[calimero_app(
protocols = [Protocol::Ethereum, Protocol::NEAR, Protocol::ICP, Protocol::Starknet],
protocol_config = ProtocolConfig {
ethereum: EthereumConfig {
gas_optimization: true,
},
near: NearConfig {
account_optimization: true,
},
icp: IcpConfig {
canister_optimization: true,
},
starknet: StarknetConfig {
cairo_optimization: true,
},
}
)]
pub struct MultiProtocolApp {
// Multi-protocol application
}
Next Steps
- Tools - Use ABI tools for debugging and validation
- Examples - See real-world examples and patterns
- Troubleshooting - Common issues and solutions
Was this page helpful?