@distrohelena/canton-typescript-sdk 0.1.4 → 0.1.6

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 (254) hide show
  1. package/README.md +333 -1
  2. package/dist/client/canton-client-options.d.ts +3 -0
  3. package/dist/client/canton-client-options.js +2 -0
  4. package/dist/client/service-registry.js +4 -3
  5. package/dist/core/errors/grpc-transport-error.d.ts +14 -0
  6. package/dist/core/errors/grpc-transport-error.js +76 -0
  7. package/dist/core/signing/sign-command-request.d.ts +4 -0
  8. package/dist/core/signing/sign-command-request.js +4 -0
  9. package/dist/core/signing/sign-command-result.d.ts +2 -0
  10. package/dist/core/signing/sign-command-result.js +9 -0
  11. package/dist/core/transports/transport.interface.d.ts +2 -2
  12. package/dist/core/types/canton-hash-purpose.d.ts +2 -1
  13. package/dist/core/types/canton-hash-purpose.js +1 -0
  14. package/dist/core/types/commands/create-and-exercise-command.js +1 -1
  15. package/dist/core/types/commands/exercise-by-key-command.js +2 -2
  16. package/dist/core/types/commands/exercise-command.js +2 -2
  17. package/dist/core/types/daml-numeric.d.ts +6 -0
  18. package/dist/core/types/daml-numeric.js +14 -0
  19. package/dist/core/types/daml-party.d.ts +6 -0
  20. package/dist/core/types/daml-party.js +14 -0
  21. package/dist/core/types/requests/create-decentralized-party-request.d.ts +41 -0
  22. package/dist/core/types/requests/create-decentralized-party-request.js +82 -0
  23. package/dist/core/types/requests/create-external-party-request.d.ts +42 -0
  24. package/dist/core/types/requests/create-external-party-request.js +47 -0
  25. package/dist/core/types/requests/finalize-decentralized-party-request.d.ts +39 -0
  26. package/dist/core/types/requests/finalize-decentralized-party-request.js +42 -0
  27. package/dist/core/types/requests/get-active-contracts-page-request.d.ts +15 -2
  28. package/dist/core/types/requests/get-active-contracts-page-request.js +4 -0
  29. package/dist/core/types/requests/submit-command-request.d.ts +2 -0
  30. package/dist/core/types/requests/submit-command-request.js +2 -0
  31. package/dist/core/types/topology/topology-signature-format.d.ts +2 -1
  32. package/dist/core/types/topology/topology-signature-format.js +1 -0
  33. package/dist/daml-lf/container/dar-archive-entry.d.ts +8 -0
  34. package/dist/daml-lf/container/dar-archive-entry.js +8 -0
  35. package/dist/daml-lf/container/dar-archive-loader.js +14 -0
  36. package/dist/daml-lf/container/dar-archive.d.ts +6 -0
  37. package/dist/daml-lf/container/dar-archive.js +4 -0
  38. package/dist/daml-lf/container/dar-source-bundle-loader.d.ts +5 -0
  39. package/dist/daml-lf/container/dar-source-bundle-loader.js +33 -0
  40. package/dist/daml-lf/container/dar-source-bundle.d.ts +45 -0
  41. package/dist/daml-lf/container/dar-source-bundle.js +11 -0
  42. package/dist/daml-lf/container/dar-source-file-entry.d.ts +8 -0
  43. package/dist/daml-lf/container/dar-source-file-entry.js +8 -0
  44. package/dist/daml-lf/daml-lf-compilation.d.ts +12 -0
  45. package/dist/daml-lf/daml-lf-compilation.js +35 -0
  46. package/dist/daml-lf/index.d.ts +11 -0
  47. package/dist/daml-lf/index.js +10 -0
  48. package/dist/daml-lf/interpreter/daml-lf-builtin-dispatch.d.ts +43 -0
  49. package/dist/daml-lf/interpreter/daml-lf-builtin-dispatch.js +933 -0
  50. package/dist/daml-lf/interpreter/daml-lf-evaluator.d.ts +95 -0
  51. package/dist/daml-lf/interpreter/daml-lf-evaluator.js +1131 -0
  52. package/dist/daml-lf/interpreter/daml-lf-interpreter-scaffold.d.ts +3 -0
  53. package/dist/daml-lf/interpreter/daml-lf-interpreter-scaffold.js +6 -1
  54. package/dist/daml-lf/interpreter/daml-lf-lexical-scope.d.ts +13 -0
  55. package/dist/daml-lf/interpreter/daml-lf-lexical-scope.js +46 -0
  56. package/dist/daml-lf/interpreter/daml-lf-runtime-frame.d.ts +16 -0
  57. package/dist/daml-lf/interpreter/daml-lf-runtime-frame.js +15 -0
  58. package/dist/daml-lf/interpreter/daml-lf-runtime-value.d.ts +21 -0
  59. package/dist/daml-lf/interpreter/daml-lf-runtime-value.js +4 -1
  60. package/dist/daml-lf/interpreter/daml-lf-step-kind.d.ts +7 -0
  61. package/dist/daml-lf/interpreter/daml-lf-step-kind.js +8 -0
  62. package/dist/daml-lf/interpreter/daml-lf-trace-sink.interface.d.ts +30 -0
  63. package/dist/daml-lf/interpreter/daml-lf-trace-sink.interface.js +1 -0
  64. package/dist/daml-lf/model/daml-lf-builtin-type.d.ts +3 -0
  65. package/dist/daml-lf/model/daml-lf-builtin-type.js +3 -0
  66. package/dist/daml-lf/model/daml-lf-choice.d.ts +5 -0
  67. package/dist/daml-lf/model/daml-lf-choice.js +4 -0
  68. package/dist/daml-lf/model/daml-lf-expression-path.d.ts +2 -0
  69. package/dist/daml-lf/model/daml-lf-expression-path.js +81 -0
  70. package/dist/daml-lf/model/daml-lf-expression.d.ts +146 -0
  71. package/dist/daml-lf/model/daml-lf-expression.js +71 -0
  72. package/dist/daml-lf/model/daml-lf-template.d.ts +2 -0
  73. package/dist/daml-lf/model/daml-lf-template.js +2 -0
  74. package/dist/daml-lf/model/daml-lf-type.d.ts +2 -0
  75. package/dist/daml-lf/model/daml-lf-type.js +4 -0
  76. package/dist/daml-lf/model/lf-2-model-mapper.d.ts +5 -0
  77. package/dist/daml-lf/model/lf-2-model-mapper.js +445 -12
  78. package/dist/debugger/errors/replay-determinism.exception.d.ts +3 -0
  79. package/dist/debugger/errors/replay-determinism.exception.js +3 -0
  80. package/dist/debugger/errors/replay-missing-package.exception.d.ts +3 -0
  81. package/dist/debugger/errors/replay-missing-package.exception.js +3 -0
  82. package/dist/debugger/errors/replay-missing-source.exception.d.ts +3 -0
  83. package/dist/debugger/errors/replay-missing-source.exception.js +3 -0
  84. package/dist/debugger/errors/replay-source-map.exception.d.ts +3 -0
  85. package/dist/debugger/errors/replay-source-map.exception.js +3 -0
  86. package/dist/debugger/errors/replay-state-hydration.exception.d.ts +3 -0
  87. package/dist/debugger/errors/replay-state-hydration.exception.js +3 -0
  88. package/dist/debugger/errors/replay-unsupported-lf-construct.exception.d.ts +3 -0
  89. package/dist/debugger/errors/replay-unsupported-lf-construct.exception.js +3 -0
  90. package/dist/debugger/errors/replay-unsupported-update.exception.d.ts +3 -0
  91. package/dist/debugger/errors/replay-unsupported-update.exception.js +3 -0
  92. package/dist/debugger/index.d.ts +31 -0
  93. package/dist/debugger/index.js +31 -0
  94. package/dist/debugger/ledger-replay-debugger-client.d.ts +31 -0
  95. package/dist/debugger/ledger-replay-debugger-client.js +53 -0
  96. package/dist/debugger/replay/ledger-replay-environment-builder.d.ts +95 -0
  97. package/dist/debugger/replay/ledger-replay-environment-builder.js +249 -0
  98. package/dist/debugger/replay/ledger-replay-session-loader.d.ts +78 -0
  99. package/dist/debugger/replay/ledger-replay-session-loader.js +565 -0
  100. package/dist/debugger/replay/replay-artifact-resolver.d.ts +30 -0
  101. package/dist/debugger/replay/replay-artifact-resolver.js +210 -0
  102. package/dist/debugger/replay/replay-determinism-validator.d.ts +12 -0
  103. package/dist/debugger/replay/replay-determinism-validator.js +161 -0
  104. package/dist/debugger/replay/replay-entrypoint-definition-resolver.d.ts +40 -0
  105. package/dist/debugger/replay/replay-entrypoint-definition-resolver.js +337 -0
  106. package/dist/debugger/replay/replay-entrypoint.d.ts +22 -0
  107. package/dist/debugger/replay/replay-entrypoint.js +14 -0
  108. package/dist/debugger/replay/replay-ledger-value-normalizer.d.ts +7 -0
  109. package/dist/debugger/replay/replay-ledger-value-normalizer.js +194 -0
  110. package/dist/debugger/replay/replay-update-loader.d.ts +24 -0
  111. package/dist/debugger/replay/replay-update-loader.js +94 -0
  112. package/dist/debugger/replay/replay-update-visibility-validator.d.ts +19 -0
  113. package/dist/debugger/replay/replay-update-visibility-validator.js +19 -0
  114. package/dist/debugger/session/in-memory-replay-session-store.d.ts +27 -0
  115. package/dist/debugger/session/in-memory-replay-session-store.js +109 -0
  116. package/dist/debugger/session/replay-phase.d.ts +7 -0
  117. package/dist/debugger/session/replay-phase.js +8 -0
  118. package/dist/debugger/session/replay-scope.d.ts +10 -0
  119. package/dist/debugger/session/replay-scope.js +10 -0
  120. package/dist/debugger/session/replay-session-metadata.d.ts +10 -0
  121. package/dist/debugger/session/replay-session-metadata.js +10 -0
  122. package/dist/debugger/session/replay-session-request.d.ts +6 -0
  123. package/dist/debugger/session/replay-session-request.js +10 -0
  124. package/dist/debugger/session/replay-session.d.ts +12 -0
  125. package/dist/debugger/session/replay-session.js +10 -0
  126. package/dist/debugger/session/replay-source-location.d.ts +17 -0
  127. package/dist/debugger/session/replay-source-location.js +16 -0
  128. package/dist/debugger/session/replay-stack-frame.d.ts +8 -0
  129. package/dist/debugger/session/replay-stack-frame.js +8 -0
  130. package/dist/debugger/session/replay-state-delta.d.ts +29 -0
  131. package/dist/debugger/session/replay-state-delta.js +24 -0
  132. package/dist/debugger/session/replay-step-advance-result.d.ts +24 -0
  133. package/dist/debugger/session/replay-step-advance-result.js +16 -0
  134. package/dist/debugger/session/replay-step.d.ts +30 -0
  135. package/dist/debugger/session/replay-step.js +24 -0
  136. package/dist/debugger/session/replay-value-preview.d.ts +8 -0
  137. package/dist/debugger/session/replay-value-preview.js +15 -0
  138. package/dist/debugger/source/daml-source-mapper.d.ts +12 -0
  139. package/dist/debugger/source/daml-source-mapper.js +21 -0
  140. package/dist/debugger/source/dar-source-map-metadata.d.ts +26 -0
  141. package/dist/debugger/source/dar-source-map-metadata.js +10 -0
  142. package/dist/debugger/source/source-coverage-validator.d.ts +8 -0
  143. package/dist/debugger/source/source-coverage-validator.js +16 -0
  144. package/dist/debugger/source/source-indexed-compilation.d.ts +45 -0
  145. package/dist/debugger/source/source-indexed-compilation.js +110 -0
  146. package/dist/debugger/source/source-mapping-precision.d.ts +5 -0
  147. package/dist/debugger/source/source-mapping-precision.js +4 -0
  148. package/dist/index.d.ts +20 -0
  149. package/dist/index.js +12 -0
  150. package/dist/query/cache/memory-query-cache.d.ts +9 -0
  151. package/dist/query/cache/memory-query-cache.js +24 -0
  152. package/dist/query/cache/query-cache-store.d.ts +5 -0
  153. package/dist/query/cache/query-cache-store.js +1 -0
  154. package/dist/query/canton-manager-options.d.ts +17 -0
  155. package/dist/query/canton-manager-options.js +1 -0
  156. package/dist/query/canton-manager.d.ts +11 -0
  157. package/dist/query/canton-manager.js +42 -0
  158. package/dist/query/errors/pqs-query-error.d.ts +10 -0
  159. package/dist/query/errors/pqs-query-error.js +11 -0
  160. package/dist/query/errors/pqs-schema-profile-error.d.ts +3 -0
  161. package/dist/query/errors/pqs-schema-profile-error.js +3 -0
  162. package/dist/query/errors/query-capability-error.d.ts +7 -0
  163. package/dist/query/errors/query-capability-error.js +10 -0
  164. package/dist/query/grpc/grpc-contract-query-client.d.ts +32 -0
  165. package/dist/query/grpc/grpc-contract-query-client.js +126 -0
  166. package/dist/query/model-types.d.ts +258 -0
  167. package/dist/query/model-types.js +14 -0
  168. package/dist/query/pqs/pqs-pool.d.ts +13 -0
  169. package/dist/query/pqs/pqs-pool.js +18 -0
  170. package/dist/query/pqs/pqs-query-client.d.ts +49 -0
  171. package/dist/query/pqs/pqs-query-client.js +324 -0
  172. package/dist/query/pqs/pqs-schema-profile.d.ts +25 -0
  173. package/dist/query/pqs/pqs-schema-profile.js +120 -0
  174. package/dist/query/pqs/pqs-sql-compiler.d.ts +7 -0
  175. package/dist/query/pqs/pqs-sql-compiler.js +132 -0
  176. package/dist/query/pqs/read-only-sql.d.ts +1 -0
  177. package/dist/query/pqs/read-only-sql.js +35 -0
  178. package/dist/query/query-client.d.ts +61 -0
  179. package/dist/query/query-client.js +1 -0
  180. package/dist/query/query-source.d.ts +4 -0
  181. package/dist/query/query-source.js +5 -0
  182. package/dist/services/commands/command-payload-builder.js +3 -3
  183. package/dist/services/commands/command-submission-pipeline.js +1 -7
  184. package/dist/services/party-management/decentralized-party-lifecycle.d.ts +6 -0
  185. package/dist/services/party-management/decentralized-party-lifecycle.js +82 -0
  186. package/dist/services/party-management/party-management-service-client.d.ts +16 -1
  187. package/dist/services/party-management/party-management-service-client.js +142 -1
  188. package/dist/services/topology-manager-write/topology-signed-transaction-assembler.js +4 -0
  189. package/dist/testing/campaign/campaign-artifact.d.ts +20 -0
  190. package/dist/testing/campaign/campaign-artifact.js +147 -0
  191. package/dist/testing/campaign/campaign-definition.d.ts +9 -0
  192. package/dist/testing/campaign/campaign-definition.js +78 -0
  193. package/dist/testing/campaign/campaign-metrics.d.ts +32 -0
  194. package/dist/testing/campaign/campaign-metrics.js +26 -0
  195. package/dist/testing/campaign/campaign-model.d.ts +11 -0
  196. package/dist/testing/campaign/campaign-model.js +21 -0
  197. package/dist/testing/campaign/campaign-runner.d.ts +99 -0
  198. package/dist/testing/campaign/campaign-runner.js +194 -0
  199. package/dist/testing/campaign/campaign-scheduler.d.ts +40 -0
  200. package/dist/testing/campaign/campaign-scheduler.js +75 -0
  201. package/dist/testing/campaign/campaign-types.d.ts +52 -0
  202. package/dist/testing/campaign/campaign-types.js +11 -0
  203. package/dist/testing/daml/daml-action-arbitrary.d.ts +13 -0
  204. package/dist/testing/daml/daml-action-arbitrary.js +24 -0
  205. package/dist/testing/daml/daml-choice-action-arbitrary.d.ts +18 -0
  206. package/dist/testing/daml/daml-choice-action-arbitrary.js +27 -0
  207. package/dist/testing/daml/daml-create-action-arbitrary.d.ts +19 -0
  208. package/dist/testing/daml/daml-create-action-arbitrary.js +34 -0
  209. package/dist/testing/daml/daml-testing-catalog.d.ts +38 -0
  210. package/dist/testing/daml/daml-testing-catalog.js +40 -0
  211. package/dist/testing/daml/daml-value-arbitrary.d.ts +8 -0
  212. package/dist/testing/daml/daml-value-arbitrary.js +43 -0
  213. package/dist/testing/daml/declarative-campaign-arbitrary.d.ts +15 -0
  214. package/dist/testing/daml/declarative-campaign-arbitrary.js +30 -0
  215. package/dist/testing/errors/invariant-campaign-failure.d.ts +24 -0
  216. package/dist/testing/errors/invariant-campaign-failure.js +37 -0
  217. package/dist/testing/errors/testing-configuration-error.d.ts +3 -0
  218. package/dist/testing/errors/testing-configuration-error.js +6 -0
  219. package/dist/testing/handlers/handler.d.ts +19 -0
  220. package/dist/testing/handlers/handler.js +31 -0
  221. package/dist/testing/index.d.ts +22 -0
  222. package/dist/testing/index.js +22 -0
  223. package/dist/testing/runtime/campaign-isolation.d.ts +14 -0
  224. package/dist/testing/runtime/campaign-isolation.js +23 -0
  225. package/dist/testing/runtime/canton-test-runtime.d.ts +58 -0
  226. package/dist/testing/runtime/canton-test-runtime.js +138 -0
  227. package/dist/testing/runtime/declarative-action-executor.d.ts +16 -0
  228. package/dist/testing/runtime/declarative-action-executor.js +41 -0
  229. package/dist/testing/targets/target.d.ts +49 -0
  230. package/dist/testing/targets/target.js +121 -0
  231. package/dist/transports/grpc/grpc-channel-factory.d.ts +4 -0
  232. package/dist/transports/grpc/grpc-channel-factory.js +42 -1
  233. package/dist/transports/grpc/grpc-transport.d.ts +2 -2
  234. package/dist/transports/grpc/grpc-transport.js +42 -3
  235. package/dist/transports/grpc/mappers/commands-mapper.d.ts +10 -2
  236. package/dist/transports/grpc/mappers/commands-mapper.js +30 -12
  237. package/dist/transports/grpc/mappers/contracts-mapper.d.ts +3 -1
  238. package/dist/transports/grpc/mappers/contracts-mapper.js +16 -3
  239. package/dist/transports/grpc/mappers/interactive-command-mapper.d.ts +15 -0
  240. package/dist/transports/grpc/mappers/interactive-command-mapper.js +54 -0
  241. package/dist/transports/grpc/mappers/topology-manager-write-mapper.js +59 -1
  242. package/dist/transports/json/json-transport.d.ts +2 -2
  243. package/dist/transports/json/json-transport.js +2 -2
  244. package/dist/transports/json/mappers/commands-mapper.js +23 -9
  245. package/node/.generated/start-local/additional-config.extra-participants.conf +37 -0
  246. package/node/.generated/start-local/additional-config.extra-validators.conf +35 -0
  247. package/node/.generated/start-local/compose-extra-participants.yaml +147 -0
  248. package/node/.generated/start-local/extra-participants.env +30 -0
  249. package/node/es256-jwt.mjs +177 -0
  250. package/node/start-local.sh +886 -0
  251. package/node/stop-local.sh +200 -0
  252. package/node/test-start-local.sh +354 -0
  253. package/node/test-stop-local.sh +112 -0
  254. package/package.json +21 -2
@@ -0,0 +1,31 @@
1
+ export { LedgerReplayDebuggerClient } from "./ledger-replay-debugger-client.js";
2
+ export { ReplayDeterminismException } from "./errors/replay-determinism.exception.js";
3
+ export { ReplayMissingPackageException } from "./errors/replay-missing-package.exception.js";
4
+ export { ReplayMissingSourceException } from "./errors/replay-missing-source.exception.js";
5
+ export { ReplaySourceMapException } from "./errors/replay-source-map.exception.js";
6
+ export { ReplayStateHydrationException } from "./errors/replay-state-hydration.exception.js";
7
+ export { ReplayUnsupportedLfConstructException } from "./errors/replay-unsupported-lf-construct.exception.js";
8
+ export { ReplayUnsupportedUpdateException } from "./errors/replay-unsupported-update.exception.js";
9
+ export { LedgerReplaySessionLoader } from "./replay/ledger-replay-session-loader.js";
10
+ export { LedgerReplayEnvironmentBuilder } from "./replay/ledger-replay-environment-builder.js";
11
+ export { ReplayArtifactResolver } from "./replay/replay-artifact-resolver.js";
12
+ export { ReplayDeterminismValidator } from "./replay/replay-determinism-validator.js";
13
+ export { ReplayEntrypointDefinitionResolver } from "./replay/replay-entrypoint-definition-resolver.js";
14
+ export { ReplayEntrypoint } from "./replay/replay-entrypoint.js";
15
+ export { ReplayUpdateLoader } from "./replay/replay-update-loader.js";
16
+ export { ReplayPhase } from "./session/replay-phase.js";
17
+ export { InMemoryReplaySessionStore } from "./session/in-memory-replay-session-store.js";
18
+ export { ReplaySession } from "./session/replay-session.js";
19
+ export { ReplaySessionMetadata } from "./session/replay-session-metadata.js";
20
+ export { ReplaySessionRequest } from "./session/replay-session-request.js";
21
+ export { ReplaySourceLocation } from "./session/replay-source-location.js";
22
+ export { ReplayScope } from "./session/replay-scope.js";
23
+ export { ReplayStackFrame } from "./session/replay-stack-frame.js";
24
+ export { ReplayStateDelta } from "./session/replay-state-delta.js";
25
+ export { ReplayStep } from "./session/replay-step.js";
26
+ export { ReplayStepAdvanceResult } from "./session/replay-step-advance-result.js";
27
+ export { ReplayValuePreview } from "./session/replay-value-preview.js";
28
+ export { DamlSourceMapper } from "./source/daml-source-mapper.js";
29
+ export { DarSourceMapMetadata } from "./source/dar-source-map-metadata.js";
30
+ export { SourceMappingPrecision, } from "./source/source-mapping-precision.js";
31
+ export { SourceIndexedCompilation, } from "./source/source-indexed-compilation.js";
@@ -0,0 +1,31 @@
1
+ import { ReplaySession } from "./session/replay-session.js";
2
+ import { ReplaySessionMetadata } from "./session/replay-session-metadata.js";
3
+ import { ReplaySessionRequest } from "./session/replay-session-request.js";
4
+ import { ReplayScope } from "./session/replay-scope.js";
5
+ import { ReplayStackFrame } from "./session/replay-stack-frame.js";
6
+ import { ReplayStep } from "./session/replay-step.js";
7
+ import { ReplayStepAdvanceResult } from "./session/replay-step-advance-result.js";
8
+ import { InMemoryReplaySessionStore } from "./session/in-memory-replay-session-store.js";
9
+ import { LedgerReplaySessionLoader } from "./replay/ledger-replay-session-loader.js";
10
+ export declare class LedgerReplayDebuggerClient {
11
+ private readonly dependencies;
12
+ private readonly sessionStore;
13
+ constructor(dependencies: {
14
+ sessionLoader: LedgerReplaySessionLoader;
15
+ sessionStore?: InMemoryReplaySessionStore;
16
+ });
17
+ loadSessionAsync(request: ReplaySessionRequest): Promise<ReplaySession>;
18
+ getSessionMetadataAsync(sessionId: string): Promise<ReplaySessionMetadata>;
19
+ getCurrentStepAsync(sessionId: string): Promise<ReplayStep>;
20
+ stepIntoAsync(sessionId: string): Promise<ReplayStepAdvanceResult>;
21
+ stepBackAsync(sessionId: string): Promise<ReplayStepAdvanceResult>;
22
+ stepOverAsync(sessionId: string): Promise<ReplayStepAdvanceResult>;
23
+ stepOutAsync(sessionId: string): Promise<ReplayStepAdvanceResult>;
24
+ continueAsync(sessionId: string): Promise<ReplayStepAdvanceResult>;
25
+ jumpToStepAsync(sessionId: string, stepId: string): Promise<ReplayStepAdvanceResult>;
26
+ getStackAsync(sessionId: string): Promise<readonly ReplayStackFrame[]>;
27
+ getScopesAsync(sessionId: string, frameId: string): Promise<readonly ReplayScope[]>;
28
+ getTraceSliceAsync(sessionId: string, startIndex: number, endIndex: number): Promise<readonly ReplayStep[]>;
29
+ disposeSessionAsync(sessionId: string): Promise<void>;
30
+ private getStore;
31
+ }
@@ -0,0 +1,53 @@
1
+ import { InMemoryReplaySessionStore } from "./session/in-memory-replay-session-store.js";
2
+ export class LedgerReplayDebuggerClient {
3
+ dependencies;
4
+ sessionStore;
5
+ constructor(dependencies) {
6
+ this.dependencies = dependencies;
7
+ this.sessionStore =
8
+ this.dependencies.sessionStore ?? new InMemoryReplaySessionStore();
9
+ }
10
+ async loadSessionAsync(request) {
11
+ const loadedSession = await this.dependencies.sessionLoader.loadOrThrowAsync(request);
12
+ return this.getStore().put(loadedSession);
13
+ }
14
+ async getSessionMetadataAsync(sessionId) {
15
+ return this.getStore().getSessionMetadataOrThrow(sessionId);
16
+ }
17
+ async getCurrentStepAsync(sessionId) {
18
+ return this.getStore().getCurrentStepOrThrow(sessionId);
19
+ }
20
+ async stepIntoAsync(sessionId) {
21
+ return this.getStore().advanceIntoOrThrow(sessionId);
22
+ }
23
+ async stepBackAsync(sessionId) {
24
+ return this.getStore().advanceBackOrThrow(sessionId);
25
+ }
26
+ async stepOverAsync(sessionId) {
27
+ return this.getStore().advanceOverOrThrow(sessionId);
28
+ }
29
+ async stepOutAsync(sessionId) {
30
+ return this.getStore().advanceOutOrThrow(sessionId);
31
+ }
32
+ async continueAsync(sessionId) {
33
+ return this.getStore().continueOrThrow(sessionId);
34
+ }
35
+ async jumpToStepAsync(sessionId, stepId) {
36
+ return this.getStore().setCurrentStepByIdOrThrow(sessionId, stepId);
37
+ }
38
+ async getStackAsync(sessionId) {
39
+ return this.getStore().getStackOrThrow(sessionId);
40
+ }
41
+ async getScopesAsync(sessionId, frameId) {
42
+ return this.getStore().getScopesOrThrow(sessionId, frameId);
43
+ }
44
+ async getTraceSliceAsync(sessionId, startIndex, endIndex) {
45
+ return this.getStore().getTraceSliceOrThrow(sessionId, startIndex, endIndex);
46
+ }
47
+ async disposeSessionAsync(sessionId) {
48
+ this.getStore().dispose(sessionId);
49
+ }
50
+ getStore() {
51
+ return this.sessionStore;
52
+ }
53
+ }
@@ -0,0 +1,95 @@
1
+ import { GetContractRequest } from "../../core/types/requests/get-contract-request.js";
2
+ import { GetEventsByContractIdRequest } from "../../core/types/requests/get-events-by-contract-id-request.js";
3
+ import { GetContractResponse } from "../../core/types/responses/get-contract-response.js";
4
+ import { GetEventsByContractIdResponse } from "../../core/types/responses/get-events-by-contract-id-response.js";
5
+ import { ReplayEntrypoint } from "./replay-entrypoint.js";
6
+ interface IReplayContractService {
7
+ getContractAsync(request: GetContractRequest): Promise<GetContractResponse>;
8
+ }
9
+ interface IReplayEventQueryService {
10
+ getEventsByContractIdAsync(request: GetEventsByContractIdRequest): Promise<GetEventsByContractIdResponse>;
11
+ }
12
+ interface IReplayIdentifier {
13
+ packageId?: string;
14
+ moduleName?: string;
15
+ entityName?: string;
16
+ }
17
+ interface IReplayCreatedEvent {
18
+ contractId?: string;
19
+ templateId?: IReplayIdentifier;
20
+ createArguments?: unknown;
21
+ }
22
+ interface IReplayExercisedEvent {
23
+ contractId?: string;
24
+ templateId?: IReplayIdentifier;
25
+ choice?: string;
26
+ choiceArgument?: unknown;
27
+ }
28
+ interface IReplayArchivedEvent {
29
+ contractId?: string;
30
+ templateId?: IReplayIdentifier;
31
+ }
32
+ interface IReplayTransactionEvent {
33
+ event?: {
34
+ oneofKind?: string;
35
+ created?: IReplayCreatedEvent;
36
+ exercised?: IReplayExercisedEvent;
37
+ archived?: IReplayArchivedEvent;
38
+ };
39
+ }
40
+ export interface IReplayTransactionSnapshot {
41
+ readonly kind: "transaction";
42
+ readonly offset: string;
43
+ readonly updateId?: string;
44
+ readonly actAs?: readonly string[];
45
+ readonly readAs?: readonly string[];
46
+ readonly events: readonly IReplayTransactionEvent[];
47
+ readonly entrypoint: ReplayEntrypoint;
48
+ }
49
+ export interface IHydratedReplayHistoryEntry {
50
+ readonly contractId?: string;
51
+ readonly templateId?: IReplayIdentifier;
52
+ readonly payload?: unknown;
53
+ readonly rawEvent?: unknown;
54
+ }
55
+ export interface IHydratedReplayContract {
56
+ readonly contractId: string;
57
+ readonly templateId?: IReplayIdentifier;
58
+ readonly payload: unknown;
59
+ readonly rawCreatedEvent?: unknown;
60
+ readonly synchronizerId?: string;
61
+ readonly history: {
62
+ readonly created?: IHydratedReplayHistoryEntry;
63
+ readonly archived?: IHydratedReplayHistoryEntry;
64
+ };
65
+ }
66
+ export interface ILedgerReplayEnvironment {
67
+ readonly kind: "transaction";
68
+ readonly offset: string;
69
+ readonly updateId?: string;
70
+ readonly actAs: readonly string[];
71
+ readonly readAs: readonly string[];
72
+ readonly entrypoint: ReplayEntrypoint;
73
+ readonly contracts: ReadonlyMap<string, IHydratedReplayContract>;
74
+ readonly packageIds: readonly string[];
75
+ }
76
+ export declare class LedgerReplayEnvironmentBuilder {
77
+ private readonly dependencies;
78
+ constructor(dependencies: {
79
+ contractService: IReplayContractService;
80
+ eventQueryService: IReplayEventQueryService;
81
+ queryingParties?: readonly string[];
82
+ });
83
+ buildOrThrowAsync(snapshot: IReplayTransactionSnapshot): Promise<ILedgerReplayEnvironment>;
84
+ private getVisibleCreatedContracts;
85
+ private getRequiredContractIds;
86
+ private addReferencedContractIds;
87
+ private hydrateContractOrThrowAsync;
88
+ private getQueryingParties;
89
+ private addPackageId;
90
+ private asCreatedEvent;
91
+ private asArchivedEvent;
92
+ private readObjectProperty;
93
+ private readObjectString;
94
+ }
95
+ export {};
@@ -0,0 +1,249 @@
1
+ import { GetContractRequest } from "../../core/types/requests/get-contract-request.js";
2
+ import { GetEventsByContractIdRequest } from "../../core/types/requests/get-events-by-contract-id-request.js";
3
+ import { ReplayStateHydrationException } from "../errors/replay-state-hydration.exception.js";
4
+ import { attachReplayRecordId, collectReplayLedgerContractIds, normalizeReplayLedgerValue, } from "./replay-ledger-value-normalizer.js";
5
+ import { ReplayEntrypoint } from "./replay-entrypoint.js";
6
+ export class LedgerReplayEnvironmentBuilder {
7
+ dependencies;
8
+ constructor(dependencies) {
9
+ this.dependencies = dependencies;
10
+ }
11
+ async buildOrThrowAsync(snapshot) {
12
+ const packageIds = new Set();
13
+ const contracts = new Map();
14
+ const pendingContractIds = new Set(this.getRequiredContractIds(snapshot));
15
+ const normalizedEntrypointArgument = normalizeReplayLedgerValue(snapshot.entrypoint.argument);
16
+ for (const visibleContract of this.getVisibleCreatedContracts(snapshot)) {
17
+ this.addPackageId(packageIds, visibleContract.templateId?.packageId);
18
+ contracts.set(visibleContract.contractId, visibleContract);
19
+ this.addReferencedContractIds(pendingContractIds, visibleContract.payload);
20
+ }
21
+ this.addReferencedContractIds(pendingContractIds, normalizedEntrypointArgument);
22
+ while (pendingContractIds.size > 0) {
23
+ const contractId = pendingContractIds.values().next().value;
24
+ if (contractId === undefined) {
25
+ break;
26
+ }
27
+ pendingContractIds.delete(contractId);
28
+ if (contracts.has(contractId)) {
29
+ continue;
30
+ }
31
+ const hydratedContract = await this.hydrateContractOrThrowAsync(contractId, snapshot);
32
+ this.addPackageId(packageIds, hydratedContract.templateId?.packageId);
33
+ contracts.set(contractId, hydratedContract);
34
+ this.addReferencedContractIds(pendingContractIds, hydratedContract.payload);
35
+ }
36
+ this.addPackageId(packageIds, snapshot.entrypoint.templateId?.packageId);
37
+ return {
38
+ kind: snapshot.kind,
39
+ offset: snapshot.offset,
40
+ updateId: snapshot.updateId,
41
+ actAs: [...(snapshot.actAs ?? [])],
42
+ readAs: [...(snapshot.readAs ?? [])],
43
+ entrypoint: new ReplayEntrypoint({
44
+ kind: snapshot.entrypoint.kind,
45
+ templateId: snapshot.entrypoint.templateId,
46
+ contractId: snapshot.entrypoint.contractId,
47
+ choice: snapshot.entrypoint.choice,
48
+ argument: normalizedEntrypointArgument,
49
+ }),
50
+ contracts,
51
+ packageIds: [...packageIds].sort(),
52
+ };
53
+ }
54
+ getVisibleCreatedContracts(snapshot) {
55
+ return snapshot.events.flatMap((event) => {
56
+ if (event.event?.oneofKind !== "created"
57
+ || event.event.created?.contractId === undefined) {
58
+ return [];
59
+ }
60
+ return [
61
+ {
62
+ contractId: event.event.created.contractId,
63
+ templateId: event.event.created.templateId,
64
+ payload: attachReplayRecordId(normalizeReplayLedgerValue(event.event.created.createArguments), event.event.created.templateId === undefined
65
+ ? undefined
66
+ : {
67
+ packageId: event.event.created.templateId.packageId,
68
+ moduleName: event.event.created.templateId.moduleName,
69
+ entityName: event.event.created.templateId.entityName,
70
+ }),
71
+ rawCreatedEvent: event.event.created,
72
+ history: {
73
+ created: {
74
+ contractId: event.event.created.contractId,
75
+ templateId: event.event.created.templateId,
76
+ payload: attachReplayRecordId(normalizeReplayLedgerValue(event.event.created.createArguments), event.event.created.templateId === undefined
77
+ ? undefined
78
+ : {
79
+ packageId: event.event.created.templateId.packageId,
80
+ moduleName: event.event.created.templateId.moduleName,
81
+ entityName: event.event.created.templateId.entityName,
82
+ }),
83
+ rawEvent: event.event.created,
84
+ },
85
+ },
86
+ },
87
+ ];
88
+ });
89
+ }
90
+ getRequiredContractIds(snapshot) {
91
+ const contractIds = new Set();
92
+ if (snapshot.entrypoint.kind === "exercise"
93
+ && snapshot.entrypoint.contractId !== undefined) {
94
+ contractIds.add(snapshot.entrypoint.contractId);
95
+ }
96
+ for (const event of snapshot.events) {
97
+ const contractId = event.event?.exercised?.contractId;
98
+ if (contractId !== undefined) {
99
+ contractIds.add(contractId);
100
+ }
101
+ }
102
+ return [...contractIds];
103
+ }
104
+ addReferencedContractIds(contractIds, value) {
105
+ for (const contractId of collectReplayLedgerContractIds(value)) {
106
+ if (contractId.length > 0) {
107
+ contractIds.add(contractId);
108
+ }
109
+ }
110
+ }
111
+ async hydrateContractOrThrowAsync(contractId, snapshot) {
112
+ const queryingParties = this.getQueryingParties(snapshot);
113
+ let contractResponse;
114
+ try {
115
+ contractResponse =
116
+ await this.dependencies.contractService.getContractAsync(new GetContractRequest({
117
+ contractId,
118
+ queryingParties,
119
+ }));
120
+ }
121
+ catch {
122
+ contractResponse = undefined;
123
+ }
124
+ const eventHistory = await this.dependencies.eventQueryService.getEventsByContractIdAsync(new GetEventsByContractIdRequest({
125
+ contractId,
126
+ eventFormat: createReplayEventFormat(queryingParties),
127
+ }));
128
+ const createdEvent = this.asCreatedEvent(contractResponse?.createdEvent);
129
+ const createdHistory = this.asCreatedEvent(eventHistory.created?.createdEvent);
130
+ const archivedHistory = this.asArchivedEvent(eventHistory.archived?.archivedEvent);
131
+ const materializedCreatedEvent = [
132
+ createdEvent,
133
+ createdHistory,
134
+ ].find((event) => event?.contractId !== undefined
135
+ && event.createArguments !== undefined);
136
+ if (materializedCreatedEvent?.contractId === undefined) {
137
+ throw new ReplayStateHydrationException(`could not hydrate contract '${contractId}' from the ledger`);
138
+ }
139
+ if (materializedCreatedEvent.createArguments === undefined) {
140
+ throw new ReplayStateHydrationException(`contract '${contractId}' did not expose a visible payload`);
141
+ }
142
+ return {
143
+ contractId,
144
+ templateId: materializedCreatedEvent.templateId,
145
+ payload: attachReplayRecordId(normalizeReplayLedgerValue(materializedCreatedEvent.createArguments), materializedCreatedEvent.templateId === undefined
146
+ ? undefined
147
+ : {
148
+ packageId: materializedCreatedEvent.templateId.packageId,
149
+ moduleName: materializedCreatedEvent.templateId.moduleName,
150
+ entityName: materializedCreatedEvent.templateId.entityName,
151
+ }),
152
+ rawCreatedEvent: materializedCreatedEvent,
153
+ synchronizerId: eventHistory.created?.synchronizerId,
154
+ history: {
155
+ created: (createdHistory ?? materializedCreatedEvent) === undefined
156
+ ? undefined
157
+ : {
158
+ contractId: (createdHistory ?? materializedCreatedEvent)
159
+ .contractId,
160
+ templateId: (createdHistory ?? materializedCreatedEvent)
161
+ .templateId,
162
+ payload: attachReplayRecordId(normalizeReplayLedgerValue((createdHistory ?? materializedCreatedEvent)
163
+ .createArguments), (createdHistory ?? materializedCreatedEvent)
164
+ .templateId === undefined
165
+ ? undefined
166
+ : {
167
+ packageId: (createdHistory
168
+ ?? materializedCreatedEvent).templateId?.packageId,
169
+ moduleName: (createdHistory
170
+ ?? materializedCreatedEvent).templateId?.moduleName,
171
+ entityName: (createdHistory
172
+ ?? materializedCreatedEvent).templateId?.entityName,
173
+ }),
174
+ rawEvent: createdHistory ?? materializedCreatedEvent,
175
+ },
176
+ archived: archivedHistory === undefined
177
+ ? undefined
178
+ : {
179
+ contractId: archivedHistory.contractId,
180
+ templateId: archivedHistory.templateId,
181
+ rawEvent: archivedHistory,
182
+ },
183
+ },
184
+ };
185
+ }
186
+ getQueryingParties(snapshot) {
187
+ const configuredParties = this.dependencies.queryingParties ?? [];
188
+ if (configuredParties.length > 0) {
189
+ return [...new Set(configuredParties)];
190
+ }
191
+ return [
192
+ ...new Set([...(snapshot.actAs ?? []), ...(snapshot.readAs ?? [])]),
193
+ ];
194
+ }
195
+ addPackageId(packageIds, packageId) {
196
+ if (packageId !== undefined && packageId.length > 0) {
197
+ packageIds.add(packageId);
198
+ }
199
+ }
200
+ asCreatedEvent(value) {
201
+ if (value === undefined || value === null || typeof value !== "object") {
202
+ return undefined;
203
+ }
204
+ return value;
205
+ }
206
+ asArchivedEvent(value) {
207
+ if (value === undefined || value === null || typeof value !== "object") {
208
+ return undefined;
209
+ }
210
+ return value;
211
+ }
212
+ readObjectProperty(value, propertyName) {
213
+ if (value === null || value === undefined || typeof value !== "object") {
214
+ return undefined;
215
+ }
216
+ return value[propertyName];
217
+ }
218
+ readObjectString(value, propertyName) {
219
+ const property = this.readObjectProperty(value, propertyName);
220
+ return typeof property === "string" ? property : "";
221
+ }
222
+ }
223
+ function createReplayEventFormat(visibleParties) {
224
+ const wildcardFilter = {
225
+ cumulative: [
226
+ {
227
+ identifierFilter: {
228
+ oneofKind: "wildcardFilter",
229
+ wildcardFilter: {
230
+ includeCreatedEventBlob: true,
231
+ },
232
+ },
233
+ },
234
+ ],
235
+ };
236
+ if (Array.isArray(visibleParties) && visibleParties.length > 0) {
237
+ return {
238
+ filtersByParty: Object.fromEntries([...new Set(visibleParties)]
239
+ .filter((party) => typeof party === "string" && party.length > 0)
240
+ .map((party) => [party, wildcardFilter])),
241
+ verbose: true,
242
+ };
243
+ }
244
+ return {
245
+ filtersByParty: {},
246
+ filtersForAnyParty: wildcardFilter,
247
+ verbose: true,
248
+ };
249
+ }
@@ -0,0 +1,78 @@
1
+ import { DamlLfValueDefinition } from "../../daml-lf/model/daml-lf-value-definition.js";
2
+ import { IDamlLfReplayEffect, IDamlLfTraceSink } from "../../daml-lf/interpreter/daml-lf-trace-sink.interface.js";
3
+ import { IDamlLfReplayEnvironment, IDamlLfReplayEvaluationResult } from "../../daml-lf/interpreter/daml-lf-evaluator.js";
4
+ import { ReplayScope } from "../session/replay-scope.js";
5
+ import { ReplaySessionMetadata } from "../session/replay-session-metadata.js";
6
+ import { ReplayStep } from "../session/replay-step.js";
7
+ import { ILedgerReplayEnvironment, IReplayTransactionSnapshot } from "./ledger-replay-environment-builder.js";
8
+ import { ResolvedReplayEntrypointDefinition } from "./replay-entrypoint-definition-resolver.js";
9
+ import { ReplaySessionRequest } from "../session/replay-session-request.js";
10
+ import { DamlSourceMapper } from "../source/daml-source-mapper.js";
11
+ import { DamlLfTemplateId } from "../../daml-lf/model/daml-lf-template-id.js";
12
+ interface IReplayUpdateLoader {
13
+ loadOrThrowAsync(offset: string): Promise<IReplayTransactionSnapshot>;
14
+ }
15
+ interface IReplayEnvironmentBuilder {
16
+ buildOrThrowAsync(snapshot: IReplayTransactionSnapshot): Promise<ILedgerReplayEnvironment>;
17
+ }
18
+ interface IReplayDefinitionResolver {
19
+ resolveEntrypointDefinitionOrThrow(entrypoint: IReplayTransactionSnapshot["entrypoint"]): ResolvedReplayEntrypointDefinition;
20
+ resolveChoiceDefinitionOrThrow?(templateId: DamlLfTemplateId, choiceName: string): ResolvedReplayEntrypointDefinition;
21
+ }
22
+ interface IReplayEvaluator {
23
+ evaluateReplayEntrypointOrThrow(definition: DamlLfValueDefinition, environment: IDamlLfReplayEnvironment, traceSink?: IDamlLfTraceSink): IDamlLfReplayEvaluationResult;
24
+ }
25
+ interface IReplayDeterminismValidator {
26
+ validateOrThrow(snapshot: IReplayTransactionSnapshot, replayedEffects: readonly IDamlLfReplayEffect[]): void;
27
+ }
28
+ export interface ILoadedReplaySession {
29
+ readonly sessionId: string;
30
+ readonly metadata: ReplaySessionMetadata;
31
+ readonly steps: readonly ReplayStep[];
32
+ readonly scopesByStep: readonly (readonly ReplayScope[])[];
33
+ readonly currentStepIndex: number;
34
+ }
35
+ export declare class LedgerReplaySessionLoader {
36
+ private readonly dependencies;
37
+ constructor(dependencies: {
38
+ updateLoader: IReplayUpdateLoader;
39
+ environmentBuilder: IReplayEnvironmentBuilder;
40
+ definitionResolver: IReplayDefinitionResolver;
41
+ sourceMapper?: DamlSourceMapper;
42
+ evaluator: IReplayEvaluator;
43
+ determinismValidator: IReplayDeterminismValidator;
44
+ sessionIdFactory?: () => string;
45
+ });
46
+ loadOrThrowAsync(request: ReplaySessionRequest): Promise<ILoadedReplaySession>;
47
+ private projectReplaySteps;
48
+ private projectRawReplaySteps;
49
+ private projectNavigableReplaySteps;
50
+ private createSourceLocationKey;
51
+ private createVisibleExpressionKey;
52
+ private shouldRetainDefinitionTransition;
53
+ private shouldRetainExpressionStep;
54
+ private hasVisibleLocalsChange;
55
+ private isMeaningfulDebuggerExpression;
56
+ private isMeaningfulDefinitionExpression;
57
+ private toReplayPhase;
58
+ private createValuePreview;
59
+ private createStateDelta;
60
+ private stringifyRuntimeValue;
61
+ private rememberFrameScope;
62
+ private createContractTypeIndex;
63
+ private rememberStateEffectContractType;
64
+ private resolveRuntimeValueContractType;
65
+ private formatTemplateType;
66
+ private prepareStackForStep;
67
+ private finalizeStackForStep;
68
+ private pushFrameIfMissing;
69
+ private popFrameIfTop;
70
+ private cloneScope;
71
+ private resolveFrameName;
72
+ private isGeneratedHelperDefinitionName;
73
+ private formatGeneratedHelperLabel;
74
+ private formatExecutableFrameLabel;
75
+ private formatReplayEffectFrameLabel;
76
+ private createSourceLocation;
77
+ }
78
+ export {};