I use daml packages list
to obtain the package ID of deployed packages.
Is there a way to obtain the package ID of a package without deploying it to a ledger, just by looking at its DAR?
Thanks a lot,
mesch.
I use daml packages list
to obtain the package ID of deployed packages.
Is there a way to obtain the package ID of a package without deploying it to a ledger, just by looking at its DAR?
Thanks a lot,
mesch.
Hi @mesch,
[EDIT]
Since this is marked as the solution, I’ve updated it to use inspect-dar
instead of inspect
based on @cocreature’s comment below.
[/EDIT]
There is
daml damlc inspect-dar <path/to/dar>
Full example:
$ cd $(mktemp -d)
$ daml new t
Created a new project in "t" based on the template "skeleton".
$ cd t
$ daml build
2022-08-09 13:41:44.39 [INFO] [build]
Compiling t to a DAR.
2022-08-09 13:41:45.08 [INFO] [build]
Created .daml/dist/t-0.0.1.dar
$ daml damlc inspect-dar .daml/dist/t-0.0.1.dar --json | grep package_id
"main_package_id": "76fda6460d5253cf41165c2bb4ba1208a67b6d1bf953dd209bf6511fa9ea2c9d",
$ daml damlc inspect-dar .daml/dist/t-0.0.1.dar --json | jq -r .main_package_id
76fda6460d5253cf41165c2bb4ba1208a67b6d1bf953dd209bf6511fa9ea2c9d
$
Excellent, thank you very much.
One caveat for future readers: the bash autocompletion that comes with the daml SDK for the daml
tool completes daml damlc ins|
straight to daml damlc inspect-dar
, which gives different information as far as I can tell.
I strongly recommend to use daml damlc inspect-dar
for this actually, especially the --json
option which deliberately provides this in a machine readable form. daml damlc inspect
is intended for debugging the generate daml-lf not to provide package metadata.
Updated accepted answer to use inspect-dar
.
Alright, see it!
Thanks,
mesch.