Skip to content

Solana Client Generator for Dart

License

LimeChain/codama-dart

Repository files navigation

Codama ➤ Renderers ➤ Dart

npm npm-downloads

This package generates Dart clients from your Codama IDLs. The generated clients are compatible with the Solana Dart package.

1. Pre-requisites

1.1 Install Codama

pnpm install -g codama

1.2. Install Dart

https://dart.dev/get-dart

2. Renderer Installation

pnpm install @limechain/codama-dart

3. Usage

3.1. Add the following script into codama.json.

{
    "idl": "path/to/idl",
    "before": [],
    "scripts": {
        "dart": [
            {
                "from": "@limechain/codama-dart",
                "args": [
                    "generated",
                    {
                        "deleteFolderBeforeRendering": true,
                        "formatCode": true,
                        "generateBorsh": true
                    }
                ]
            }
        ]
    }
}

3.2. Run code generation

pnpm codama run dart

3.3. (Only if generateBorsh is set to false) Run Dart Borsh code generation

  cd generated
  dart pub get
  dart run build_runner build

4. Generated Output

The 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

5. Features

  • 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

6. Options

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

About

Solana Client Generator for Dart

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •