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, orall.packageConfig(name): Define each Move package to generate from.packageIdcan be a local@local-pkg/...alias or on-chain address.pathpoints to a directory containingpackage_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.jsonpath 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.