Configuration

Configure Sui Codegen either via Gradle DSL or a JSON file for the CLI.

Gradle Configuration

Use the suiCodegen extension.

Code
suiCodegen { basePackage.set("com.acme.generated") outputDir.set(layout.buildDirectory.dir("generated/source/suiCodegen/commonMain/kotlin")) prune.set(true) privateFunctions.set("entry") // none | entry | all packageConfig("counter") { packageId.set("@local-pkg/counter") path.set(layout.projectDirectory.dir("move/counter")) } packageConfig("registry") { packageId.set("0x...") // or use on-chain id path.set(layout.projectDirectory.dir("move/registry")) } }

Options

  • basePackage: Root package for generated code.
  • prune: Remove unused generated code (default true).
  • privateFunctions: Control visibility of non-public Move functions: none, entry, or all.
  • packageConfig(name): Define each Move package to generate from. packageId can be a local @local-pkg/... alias or on-chain address. path points to a directory containing package_summaries/ or a full exported summary root.

JSON Configuration (CLI)

Create sui-codegen.json:

Code
{ "outputDir": "./generated", "basePackage": "com.acme.generated", "prune": true, "privateFunctions": "entry", "packages": [ { "package": "@local-pkg/counter", "path": "./move/counter" } ] }

Run with:

Code
sui-kotlin-codegen generate --config sui-codegen.json

path can point to:

  • A local Move package that has package_summaries/ (after running Sui summary tools).
  • An exported summary directory with root_package_metadata.json.

Dependencies in Consuming Project

Generated code requires:

Code
implementation("xyz.mcxross.ksui:ksui-core:<version>") implementation("xyz.mcxross.bcs:bcs:<version>")

When using local development versions of ksui or bcs, publish them to mavenLocal first or use composite builds.