@distrohelena/canton-typescript-sdk 0.1.28 → 0.1.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (745) hide show
  1. package/dist/cjs/client/canton-client-options.js +45 -0
  2. package/dist/cjs/client/canton-client.js +91 -0
  3. package/dist/cjs/client/canton-hashing-client.js +19 -0
  4. package/dist/cjs/client/external-party-activation-client.js +144 -0
  5. package/dist/cjs/client/external-party-activation-request.js +18 -0
  6. package/dist/cjs/client/external-party-activation-response.js +16 -0
  7. package/dist/cjs/client/service-registry.js +1157 -0
  8. package/dist/cjs/core/auth/auth-provider.interface.js +2 -0
  9. package/dist/cjs/core/auth/bearer-token-auth-provider.js +13 -0
  10. package/dist/cjs/core/errors/authentication-error.js +7 -0
  11. package/dist/cjs/core/errors/authorization-error.js +7 -0
  12. package/dist/cjs/core/errors/canton-error.js +10 -0
  13. package/dist/cjs/core/errors/conflict-error.js +7 -0
  14. package/dist/cjs/core/errors/endpoint-not-configured-error.js +7 -0
  15. package/dist/cjs/core/errors/grpc-transport-error.js +80 -0
  16. package/dist/cjs/core/errors/not-supported-error.js +7 -0
  17. package/dist/cjs/core/errors/object-disposed-error.js +7 -0
  18. package/dist/cjs/core/errors/signing-error.js +7 -0
  19. package/dist/cjs/core/errors/timeout-error.js +7 -0
  20. package/dist/cjs/core/errors/transport-error.js +7 -0
  21. package/dist/cjs/core/errors/validation-error.js +7 -0
  22. package/dist/cjs/core/hashing/canton-hash.js +124 -0
  23. package/dist/cjs/core/signing/command-signer.interface.js +2 -0
  24. package/dist/cjs/core/signing/sign-command-request.js +16 -0
  25. package/dist/cjs/core/signing/sign-command-result.js +23 -0
  26. package/dist/cjs/core/transports/transport-capability.js +7 -0
  27. package/dist/cjs/core/transports/transport-features.interface.js +2 -0
  28. package/dist/cjs/core/transports/transport.interface.js +2 -0
  29. package/dist/cjs/core/types/admin-component-health-kind.js +11 -0
  30. package/dist/cjs/core/types/admin-component-status.js +14 -0
  31. package/dist/cjs/core/types/admin-node-status.js +22 -0
  32. package/dist/cjs/core/types/admin-not-initialized-external-input-kind.js +10 -0
  33. package/dist/cjs/core/types/admin-not-initialized-status.js +14 -0
  34. package/dist/cjs/core/types/admin-topology-queue-status.js +14 -0
  35. package/dist/cjs/core/types/canton-hash-purpose.js +9 -0
  36. package/dist/cjs/core/types/command-inspection-contract.js +14 -0
  37. package/dist/cjs/core/types/command-request-statistics.js +14 -0
  38. package/dist/cjs/core/types/command-state.js +10 -0
  39. package/dist/cjs/core/types/command-status.js +27 -0
  40. package/dist/cjs/core/types/command-timing.js +12 -0
  41. package/dist/cjs/core/types/command-update-summary.js +18 -0
  42. package/dist/cjs/core/types/commands/create-and-exercise-command.js +27 -0
  43. package/dist/cjs/core/types/commands/create-command.js +20 -0
  44. package/dist/cjs/core/types/commands/exercise-by-key-command.js +26 -0
  45. package/dist/cjs/core/types/commands/exercise-command.js +26 -0
  46. package/dist/cjs/core/types/commands/ledger-command.js +2 -0
  47. package/dist/cjs/core/types/commitment-interval.js +12 -0
  48. package/dist/cjs/core/types/commitment-time-range.js +12 -0
  49. package/dist/cjs/core/types/completion.js +34 -0
  50. package/dist/cjs/core/types/connected-synchronizer-health.js +9 -0
  51. package/dist/cjs/core/types/connected-synchronizer-status.js +12 -0
  52. package/dist/cjs/core/types/connected-synchronizer.js +15 -0
  53. package/dist/cjs/core/types/contract-archived.js +12 -0
  54. package/dist/cjs/core/types/contract-created.js +12 -0
  55. package/dist/cjs/core/types/counter-participant-info.js +18 -0
  56. package/dist/cjs/core/types/daml-contract-id.js +15 -0
  57. package/dist/cjs/core/types/daml-numeric.js +18 -0
  58. package/dist/cjs/core/types/daml-party.js +18 -0
  59. package/dist/cjs/core/types/daml-values.js +63 -0
  60. package/dist/cjs/core/types/disclosed-contract.js +19 -0
  61. package/dist/cjs/core/types/event-stream-kind.js +8 -0
  62. package/dist/cjs/core/types/external-party/external-party-crypto-key-format.js +10 -0
  63. package/dist/cjs/core/types/external-party/external-party-onboarding-transaction.js +12 -0
  64. package/dist/cjs/core/types/external-party/external-party-signature-format.js +11 -0
  65. package/dist/cjs/core/types/external-party/external-party-signature.js +20 -0
  66. package/dist/cjs/core/types/external-party/external-party-signing-algorithm-spec.js +11 -0
  67. package/dist/cjs/core/types/external-party/external-party-signing-key-spec.js +12 -0
  68. package/dist/cjs/core/types/external-party/external-party-signing-public-key.js +16 -0
  69. package/dist/cjs/core/types/grpc-channel-security.js +8 -0
  70. package/dist/cjs/core/types/hash-function.js +7 -0
  71. package/dist/cjs/core/types/health-check-status.js +10 -0
  72. package/dist/cjs/core/types/identity-provider-config.js +18 -0
  73. package/dist/cjs/core/types/known-package-details.js +18 -0
  74. package/dist/cjs/core/types/ledger-user.js +21 -0
  75. package/dist/cjs/core/types/object-meta.js +12 -0
  76. package/dist/cjs/core/types/offset-checkpoint.js +12 -0
  77. package/dist/cjs/core/types/package-format.js +8 -0
  78. package/dist/cjs/core/types/package-metadata-filter.js +12 -0
  79. package/dist/cjs/core/types/package-reference.js +14 -0
  80. package/dist/cjs/core/types/package-status.js +8 -0
  81. package/dist/cjs/core/types/participant-dar-description.js +16 -0
  82. package/dist/cjs/core/types/participant-module-description.js +10 -0
  83. package/dist/cjs/core/types/participant-node-status.js +22 -0
  84. package/dist/cjs/core/types/participant-package-description.js +18 -0
  85. package/dist/cjs/core/types/participant-pruning-schedule.js +12 -0
  86. package/dist/cjs/core/types/party-details.js +16 -0
  87. package/dist/cjs/core/types/pending-operation-metadata.js +16 -0
  88. package/dist/cjs/core/types/prepared-command-submission.js +17 -0
  89. package/dist/cjs/core/types/pruning-schedule.js +14 -0
  90. package/dist/cjs/core/types/received-acs-commitment-per-synchronizer.js +12 -0
  91. package/dist/cjs/core/types/received-acs-commitment-state.js +11 -0
  92. package/dist/cjs/core/types/received-acs-commitment.js +24 -0
  93. package/dist/cjs/core/types/request-options.js +10 -0
  94. package/dist/cjs/core/types/request-timeout.js +6 -0
  95. package/dist/cjs/core/types/requests/allocate-party-request.js +12 -0
  96. package/dist/cjs/core/types/requests/assemble-signed-topology-transactions-request.js +12 -0
  97. package/dist/cjs/core/types/requests/create-decentralized-party-request.js +86 -0
  98. package/dist/cjs/core/types/requests/create-external-party-request.js +51 -0
  99. package/dist/cjs/core/types/requests/create-party-request.js +12 -0
  100. package/dist/cjs/core/types/requests/finalize-decentralized-party-request.js +47 -0
  101. package/dist/cjs/core/types/requests/get-active-contracts-page-request.js +28 -0
  102. package/dist/cjs/core/types/requests/get-active-contracts-request.js +12 -0
  103. package/dist/cjs/core/types/requests/get-command-status-request.js +14 -0
  104. package/dist/cjs/core/types/requests/get-connected-synchronizers-request.js +14 -0
  105. package/dist/cjs/core/types/requests/get-dar-contents-request.js +10 -0
  106. package/dist/cjs/core/types/requests/get-dar-request.js +10 -0
  107. package/dist/cjs/core/types/requests/get-identity-provider-config-request.js +10 -0
  108. package/dist/cjs/core/types/requests/get-latest-pruned-offsets-request.js +7 -0
  109. package/dist/cjs/core/types/requests/get-ledger-api-version-request.js +6 -0
  110. package/dist/cjs/core/types/requests/get-ledger-end-request.js +7 -0
  111. package/dist/cjs/core/types/requests/get-package-references-request.js +10 -0
  112. package/dist/cjs/core/types/requests/get-package-request.js +10 -0
  113. package/dist/cjs/core/types/requests/get-package-status-request.js +10 -0
  114. package/dist/cjs/core/types/requests/get-participant-id-request.js +7 -0
  115. package/dist/cjs/core/types/requests/get-participant-status-request.js +6 -0
  116. package/dist/cjs/core/types/requests/get-parties-request.js +12 -0
  117. package/dist/cjs/core/types/requests/get-user-request.js +12 -0
  118. package/dist/cjs/core/types/requests/grant-user-rights-request.js +12 -0
  119. package/dist/cjs/core/types/requests/health-check-request.js +10 -0
  120. package/dist/cjs/core/types/requests/list-all-request.js +14 -0
  121. package/dist/cjs/core/types/requests/list-dars-request.js +12 -0
  122. package/dist/cjs/core/types/requests/list-decentralized-namespace-definition-request.js +12 -0
  123. package/dist/cjs/core/types/requests/list-identity-provider-configs-request.js +6 -0
  124. package/dist/cjs/core/types/requests/list-key-owners-request.js +18 -0
  125. package/dist/cjs/core/types/requests/list-known-packages-request.js +7 -0
  126. package/dist/cjs/core/types/requests/list-known-parties-request.js +16 -0
  127. package/dist/cjs/core/types/requests/list-lsu-announcement-request.js +12 -0
  128. package/dist/cjs/core/types/requests/list-lsu-sequencer-connection-successor-request.js +15 -0
  129. package/dist/cjs/core/types/requests/list-mediator-synchronizer-state-request.js +12 -0
  130. package/dist/cjs/core/types/requests/list-namespace-delegation-request.js +14 -0
  131. package/dist/cjs/core/types/requests/list-owner-to-key-mapping-request.js +14 -0
  132. package/dist/cjs/core/types/requests/list-packages-request.js +7 -0
  133. package/dist/cjs/core/types/requests/list-participant-synchronizer-permission-request.js +12 -0
  134. package/dist/cjs/core/types/requests/list-parties-request.js +16 -0
  135. package/dist/cjs/core/types/requests/list-party-hosting-limits-request.js +12 -0
  136. package/dist/cjs/core/types/requests/list-party-to-key-mapping-request.js +12 -0
  137. package/dist/cjs/core/types/requests/list-party-to-participant-request.js +14 -0
  138. package/dist/cjs/core/types/requests/list-sequencer-synchronizer-state-request.js +12 -0
  139. package/dist/cjs/core/types/requests/list-sequencing-parameters-state-request.js +12 -0
  140. package/dist/cjs/core/types/requests/list-synchronizer-parameters-state-request.js +12 -0
  141. package/dist/cjs/core/types/requests/list-synchronizer-trust-certificate-request.js +12 -0
  142. package/dist/cjs/core/types/requests/list-user-rights-request.js +12 -0
  143. package/dist/cjs/core/types/requests/list-users-request.js +14 -0
  144. package/dist/cjs/core/types/requests/list-vetted-packages-request.js +16 -0
  145. package/dist/cjs/core/types/requests/query-contracts-request.js +12 -0
  146. package/dist/cjs/core/types/requests/stream-query-request.js +12 -0
  147. package/dist/cjs/core/types/requests/stream-transactions-request.js +16 -0
  148. package/dist/cjs/core/types/requests/submit-command-request.js +26 -0
  149. package/dist/cjs/core/types/requests/topology-list-parties-request.js +18 -0
  150. package/dist/cjs/core/types/requests/topology-list-vetted-packages-request.js +12 -0
  151. package/dist/cjs/core/types/requests/upload-dar-file-request.js +10 -0
  152. package/dist/cjs/core/types/requests/upload-package-request.js +12 -0
  153. package/dist/cjs/core/types/responses/allocate-party-response.js +10 -0
  154. package/dist/cjs/core/types/responses/create-party-response.js +10 -0
  155. package/dist/cjs/core/types/responses/get-active-contracts-page-response.js +14 -0
  156. package/dist/cjs/core/types/responses/get-command-status-response.js +10 -0
  157. package/dist/cjs/core/types/responses/get-connected-synchronizers-response.js +10 -0
  158. package/dist/cjs/core/types/responses/get-dar-contents-response.js +12 -0
  159. package/dist/cjs/core/types/responses/get-dar-response.js +12 -0
  160. package/dist/cjs/core/types/responses/get-identity-provider-config-response.js +10 -0
  161. package/dist/cjs/core/types/responses/get-latest-pruned-offsets-response.js +14 -0
  162. package/dist/cjs/core/types/responses/get-ledger-api-version-response.js +12 -0
  163. package/dist/cjs/core/types/responses/get-ledger-end-response.js +12 -0
  164. package/dist/cjs/core/types/responses/get-package-references-response.js +10 -0
  165. package/dist/cjs/core/types/responses/get-package-response.js +14 -0
  166. package/dist/cjs/core/types/responses/get-package-status-response.js +10 -0
  167. package/dist/cjs/core/types/responses/get-participant-id-response.js +10 -0
  168. package/dist/cjs/core/types/responses/get-participant-status-response.js +12 -0
  169. package/dist/cjs/core/types/responses/get-parties-response.js +10 -0
  170. package/dist/cjs/core/types/responses/get-user-response.js +10 -0
  171. package/dist/cjs/core/types/responses/grant-user-rights-response.js +10 -0
  172. package/dist/cjs/core/types/responses/health-check-response.js +10 -0
  173. package/dist/cjs/core/types/responses/health-status-response.js +12 -0
  174. package/dist/cjs/core/types/responses/list-all-response.js +10 -0
  175. package/dist/cjs/core/types/responses/list-dars-response.js +10 -0
  176. package/dist/cjs/core/types/responses/list-decentralized-namespace-definition-response.js +10 -0
  177. package/dist/cjs/core/types/responses/list-identity-provider-configs-response.js +10 -0
  178. package/dist/cjs/core/types/responses/list-key-owners-response.js +10 -0
  179. package/dist/cjs/core/types/responses/list-known-packages-response.js +10 -0
  180. package/dist/cjs/core/types/responses/list-known-parties-response.js +12 -0
  181. package/dist/cjs/core/types/responses/list-lsu-announcement-response.js +10 -0
  182. package/dist/cjs/core/types/responses/list-lsu-sequencer-connection-successor-response.js +10 -0
  183. package/dist/cjs/core/types/responses/list-mediator-synchronizer-state-response.js +10 -0
  184. package/dist/cjs/core/types/responses/list-namespace-delegation-response.js +10 -0
  185. package/dist/cjs/core/types/responses/list-owner-to-key-mapping-response.js +10 -0
  186. package/dist/cjs/core/types/responses/list-packages-response.js +10 -0
  187. package/dist/cjs/core/types/responses/list-participant-synchronizer-permission-response.js +10 -0
  188. package/dist/cjs/core/types/responses/list-parties-response.js +12 -0
  189. package/dist/cjs/core/types/responses/list-party-hosting-limits-response.js +10 -0
  190. package/dist/cjs/core/types/responses/list-party-to-key-mapping-response.js +10 -0
  191. package/dist/cjs/core/types/responses/list-party-to-participant-response.js +10 -0
  192. package/dist/cjs/core/types/responses/list-sequencer-synchronizer-state-response.js +10 -0
  193. package/dist/cjs/core/types/responses/list-sequencing-parameters-state-response.js +10 -0
  194. package/dist/cjs/core/types/responses/list-synchronizer-parameters-state-response.js +10 -0
  195. package/dist/cjs/core/types/responses/list-synchronizer-trust-certificate-response.js +10 -0
  196. package/dist/cjs/core/types/responses/list-user-rights-response.js +10 -0
  197. package/dist/cjs/core/types/responses/list-users-response.js +12 -0
  198. package/dist/cjs/core/types/responses/list-vetted-packages-response.js +12 -0
  199. package/dist/cjs/core/types/responses/query-contracts-response.js +10 -0
  200. package/dist/cjs/core/types/responses/submit-command-response.js +12 -0
  201. package/dist/cjs/core/types/responses/submit-command-transaction-response.js +15 -0
  202. package/dist/cjs/core/types/responses/topology-list-parties-response.js +10 -0
  203. package/dist/cjs/core/types/responses/topology-list-vetted-packages-response.js +10 -0
  204. package/dist/cjs/core/types/responses/upload-dar-file-response.js +10 -0
  205. package/dist/cjs/core/types/responses/upload-package-response.js +10 -0
  206. package/dist/cjs/core/types/safe-to-prune-commitment-state.js +10 -0
  207. package/dist/cjs/core/types/sdk-command.js +22 -0
  208. package/dist/cjs/core/types/sent-acs-commitment-per-synchronizer.js +12 -0
  209. package/dist/cjs/core/types/sent-acs-commitment-state.js +10 -0
  210. package/dist/cjs/core/types/sent-acs-commitment.js +24 -0
  211. package/dist/cjs/core/types/slow-counter-participant-synchronizer-config.js +20 -0
  212. package/dist/cjs/core/types/submission-mode.js +8 -0
  213. package/dist/cjs/core/types/synchronizer-time-range.js +12 -0
  214. package/dist/cjs/core/types/synchronizer-time.js +12 -0
  215. package/dist/cjs/core/types/topology/decentralized-namespace-definition.js +14 -0
  216. package/dist/cjs/core/types/topology/dynamic-sequencing-parameters.js +10 -0
  217. package/dist/cjs/core/types/topology/dynamic-synchronizer-parameters.js +80 -0
  218. package/dist/cjs/core/types/topology/external-topology-signature.js +20 -0
  219. package/dist/cjs/core/types/topology/generated-topology-transaction.js +12 -0
  220. package/dist/cjs/core/types/topology/lsu-announcement.js +13 -0
  221. package/dist/cjs/core/types/topology/lsu-sequencer-connection-successor.js +27 -0
  222. package/dist/cjs/core/types/topology/mediator-synchronizer-state.js +18 -0
  223. package/dist/cjs/core/types/topology/multi-topology-transaction-signature.js +12 -0
  224. package/dist/cjs/core/types/topology/namespace-delegation.js +31 -0
  225. package/dist/cjs/core/types/topology/owner-to-key-mapping.js +12 -0
  226. package/dist/cjs/core/types/topology/participant-permission.js +10 -0
  227. package/dist/cjs/core/types/topology/participant-synchronizer-permission.js +27 -0
  228. package/dist/cjs/core/types/topology/party-hosting-limits.js +12 -0
  229. package/dist/cjs/core/types/topology/party-to-key-mapping.js +14 -0
  230. package/dist/cjs/core/types/topology/party-to-participant.js +34 -0
  231. package/dist/cjs/core/types/topology/prepared-topology-transaction.js +14 -0
  232. package/dist/cjs/core/types/topology/sequencer-synchronizer-state.js +16 -0
  233. package/dist/cjs/core/types/topology/signed-topology-transaction.js +18 -0
  234. package/dist/cjs/core/types/topology/synchronizer-trust-certificate.js +14 -0
  235. package/dist/cjs/core/types/topology/topology-base-query.js +34 -0
  236. package/dist/cjs/core/types/topology/topology-base-result.js +25 -0
  237. package/dist/cjs/core/types/topology/topology-duration.js +12 -0
  238. package/dist/cjs/core/types/topology/topology-force-flag.js +12 -0
  239. package/dist/cjs/core/types/topology/topology-key-owner-result.js +18 -0
  240. package/dist/cjs/core/types/topology/topology-mapping-code.js +22 -0
  241. package/dist/cjs/core/types/topology/topology-mapping-operation.js +9 -0
  242. package/dist/cjs/core/types/topology/topology-mapping-result.js +12 -0
  243. package/dist/cjs/core/types/topology/topology-mapping.js +2 -0
  244. package/dist/cjs/core/types/topology/topology-party-result.js +33 -0
  245. package/dist/cjs/core/types/topology/topology-public-key.js +53 -0
  246. package/dist/cjs/core/types/topology/topology-signature-delegation.js +24 -0
  247. package/dist/cjs/core/types/topology/topology-signature-format.js +8 -0
  248. package/dist/cjs/core/types/topology/topology-store-id.js +44 -0
  249. package/dist/cjs/core/types/topology/topology-transaction-signature.js +18 -0
  250. package/dist/cjs/core/types/topology/topology-transactions.js +25 -0
  251. package/dist/cjs/core/types/topology/vetted-package.js +18 -0
  252. package/dist/cjs/core/types/topology/vetted-packages.js +20 -0
  253. package/dist/cjs/core/types/topology-state-filter.js +12 -0
  254. package/dist/cjs/core/types/transport-kind.js +8 -0
  255. package/dist/cjs/core/types/user-right-kind.js +14 -0
  256. package/dist/cjs/core/types/vetted-package.js +5 -0
  257. package/dist/cjs/core/types/vetted-packages.js +5 -0
  258. package/dist/cjs/core/types/wait-commitments-setup.js +12 -0
  259. package/dist/cjs/daml-interface/analysis/analyzed-choice.js +18 -0
  260. package/dist/cjs/daml-interface/analysis/analyzed-daml-type-definition.js +2 -0
  261. package/dist/cjs/daml-interface/analysis/analyzed-daml-type.js +2 -0
  262. package/dist/cjs/daml-interface/analysis/analyzed-template.js +29 -0
  263. package/dist/cjs/daml-interface/analysis/daml-interface-analyzer.js +317 -0
  264. package/dist/cjs/daml-interface/cli/daml-interface-cli-options.js +49 -0
  265. package/dist/cjs/daml-interface/cli/daml-interface-cli.js +45 -0
  266. package/dist/cjs/daml-interface/daml-interface-generator-options.js +13 -0
  267. package/dist/cjs/daml-interface/daml-interface-generator.js +46 -0
  268. package/dist/cjs/daml-interface/emission/daml-module-import-style.js +10 -0
  269. package/dist/cjs/daml-interface/emission/generated-spec-emitter.js +367 -0
  270. package/dist/cjs/daml-interface/emission/generated-test-sample-emitter.js +463 -0
  271. package/dist/cjs/daml-interface/emission/named-type-emitter.js +510 -0
  272. package/dist/cjs/daml-interface/emission/project-emitter.js +70 -0
  273. package/dist/cjs/daml-interface/emission/registry-emitter.js +49 -0
  274. package/dist/cjs/daml-interface/emission/relative-module-specifier.js +21 -0
  275. package/dist/cjs/daml-interface/emission/support-file-emitter.js +258 -0
  276. package/dist/cjs/daml-interface/emission/template-binding-emitter.js +531 -0
  277. package/dist/cjs/daml-interface/emission/type-script-name-resolver.js +440 -0
  278. package/dist/cjs/daml-interface/emission-model/generated-choice-binding.js +28 -0
  279. package/dist/cjs/daml-interface/emission-model/generated-daml-interface-project.js +67 -0
  280. package/dist/cjs/daml-interface/emission-model/generated-named-type-file.js +27 -0
  281. package/dist/cjs/daml-interface/emission-model/generated-registry-file.js +12 -0
  282. package/dist/cjs/daml-interface/emission-model/generated-spec-file.js +15 -0
  283. package/dist/cjs/daml-interface/emission-model/generated-support-file.js +12 -0
  284. package/dist/cjs/daml-interface/emission-model/generated-template-binding-file.js +14 -0
  285. package/dist/cjs/daml-interface/emission-model/generated-template-binding.js +41 -0
  286. package/dist/cjs/daml-interface/errors/daml-interface-generation.exception.js +10 -0
  287. package/dist/cjs/daml-interface/errors/daml-interface-unsupported-shape.exception.js +10 -0
  288. package/dist/cjs/daml-interface/errors/daml-interface-write.exception.js +10 -0
  289. package/dist/cjs/daml-interface/index.js +57 -0
  290. package/dist/cjs/daml-interface/runtime/daml-event-source-normalizer.js +532 -0
  291. package/dist/cjs/daml-interface/runtime/daml-materialization-error.js +13 -0
  292. package/dist/cjs/daml-interface/runtime/daml-template.js +14 -0
  293. package/dist/cjs/daml-interface/runtime/daml-type-descriptor.js +2 -0
  294. package/dist/cjs/daml-interface/runtime/daml-value-converter.js +380 -0
  295. package/dist/cjs/daml-interface/runtime/daml-value-materializer.js +33 -0
  296. package/dist/cjs/daml-interface/writing/daml-interface-writer.js +22 -0
  297. package/dist/cjs/daml-lf/container/dar-archive-entry.js +12 -0
  298. package/dist/cjs/daml-lf/container/dar-archive-loader.js +91 -0
  299. package/dist/cjs/daml-lf/container/dar-archive.js +18 -0
  300. package/dist/cjs/daml-lf/container/dar-manifest.js +12 -0
  301. package/dist/cjs/daml-lf/container/dar-package-entry.js +12 -0
  302. package/dist/cjs/daml-lf/container/dar-source-bundle-loader.js +37 -0
  303. package/dist/cjs/daml-lf/container/dar-source-bundle.js +15 -0
  304. package/dist/cjs/daml-lf/container/dar-source-file-entry.js +12 -0
  305. package/dist/cjs/daml-lf/daml-lf-compilation.js +186 -0
  306. package/dist/cjs/daml-lf/daml-lf-package-loader.js +38 -0
  307. package/dist/cjs/daml-lf/daml-lf-workspace.js +10 -0
  308. package/dist/cjs/daml-lf/decoding/archive-payload-decoder.js +61 -0
  309. package/dist/cjs/daml-lf/decoding/archive-payload-envelope.js +14 -0
  310. package/dist/cjs/daml-lf/decoding/daml-lf-language-version.js +17 -0
  311. package/dist/cjs/daml-lf/decoding/lf-2-package-decoder.js +21 -0
  312. package/dist/cjs/daml-lf/decoding/package-decoder-registry.js +21 -0
  313. package/dist/cjs/daml-lf/decoding/package-decoder.interface.js +2 -0
  314. package/dist/cjs/daml-lf/errors/daml-lf-archive.exception.js +10 -0
  315. package/dist/cjs/daml-lf/errors/daml-lf-decode.exception.js +10 -0
  316. package/dist/cjs/daml-lf/errors/daml-lf-resolution.exception.js +10 -0
  317. package/dist/cjs/daml-lf/errors/daml-lf-semantic.exception.js +10 -0
  318. package/dist/cjs/daml-lf/errors/daml-lf-version-not-supported.exception.js +10 -0
  319. package/dist/cjs/daml-lf/index.js +76 -0
  320. package/dist/cjs/daml-lf/interpreter/daml-lf-builtin-dispatch.js +939 -0
  321. package/dist/cjs/daml-lf/interpreter/daml-lf-evaluation-context.interface.js +2 -0
  322. package/dist/cjs/daml-lf/interpreter/daml-lf-evaluator.js +1135 -0
  323. package/dist/cjs/daml-lf/interpreter/daml-lf-interpreter-scaffold.js +24 -0
  324. package/dist/cjs/daml-lf/interpreter/daml-lf-lexical-scope.js +50 -0
  325. package/dist/cjs/daml-lf/interpreter/daml-lf-runtime-frame.js +19 -0
  326. package/dist/cjs/daml-lf/interpreter/daml-lf-runtime-value.js +7 -0
  327. package/dist/cjs/daml-lf/interpreter/daml-lf-step-kind.js +11 -0
  328. package/dist/cjs/daml-lf/interpreter/daml-lf-trace-sink.interface.js +2 -0
  329. package/dist/cjs/daml-lf/model/daml-lf-builtin-type.js +20 -0
  330. package/dist/cjs/daml-lf/model/daml-lf-choice-parameter.js +14 -0
  331. package/dist/cjs/daml-lf/model/daml-lf-choice.js +22 -0
  332. package/dist/cjs/daml-lf/model/daml-lf-data-type.js +38 -0
  333. package/dist/cjs/daml-lf/model/daml-lf-definition.js +10 -0
  334. package/dist/cjs/daml-lf/model/daml-lf-expression-path.js +84 -0
  335. package/dist/cjs/daml-lf/model/daml-lf-expression.js +83 -0
  336. package/dist/cjs/daml-lf/model/daml-lf-field.js +12 -0
  337. package/dist/cjs/daml-lf/model/daml-lf-module.js +14 -0
  338. package/dist/cjs/daml-lf/model/daml-lf-node-kind.js +15 -0
  339. package/dist/cjs/daml-lf/model/daml-lf-package.js +20 -0
  340. package/dist/cjs/daml-lf/model/daml-lf-template-id.js +22 -0
  341. package/dist/cjs/daml-lf/model/daml-lf-template.js +22 -0
  342. package/dist/cjs/daml-lf/model/daml-lf-type.js +45 -0
  343. package/dist/cjs/daml-lf/model/daml-lf-value-definition.js +18 -0
  344. package/dist/cjs/daml-lf/model/lf-2-model-mapper.js +731 -0
  345. package/dist/cjs/daml-lf/model/module-reference.js +12 -0
  346. package/dist/cjs/daml-lf/model/type-con-reference.js +14 -0
  347. package/dist/cjs/daml-lf/semantics/daml-lf-semantic-model.js +27 -0
  348. package/dist/cjs/daml-lf/symbols/daml-lf-symbol.js +10 -0
  349. package/dist/cjs/daml-lf/symbols/module-symbol.js +14 -0
  350. package/dist/cjs/daml-lf/symbols/type-symbol.js +14 -0
  351. package/dist/cjs/debugger/errors/replay-determinism.exception.js +7 -0
  352. package/dist/cjs/debugger/errors/replay-missing-package.exception.js +7 -0
  353. package/dist/cjs/debugger/errors/replay-missing-source.exception.js +7 -0
  354. package/dist/cjs/debugger/errors/replay-source-map.exception.js +7 -0
  355. package/dist/cjs/debugger/errors/replay-state-hydration.exception.js +7 -0
  356. package/dist/cjs/debugger/errors/replay-unsupported-lf-construct.exception.js +7 -0
  357. package/dist/cjs/debugger/errors/replay-unsupported-update.exception.js +7 -0
  358. package/dist/cjs/debugger/index.js +65 -0
  359. package/dist/cjs/debugger/ledger-replay-debugger-client.js +57 -0
  360. package/dist/cjs/debugger/replay/ledger-replay-environment-builder.js +253 -0
  361. package/dist/cjs/debugger/replay/ledger-replay-session-loader.js +569 -0
  362. package/dist/cjs/debugger/replay/replay-artifact-resolver.js +213 -0
  363. package/dist/cjs/debugger/replay/replay-determinism-validator.js +165 -0
  364. package/dist/cjs/debugger/replay/replay-entrypoint-definition-resolver.js +341 -0
  365. package/dist/cjs/debugger/replay/replay-entrypoint.js +18 -0
  366. package/dist/cjs/debugger/replay/replay-ledger-value-normalizer.js +199 -0
  367. package/dist/cjs/debugger/replay/replay-update-loader.js +100 -0
  368. package/dist/cjs/debugger/replay/replay-update-visibility-validator.js +22 -0
  369. package/dist/cjs/debugger/session/in-memory-replay-session-store.js +113 -0
  370. package/dist/cjs/debugger/session/replay-phase.js +11 -0
  371. package/dist/cjs/debugger/session/replay-scope.js +14 -0
  372. package/dist/cjs/debugger/session/replay-session-metadata.js +14 -0
  373. package/dist/cjs/debugger/session/replay-session-request.js +14 -0
  374. package/dist/cjs/debugger/session/replay-session.js +14 -0
  375. package/dist/cjs/debugger/session/replay-source-location.js +20 -0
  376. package/dist/cjs/debugger/session/replay-stack-frame.js +12 -0
  377. package/dist/cjs/debugger/session/replay-state-delta.js +28 -0
  378. package/dist/cjs/debugger/session/replay-step-advance-result.js +20 -0
  379. package/dist/cjs/debugger/session/replay-step.js +28 -0
  380. package/dist/cjs/debugger/session/replay-value-preview.js +19 -0
  381. package/dist/cjs/debugger/source/daml-source-mapper.js +25 -0
  382. package/dist/cjs/debugger/source/dar-source-map-metadata.js +14 -0
  383. package/dist/cjs/debugger/source/source-coverage-validator.js +20 -0
  384. package/dist/cjs/debugger/source/source-indexed-compilation.js +114 -0
  385. package/dist/cjs/debugger/source/source-mapping-precision.js +7 -0
  386. package/dist/cjs/grpc/index.js +7 -0
  387. package/dist/cjs/index.js +600 -0
  388. package/dist/cjs/json/index.js +7 -0
  389. package/dist/cjs/package.json +3 -0
  390. package/dist/cjs/protobuf/index.js +2380 -0
  391. package/dist/cjs/query/cache/memory-query-cache.js +28 -0
  392. package/dist/cjs/query/cache/query-cache-store.js +2 -0
  393. package/dist/cjs/query/canton-manager-options.js +2 -0
  394. package/dist/cjs/query/canton-manager.js +46 -0
  395. package/dist/cjs/query/errors/pqs-query-error.js +15 -0
  396. package/dist/cjs/query/errors/pqs-schema-profile-error.js +7 -0
  397. package/dist/cjs/query/errors/query-capability-error.js +14 -0
  398. package/dist/cjs/query/grpc/grpc-contract-query-client.js +161 -0
  399. package/dist/cjs/query/model-types.js +18 -0
  400. package/dist/cjs/query/pqs/pqs-pool.js +22 -0
  401. package/dist/cjs/query/pqs/pqs-query-client.js +699 -0
  402. package/dist/cjs/query/pqs/pqs-relational-sql-compiler.js +150 -0
  403. package/dist/cjs/query/pqs/pqs-schema-profile.js +172 -0
  404. package/dist/cjs/query/pqs/pqs-sql-compiler.js +367 -0
  405. package/dist/cjs/query/pqs/read-only-sql.js +38 -0
  406. package/dist/cjs/query/query-client.js +2 -0
  407. package/dist/cjs/query/query-source.js +8 -0
  408. package/dist/cjs/services/command/command-service-client.js +21 -0
  409. package/dist/cjs/services/command-completion/command-completion-service-client.js +18 -0
  410. package/dist/cjs/services/command-inspection/command-inspection-service-client.js +15 -0
  411. package/dist/cjs/services/command-submission/command-submission-service-client.js +16 -0
  412. package/dist/cjs/services/commands/command-payload-builder.js +58 -0
  413. package/dist/cjs/services/commands/command-submission-pipeline.js +25 -0
  414. package/dist/cjs/services/contract/contract-service-client.js +15 -0
  415. package/dist/cjs/services/contracts/contract-observer.interface.js +2 -0
  416. package/dist/cjs/services/event-query/event-query-service-client.js +15 -0
  417. package/dist/cjs/services/events/transaction-observer.interface.js +2 -0
  418. package/dist/cjs/services/health/health-service-client.js +15 -0
  419. package/dist/cjs/services/identity-initialization/identity-initialization-service-client.js +19 -0
  420. package/dist/cjs/services/identity-provider-config/identity-provider-config-service-client.js +19 -0
  421. package/dist/cjs/services/package/package-service-client.js +27 -0
  422. package/dist/cjs/services/package-management/package-management-service-client.js +19 -0
  423. package/dist/cjs/services/participant-inspection/commitment-chunk-observer.interface.js +2 -0
  424. package/dist/cjs/services/participant-inspection/participant-inspection-service-client.js +43 -0
  425. package/dist/cjs/services/participant-package/participant-package-service-client.js +35 -0
  426. package/dist/cjs/services/participant-party-management/participant-party-management-service-client.js +23 -0
  427. package/dist/cjs/services/participant-repair/participant-repair-service-client.js +15 -0
  428. package/dist/cjs/services/participant-status/participant-status-service-client.js +15 -0
  429. package/dist/cjs/services/party-management/decentralized-party-lifecycle.js +163 -0
  430. package/dist/cjs/services/party-management/party-management-service-client.js +199 -0
  431. package/dist/cjs/services/pruning/pruning-service-client.js +27 -0
  432. package/dist/cjs/services/resource-management/resource-management-service-client.js +15 -0
  433. package/dist/cjs/services/state/state-service-client.js +31 -0
  434. package/dist/cjs/services/synchronizer-connectivity/synchronizer-connectivity-service-client.js +23 -0
  435. package/dist/cjs/services/topology-aggregation/topology-aggregation-service-client.js +19 -0
  436. package/dist/cjs/services/topology-manager-read/topology-manager-read-service-client.js +83 -0
  437. package/dist/cjs/services/topology-manager-write/topology-manager-write-service-client.js +48 -0
  438. package/dist/cjs/services/topology-manager-write/topology-signed-transaction-assembler.js +85 -0
  439. package/dist/cjs/services/traffic-control/traffic-control-service-client.js +15 -0
  440. package/dist/cjs/services/update/update-service-client.js +34 -0
  441. package/dist/cjs/services/user-management/user-management-service-client.js +27 -0
  442. package/dist/cjs/services/version/version-service-client.js +15 -0
  443. package/dist/cjs/testing/campaign/campaign-artifact.js +154 -0
  444. package/dist/cjs/testing/campaign/campaign-definition.js +81 -0
  445. package/dist/cjs/testing/campaign/campaign-metrics.js +30 -0
  446. package/dist/cjs/testing/campaign/campaign-model.js +26 -0
  447. package/dist/cjs/testing/campaign/campaign-runner.js +233 -0
  448. package/dist/cjs/testing/campaign/campaign-scheduler.js +113 -0
  449. package/dist/cjs/testing/campaign/campaign-types.js +14 -0
  450. package/dist/cjs/testing/daml/daml-action-arbitrary.js +60 -0
  451. package/dist/cjs/testing/daml/daml-choice-action-arbitrary.js +66 -0
  452. package/dist/cjs/testing/daml/daml-create-action-arbitrary.js +73 -0
  453. package/dist/cjs/testing/daml/daml-testing-catalog.js +43 -0
  454. package/dist/cjs/testing/daml/daml-value-arbitrary.js +79 -0
  455. package/dist/cjs/testing/daml/declarative-campaign-arbitrary.js +66 -0
  456. package/dist/cjs/testing/errors/invariant-campaign-failure.js +41 -0
  457. package/dist/cjs/testing/errors/testing-configuration-error.js +10 -0
  458. package/dist/cjs/testing/handlers/handler.js +36 -0
  459. package/dist/cjs/testing/index.js +69 -0
  460. package/dist/cjs/testing/runtime/campaign-isolation.js +26 -0
  461. package/dist/cjs/testing/runtime/canton-test-runtime.js +144 -0
  462. package/dist/cjs/testing/runtime/declarative-action-executor.js +45 -0
  463. package/dist/cjs/testing/targets/target.js +132 -0
  464. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/admin/command_inspection_service.client.js +38 -0
  465. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/admin/command_inspection_service.js +150 -0
  466. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/admin/identity_provider_config_service.client.js +89 -0
  467. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/admin/identity_provider_config_service.js +156 -0
  468. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/admin/object_meta.js +24 -0
  469. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/admin/package_management_service.client.js +70 -0
  470. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/admin/package_management_service.js +242 -0
  471. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/admin/participant_pruning_service.client.js +39 -0
  472. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/admin/participant_pruning_service.js +42 -0
  473. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/admin/party_management_alpha_service.client.js +85 -0
  474. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/admin/party_management_alpha_service.js +198 -0
  475. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/admin/party_management_service.client.js +156 -0
  476. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/admin/party_management_service.js +271 -0
  477. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/admin/user_management_service.client.js +130 -0
  478. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/admin/user_management_service.js +376 -0
  479. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/command_completion_service.client.js +53 -0
  480. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/command_completion_service.js +61 -0
  481. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/command_service.client.js +54 -0
  482. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/command_service.js +101 -0
  483. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/command_submission_service.client.js +51 -0
  484. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/command_submission_service.js +65 -0
  485. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/commands.js +145 -0
  486. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/completion.js +39 -0
  487. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/contract_service.client.js +34 -0
  488. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/contract_service.js +44 -0
  489. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/crypto.js +187 -0
  490. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/event.js +116 -0
  491. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/event_query_service.client.js +35 -0
  492. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/event_query_service.js +73 -0
  493. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/experimental_features.js +60 -0
  494. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/interactive/interactive_submission_common_data.js +41 -0
  495. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/interactive/interactive_submission_service.client.js +109 -0
  496. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/interactive/interactive_submission_service.js +461 -0
  497. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/interactive/transaction/v1/interactive_submission_data.js +143 -0
  498. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/offset_checkpoint.js +38 -0
  499. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/package_reference.js +71 -0
  500. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/package_service.client.js +57 -0
  501. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/package_service.js +176 -0
  502. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/reassignment.js +88 -0
  503. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/reassignment_commands.js +69 -0
  504. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/state_service.client.js +74 -0
  505. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/state_service.js +240 -0
  506. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/testing/time_service.client.js +38 -0
  507. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/testing/time_service.js +56 -0
  508. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/topology_transaction.js +101 -0
  509. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/trace_context.js +24 -0
  510. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/transaction.js +37 -0
  511. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/transaction_filter.js +174 -0
  512. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/update_service.client.js +91 -0
  513. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/update_service.js +142 -0
  514. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/value.js +184 -0
  515. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/version_service.client.js +29 -0
  516. package/dist/cjs/transports/grpc/generated/canton/com/daml/ledger/api/v2/version_service.js +109 -0
  517. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/admin/crypto/v30/crypto.js +38 -0
  518. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/admin/health/v30/status_service.client.js +36 -0
  519. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/admin/health/v30/status_service.js +162 -0
  520. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/admin/mediator/v30/mediator_status_service.client.js +25 -0
  521. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/admin/mediator/v30/mediator_status_service.js +57 -0
  522. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/admin/participant/v30/acs_import.js +55 -0
  523. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/admin/participant/v30/active_contract.js +69 -0
  524. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/admin/participant/v30/package_service.client.js +130 -0
  525. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/admin/participant/v30/package_service.js +386 -0
  526. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/admin/participant/v30/participant_inspection_service.client.js +109 -0
  527. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/admin/participant/v30/participant_inspection_service.js +566 -0
  528. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/admin/participant/v30/participant_repair_service.client.js +170 -0
  529. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/admin/participant/v30/participant_repair_service.js +452 -0
  530. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/admin/participant/v30/participant_replication_service.client.js +25 -0
  531. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/admin/participant/v30/participant_replication_service.js +38 -0
  532. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/admin/participant/v30/participant_status_service.client.js +25 -0
  533. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/admin/participant/v30/participant_status_service.js +89 -0
  534. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/admin/participant/v30/party_management_service.client.js +131 -0
  535. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/admin/participant/v30/party_management_service.js +200 -0
  536. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/admin/participant/v30/ping_pong_service.client.js +25 -0
  537. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/admin/participant/v30/ping_pong_service.js +75 -0
  538. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/admin/participant/v30/pruning_service.client.js +147 -0
  539. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/admin/participant/v30/pruning_service.js +153 -0
  540. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/admin/participant/v30/reassignment_id.js +23 -0
  541. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/admin/participant/v30/resource_management_service.client.js +37 -0
  542. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/admin/participant/v30/resource_management_service.js +77 -0
  543. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/admin/participant/v30/synchronizer_connectivity_service.client.js +137 -0
  544. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/admin/participant/v30/synchronizer_connectivity_service.js +468 -0
  545. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/admin/participant/v30/traffic_control_service.client.js +28 -0
  546. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/admin/participant/v30/traffic_control_service.js +59 -0
  547. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/admin/pruning/v30/pruning.js +335 -0
  548. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/admin/sequencer/v30/sequencer_connection.js +134 -0
  549. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/admin/sequencer/v30/sequencer_status_service.client.js +25 -0
  550. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/admin/sequencer/v30/sequencer_status_service.js +110 -0
  551. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/admin/time/v30/time_tracker_config.js +41 -0
  552. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/admin/topology/v30/common.js +26 -0
  553. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/connection/v30/api_info.client.js +28 -0
  554. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/connection/v30/api_info.js +40 -0
  555. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/crypto/admin/v30/vault_service.client.js +162 -0
  556. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/crypto/admin/v30/vault_service.js +443 -0
  557. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/crypto/v30/crypto.js +682 -0
  558. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/mediator/admin/v30/mediator_administration_service.client.js +89 -0
  559. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/mediator/admin/v30/mediator_administration_service.js +72 -0
  560. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/mediator/admin/v30/mediator_initialization_service.client.js +30 -0
  561. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/mediator/admin/v30/mediator_initialization_service.js +44 -0
  562. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/mediator/admin/v30/mediator_inspection_service.client.js +34 -0
  563. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/mediator/admin/v30/mediator_inspection_service.js +147 -0
  564. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/mediator/admin/v30/sequencer_connection_service.client.js +44 -0
  565. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/mediator/admin/v30/sequencer_connection_service.js +87 -0
  566. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/participant/protocol/v30/onboarding_clearance.js +24 -0
  567. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/participant/protocol/v30/party_replication.js +212 -0
  568. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/participant/protocol/v30/submission_tracking.js +92 -0
  569. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/participant/synchronizer/v30/synchronizer.js +23 -0
  570. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/protocol/v30/acs_commitments.js +42 -0
  571. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/protocol/v30/common.js +47 -0
  572. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/protocol/v30/common_stable.js +51 -0
  573. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/protocol/v30/confirmation_response.js +105 -0
  574. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/protocol/v30/mediator.js +97 -0
  575. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/protocol/v30/merkle.js +65 -0
  576. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/protocol/v30/ordering_request.js +24 -0
  577. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/protocol/v30/participant_reassignment.js +182 -0
  578. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/protocol/v30/participant_transaction.js +412 -0
  579. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/protocol/v30/quorum.js +37 -0
  580. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/protocol/v30/sequencing.js +200 -0
  581. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/protocol/v30/sequencing_parameters.js +23 -0
  582. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/protocol/v30/signed_content.js +26 -0
  583. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/protocol/v30/storage.js +23 -0
  584. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/protocol/v30/synchronization.js +90 -0
  585. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/protocol/v30/synchronizer_parameters.js +100 -0
  586. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/protocol/v30/topology.js +566 -0
  587. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/protocol/v30/traffic_control_parameters.js +107 -0
  588. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/protocol/v30/versioned_google_rpc_status.js +24 -0
  589. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/protocol/v31/common.js +25 -0
  590. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/protocol/v31/common_stable.js +26 -0
  591. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/protocol/v31/participant_transaction.js +196 -0
  592. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/protocol/v31/sequencing.js +94 -0
  593. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/protocol/v31/synchronization.js +38 -0
  594. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/protocol/v32/acs_commitments.js +97 -0
  595. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/protocol/v32/participant_transaction.js +114 -0
  596. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/protocol/v32/synchronization.js +42 -0
  597. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/sequencer/admin/v30/sequencer_administration_service.client.js +154 -0
  598. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/sequencer/admin/v30/sequencer_administration_service.js +469 -0
  599. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/sequencer/admin/v30/sequencer_bft_additional_snapshot_info.js +94 -0
  600. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/sequencer/admin/v30/sequencer_bft_administration_service.client.js +86 -0
  601. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/sequencer/admin/v30/sequencer_bft_administration_service.js +391 -0
  602. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/sequencer/admin/v30/sequencer_bft_pruning_administration_service.client.js +110 -0
  603. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/sequencer/admin/v30/sequencer_bft_pruning_administration_service.js +173 -0
  604. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/sequencer/admin/v30/sequencer_initialization_service.client.js +68 -0
  605. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/sequencer/admin/v30/sequencer_initialization_service.js +145 -0
  606. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/sequencer/admin/v30/sequencer_initialization_snapshot.js +130 -0
  607. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/sequencer/admin/v30/sequencer_pruning_administration_service.client.js +88 -0
  608. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/sequencer/admin/v30/sequencer_pruning_administration_service.js +64 -0
  609. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/sequencer/admin/v30/sequencer_traffic_inspection_service.client.js +29 -0
  610. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/sequencer/admin/v30/sequencer_traffic_inspection_service.js +70 -0
  611. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/sequencer/api/v30/sequencer_authentication_service.client.js +49 -0
  612. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/sequencer/api/v30/sequencer_authentication_service.js +108 -0
  613. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/sequencer/api/v30/sequencer_channel_service.client.js +40 -0
  614. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/sequencer/api/v30/sequencer_channel_service.js +119 -0
  615. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/sequencer/api/v30/sequencer_connect_service.client.js +53 -0
  616. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/sequencer/api/v30/sequencer_connect_service.js +172 -0
  617. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/sequencer/api/v30/sequencer_service.client.js +157 -0
  618. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/sequencer/api/v30/sequencer_service.js +240 -0
  619. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/synchronizer/protocol/v30/aggregation.js +36 -0
  620. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/synchronizer/sequencing/sequencer/bftordering/standalone/v1/standalone_bft_ordering_service.client.js +32 -0
  621. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/synchronizer/sequencing/sequencer/bftordering/standalone/v1/standalone_bft_ordering_service.js +82 -0
  622. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/synchronizer/sequencing/sequencer/bftordering/v30/bft_ordering_sequencing_parameters.js +24 -0
  623. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/synchronizer/sequencing/sequencer/bftordering/v30/bft_ordering_service.client.js +27 -0
  624. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/synchronizer/sequencing/sequencer/bftordering/v30/bft_ordering_service.js +501 -0
  625. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/synchronizer/sequencing/sequencer/bftordering/v31/bft_ordering_sequencing_parameters.js +83 -0
  626. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/synchronizer/v30/synchronizer.js +26 -0
  627. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/time/admin/v30/synchronizer_time_service.client.js +36 -0
  628. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/time/admin/v30/synchronizer_time_service.js +70 -0
  629. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/topology/admin/v30/common.js +89 -0
  630. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/topology/admin/v30/initialization_service.client.js +57 -0
  631. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/topology/admin/v30/initialization_service.js +113 -0
  632. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/topology/admin/v30/topology_aggregation_service.client.js +69 -0
  633. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/topology/admin/v30/topology_aggregation_service.js +135 -0
  634. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/topology/admin/v30/topology_manager_read_service.client.js +193 -0
  635. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/topology/admin/v30/topology_manager_read_service.js +889 -0
  636. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/topology/admin/v30/topology_manager_write_service.client.js +90 -0
  637. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/topology/admin/v30/topology_manager_write_service.js +359 -0
  638. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/v30/trace_context.js +24 -0
  639. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/canton/version/v1/untyped_versioned_message.js +24 -0
  640. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/daml/lf/archive/daml_lf.js +50 -0
  641. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/daml/lf/archive/daml_lf1.js +2638 -0
  642. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/daml/lf/archive/daml_lf2.js +2071 -0
  643. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/daml/lf/transaction.js +193 -0
  644. package/dist/cjs/transports/grpc/generated/canton/com/digitalasset/daml/lf/value.js +189 -0
  645. package/dist/cjs/transports/grpc/generated/canton/daml/platform/v1/acs_continuation.js +37 -0
  646. package/dist/cjs/transports/grpc/generated/canton/daml/platform/v1/acs_page_token.js +27 -0
  647. package/dist/cjs/transports/grpc/generated/canton/daml/platform/v1/index.js +31 -0
  648. package/dist/cjs/transports/grpc/generated/canton/daml/platform/v1/page_tokens.js +64 -0
  649. package/dist/cjs/transports/grpc/generated/canton/google/grpc/health/v1/health.client.js +39 -0
  650. package/dist/cjs/transports/grpc/generated/canton/google/grpc/health/v1/health.js +103 -0
  651. package/dist/cjs/transports/grpc/generated/canton/google/protobuf/any.js +143 -0
  652. package/dist/cjs/transports/grpc/generated/canton/google/protobuf/descriptor.js +1212 -0
  653. package/dist/cjs/transports/grpc/generated/canton/google/protobuf/duration.js +96 -0
  654. package/dist/cjs/transports/grpc/generated/canton/google/protobuf/empty.js +48 -0
  655. package/dist/cjs/transports/grpc/generated/canton/google/protobuf/field_mask.js +82 -0
  656. package/dist/cjs/transports/grpc/generated/canton/google/protobuf/timestamp.js +124 -0
  657. package/dist/cjs/transports/grpc/generated/canton/google/rpc/status.js +37 -0
  658. package/dist/cjs/transports/grpc/grpc-call-options-factory.js +27 -0
  659. package/dist/cjs/transports/grpc/grpc-channel-factory.js +595 -0
  660. package/dist/cjs/transports/grpc/grpc-ledger-client.js +76 -0
  661. package/dist/cjs/transports/grpc/grpc-transport-factory.js +7 -0
  662. package/dist/cjs/transports/grpc/grpc-transport.js +574 -0
  663. package/dist/cjs/transports/grpc/mappers/admin-status-mapper.js +98 -0
  664. package/dist/cjs/transports/grpc/mappers/command-inspection-mapper.js +191 -0
  665. package/dist/cjs/transports/grpc/mappers/commands-mapper.js +229 -0
  666. package/dist/cjs/transports/grpc/mappers/completion-mapper.js +28 -0
  667. package/dist/cjs/transports/grpc/mappers/contracts-mapper.js +103 -0
  668. package/dist/cjs/transports/grpc/mappers/health-mapper.js +24 -0
  669. package/dist/cjs/transports/grpc/mappers/identity-provider-config-mapper.js +42 -0
  670. package/dist/cjs/transports/grpc/mappers/interactive-command-mapper.js +55 -0
  671. package/dist/cjs/transports/grpc/mappers/packages-mapper.js +167 -0
  672. package/dist/cjs/transports/grpc/mappers/participant-status-mapper.js +58 -0
  673. package/dist/cjs/transports/grpc/mappers/parties-mapper.js +73 -0
  674. package/dist/cjs/transports/grpc/mappers/pruning-mapper.js +47 -0
  675. package/dist/cjs/transports/grpc/mappers/state-read-mapper.js +79 -0
  676. package/dist/cjs/transports/grpc/mappers/system-mapper.js +10 -0
  677. package/dist/cjs/transports/grpc/mappers/topology-aggregation-mapper.js +33 -0
  678. package/dist/cjs/transports/grpc/mappers/topology-common-mapper.js +689 -0
  679. package/dist/cjs/transports/grpc/mappers/topology-manager-read-mapper.js +276 -0
  680. package/dist/cjs/transports/grpc/mappers/users-mapper.js +192 -0
  681. package/dist/cjs/transports/json/json-http-client.js +50 -0
  682. package/dist/cjs/transports/json/json-ledger-client.js +76 -0
  683. package/dist/cjs/transports/json/json-transport-factory.js +8 -0
  684. package/dist/cjs/transports/json/json-transport.js +466 -0
  685. package/dist/cjs/transports/json/mappers/commands-mapper.js +93 -0
  686. package/dist/cjs/transports/json/mappers/contracts-mapper.js +9 -0
  687. package/dist/cjs/transports/json/mappers/events-mapper.js +6 -0
  688. package/dist/cjs/transports/json/mappers/packages-mapper.js +9 -0
  689. package/dist/cjs/transports/json/mappers/parties-mapper.js +38 -0
  690. package/dist/cjs/transports/json/mappers/system-mapper.js +10 -0
  691. package/dist/cjs/transports/json/mappers/users-mapper.js +23 -0
  692. package/dist/daml-interface/analysis/analyzed-daml-type-definition.d.ts +6 -1
  693. package/dist/daml-interface/analysis/analyzed-daml-type.d.ts +7 -1
  694. package/dist/daml-interface/analysis/daml-interface-analyzer.d.ts +6 -0
  695. package/dist/daml-interface/analysis/daml-interface-analyzer.js +92 -25
  696. package/dist/daml-interface/cli/daml-interface-cli-options.d.ts +3 -0
  697. package/dist/daml-interface/cli/daml-interface-cli-options.js +12 -0
  698. package/dist/daml-interface/cli/daml-interface-cli.d.ts +5 -1
  699. package/dist/daml-interface/cli/daml-interface-cli.js +10 -4
  700. package/dist/daml-interface/daml-interface-generator-options.d.ts +3 -0
  701. package/dist/daml-interface/daml-interface-generator-options.js +3 -0
  702. package/dist/daml-interface/daml-interface-generator.js +2 -2
  703. package/dist/daml-interface/emission/daml-module-import-style.d.ts +7 -0
  704. package/dist/daml-interface/emission/daml-module-import-style.js +6 -0
  705. package/dist/daml-interface/emission/generated-spec-emitter.d.ts +29 -0
  706. package/dist/daml-interface/emission/generated-spec-emitter.js +363 -0
  707. package/dist/daml-interface/emission/generated-test-sample-emitter.d.ts +60 -0
  708. package/dist/daml-interface/emission/generated-test-sample-emitter.js +459 -0
  709. package/dist/daml-interface/emission/named-type-emitter.d.ts +11 -3
  710. package/dist/daml-interface/emission/named-type-emitter.js +102 -37
  711. package/dist/daml-interface/emission/project-emitter.d.ts +2 -1
  712. package/dist/daml-interface/emission/project-emitter.js +17 -7
  713. package/dist/daml-interface/emission/registry-emitter.d.ts +2 -1
  714. package/dist/daml-interface/emission/registry-emitter.js +6 -7
  715. package/dist/daml-interface/emission/relative-module-specifier.d.ts +7 -0
  716. package/dist/daml-interface/emission/relative-module-specifier.js +17 -0
  717. package/dist/daml-interface/emission/support-file-emitter.d.ts +5 -2
  718. package/dist/daml-interface/emission/support-file-emitter.js +52 -28
  719. package/dist/daml-interface/emission/template-binding-emitter.d.ts +6 -1
  720. package/dist/daml-interface/emission/template-binding-emitter.js +179 -72
  721. package/dist/daml-interface/emission/type-script-name-resolver.d.ts +8 -2
  722. package/dist/daml-interface/emission/type-script-name-resolver.js +41 -6
  723. package/dist/daml-interface/emission-model/generated-daml-interface-project.d.ts +9 -0
  724. package/dist/daml-interface/emission-model/generated-daml-interface-project.js +54 -5
  725. package/dist/daml-interface/emission-model/generated-spec-file.d.ts +7 -0
  726. package/dist/daml-interface/emission-model/generated-spec-file.js +11 -0
  727. package/dist/daml-interface/index.d.ts +5 -3
  728. package/dist/daml-interface/index.js +4 -3
  729. package/dist/daml-interface/runtime/daml-event-source-normalizer.d.ts +8 -11
  730. package/dist/daml-interface/runtime/daml-event-source-normalizer.js +176 -12
  731. package/dist/daml-interface/runtime/daml-type-descriptor.d.ts +2 -1
  732. package/dist/daml-interface/runtime/daml-value-converter.d.ts +5 -2
  733. package/dist/daml-interface/runtime/daml-value-converter.js +11 -5
  734. package/dist/daml-interface/runtime/daml-value-materializer.d.ts +4 -1
  735. package/dist/daml-interface/runtime/daml-value-materializer.js +7 -1
  736. package/dist/daml-interface/writing/daml-interface-writer.js +3 -6
  737. package/dist/daml-lf/daml-lf-compilation.d.ts +3 -0
  738. package/dist/daml-lf/daml-lf-compilation.js +4 -0
  739. package/dist/daml-lf/model/daml-lf-data-type.d.ts +19 -0
  740. package/dist/daml-lf/model/daml-lf-data-type.js +15 -0
  741. package/dist/daml-lf/model/daml-lf-type.d.ts +13 -0
  742. package/dist/daml-lf/model/daml-lf-type.js +24 -0
  743. package/dist/daml-lf/model/lf-2-model-mapper.d.ts +4 -0
  744. package/dist/daml-lf/model/lf-2-model-mapper.js +70 -2
  745. package/package.json +19 -10
@@ -0,0 +1,1135 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DamlLfEvaluator = void 0;
4
+ const validation_error_js_1 = require("../../core/errors/validation-error.js");
5
+ const replay_source_map_exception_js_1 = require("../../debugger/errors/replay-source-map.exception.js");
6
+ const daml_lf_builtin_type_js_1 = require("../model/daml-lf-builtin-type.js");
7
+ const daml_lf_expression_js_1 = require("../model/daml-lf-expression.js");
8
+ const daml_lf_template_id_js_1 = require("../model/daml-lf-template-id.js");
9
+ const daml_lf_type_js_1 = require("../model/daml-lf-type.js");
10
+ const type_con_reference_js_1 = require("../model/type-con-reference.js");
11
+ const daml_lf_builtin_dispatch_js_1 = require("./daml-lf-builtin-dispatch.js");
12
+ const daml_lf_lexical_scope_js_1 = require("./daml-lf-lexical-scope.js");
13
+ const daml_lf_runtime_value_js_1 = require("./daml-lf-runtime-value.js");
14
+ const daml_lf_runtime_frame_js_1 = require("./daml-lf-runtime-frame.js");
15
+ const daml_lf_step_kind_js_1 = require("./daml-lf-step-kind.js");
16
+ class DamlLfThrownException extends Error {
17
+ value;
18
+ constructor(value) {
19
+ super("daml lf threw an exception");
20
+ this.value = value;
21
+ }
22
+ }
23
+ class DamlLfEvaluator {
24
+ compilation;
25
+ builtinDispatch;
26
+ nextFrameNumber = 1;
27
+ activeReplayContext;
28
+ semanticModel;
29
+ constructor(compilation, builtinDispatch = new daml_lf_builtin_dispatch_js_1.DamlLfBuiltinDispatch()) {
30
+ this.compilation = compilation;
31
+ this.builtinDispatch = builtinDispatch;
32
+ this.semanticModel = this.compilation.createSemanticModel();
33
+ void this.compilation;
34
+ }
35
+ getCompilation() {
36
+ return this.compilation;
37
+ }
38
+ getBuiltinDispatch() {
39
+ return this.builtinDispatch;
40
+ }
41
+ evaluateValueDefinitionOrThrow(definition, traceSink) {
42
+ const frame = this.createFrame(definition);
43
+ return this.evaluateExpressionOrThrow(definition.expression, frame, traceSink);
44
+ }
45
+ evaluateReplayEntrypointOrThrow(definition, environment, traceSink) {
46
+ const frame = this.createFrame(definition);
47
+ const replayExpression = environment.entrypointExpression ?? definition.expression;
48
+ const replayContext = {
49
+ environment,
50
+ effects: [],
51
+ createdContracts: new Map(),
52
+ observedCreateContractIds: [
53
+ ...(environment.observedCreateContractIds ?? []),
54
+ ],
55
+ nextSyntheticContractIdNumber: 1,
56
+ nextObservedCreateIndex: 0,
57
+ };
58
+ this.activeReplayContext = replayContext;
59
+ try {
60
+ const shouldEmitEntrypointEffects = !this.isUpdateDrivenEntrypointExpression(replayExpression);
61
+ const shouldEmitTopLevelExerciseEffect = !shouldEmitEntrypointEffects
62
+ && environment.entrypoint.kind === "exercise"
63
+ && environment.entrypointBindingMode === "templateChoice";
64
+ if (shouldEmitEntrypointEffects || shouldEmitTopLevelExerciseEffect) {
65
+ for (const effect of this.createReplayEffects(environment)) {
66
+ replayContext.effects.push(effect);
67
+ traceSink?.onStep({
68
+ kind: daml_lf_step_kind_js_1.DamlLfStepKind.stateEffect,
69
+ expression: replayExpression,
70
+ frame,
71
+ locals: frame.scope.snapshotBindings(),
72
+ stateEffect: effect,
73
+ });
74
+ }
75
+ }
76
+ return {
77
+ value: this.evaluateReplayExpressionOrThrow(replayExpression, frame, environment, traceSink),
78
+ effects: [...replayContext.effects],
79
+ };
80
+ }
81
+ finally {
82
+ this.activeReplayContext = undefined;
83
+ }
84
+ }
85
+ evaluateExpressionOrThrow(expression, frame, traceSink) {
86
+ traceSink?.onStep({
87
+ kind: daml_lf_step_kind_js_1.DamlLfStepKind.enterExpression,
88
+ expression,
89
+ frame,
90
+ locals: frame.scope.snapshotBindings(),
91
+ });
92
+ const value = this.resolveExpressionValue(expression, frame, traceSink);
93
+ traceSink?.onStep({
94
+ kind: daml_lf_step_kind_js_1.DamlLfStepKind.exitExpression,
95
+ expression,
96
+ frame,
97
+ locals: frame.scope.snapshotBindings(),
98
+ value,
99
+ });
100
+ return value;
101
+ }
102
+ createReplayEffects(environment) {
103
+ if (environment.entrypoint.kind === "exercise") {
104
+ return [
105
+ {
106
+ kind: "exercise",
107
+ contractId: environment.entrypoint.contractId,
108
+ templateId: environment.entrypoint.templateId,
109
+ choice: environment.entrypoint.choice,
110
+ argument: environment.entrypoint.argument,
111
+ },
112
+ ];
113
+ }
114
+ return [
115
+ {
116
+ kind: "create",
117
+ templateId: environment.entrypoint.templateId,
118
+ payload: environment.entrypoint.argument,
119
+ },
120
+ ];
121
+ }
122
+ createFrame(definition, identityOverride) {
123
+ const identity = identityOverride
124
+ ?? this.compilation.getValueDefinitionIdentityOrThrow(definition);
125
+ return new daml_lf_runtime_frame_js_1.DamlLfRuntimeFrame({
126
+ frameId: `frame-${this.nextFrameNumber++}`,
127
+ packageId: identity.packageId,
128
+ moduleName: identity.moduleName,
129
+ definition,
130
+ scope: new daml_lf_lexical_scope_js_1.DamlLfLexicalScope(),
131
+ });
132
+ }
133
+ resolveExpressionValue(expression, frame, traceSink) {
134
+ if (expression.textLiteral !== undefined) {
135
+ return {
136
+ kind: "text",
137
+ value: expression.textLiteral,
138
+ };
139
+ }
140
+ if (expression.numericLiteral !== undefined) {
141
+ return {
142
+ kind: "numeric",
143
+ value: expression.numericLiteral,
144
+ };
145
+ }
146
+ if (expression.int64Literal !== undefined) {
147
+ return {
148
+ kind: "int64",
149
+ value: expression.int64Literal,
150
+ };
151
+ }
152
+ if (expression.variableName !== undefined) {
153
+ const value = frame.scope.getBinding(expression.variableName);
154
+ if (value === undefined) {
155
+ throw new validation_error_js_1.ValidationError(`daml lf variable '${expression.variableName}' is not bound`);
156
+ }
157
+ return value;
158
+ }
159
+ if (expression.builtinConstructor !== undefined) {
160
+ switch (expression.builtinConstructor) {
161
+ case "true":
162
+ return {
163
+ kind: "boolean",
164
+ value: true,
165
+ };
166
+ case "false":
167
+ return {
168
+ kind: "boolean",
169
+ value: false,
170
+ };
171
+ default:
172
+ return {
173
+ kind: "unit",
174
+ };
175
+ }
176
+ }
177
+ if (expression.builtinFunction !== undefined) {
178
+ return {
179
+ kind: "builtin",
180
+ builtinFunction: expression.builtinFunction,
181
+ appliedArguments: [],
182
+ };
183
+ }
184
+ if (expression.lambda !== undefined) {
185
+ return {
186
+ kind: "closure",
187
+ parameters: expression.lambda.parameters,
188
+ body: expression.lambda.body,
189
+ frame,
190
+ };
191
+ }
192
+ if (expression.application !== undefined) {
193
+ const functionValue = this.evaluateExpressionOrThrow(expression.application.function, frame, traceSink);
194
+ const argumentValues = expression.application.arguments.map((argument) => this.evaluateExpressionOrThrow(argument, frame, traceSink));
195
+ return this.applyFunctionOrThrow(functionValue, argumentValues, traceSink);
196
+ }
197
+ if (expression.letExpression !== undefined) {
198
+ const scopedFrame = this.deriveFrame(frame, frame.scope.createChild());
199
+ for (const binding of expression.letExpression.bindings) {
200
+ const boundValue = this.evaluateExpressionOrThrow(binding.value, scopedFrame, traceSink);
201
+ scopedFrame.scope.setBinding(binding.name, boundValue);
202
+ }
203
+ return this.evaluateExpressionOrThrow(expression.letExpression.body, scopedFrame, traceSink);
204
+ }
205
+ if (expression.recordConstruction !== undefined) {
206
+ return this.createRecordRuntimeValue(Object.fromEntries(expression.recordConstruction.fields.map((field) => [
207
+ field.name,
208
+ this.evaluateExpressionOrThrow(field.value, frame, traceSink),
209
+ ])));
210
+ }
211
+ if (expression.recordProjection !== undefined) {
212
+ const recordValue = this.evaluateExpressionOrThrow(expression.recordProjection.record, frame, traceSink);
213
+ if (recordValue.kind === "record") {
214
+ const recordFields = recordValue.fields;
215
+ const fieldValue = recordFields[expression.recordProjection.fieldName];
216
+ if (fieldValue === undefined) {
217
+ throw new validation_error_js_1.ValidationError(`daml lf record projection could not find field '${expression.recordProjection.fieldName}'`);
218
+ }
219
+ return fieldValue;
220
+ }
221
+ const rawValue = this.unwrapRuntimeValue(recordValue);
222
+ if (rawValue === null
223
+ || typeof rawValue !== "object"
224
+ || Array.isArray(rawValue)) {
225
+ throw new validation_error_js_1.ValidationError(`daml lf record projection requires an object value for field '${expression.recordProjection.fieldName}'`);
226
+ }
227
+ return this.hydrateRuntimeValue(this.readLedgerRecordField(rawValue, expression.recordProjection.fieldName));
228
+ }
229
+ if (expression.recordUpdate !== undefined) {
230
+ const recordValue = this.evaluateExpressionOrThrow(expression.recordUpdate.record, frame, traceSink);
231
+ if (recordValue.kind === "record") {
232
+ const recordFields = recordValue.fields;
233
+ return this.createRecordRuntimeValue({
234
+ ...recordFields,
235
+ [expression.recordUpdate.fieldName]: this.evaluateExpressionOrThrow(expression.recordUpdate.value, frame, traceSink),
236
+ });
237
+ }
238
+ const rawValue = this.unwrapRuntimeValue(recordValue);
239
+ if (rawValue === null
240
+ || typeof rawValue !== "object"
241
+ || Array.isArray(rawValue)) {
242
+ throw new validation_error_js_1.ValidationError(`daml lf record update requires an object value for field '${expression.recordUpdate.fieldName}'`);
243
+ }
244
+ return this.hydrateRuntimeValue({
245
+ ...rawValue,
246
+ ...this.createLedgerRecordFieldUpdate(rawValue, expression.recordUpdate.fieldName, this.unwrapRuntimeValue(this.evaluateExpressionOrThrow(expression.recordUpdate.value, frame, traceSink))),
247
+ });
248
+ }
249
+ if (expression.throwExpression !== undefined) {
250
+ throw new DamlLfThrownException(this.evaluateExpressionOrThrow(expression.throwExpression.exception, frame, traceSink));
251
+ }
252
+ if (expression.variantConstruction !== undefined) {
253
+ return this.hydrateRuntimeValue({
254
+ constructor: expression.variantConstruction.constructorName,
255
+ value: this.unwrapRuntimeValue(this.evaluateExpressionOrThrow(expression.variantConstruction.argument, frame, traceSink)),
256
+ });
257
+ }
258
+ if (expression.optionalConstruction !== undefined) {
259
+ return expression.optionalConstruction.value === undefined
260
+ ? {
261
+ kind: "unit",
262
+ }
263
+ : this.evaluateExpressionOrThrow(expression.optionalConstruction.value, frame, traceSink);
264
+ }
265
+ if (expression.enumConstruction !== undefined) {
266
+ return this.hydrateRuntimeValue(expression.enumConstruction.constructorName);
267
+ }
268
+ if (expression.listConstruction !== undefined) {
269
+ const front = expression.listConstruction.front.map((item) => this.unwrapRuntimeValue(this.evaluateExpressionOrThrow(item, frame, traceSink)));
270
+ const tail = expression.listConstruction.tail === undefined
271
+ ? []
272
+ : this.unwrapRuntimeValue(this.evaluateExpressionOrThrow(expression.listConstruction.tail, frame, traceSink));
273
+ if (!Array.isArray(tail)) {
274
+ throw new validation_error_js_1.ValidationError("daml lf list construction requires an array tail");
275
+ }
276
+ return this.hydrateRuntimeValue([...front, ...tail]);
277
+ }
278
+ if (expression.updateExpression !== undefined) {
279
+ return this.evaluateUpdateExpressionOrThrow(expression, frame, traceSink);
280
+ }
281
+ if (expression.caseExpression !== undefined) {
282
+ const scrutinee = this.evaluateExpressionOrThrow(expression.caseExpression.scrutinee, frame, traceSink);
283
+ const matchingAlternative = expression.caseExpression.alternatives.find((alternative) => this.matchesCaseAlternative(alternative, scrutinee));
284
+ if (matchingAlternative === undefined) {
285
+ const scrutineeDescription = scrutinee.kind === "builtin"
286
+ ? `${String(scrutinee.builtinFunction)}(${scrutinee.appliedArguments
287
+ .map((argument) => argument.kind)
288
+ .join(", ")})`
289
+ : scrutinee.kind;
290
+ throw new validation_error_js_1.ValidationError(`daml lf case expression in '${frame.definition.name}' did not match any alternative for '${scrutineeDescription}' across [${expression.caseExpression.alternatives
291
+ .map((alternative) => alternative.patternKind)
292
+ .join(", ")}]`);
293
+ }
294
+ if ((matchingAlternative.patternKind === "variant"
295
+ || matchingAlternative.patternKind === "optionalSome"
296
+ || matchingAlternative.patternKind === "cons")) {
297
+ const rawValue = this.unwrapRuntimeValue(scrutinee);
298
+ if (matchingAlternative.patternKind === "optionalSome"
299
+ || matchingAlternative.patternKind === "cons"
300
+ || (rawValue !== null
301
+ && typeof rawValue === "object"
302
+ && "value" in rawValue)) {
303
+ const scopedFrame = this.deriveFrame(frame, frame.scope.createChild());
304
+ if (matchingAlternative.patternKind === "cons"
305
+ && Array.isArray(rawValue)) {
306
+ if (matchingAlternative.headBinderName !== undefined) {
307
+ scopedFrame.scope.setBinding(matchingAlternative.headBinderName, this.hydrateRuntimeValue(rawValue[0]));
308
+ }
309
+ if (matchingAlternative.tailBinderName !== undefined) {
310
+ scopedFrame.scope.setBinding(matchingAlternative.tailBinderName, this.hydrateRuntimeValue(rawValue.slice(1)));
311
+ }
312
+ }
313
+ else if (matchingAlternative.binderName !== undefined) {
314
+ scopedFrame.scope.setBinding(matchingAlternative.binderName, this.hydrateRuntimeValue(matchingAlternative.patternKind === "optionalSome"
315
+ ? rawValue
316
+ : rawValue.value));
317
+ }
318
+ return this.evaluateExpressionOrThrow(matchingAlternative.body, scopedFrame, traceSink);
319
+ }
320
+ }
321
+ return this.evaluateExpressionOrThrow(matchingAlternative.body, frame, traceSink);
322
+ }
323
+ if (expression.valueReference !== undefined) {
324
+ const definition = this.compilation.getValueDefinitionOrThrow(expression.valueReference.packageId, expression.valueReference.moduleName, expression.valueReference.definitionName);
325
+ const frame = this.createFrame(definition);
326
+ traceSink?.onStep({
327
+ kind: daml_lf_step_kind_js_1.DamlLfStepKind.call,
328
+ expression,
329
+ frame,
330
+ locals: frame.scope.snapshotBindings(),
331
+ });
332
+ const value = this.evaluateExpressionOrThrow(definition.expression, frame, traceSink);
333
+ traceSink?.onStep({
334
+ kind: daml_lf_step_kind_js_1.DamlLfStepKind.return,
335
+ expression,
336
+ frame,
337
+ locals: frame.scope.snapshotBindings(),
338
+ value,
339
+ });
340
+ return value;
341
+ }
342
+ throw new validation_error_js_1.ValidationError(expression.unsupportedNodeKind === undefined
343
+ ? "daml lf expression is not supported yet"
344
+ : `daml lf expression '${expression.unsupportedNodeKind}' is not supported yet`);
345
+ }
346
+ evaluateReplayExpressionOrThrow(expression, frame, environment, traceSink) {
347
+ return this.evaluateReplayLambdaOrExpressionOrThrow(expression, frame, this.resolveEntrypointBindingValues(environment), traceSink, environment.entrypointBindingMode ?? "standard");
348
+ }
349
+ evaluateUpdateExpressionOrThrow(expression, frame, traceSink) {
350
+ const updateExpression = expression.updateExpression;
351
+ if (updateExpression === undefined) {
352
+ throw new validation_error_js_1.ValidationError("daml lf update expression is missing");
353
+ }
354
+ switch (updateExpression.kind) {
355
+ case "pure":
356
+ case "embedExpr":
357
+ return this.evaluateExpressionOrThrow(updateExpression.expression ?? new daml_lf_expression_js_1.DamlLfExpression({}), frame, traceSink);
358
+ case "block": {
359
+ const scopedFrame = this.deriveFrame(frame, frame.scope.createChild());
360
+ for (const binding of updateExpression.bindings ?? []) {
361
+ const boundValue = this.evaluateExpressionOrThrow(binding.value, scopedFrame, traceSink);
362
+ scopedFrame.scope.setBinding(binding.name, boundValue);
363
+ }
364
+ return this.evaluateExpressionOrThrow(updateExpression.body ?? new daml_lf_expression_js_1.DamlLfExpression({}), scopedFrame, traceSink);
365
+ }
366
+ case "tryCatch": {
367
+ try {
368
+ return this.evaluateExpressionOrThrow(updateExpression.expression ?? new daml_lf_expression_js_1.DamlLfExpression({}), frame, traceSink);
369
+ }
370
+ catch (error) {
371
+ if (!(error instanceof DamlLfThrownException)) {
372
+ throw error;
373
+ }
374
+ const scopedFrame = this.deriveFrame(frame, frame.scope.createChild());
375
+ if (updateExpression.catchVariableName !== undefined) {
376
+ scopedFrame.scope.setBinding(updateExpression.catchVariableName, error.value);
377
+ }
378
+ return this.evaluateExpressionOrThrow(updateExpression.catchExpression ?? new daml_lf_expression_js_1.DamlLfExpression({}), scopedFrame, traceSink);
379
+ }
380
+ }
381
+ case "create": {
382
+ const payload = this.normalizeSemanticRecordValue(this.unwrapRuntimeValue(this.evaluateExpressionOrThrow(updateExpression.argument ?? new daml_lf_expression_js_1.DamlLfExpression({}), frame, traceSink)), updateExpression.templateId === undefined
383
+ ? undefined
384
+ : new type_con_reference_js_1.TypeConReference({
385
+ packageId: updateExpression.templateId.packageId,
386
+ moduleName: updateExpression.templateId.moduleName,
387
+ name: updateExpression.templateId.templateName,
388
+ }));
389
+ const nextSyntheticContractIdNumber = this.activeReplayContext?.nextSyntheticContractIdNumber ?? 1;
390
+ const observedContractId = this.activeReplayContext?.observedCreateContractIds[this.activeReplayContext.nextObservedCreateIndex];
391
+ const contractId = observedContractId
392
+ ?? `created-${nextSyntheticContractIdNumber}`;
393
+ if (this.activeReplayContext !== undefined) {
394
+ this.activeReplayContext.nextSyntheticContractIdNumber =
395
+ nextSyntheticContractIdNumber + 1;
396
+ this.activeReplayContext.nextObservedCreateIndex += 1;
397
+ }
398
+ this.activeReplayContext?.createdContracts.set(contractId, {
399
+ payload,
400
+ templateId: updateExpression.templateId === undefined
401
+ ? undefined
402
+ : {
403
+ packageId: updateExpression.templateId.packageId,
404
+ moduleName: updateExpression.templateId.moduleName,
405
+ entityName: updateExpression.templateId.templateName,
406
+ },
407
+ });
408
+ this.emitReplayEffect({
409
+ kind: "create",
410
+ contractId,
411
+ templateId: updateExpression.templateId === undefined
412
+ ? undefined
413
+ : {
414
+ packageId: updateExpression.templateId.packageId,
415
+ moduleName: updateExpression.templateId.moduleName,
416
+ entityName: updateExpression.templateId.templateName,
417
+ },
418
+ payload,
419
+ }, expression, frame, traceSink);
420
+ return {
421
+ kind: "contractId",
422
+ value: contractId,
423
+ };
424
+ }
425
+ case "fetch": {
426
+ const contractId = this.readContractId(this.evaluateExpressionOrThrow(updateExpression.contractId ?? new daml_lf_expression_js_1.DamlLfExpression({}), frame, traceSink));
427
+ const payload = this.activeReplayContext?.createdContracts.get(contractId)?.payload
428
+ ?? this.activeReplayContext?.environment.contracts?.get(contractId)
429
+ ?.payload;
430
+ this.emitReplayEffect({
431
+ kind: "fetch",
432
+ contractId,
433
+ templateId: updateExpression.templateId === undefined
434
+ ? undefined
435
+ : {
436
+ packageId: updateExpression.templateId.packageId,
437
+ moduleName: updateExpression.templateId.moduleName,
438
+ entityName: updateExpression.templateId.templateName,
439
+ },
440
+ }, expression, frame, traceSink);
441
+ return this.hydrateRuntimeValue(payload);
442
+ }
443
+ case "fetchInterface": {
444
+ const contractId = this.readContractId(this.evaluateExpressionOrThrow(updateExpression.contractId ?? new daml_lf_expression_js_1.DamlLfExpression({}), frame, traceSink));
445
+ const createdContract = this.activeReplayContext?.createdContracts.get(contractId);
446
+ const hydratedContract = this.activeReplayContext?.environment.contracts?.get(contractId);
447
+ const payload = createdContract?.payload
448
+ ?? hydratedContract?.payload;
449
+ const resolvedTemplateId = createdContract?.templateId
450
+ ?? hydratedContract?.templateId;
451
+ if (payload === undefined) {
452
+ throw new validation_error_js_1.ValidationError(`daml lf fetch-interface update could not hydrate contract '${contractId}'`);
453
+ }
454
+ this.emitReplayEffect({
455
+ kind: "fetch",
456
+ contractId,
457
+ templateId: resolvedTemplateId,
458
+ }, expression, frame, traceSink);
459
+ return this.hydrateRuntimeValue(payload);
460
+ }
461
+ case "exercise": {
462
+ if (updateExpression.templateId === undefined
463
+ || updateExpression.choiceName === undefined) {
464
+ throw new validation_error_js_1.ValidationError("daml lf exercise update is missing its template or choice");
465
+ }
466
+ const contractId = this.readContractId(this.evaluateExpressionOrThrow(updateExpression.contractId ?? new daml_lf_expression_js_1.DamlLfExpression({}), frame, traceSink));
467
+ const argument = this.unwrapRuntimeValue(this.evaluateExpressionOrThrow(updateExpression.argument ?? new daml_lf_expression_js_1.DamlLfExpression({}), frame, traceSink));
468
+ const payload = this.activeReplayContext?.createdContracts.get(contractId)?.payload
469
+ ?? this.activeReplayContext?.environment.contracts?.get(contractId)
470
+ ?.payload;
471
+ if (payload === undefined) {
472
+ throw new validation_error_js_1.ValidationError(`daml lf exercise update could not hydrate contract '${contractId}'`);
473
+ }
474
+ this.emitReplayEffect({
475
+ kind: "exercise",
476
+ contractId,
477
+ templateId: this.toReplayTemplateId(updateExpression.templateId),
478
+ choice: updateExpression.choiceName,
479
+ argument,
480
+ }, expression, frame, traceSink);
481
+ const resolvedDefinition = this.activeReplayContext
482
+ ?.environment.definitionResolver
483
+ ?.resolveChoiceDefinitionOrThrow?.(new daml_lf_template_id_js_1.DamlLfTemplateId(updateExpression.templateId), updateExpression.choiceName);
484
+ if (resolvedDefinition === undefined) {
485
+ throw new validation_error_js_1.ValidationError("daml lf exercise update requires a replay definition resolver");
486
+ }
487
+ return this.evaluateReplayLambdaOrExpressionOrThrow(resolvedDefinition.replayExpression, this.createFrame(resolvedDefinition.definition, resolvedDefinition.frameIdentity), [
488
+ {
489
+ value: payload,
490
+ contractId,
491
+ },
492
+ {
493
+ value: argument,
494
+ },
495
+ ], traceSink, resolvedDefinition.replayBindingMode);
496
+ }
497
+ case "exerciseInterface": {
498
+ if (updateExpression.choiceName === undefined) {
499
+ throw new validation_error_js_1.ValidationError("daml lf exercise-interface update is missing its choice");
500
+ }
501
+ const contractId = this.readContractId(this.evaluateExpressionOrThrow(updateExpression.contractId ?? new daml_lf_expression_js_1.DamlLfExpression({}), frame, traceSink));
502
+ const argument = this.unwrapRuntimeValue(this.evaluateExpressionOrThrow(updateExpression.argument ?? new daml_lf_expression_js_1.DamlLfExpression({}), frame, traceSink));
503
+ const createdContract = this.activeReplayContext?.createdContracts.get(contractId);
504
+ const hydratedContract = this.activeReplayContext?.environment.contracts?.get(contractId);
505
+ const payload = createdContract?.payload
506
+ ?? hydratedContract?.payload;
507
+ const resolvedTemplateId = createdContract?.templateId
508
+ ?? hydratedContract?.templateId;
509
+ if (payload === undefined || resolvedTemplateId === undefined) {
510
+ throw new validation_error_js_1.ValidationError(`daml lf exercise-interface update could not hydrate contract '${contractId}'`);
511
+ }
512
+ this.emitReplayEffect({
513
+ kind: "exercise",
514
+ contractId,
515
+ templateId: resolvedTemplateId,
516
+ choice: updateExpression.choiceName,
517
+ argument,
518
+ }, expression, frame, traceSink);
519
+ let resolvedDefinition;
520
+ try {
521
+ resolvedDefinition = this.activeReplayContext
522
+ ?.environment.definitionResolver
523
+ ?.resolveChoiceDefinitionOrThrow?.(new daml_lf_template_id_js_1.DamlLfTemplateId({
524
+ packageId: resolvedTemplateId.packageId ?? "",
525
+ moduleName: resolvedTemplateId.moduleName ?? "",
526
+ templateName: resolvedTemplateId.entityName ?? "",
527
+ }), updateExpression.choiceName);
528
+ }
529
+ catch (error) {
530
+ if (error instanceof replay_source_map_exception_js_1.ReplaySourceMapException
531
+ && error.message.includes("missing executable metadata for choice")) {
532
+ return this.hydrateRuntimeValue({});
533
+ }
534
+ throw error;
535
+ }
536
+ if (resolvedDefinition === undefined) {
537
+ return this.hydrateRuntimeValue({});
538
+ }
539
+ return this.evaluateReplayLambdaOrExpressionOrThrow(resolvedDefinition.replayExpression, this.createFrame(resolvedDefinition.definition, resolvedDefinition.frameIdentity), [
540
+ {
541
+ value: payload,
542
+ contractId,
543
+ },
544
+ {
545
+ value: argument,
546
+ },
547
+ ], traceSink, resolvedDefinition.replayBindingMode);
548
+ }
549
+ case "getTime":
550
+ return {
551
+ kind: "text",
552
+ value: this.activeReplayContext?.environment.offset ?? "",
553
+ };
554
+ case "ledgerTimeLt":
555
+ if (updateExpression.expression !== undefined) {
556
+ void this.evaluateExpressionOrThrow(updateExpression.expression, frame, traceSink);
557
+ }
558
+ return {
559
+ kind: "unit",
560
+ };
561
+ default:
562
+ throw new validation_error_js_1.ValidationError(`daml lf update expression '${updateExpression.kind}' is not supported yet`);
563
+ }
564
+ }
565
+ resolveEntrypointBindingValues(environment) {
566
+ if (environment.entrypoint.kind === "create") {
567
+ return environment.entrypoint.argument === undefined
568
+ ? []
569
+ : [{ value: environment.entrypoint.argument }];
570
+ }
571
+ const contractPayload = environment.entrypoint.contractId === undefined
572
+ ? undefined
573
+ : environment.contracts?.get(environment.entrypoint.contractId)?.payload;
574
+ const bindingValues = [];
575
+ if (contractPayload !== undefined) {
576
+ bindingValues.push({
577
+ value: contractPayload,
578
+ contractId: environment.entrypoint.contractId,
579
+ });
580
+ }
581
+ if (environment.entrypoint.argument !== undefined) {
582
+ bindingValues.push({
583
+ value: environment.entrypoint.argument,
584
+ });
585
+ }
586
+ return bindingValues;
587
+ }
588
+ evaluateReplayLambdaOrExpressionOrThrow(expression, frame, bindingValues, traceSink, bindingMode = "standard") {
589
+ if (expression.lambda === undefined) {
590
+ return this.evaluateExpressionOrThrow(expression, frame, traceSink);
591
+ }
592
+ const scopedFrame = this.deriveFrame(frame, frame.scope.createChild());
593
+ if (bindingMode === "templateChoice") {
594
+ const selfParameterName = expression.lambda.parameters[0];
595
+ const thisParameterName = expression.lambda.parameters[1];
596
+ const argumentParameterName = expression.lambda.parameters[2];
597
+ const contractId = bindingValues[0]?.contractId;
598
+ const payload = bindingValues[0];
599
+ const argument = bindingValues[1];
600
+ if (selfParameterName !== undefined && contractId !== undefined) {
601
+ scopedFrame.scope.setBinding(selfParameterName, {
602
+ kind: "contractId",
603
+ value: contractId,
604
+ });
605
+ }
606
+ if (thisParameterName !== undefined && payload !== undefined) {
607
+ scopedFrame.scope.setBinding(thisParameterName, this.hydrateRuntimeValue(payload.value, payload.contractId));
608
+ }
609
+ if (argumentParameterName !== undefined && argument !== undefined) {
610
+ scopedFrame.scope.setBinding(argumentParameterName, this.hydrateRuntimeValue(argument.value, argument.contractId));
611
+ }
612
+ }
613
+ else if (bindingMode === "exerciseWrapper") {
614
+ const thisParameterName = expression.lambda.parameters.at(-2);
615
+ const argumentParameterName = expression.lambda.parameters.at(-1);
616
+ const contractId = bindingValues[0]?.contractId;
617
+ if (thisParameterName !== undefined && contractId !== undefined) {
618
+ scopedFrame.scope.setBinding(thisParameterName, {
619
+ kind: "contractId",
620
+ value: contractId,
621
+ });
622
+ }
623
+ if (argumentParameterName !== undefined && bindingValues[1] !== undefined) {
624
+ scopedFrame.scope.setBinding(argumentParameterName, this.hydrateRuntimeValue(bindingValues[1].value, bindingValues[1].contractId));
625
+ }
626
+ }
627
+ else if (bindingMode === "createWrapper") {
628
+ const argumentParameterName = expression.lambda.parameters.at(-1);
629
+ const bindingValue = bindingValues[0];
630
+ if (argumentParameterName !== undefined && bindingValue !== undefined) {
631
+ scopedFrame.scope.setBinding(argumentParameterName, this.hydrateRuntimeValue(bindingValue.value, bindingValue.contractId));
632
+ }
633
+ }
634
+ else {
635
+ for (let index = 0; index < expression.lambda.parameters.length; index += 1) {
636
+ const bindingValue = bindingValues[index];
637
+ if (bindingValue === undefined) {
638
+ break;
639
+ }
640
+ scopedFrame.scope.setBinding(expression.lambda.parameters[index], this.hydrateRuntimeValue(bindingValue.value, bindingValue.contractId));
641
+ }
642
+ }
643
+ return this.evaluateExpressionOrThrow(expression.lambda.body, scopedFrame, traceSink);
644
+ }
645
+ hydrateRuntimeValue(value, contractId) {
646
+ if (value === undefined || value === null) {
647
+ return {
648
+ kind: "unit",
649
+ };
650
+ }
651
+ const embeddedContractId = this.readEmbeddedContractId(value);
652
+ if (embeddedContractId !== undefined) {
653
+ return {
654
+ kind: "contractId",
655
+ value: embeddedContractId,
656
+ };
657
+ }
658
+ const embeddedContractIdArray = this.readEmbeddedContractIdArray(value);
659
+ if (embeddedContractIdArray !== undefined) {
660
+ return {
661
+ kind: "contractId[]",
662
+ value: embeddedContractIdArray,
663
+ };
664
+ }
665
+ const embeddedParty = this.readEmbeddedParty(value);
666
+ if (embeddedParty !== undefined) {
667
+ return {
668
+ kind: "party",
669
+ value: embeddedParty,
670
+ };
671
+ }
672
+ if (value !== null
673
+ && typeof value === "object"
674
+ && "__damlLfInt64" in value
675
+ && typeof value.__damlLfInt64 === "string") {
676
+ return {
677
+ kind: "int64",
678
+ value: value.__damlLfInt64,
679
+ };
680
+ }
681
+ if (value !== null
682
+ && typeof value === "object"
683
+ && "__damlLfNumeric" in value
684
+ && typeof value.__damlLfNumeric === "string") {
685
+ return {
686
+ kind: "numeric",
687
+ value: value.__damlLfNumeric,
688
+ };
689
+ }
690
+ if (typeof value === "string") {
691
+ return {
692
+ kind: "text",
693
+ value,
694
+ };
695
+ }
696
+ if (typeof value === "boolean") {
697
+ return {
698
+ kind: "boolean",
699
+ value,
700
+ };
701
+ }
702
+ return {
703
+ kind: "ledgerValue",
704
+ value,
705
+ contractId,
706
+ };
707
+ }
708
+ createRecordRuntimeValue(fields) {
709
+ return this.canProjectRecordAsLedgerValue(fields)
710
+ ? this.hydrateRuntimeValue(Object.fromEntries(Object.entries(fields).map(([name, value]) => [
711
+ name,
712
+ this.unwrapRuntimeValue(value),
713
+ ])))
714
+ : {
715
+ kind: "record",
716
+ fields,
717
+ };
718
+ }
719
+ canProjectRecordAsLedgerValue(fields) {
720
+ return Object.values(fields).every((value) => {
721
+ if (value.kind === "record") {
722
+ return this.canProjectRecordAsLedgerValue(value.fields);
723
+ }
724
+ return value.kind !== "closure" && value.kind !== "builtin";
725
+ });
726
+ }
727
+ readEmbeddedContractId(value) {
728
+ if (value !== null
729
+ && typeof value === "object"
730
+ && daml_lf_runtime_value_js_1.DAML_LF_CONTRACT_ID_MARKER_KEY in value
731
+ && typeof value[daml_lf_runtime_value_js_1.DAML_LF_CONTRACT_ID_MARKER_KEY] === "string") {
732
+ return value[daml_lf_runtime_value_js_1.DAML_LF_CONTRACT_ID_MARKER_KEY];
733
+ }
734
+ if (value !== null
735
+ && typeof value === "object"
736
+ && "sum" in value
737
+ && value.sum !== null
738
+ && typeof value.sum === "object"
739
+ && "oneofKind" in value.sum
740
+ && value.sum.oneofKind === "contractId"
741
+ && "contractId" in value.sum
742
+ && typeof value.sum.contractId === "string") {
743
+ return value.sum.contractId;
744
+ }
745
+ return undefined;
746
+ }
747
+ readEmbeddedContractIdArray(value) {
748
+ if (!Array.isArray(value) || value.length === 0) {
749
+ return undefined;
750
+ }
751
+ const contractIds = value.map((item) => this.readEmbeddedContractId(item));
752
+ if (contractIds.some((contractId) => contractId === undefined)) {
753
+ return undefined;
754
+ }
755
+ return contractIds;
756
+ }
757
+ readEmbeddedParty(value) {
758
+ if (value !== null
759
+ && typeof value === "object"
760
+ && daml_lf_runtime_value_js_1.DAML_LF_PARTY_MARKER_KEY in value
761
+ && typeof value[daml_lf_runtime_value_js_1.DAML_LF_PARTY_MARKER_KEY] === "string") {
762
+ return value[daml_lf_runtime_value_js_1.DAML_LF_PARTY_MARKER_KEY];
763
+ }
764
+ if (value !== null
765
+ && typeof value === "object"
766
+ && "sum" in value
767
+ && value.sum !== null
768
+ && typeof value.sum === "object"
769
+ && "oneofKind" in value.sum
770
+ && value.sum.oneofKind === "party"
771
+ && "party" in value.sum
772
+ && typeof value.sum.party === "string") {
773
+ return value.sum.party;
774
+ }
775
+ return undefined;
776
+ }
777
+ readLedgerRecordField(rawValue, fieldName) {
778
+ const semanticField = this.resolveSemanticRecordField(rawValue, fieldName);
779
+ if (fieldName in rawValue) {
780
+ return this.coerceSemanticFieldValue(this.attachSemanticRecordId(rawValue[fieldName], semanticField?.type.typeConReference), semanticField?.type);
781
+ }
782
+ if (semanticField === undefined) {
783
+ return undefined;
784
+ }
785
+ return this.coerceSemanticFieldValue(this.attachSemanticRecordId(rawValue[String(semanticField.index)], semanticField.type.typeConReference), semanticField.type);
786
+ }
787
+ createLedgerRecordFieldUpdate(rawValue, fieldName, nextValue) {
788
+ if (fieldName in rawValue) {
789
+ return {
790
+ [fieldName]: nextValue,
791
+ };
792
+ }
793
+ const semanticField = this.resolveSemanticRecordField(rawValue, fieldName);
794
+ return semanticField === undefined
795
+ ? {
796
+ [fieldName]: nextValue,
797
+ }
798
+ : {
799
+ [String(semanticField.index)]: nextValue,
800
+ };
801
+ }
802
+ resolveSemanticRecordField(rawValue, fieldName) {
803
+ const recordId = rawValue[daml_lf_runtime_value_js_1.DAML_LF_RECORD_ID_MARKER_KEY];
804
+ if (recordId === undefined
805
+ || recordId === null
806
+ || typeof recordId !== "object") {
807
+ return undefined;
808
+ }
809
+ const typedRecordId = recordId;
810
+ const reference = new type_con_reference_js_1.TypeConReference({
811
+ packageId: typeof typedRecordId.packageId === "string"
812
+ ? typedRecordId.packageId
813
+ : "",
814
+ moduleName: typeof typedRecordId.moduleName === "string"
815
+ ? typedRecordId.moduleName
816
+ : "",
817
+ name: typeof typedRecordId.entityName === "string"
818
+ ? typedRecordId.entityName
819
+ : "",
820
+ });
821
+ try {
822
+ const fields = this.semanticModel.getRecordFieldsOrThrow(reference);
823
+ const semanticIndex = fields.findIndex((field) => field.name === fieldName);
824
+ if (semanticIndex < 0) {
825
+ return undefined;
826
+ }
827
+ return {
828
+ index: semanticIndex,
829
+ type: fields[semanticIndex]?.type ?? new daml_lf_type_js_1.DamlLfType({}),
830
+ };
831
+ }
832
+ catch {
833
+ return undefined;
834
+ }
835
+ }
836
+ coerceSemanticFieldValue(value, type) {
837
+ if (type?.builtinType === daml_lf_builtin_type_js_1.DamlLfBuiltinType.int64) {
838
+ return typeof value === "string" ? { __damlLfInt64: value } : value;
839
+ }
840
+ if (type?.builtinType === daml_lf_builtin_type_js_1.DamlLfBuiltinType.party) {
841
+ return typeof value === "string"
842
+ ? { [daml_lf_runtime_value_js_1.DAML_LF_PARTY_MARKER_KEY]: value }
843
+ : value;
844
+ }
845
+ return value;
846
+ }
847
+ attachSemanticRecordId(value, typeConReference) {
848
+ if (typeConReference === undefined
849
+ || value === null
850
+ || value === undefined
851
+ || typeof value !== "object"
852
+ || Array.isArray(value)
853
+ || daml_lf_runtime_value_js_1.DAML_LF_RECORD_ID_MARKER_KEY in value) {
854
+ return value;
855
+ }
856
+ return {
857
+ ...value,
858
+ [daml_lf_runtime_value_js_1.DAML_LF_RECORD_ID_MARKER_KEY]: {
859
+ packageId: typeConReference.packageId,
860
+ moduleName: typeConReference.moduleName,
861
+ entityName: typeConReference.name,
862
+ },
863
+ };
864
+ }
865
+ normalizeSemanticRecordValue(value, typeConReference) {
866
+ if (typeConReference === undefined
867
+ || value === null
868
+ || value === undefined
869
+ || typeof value !== "object"
870
+ || Array.isArray(value)) {
871
+ return value;
872
+ }
873
+ try {
874
+ const fields = this.semanticModel.getRecordFieldsOrThrow(typeConReference);
875
+ const rawValue = value;
876
+ const normalizedValue = {};
877
+ const consumedKeys = new Set();
878
+ for (const [index, field] of fields.entries()) {
879
+ const directValue = rawValue[field.name];
880
+ const positionalKey = String(index);
881
+ const positionalValue = rawValue[positionalKey];
882
+ const nextValue = directValue !== undefined ? directValue : positionalValue;
883
+ if (nextValue === undefined) {
884
+ continue;
885
+ }
886
+ normalizedValue[field.name] = this.normalizeSemanticRecordValue(nextValue, field.type.typeConReference);
887
+ consumedKeys.add(field.name);
888
+ consumedKeys.add(positionalKey);
889
+ }
890
+ for (const [key, item] of Object.entries(rawValue)) {
891
+ if (!consumedKeys.has(key)) {
892
+ normalizedValue[key] = item;
893
+ }
894
+ }
895
+ return normalizedValue;
896
+ }
897
+ catch {
898
+ return value;
899
+ }
900
+ }
901
+ toReplayTemplateId(templateId) {
902
+ return templateId === undefined
903
+ ? undefined
904
+ : {
905
+ packageId: templateId.packageId,
906
+ moduleName: templateId.moduleName,
907
+ entityName: templateId.templateName,
908
+ };
909
+ }
910
+ readContractId(value) {
911
+ if ((value.kind === "contractId" || value.kind === "text")
912
+ && "value" in value
913
+ && typeof value.value === "string") {
914
+ return value.value;
915
+ }
916
+ if (value.kind === "ledgerValue"
917
+ && "contractId" in value
918
+ && typeof value.contractId === "string") {
919
+ return value.contractId;
920
+ }
921
+ throw new validation_error_js_1.ValidationError(`daml lf expected a contract id-compatible value, got '${value.kind}'`);
922
+ }
923
+ unwrapRuntimeValue(value) {
924
+ if (value.kind === "record") {
925
+ const recordFields = value.fields;
926
+ return Object.fromEntries(Object.entries(recordFields).map(([name, fieldValue]) => [
927
+ name,
928
+ this.unwrapRuntimeValue(fieldValue),
929
+ ]));
930
+ }
931
+ if (value.kind === "contractId[]") {
932
+ return value.value.map((contractId) => ({
933
+ [daml_lf_runtime_value_js_1.DAML_LF_CONTRACT_ID_MARKER_KEY]: contractId,
934
+ }));
935
+ }
936
+ if (value.kind === "contractId") {
937
+ return {
938
+ [daml_lf_runtime_value_js_1.DAML_LF_CONTRACT_ID_MARKER_KEY]: value.value,
939
+ };
940
+ }
941
+ if (value.kind === "party") {
942
+ return {
943
+ [daml_lf_runtime_value_js_1.DAML_LF_PARTY_MARKER_KEY]: value.value,
944
+ };
945
+ }
946
+ if (value.kind === "builtin"
947
+ && "builtinFunction" in value
948
+ && value.builtinFunction === "TEXTMAP_EMPTY") {
949
+ return {};
950
+ }
951
+ if (value.kind === "builtin"
952
+ && "builtinFunction" in value
953
+ && value.builtinFunction === "GENMAP_EMPTY") {
954
+ return [];
955
+ }
956
+ if ("value" in value) {
957
+ return value.value;
958
+ }
959
+ if (value.kind === "unit") {
960
+ return null;
961
+ }
962
+ return value.kind;
963
+ }
964
+ readRuntimeListOrThrow(value) {
965
+ if (value.kind === "contractId[]") {
966
+ return value.value.map((contractId) => ({
967
+ kind: "contractId",
968
+ value: contractId,
969
+ }));
970
+ }
971
+ if (value.kind === "ledgerValue"
972
+ && "value" in value
973
+ && Array.isArray(value.value)) {
974
+ return value.value.map((item) => this.hydrateRuntimeValue(item));
975
+ }
976
+ throw new validation_error_js_1.ValidationError(`daml lf expected a list-compatible value, got '${value.kind}'`);
977
+ }
978
+ matchesBuiltinConstructor(builtinConstructor, runtimeValue) {
979
+ switch (builtinConstructor) {
980
+ case "true":
981
+ return runtimeValue.kind === "boolean" && runtimeValue.value === true;
982
+ case "false":
983
+ return runtimeValue.kind === "boolean" && runtimeValue.value === false;
984
+ case "unit":
985
+ return runtimeValue.kind === "unit";
986
+ default:
987
+ return false;
988
+ }
989
+ }
990
+ matchesCaseAlternative(alternative, runtimeValue) {
991
+ if (alternative.patternKind === "default") {
992
+ return true;
993
+ }
994
+ if (alternative.patternKind === "builtinCon") {
995
+ return this.matchesBuiltinConstructor(alternative.builtinConstructor, runtimeValue);
996
+ }
997
+ if (alternative.patternKind === "optionalNone") {
998
+ return runtimeValue.kind === "unit";
999
+ }
1000
+ if (alternative.patternKind === "optionalSome") {
1001
+ return runtimeValue.kind !== "unit";
1002
+ }
1003
+ if (alternative.patternKind === "enum") {
1004
+ return (runtimeValue.kind === "text"
1005
+ && runtimeValue.value === alternative.constructorName);
1006
+ }
1007
+ if (alternative.patternKind === "nil") {
1008
+ const unwrapped = this.unwrapRuntimeValue(runtimeValue);
1009
+ return Array.isArray(unwrapped) && unwrapped.length === 0;
1010
+ }
1011
+ if (alternative.patternKind === "cons") {
1012
+ const unwrapped = this.unwrapRuntimeValue(runtimeValue);
1013
+ return Array.isArray(unwrapped) && unwrapped.length > 0;
1014
+ }
1015
+ const rawValue = this.unwrapRuntimeValue(runtimeValue);
1016
+ return (rawValue !== null
1017
+ && typeof rawValue === "object"
1018
+ && "constructor" in rawValue
1019
+ && rawValue.constructor
1020
+ === alternative.constructorName);
1021
+ }
1022
+ emitReplayEffect(effect, expression, frame, traceSink) {
1023
+ this.activeReplayContext?.effects.push(effect);
1024
+ traceSink?.onStep({
1025
+ kind: daml_lf_step_kind_js_1.DamlLfStepKind.stateEffect,
1026
+ expression,
1027
+ frame,
1028
+ locals: frame.scope.snapshotBindings(),
1029
+ stateEffect: effect,
1030
+ });
1031
+ }
1032
+ isUpdateDrivenEntrypointExpression(expression) {
1033
+ if (expression.updateExpression !== undefined) {
1034
+ return true;
1035
+ }
1036
+ if (expression.lambda !== undefined) {
1037
+ return this.isUpdateDrivenEntrypointExpression(expression.lambda.body);
1038
+ }
1039
+ if (expression.letExpression !== undefined) {
1040
+ return this.isUpdateDrivenEntrypointExpression(expression.letExpression.body);
1041
+ }
1042
+ return false;
1043
+ }
1044
+ applyFunctionOrThrow(functionValue, argumentValues, traceSink) {
1045
+ if (functionValue.kind !== "closure") {
1046
+ if (functionValue.kind === "builtin") {
1047
+ const builtinValue = functionValue;
1048
+ if (builtinValue.builtinFunction === "FOLDL") {
1049
+ return this.applyFoldlBuiltinOrThrow(builtinValue, argumentValues, traceSink);
1050
+ }
1051
+ if (builtinValue.builtinFunction === "FOLDR") {
1052
+ return this.applyFoldrBuiltinOrThrow(builtinValue, argumentValues, traceSink);
1053
+ }
1054
+ return this.builtinDispatch.applyOrThrow(builtinValue, argumentValues);
1055
+ }
1056
+ throw new validation_error_js_1.ValidationError(`daml lf expression is not callable (${functionValue.kind})`);
1057
+ }
1058
+ const closure = functionValue;
1059
+ const boundParameterCount = Math.min(closure.parameters.length, argumentValues.length);
1060
+ const remainingParameters = closure.parameters.slice(boundParameterCount);
1061
+ const remainingArguments = argumentValues.slice(boundParameterCount);
1062
+ const scope = closure.frame.scope.createChild();
1063
+ for (let index = 0; index < boundParameterCount; index += 1) {
1064
+ scope.setBinding(closure.parameters[index], argumentValues[index]);
1065
+ }
1066
+ const appliedFrame = this.deriveFrame(closure.frame, scope);
1067
+ const intermediateValue = remainingParameters.length === 0
1068
+ ? this.evaluateExpressionOrThrow(closure.body, appliedFrame, traceSink)
1069
+ : {
1070
+ kind: "closure",
1071
+ parameters: remainingParameters,
1072
+ body: closure.body,
1073
+ frame: appliedFrame,
1074
+ };
1075
+ return remainingArguments.length === 0
1076
+ ? intermediateValue
1077
+ : this.applyFunctionOrThrow(intermediateValue, remainingArguments, traceSink);
1078
+ }
1079
+ applyFoldlBuiltinOrThrow(builtinValue, argumentValues, traceSink) {
1080
+ const appliedArguments = [
1081
+ ...builtinValue.appliedArguments,
1082
+ ...argumentValues,
1083
+ ];
1084
+ if (appliedArguments.length < 3) {
1085
+ return {
1086
+ kind: "builtin",
1087
+ builtinFunction: builtinValue.builtinFunction,
1088
+ appliedArguments,
1089
+ };
1090
+ }
1091
+ const foldFunction = appliedArguments[0];
1092
+ let accumulator = appliedArguments[1];
1093
+ const listItems = this.readRuntimeListOrThrow(appliedArguments[2]);
1094
+ const remainingArguments = appliedArguments.slice(3);
1095
+ for (const item of listItems) {
1096
+ accumulator = this.applyFunctionOrThrow(this.applyFunctionOrThrow(foldFunction, [accumulator], traceSink), [item], traceSink);
1097
+ }
1098
+ return remainingArguments.length === 0
1099
+ ? accumulator
1100
+ : this.applyFunctionOrThrow(accumulator, remainingArguments, traceSink);
1101
+ }
1102
+ applyFoldrBuiltinOrThrow(builtinValue, argumentValues, traceSink) {
1103
+ const appliedArguments = [
1104
+ ...builtinValue.appliedArguments,
1105
+ ...argumentValues,
1106
+ ];
1107
+ if (appliedArguments.length < 3) {
1108
+ return {
1109
+ kind: "builtin",
1110
+ builtinFunction: builtinValue.builtinFunction,
1111
+ appliedArguments,
1112
+ };
1113
+ }
1114
+ const foldFunction = appliedArguments[0];
1115
+ let accumulator = appliedArguments[1];
1116
+ const listItems = this.readRuntimeListOrThrow(appliedArguments[2]);
1117
+ const remainingArguments = appliedArguments.slice(3);
1118
+ for (const item of [...listItems].reverse()) {
1119
+ accumulator = this.applyFunctionOrThrow(this.applyFunctionOrThrow(foldFunction, [item], traceSink), [accumulator], traceSink);
1120
+ }
1121
+ return remainingArguments.length === 0
1122
+ ? accumulator
1123
+ : this.applyFunctionOrThrow(accumulator, remainingArguments, traceSink);
1124
+ }
1125
+ deriveFrame(frame, scope) {
1126
+ return new daml_lf_runtime_frame_js_1.DamlLfRuntimeFrame({
1127
+ frameId: frame.frameId,
1128
+ packageId: frame.packageId,
1129
+ moduleName: frame.moduleName,
1130
+ definition: frame.definition,
1131
+ scope,
1132
+ });
1133
+ }
1134
+ }
1135
+ exports.DamlLfEvaluator = DamlLfEvaluator;