Skip to content
CCPEDIAby Unity Nodes
Discussions/App Development/How have the codegen'd clients changed to support the SCU feature?Forum ↗

How have the codegen'd clients changed to support the SCU feature?

App Development2 posts60 views2 likesLast activity Apr 2025
WA
WallaceKellyOP
Apr 2025

The Smart Contract Upgrades feature means that I can interact with the ledger using “package names” instead of “package ids.” What does that look like in the codegen’d client code?

WA
WallaceKelly
Apr 2025 2

The codegen’d client code defaults to using the package name instead of the package id.

The easiest way to see this is as follows:

  1. Create a new project.
DAML_SDK_VERSION=2.10.0 daml new codegend

cd codegend

git init
  1. Edit the daml.yaml file to use daml-script-lts:
sdk-version: 2.10.0
name: codegend
source: daml
init-script: Main:setup
version: 0.0.1
dependencies:
  - daml-prim
  - daml-stdlib
  - daml-script-lts
  1. Build, codegen, and commit with --target=1.15:
daml build --target=1.15

daml codegen js -o js/ .daml/dist/codegend-0.0.1.dar

daml codegen java -o java/ .daml/dist/codegend-0.0.1.dar

git add .

git commit -m "for target 1.15"
  1. Build, codegen, and diff with --target=1.17:
rm -rf js

rm -rf java

daml build --target=1.17

daml codegen js -o js/ .daml/dist/codegend-0.0.1.dar

daml codegen java -o java/ .daml/dist/codegend-0.0.1.dar

git diff

You will see that with --target=1.17, the codegen client code defaults to using the package name instead of the package id.

TypeScript example:

Java example:

← Back to Discussions