This package generates Dart clients from your Codama IDLs. The generated clients are compatible with the Solana Dart package.
pnpm install -g codama
pnpm install @limechain/codama-dart{
"idl": "path/to/idl",
"before": [],
"scripts": {
"dart": [
{
"from": "@limechain/codama-dart",
"args": [
"generated",
{
"deleteFolderBeforeRendering": true,
"formatCode": true,
"generateBorsh": true
}
]
}
]
}
}pnpm codama run dart cd generated
dart pub get
dart run build_runner buildThe renderer generates a complete Dart package with the following structure:
lib/
└─ProgramName
├── lib.dart # Main library export file
|
├── accounts/ # Account data classes
│
├── instructions/ # Instruction functions
│
├── types/ # Custom type definitions
│
├── errors/ # Program error classes
│
├── pdas/ # PDA derivation functions
│
└── programs/ # Program constants and metadata
- Account Serialization/Deserialization: Automatic Borsh serialization for all account types
- Instruction Builders: Type-safe instruction creation with automatic PDA resolution
- PDA Derivation: Automatic generation of PDA derivation functions
- Error Handling: Strongly-typed program error definitions
- Type Safety: Full Dart type safety with null safety support
The renderVisitor accepts the following options.
| Name | Type | Default | Description |
|---|---|---|---|
deleteFolderBeforeRendering |
bool |
true |
Flag for deleting the output folder before generating it again. |
formatCode |
bool |
true |
Flag for formatting the Dart code after generation |
generateBorsh |
bool |
true |
Flag for running Borsh code generation after rendering |