cantonjs 0.0.1

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 (374) hide show
  1. package/LICENSE +201 -0
  2. package/dist/cjs/admin/index.d.ts +5 -0
  3. package/dist/cjs/admin/index.d.ts.map +1 -0
  4. package/dist/cjs/admin/index.js +6 -0
  5. package/dist/cjs/admin/index.js.map +1 -0
  6. package/dist/cjs/chains/definitions.d.ts +20 -0
  7. package/dist/cjs/chains/definitions.d.ts.map +1 -0
  8. package/dist/cjs/chains/definitions.js +33 -0
  9. package/dist/cjs/chains/definitions.js.map +1 -0
  10. package/dist/cjs/chains/index.d.ts +2 -0
  11. package/dist/cjs/chains/index.d.ts.map +1 -0
  12. package/dist/cjs/chains/index.js +9 -0
  13. package/dist/cjs/chains/index.js.map +1 -0
  14. package/dist/cjs/clients/createAdminClient.d.ts +73 -0
  15. package/dist/cjs/clients/createAdminClient.d.ts.map +1 -0
  16. package/dist/cjs/clients/createAdminClient.js +205 -0
  17. package/dist/cjs/clients/createAdminClient.js.map +1 -0
  18. package/dist/cjs/clients/createLedgerClient.d.ts +83 -0
  19. package/dist/cjs/clients/createLedgerClient.d.ts.map +1 -0
  20. package/dist/cjs/clients/createLedgerClient.js +240 -0
  21. package/dist/cjs/clients/createLedgerClient.js.map +1 -0
  22. package/dist/cjs/clients/createTestClient.d.ts +27 -0
  23. package/dist/cjs/clients/createTestClient.d.ts.map +1 -0
  24. package/dist/cjs/clients/createTestClient.js +46 -0
  25. package/dist/cjs/clients/createTestClient.js.map +1 -0
  26. package/dist/cjs/clients/index.d.ts +4 -0
  27. package/dist/cjs/clients/index.d.ts.map +1 -0
  28. package/dist/cjs/clients/index.js +10 -0
  29. package/dist/cjs/clients/index.js.map +1 -0
  30. package/dist/cjs/codegen/index.d.ts +2 -0
  31. package/dist/cjs/codegen/index.d.ts.map +1 -0
  32. package/dist/cjs/codegen/index.js +3 -0
  33. package/dist/cjs/codegen/index.js.map +1 -0
  34. package/dist/cjs/codegen/types.d.ts +38 -0
  35. package/dist/cjs/codegen/types.d.ts.map +1 -0
  36. package/dist/cjs/codegen/types.js +9 -0
  37. package/dist/cjs/codegen/types.js.map +1 -0
  38. package/dist/cjs/errors/auth.d.ts +13 -0
  39. package/dist/cjs/errors/auth.d.ts.map +1 -0
  40. package/dist/cjs/errors/auth.js +36 -0
  41. package/dist/cjs/errors/auth.js.map +1 -0
  42. package/dist/cjs/errors/base.d.ts +35 -0
  43. package/dist/cjs/errors/base.d.ts.map +1 -0
  44. package/dist/cjs/errors/base.js +71 -0
  45. package/dist/cjs/errors/base.js.map +1 -0
  46. package/dist/cjs/errors/index.d.ts +6 -0
  47. package/dist/cjs/errors/index.d.ts.map +1 -0
  48. package/dist/cjs/errors/index.js +22 -0
  49. package/dist/cjs/errors/index.js.map +1 -0
  50. package/dist/cjs/errors/ledger.d.ts +22 -0
  51. package/dist/cjs/errors/ledger.d.ts.map +1 -0
  52. package/dist/cjs/errors/ledger.js +55 -0
  53. package/dist/cjs/errors/ledger.js.map +1 -0
  54. package/dist/cjs/errors/streaming.d.ts +20 -0
  55. package/dist/cjs/errors/streaming.d.ts.map +1 -0
  56. package/dist/cjs/errors/streaming.js +54 -0
  57. package/dist/cjs/errors/streaming.js.map +1 -0
  58. package/dist/cjs/errors/transport.d.ts +31 -0
  59. package/dist/cjs/errors/transport.d.ts.map +1 -0
  60. package/dist/cjs/errors/transport.js +63 -0
  61. package/dist/cjs/errors/transport.js.map +1 -0
  62. package/dist/cjs/index.d.ts +25 -0
  63. package/dist/cjs/index.d.ts.map +1 -0
  64. package/dist/cjs/index.js +48 -0
  65. package/dist/cjs/index.js.map +1 -0
  66. package/dist/cjs/ledger/index.d.ts +5 -0
  67. package/dist/cjs/ledger/index.d.ts.map +1 -0
  68. package/dist/cjs/ledger/index.js +6 -0
  69. package/dist/cjs/ledger/index.js.map +1 -0
  70. package/dist/cjs/package.json +1 -0
  71. package/dist/cjs/streaming/createStream.d.ts +55 -0
  72. package/dist/cjs/streaming/createStream.d.ts.map +1 -0
  73. package/dist/cjs/streaming/createStream.js +270 -0
  74. package/dist/cjs/streaming/createStream.js.map +1 -0
  75. package/dist/cjs/streaming/index.d.ts +8 -0
  76. package/dist/cjs/streaming/index.d.ts.map +1 -0
  77. package/dist/cjs/streaming/index.js +16 -0
  78. package/dist/cjs/streaming/index.js.map +1 -0
  79. package/dist/cjs/streaming/streamCompletions.d.ts +25 -0
  80. package/dist/cjs/streaming/streamCompletions.d.ts.map +1 -0
  81. package/dist/cjs/streaming/streamCompletions.js +47 -0
  82. package/dist/cjs/streaming/streamCompletions.js.map +1 -0
  83. package/dist/cjs/streaming/streamContracts.d.ts +42 -0
  84. package/dist/cjs/streaming/streamContracts.d.ts.map +1 -0
  85. package/dist/cjs/streaming/streamContracts.js +56 -0
  86. package/dist/cjs/streaming/streamContracts.js.map +1 -0
  87. package/dist/cjs/streaming/streamUpdates.d.ts +38 -0
  88. package/dist/cjs/streaming/streamUpdates.d.ts.map +1 -0
  89. package/dist/cjs/streaming/streamUpdates.js +66 -0
  90. package/dist/cjs/streaming/streamUpdates.js.map +1 -0
  91. package/dist/cjs/streaming/types.d.ts +111 -0
  92. package/dist/cjs/streaming/types.d.ts.map +1 -0
  93. package/dist/cjs/streaming/types.js +20 -0
  94. package/dist/cjs/streaming/types.js.map +1 -0
  95. package/dist/cjs/testing/index.d.ts +4 -0
  96. package/dist/cjs/testing/index.d.ts.map +1 -0
  97. package/dist/cjs/testing/index.js +11 -0
  98. package/dist/cjs/testing/index.js.map +1 -0
  99. package/dist/cjs/testing/mockTransport.d.ts +80 -0
  100. package/dist/cjs/testing/mockTransport.d.ts.map +1 -0
  101. package/dist/cjs/testing/mockTransport.js +97 -0
  102. package/dist/cjs/testing/mockTransport.js.map +1 -0
  103. package/dist/cjs/testing/setupSandbox.d.ts +62 -0
  104. package/dist/cjs/testing/setupSandbox.d.ts.map +1 -0
  105. package/dist/cjs/testing/setupSandbox.js +109 -0
  106. package/dist/cjs/testing/setupSandbox.js.map +1 -0
  107. package/dist/cjs/transport/fallback.d.ts +21 -0
  108. package/dist/cjs/transport/fallback.d.ts.map +1 -0
  109. package/dist/cjs/transport/fallback.js +48 -0
  110. package/dist/cjs/transport/fallback.js.map +1 -0
  111. package/dist/cjs/transport/grpc.d.ts +51 -0
  112. package/dist/cjs/transport/grpc.d.ts.map +1 -0
  113. package/dist/cjs/transport/grpc.js +90 -0
  114. package/dist/cjs/transport/grpc.js.map +1 -0
  115. package/dist/cjs/transport/index.d.ts +3 -0
  116. package/dist/cjs/transport/index.d.ts.map +1 -0
  117. package/dist/cjs/transport/index.js +6 -0
  118. package/dist/cjs/transport/index.js.map +1 -0
  119. package/dist/cjs/transport/json-api.d.ts +9 -0
  120. package/dist/cjs/transport/json-api.d.ts.map +1 -0
  121. package/dist/cjs/transport/json-api.js +69 -0
  122. package/dist/cjs/transport/json-api.js.map +1 -0
  123. package/dist/cjs/transport/types.d.ts +36 -0
  124. package/dist/cjs/transport/types.d.ts.map +1 -0
  125. package/dist/cjs/transport/types.js +10 -0
  126. package/dist/cjs/transport/types.js.map +1 -0
  127. package/dist/cjs/types/command.d.ts +127 -0
  128. package/dist/cjs/types/command.d.ts.map +1 -0
  129. package/dist/cjs/types/command.js +12 -0
  130. package/dist/cjs/types/command.js.map +1 -0
  131. package/dist/cjs/types/contract.d.ts +104 -0
  132. package/dist/cjs/types/contract.d.ts.map +1 -0
  133. package/dist/cjs/types/contract.js +12 -0
  134. package/dist/cjs/types/contract.js.map +1 -0
  135. package/dist/cjs/types/idp.d.ts +28 -0
  136. package/dist/cjs/types/idp.d.ts.map +1 -0
  137. package/dist/cjs/types/idp.js +9 -0
  138. package/dist/cjs/types/idp.js.map +1 -0
  139. package/dist/cjs/types/index.d.ts +10 -0
  140. package/dist/cjs/types/index.d.ts.map +1 -0
  141. package/dist/cjs/types/index.js +3 -0
  142. package/dist/cjs/types/index.js.map +1 -0
  143. package/dist/cjs/types/interactive.d.ts +47 -0
  144. package/dist/cjs/types/interactive.d.ts.map +1 -0
  145. package/dist/cjs/types/interactive.js +13 -0
  146. package/dist/cjs/types/interactive.js.map +1 -0
  147. package/dist/cjs/types/package.d.ts +15 -0
  148. package/dist/cjs/types/package.d.ts.map +1 -0
  149. package/dist/cjs/types/package.js +8 -0
  150. package/dist/cjs/types/package.js.map +1 -0
  151. package/dist/cjs/types/party.d.ts +32 -0
  152. package/dist/cjs/types/party.d.ts.map +1 -0
  153. package/dist/cjs/types/party.js +10 -0
  154. package/dist/cjs/types/party.js.map +1 -0
  155. package/dist/cjs/types/reassignment.d.ts +65 -0
  156. package/dist/cjs/types/reassignment.d.ts.map +1 -0
  157. package/dist/cjs/types/reassignment.js +10 -0
  158. package/dist/cjs/types/reassignment.js.map +1 -0
  159. package/dist/cjs/types/transaction.d.ts +59 -0
  160. package/dist/cjs/types/transaction.d.ts.map +1 -0
  161. package/dist/cjs/types/transaction.js +13 -0
  162. package/dist/cjs/types/transaction.js.map +1 -0
  163. package/dist/cjs/types/user.d.ts +64 -0
  164. package/dist/cjs/types/user.d.ts.map +1 -0
  165. package/dist/cjs/types/user.js +12 -0
  166. package/dist/cjs/types/user.js.map +1 -0
  167. package/dist/esm/admin/index.d.ts +5 -0
  168. package/dist/esm/admin/index.d.ts.map +1 -0
  169. package/dist/esm/admin/index.js +2 -0
  170. package/dist/esm/admin/index.js.map +1 -0
  171. package/dist/esm/chains/definitions.d.ts +20 -0
  172. package/dist/esm/chains/definitions.d.ts.map +1 -0
  173. package/dist/esm/chains/definitions.js +30 -0
  174. package/dist/esm/chains/definitions.js.map +1 -0
  175. package/dist/esm/chains/index.d.ts +2 -0
  176. package/dist/esm/chains/index.d.ts.map +1 -0
  177. package/dist/esm/chains/index.js +2 -0
  178. package/dist/esm/chains/index.js.map +1 -0
  179. package/dist/esm/clients/createAdminClient.d.ts +73 -0
  180. package/dist/esm/clients/createAdminClient.d.ts.map +1 -0
  181. package/dist/esm/clients/createAdminClient.js +202 -0
  182. package/dist/esm/clients/createAdminClient.js.map +1 -0
  183. package/dist/esm/clients/createLedgerClient.d.ts +83 -0
  184. package/dist/esm/clients/createLedgerClient.d.ts.map +1 -0
  185. package/dist/esm/clients/createLedgerClient.js +237 -0
  186. package/dist/esm/clients/createLedgerClient.js.map +1 -0
  187. package/dist/esm/clients/createTestClient.d.ts +27 -0
  188. package/dist/esm/clients/createTestClient.d.ts.map +1 -0
  189. package/dist/esm/clients/createTestClient.js +43 -0
  190. package/dist/esm/clients/createTestClient.js.map +1 -0
  191. package/dist/esm/clients/index.d.ts +4 -0
  192. package/dist/esm/clients/index.d.ts.map +1 -0
  193. package/dist/esm/clients/index.js +4 -0
  194. package/dist/esm/clients/index.js.map +1 -0
  195. package/dist/esm/codegen/index.d.ts +2 -0
  196. package/dist/esm/codegen/index.d.ts.map +1 -0
  197. package/dist/esm/codegen/index.js +2 -0
  198. package/dist/esm/codegen/index.js.map +1 -0
  199. package/dist/esm/codegen/types.d.ts +38 -0
  200. package/dist/esm/codegen/types.d.ts.map +1 -0
  201. package/dist/esm/codegen/types.js +8 -0
  202. package/dist/esm/codegen/types.js.map +1 -0
  203. package/dist/esm/errors/auth.d.ts +13 -0
  204. package/dist/esm/errors/auth.d.ts.map +1 -0
  205. package/dist/esm/errors/auth.js +31 -0
  206. package/dist/esm/errors/auth.js.map +1 -0
  207. package/dist/esm/errors/base.d.ts +35 -0
  208. package/dist/esm/errors/base.d.ts.map +1 -0
  209. package/dist/esm/errors/base.js +67 -0
  210. package/dist/esm/errors/base.js.map +1 -0
  211. package/dist/esm/errors/index.d.ts +6 -0
  212. package/dist/esm/errors/index.d.ts.map +1 -0
  213. package/dist/esm/errors/index.js +6 -0
  214. package/dist/esm/errors/index.js.map +1 -0
  215. package/dist/esm/errors/ledger.d.ts +22 -0
  216. package/dist/esm/errors/ledger.d.ts.map +1 -0
  217. package/dist/esm/errors/ledger.js +49 -0
  218. package/dist/esm/errors/ledger.js.map +1 -0
  219. package/dist/esm/errors/streaming.d.ts +20 -0
  220. package/dist/esm/errors/streaming.d.ts.map +1 -0
  221. package/dist/esm/errors/streaming.js +48 -0
  222. package/dist/esm/errors/streaming.js.map +1 -0
  223. package/dist/esm/errors/transport.d.ts +31 -0
  224. package/dist/esm/errors/transport.d.ts.map +1 -0
  225. package/dist/esm/errors/transport.js +56 -0
  226. package/dist/esm/errors/transport.js.map +1 -0
  227. package/dist/esm/index.d.ts +25 -0
  228. package/dist/esm/index.d.ts.map +1 -0
  229. package/dist/esm/index.js +18 -0
  230. package/dist/esm/index.js.map +1 -0
  231. package/dist/esm/ledger/index.d.ts +5 -0
  232. package/dist/esm/ledger/index.d.ts.map +1 -0
  233. package/dist/esm/ledger/index.js +2 -0
  234. package/dist/esm/ledger/index.js.map +1 -0
  235. package/dist/esm/streaming/createStream.d.ts +55 -0
  236. package/dist/esm/streaming/createStream.d.ts.map +1 -0
  237. package/dist/esm/streaming/createStream.js +265 -0
  238. package/dist/esm/streaming/createStream.js.map +1 -0
  239. package/dist/esm/streaming/index.d.ts +8 -0
  240. package/dist/esm/streaming/index.d.ts.map +1 -0
  241. package/dist/esm/streaming/index.js +6 -0
  242. package/dist/esm/streaming/index.js.map +1 -0
  243. package/dist/esm/streaming/streamCompletions.d.ts +25 -0
  244. package/dist/esm/streaming/streamCompletions.d.ts.map +1 -0
  245. package/dist/esm/streaming/streamCompletions.js +44 -0
  246. package/dist/esm/streaming/streamCompletions.js.map +1 -0
  247. package/dist/esm/streaming/streamContracts.d.ts +42 -0
  248. package/dist/esm/streaming/streamContracts.d.ts.map +1 -0
  249. package/dist/esm/streaming/streamContracts.js +53 -0
  250. package/dist/esm/streaming/streamContracts.js.map +1 -0
  251. package/dist/esm/streaming/streamUpdates.d.ts +38 -0
  252. package/dist/esm/streaming/streamUpdates.d.ts.map +1 -0
  253. package/dist/esm/streaming/streamUpdates.js +63 -0
  254. package/dist/esm/streaming/streamUpdates.js.map +1 -0
  255. package/dist/esm/streaming/types.d.ts +111 -0
  256. package/dist/esm/streaming/types.d.ts.map +1 -0
  257. package/dist/esm/streaming/types.js +17 -0
  258. package/dist/esm/streaming/types.js.map +1 -0
  259. package/dist/esm/testing/index.d.ts +4 -0
  260. package/dist/esm/testing/index.d.ts.map +1 -0
  261. package/dist/esm/testing/index.js +4 -0
  262. package/dist/esm/testing/index.js.map +1 -0
  263. package/dist/esm/testing/mockTransport.d.ts +80 -0
  264. package/dist/esm/testing/mockTransport.d.ts.map +1 -0
  265. package/dist/esm/testing/mockTransport.js +93 -0
  266. package/dist/esm/testing/mockTransport.js.map +1 -0
  267. package/dist/esm/testing/setupSandbox.d.ts +62 -0
  268. package/dist/esm/testing/setupSandbox.d.ts.map +1 -0
  269. package/dist/esm/testing/setupSandbox.js +106 -0
  270. package/dist/esm/testing/setupSandbox.js.map +1 -0
  271. package/dist/esm/transport/fallback.d.ts +21 -0
  272. package/dist/esm/transport/fallback.d.ts.map +1 -0
  273. package/dist/esm/transport/fallback.js +45 -0
  274. package/dist/esm/transport/fallback.js.map +1 -0
  275. package/dist/esm/transport/grpc.d.ts +51 -0
  276. package/dist/esm/transport/grpc.d.ts.map +1 -0
  277. package/dist/esm/transport/grpc.js +87 -0
  278. package/dist/esm/transport/grpc.js.map +1 -0
  279. package/dist/esm/transport/index.d.ts +3 -0
  280. package/dist/esm/transport/index.d.ts.map +1 -0
  281. package/dist/esm/transport/index.js +2 -0
  282. package/dist/esm/transport/index.js.map +1 -0
  283. package/dist/esm/transport/json-api.d.ts +9 -0
  284. package/dist/esm/transport/json-api.d.ts.map +1 -0
  285. package/dist/esm/transport/json-api.js +66 -0
  286. package/dist/esm/transport/json-api.js.map +1 -0
  287. package/dist/esm/transport/types.d.ts +36 -0
  288. package/dist/esm/transport/types.d.ts.map +1 -0
  289. package/dist/esm/transport/types.js +9 -0
  290. package/dist/esm/transport/types.js.map +1 -0
  291. package/dist/esm/types/command.d.ts +127 -0
  292. package/dist/esm/types/command.d.ts.map +1 -0
  293. package/dist/esm/types/command.js +11 -0
  294. package/dist/esm/types/command.js.map +1 -0
  295. package/dist/esm/types/contract.d.ts +104 -0
  296. package/dist/esm/types/contract.d.ts.map +1 -0
  297. package/dist/esm/types/contract.js +11 -0
  298. package/dist/esm/types/contract.js.map +1 -0
  299. package/dist/esm/types/idp.d.ts +28 -0
  300. package/dist/esm/types/idp.d.ts.map +1 -0
  301. package/dist/esm/types/idp.js +8 -0
  302. package/dist/esm/types/idp.js.map +1 -0
  303. package/dist/esm/types/index.d.ts +10 -0
  304. package/dist/esm/types/index.d.ts.map +1 -0
  305. package/dist/esm/types/index.js +2 -0
  306. package/dist/esm/types/index.js.map +1 -0
  307. package/dist/esm/types/interactive.d.ts +47 -0
  308. package/dist/esm/types/interactive.d.ts.map +1 -0
  309. package/dist/esm/types/interactive.js +12 -0
  310. package/dist/esm/types/interactive.js.map +1 -0
  311. package/dist/esm/types/package.d.ts +15 -0
  312. package/dist/esm/types/package.d.ts.map +1 -0
  313. package/dist/esm/types/package.js +7 -0
  314. package/dist/esm/types/package.js.map +1 -0
  315. package/dist/esm/types/party.d.ts +32 -0
  316. package/dist/esm/types/party.d.ts.map +1 -0
  317. package/dist/esm/types/party.js +9 -0
  318. package/dist/esm/types/party.js.map +1 -0
  319. package/dist/esm/types/reassignment.d.ts +65 -0
  320. package/dist/esm/types/reassignment.d.ts.map +1 -0
  321. package/dist/esm/types/reassignment.js +9 -0
  322. package/dist/esm/types/reassignment.js.map +1 -0
  323. package/dist/esm/types/transaction.d.ts +59 -0
  324. package/dist/esm/types/transaction.d.ts.map +1 -0
  325. package/dist/esm/types/transaction.js +12 -0
  326. package/dist/esm/types/transaction.js.map +1 -0
  327. package/dist/esm/types/user.d.ts +64 -0
  328. package/dist/esm/types/user.d.ts.map +1 -0
  329. package/dist/esm/types/user.js +11 -0
  330. package/dist/esm/types/user.js.map +1 -0
  331. package/dist/tsconfig.build.tsbuildinfo +1 -0
  332. package/dist/tsconfig.cjs.tsbuildinfo +1 -0
  333. package/package.json +140 -0
  334. package/src/admin/index.ts +9 -0
  335. package/src/chains/definitions.ts +43 -0
  336. package/src/chains/index.ts +1 -0
  337. package/src/clients/createAdminClient.ts +336 -0
  338. package/src/clients/createLedgerClient.ts +383 -0
  339. package/src/clients/createTestClient.ts +77 -0
  340. package/src/clients/index.ts +19 -0
  341. package/src/codegen/index.ts +6 -0
  342. package/src/codegen/types.ts +51 -0
  343. package/src/errors/auth.ts +33 -0
  344. package/src/errors/base.ts +83 -0
  345. package/src/errors/index.ts +5 -0
  346. package/src/errors/ledger.ts +53 -0
  347. package/src/errors/streaming.ts +51 -0
  348. package/src/errors/transport.ts +65 -0
  349. package/src/index.ts +122 -0
  350. package/src/ledger/index.ts +33 -0
  351. package/src/streaming/createStream.ts +321 -0
  352. package/src/streaming/index.ts +19 -0
  353. package/src/streaming/streamCompletions.ts +49 -0
  354. package/src/streaming/streamContracts.ts +64 -0
  355. package/src/streaming/streamUpdates.ts +67 -0
  356. package/src/streaming/types.ts +117 -0
  357. package/src/testing/index.ts +18 -0
  358. package/src/testing/mockTransport.ts +132 -0
  359. package/src/testing/setupSandbox.ts +163 -0
  360. package/src/transport/fallback.ts +57 -0
  361. package/src/transport/grpc.ts +130 -0
  362. package/src/transport/index.ts +2 -0
  363. package/src/transport/json-api.ts +83 -0
  364. package/src/transport/types.ts +39 -0
  365. package/src/types/command.ts +123 -0
  366. package/src/types/contract.ts +101 -0
  367. package/src/types/idp.ts +31 -0
  368. package/src/types/index.ts +66 -0
  369. package/src/types/interactive.ts +53 -0
  370. package/src/types/package.ts +16 -0
  371. package/src/types/party.ts +33 -0
  372. package/src/types/reassignment.ts +68 -0
  373. package/src/types/transaction.ts +57 -0
  374. package/src/types/user.ts +41 -0
@@ -0,0 +1,130 @@
1
+ /**
2
+ * gRPC transport factory for Canton Ledger API V2.
3
+ *
4
+ * Uses a custom fetch-based adapter to translate Transport requests into
5
+ * gRPC-Web calls via ConnectRPC's HTTP/2 or HTTP/1.1 protocol. This keeps
6
+ * cantonjs zero-dependency — users bring their own `@connectrpc/connect-web`
7
+ * or `@connectrpc/connect-node` transport.
8
+ *
9
+ * Since Canton's JSON API V2 and gRPC API share the same semantics, this
10
+ * transport maps JSON API paths to gRPC service methods and re-encodes
11
+ * request/response bodies.
12
+ *
13
+ * Usage:
14
+ * import { grpc } from 'cantonjs'
15
+ * import { createGrpcWebTransport } from '@connectrpc/connect-web'
16
+ *
17
+ * const transport = grpc({
18
+ * url: 'http://localhost:7575',
19
+ * grpcTransport: createGrpcWebTransport({ baseUrl: 'http://localhost:7575' }),
20
+ * })
21
+ */
22
+
23
+ import type { Transport, TransportRequest } from './types.js'
24
+
25
+ /** Configuration for the gRPC transport. */
26
+ export type GrpcTransportConfig = {
27
+ /** Base URL of the Canton node. */
28
+ readonly url: string
29
+ /** JWT Bearer token for authentication. */
30
+ readonly token?: string
31
+ /**
32
+ * A ConnectRPC transport instance (from @connectrpc/connect-web or connect-node).
33
+ * Injected to keep cantonjs zero-dependency.
34
+ */
35
+ readonly grpcTransport: GrpcTransportLike
36
+ }
37
+
38
+ /**
39
+ * Minimal interface for a ConnectRPC transport.
40
+ * Compatible with @connectrpc/connect's Transport type.
41
+ */
42
+ export type GrpcTransportLike = {
43
+ readonly unary: (
44
+ service: unknown,
45
+ method: unknown,
46
+ signal: AbortSignal | undefined,
47
+ timeoutMs: number | undefined,
48
+ header: unknown,
49
+ message: unknown,
50
+ ) => Promise<{ readonly message: unknown }>
51
+ }
52
+
53
+ /**
54
+ * Create a gRPC transport for the Canton Ledger API.
55
+ *
56
+ * Requires @connectrpc/connect as a peer dependency (not bundled).
57
+ * Maps Transport requests to gRPC unary calls.
58
+ */
59
+ export function grpc(config: GrpcTransportConfig): Transport {
60
+ const { url, token, grpcTransport } = config
61
+ const baseUrl = url.replace(/\/+$/, '')
62
+
63
+ return {
64
+ type: 'grpc',
65
+ url: baseUrl,
66
+
67
+ async request<TResponse = unknown>(args: TransportRequest): Promise<TResponse> {
68
+ const headers: Record<string, string> = {}
69
+ if (token !== undefined) {
70
+ headers['Authorization'] = `Bearer ${token}`
71
+ }
72
+
73
+ const result = await grpcTransport.unary(
74
+ pathToService(args.path),
75
+ pathToMethod(args.path),
76
+ args.signal,
77
+ args.timeout,
78
+ headers,
79
+ args.body ?? {},
80
+ )
81
+
82
+ return result.message as TResponse
83
+ },
84
+ }
85
+ }
86
+
87
+ /**
88
+ * Map a JSON API path to a gRPC service descriptor.
89
+ * In a full implementation, this would use generated service descriptors
90
+ * from Canton's protobuf definitions.
91
+ */
92
+ function pathToService(path: string): { typeName: string } {
93
+ const segments = path.replace(/^\/v2\//, '').split('/')
94
+ const serviceMap: Record<string, string> = {
95
+ 'commands': 'com.daml.ledger.api.v2.CommandService',
96
+ 'interactive-submission': 'com.daml.ledger.api.v2.InteractiveSubmissionService',
97
+ 'state': 'com.daml.ledger.api.v2.StateService',
98
+ 'updates': 'com.daml.ledger.api.v2.UpdateService',
99
+ 'events': 'com.daml.ledger.api.v2.EventQueryService',
100
+ 'parties': 'com.daml.ledger.api.v2.PartyManagementService',
101
+ 'users': 'com.daml.ledger.api.v2.UserManagementService',
102
+ 'packages': 'com.daml.ledger.api.v2.PackageService',
103
+ 'dars': 'com.daml.ledger.api.v2.PackageManagementService',
104
+ 'version': 'com.daml.ledger.api.v2.VersionService',
105
+ }
106
+ const serviceName = serviceMap[segments[0] ?? ''] ?? 'unknown'
107
+ return { typeName: serviceName }
108
+ }
109
+
110
+ /**
111
+ * Map a JSON API path to a gRPC method descriptor.
112
+ */
113
+ function pathToMethod(path: string): { name: string } {
114
+ const methodMap: Record<string, string> = {
115
+ '/v2/commands/submit-and-wait': 'SubmitAndWait',
116
+ '/v2/commands/submit-and-wait-for-transaction': 'SubmitAndWaitForTransaction',
117
+ '/v2/commands/submit-and-wait-for-reassignment': 'SubmitAndWaitForReassignment',
118
+ '/v2/interactive-submission/prepare': 'PrepareSubmission',
119
+ '/v2/interactive-submission/execute': 'ExecuteSubmission',
120
+ '/v2/state/active-contracts': 'GetActiveContracts',
121
+ '/v2/state/connected-synchronizers': 'GetConnectedSynchronizers',
122
+ '/v2/state/ledger-end': 'GetLedgerEnd',
123
+ '/v2/state/latest-pruned-offsets': 'GetLatestPrunedOffsets',
124
+ '/v2/updates/transaction-by-id': 'GetTransactionById',
125
+ '/v2/events/events-by-contract-id': 'GetEventsByContractId',
126
+ '/v2/version': 'GetLedgerApiVersion',
127
+ }
128
+ const methodName = methodMap[path] ?? path.split('/').pop() ?? 'unknown'
129
+ return { name: methodName }
130
+ }
@@ -0,0 +1,2 @@
1
+ export { jsonApi } from './json-api.js'
2
+ export type { Transport, TransportConfig, TransportRequest, TransportFactory } from './types.js'
@@ -0,0 +1,83 @@
1
+ /**
2
+ * JSON Ledger API V2 transport (HTTP).
3
+ *
4
+ * Primary transport for cantonjs. Communicates with Canton's JSON Ledger API
5
+ * via HTTP requests to /v2/* endpoints.
6
+ */
7
+
8
+ import { ConnectionError, HttpError, TimeoutError } from '../errors/transport.js'
9
+ import type { Transport, TransportConfig, TransportRequest } from './types.js'
10
+
11
+ const DEFAULT_TIMEOUT = 30_000
12
+
13
+ export function jsonApi(config: TransportConfig): Transport {
14
+ const { url, token, timeout = DEFAULT_TIMEOUT, fetchFn = globalThis.fetch } = config
15
+
16
+ const baseUrl = url.replace(/\/+$/, '')
17
+
18
+ return {
19
+ type: 'json-api',
20
+ url: baseUrl,
21
+
22
+ async request<TResponse = unknown>(args: TransportRequest): Promise<TResponse> {
23
+ const requestUrl = `${baseUrl}${args.path}`
24
+ const headers: Record<string, string> = {
25
+ 'Content-Type': 'application/json',
26
+ ...args.headers,
27
+ }
28
+
29
+ if (token !== undefined) {
30
+ headers['Authorization'] = `Bearer ${token}`
31
+ }
32
+
33
+ const controller = new AbortController()
34
+ const timeoutMs = args.timeout ?? timeout
35
+
36
+ const timeoutId = setTimeout(() => controller.abort(), timeoutMs)
37
+
38
+ if (args.signal !== undefined) {
39
+ args.signal.addEventListener('abort', () => controller.abort(), { once: true })
40
+ }
41
+
42
+ try {
43
+ const response = await fetchFn(requestUrl, {
44
+ method: args.method,
45
+ headers,
46
+ body: args.body !== undefined ? JSON.stringify(args.body) : undefined,
47
+ signal: controller.signal,
48
+ })
49
+
50
+ clearTimeout(timeoutId)
51
+
52
+ if (!response.ok) {
53
+ const body = await response.text().catch(() => undefined)
54
+ throw new HttpError(response.status, response.statusText, { body })
55
+ }
56
+
57
+ const contentType = response.headers.get('content-type')
58
+ if (contentType?.includes('application/json')) {
59
+ return (await response.json()) as TResponse
60
+ }
61
+
62
+ return (await response.text()) as TResponse
63
+ } catch (error) {
64
+ clearTimeout(timeoutId)
65
+
66
+ if (error instanceof HttpError) {
67
+ throw error
68
+ }
69
+
70
+ if (error instanceof DOMException && error.name === 'AbortError') {
71
+ if (args.signal?.aborted) {
72
+ throw error
73
+ }
74
+ throw new TimeoutError(timeoutMs)
75
+ }
76
+
77
+ throw new ConnectionError(baseUrl, {
78
+ cause: error instanceof Error ? error : new Error(String(error)),
79
+ })
80
+ }
81
+ },
82
+ }
83
+ }
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Transport abstraction for Canton API communication.
3
+ *
4
+ * Inspired by viem's transport pattern: clients are instantiated with a
5
+ * transport that handles the actual request execution. This separates
6
+ * client logic from communication concerns.
7
+ */
8
+
9
+ /** A transport handles sending requests to a Canton node. */
10
+ export type Transport = {
11
+ readonly type: string
12
+ readonly url: string
13
+ request: <TResponse = unknown>(args: TransportRequest) => Promise<TResponse>
14
+ }
15
+
16
+ /** A request to be sent via transport. */
17
+ export type TransportRequest = {
18
+ method: 'GET' | 'POST' | 'PATCH' | 'DELETE'
19
+ path: string
20
+ body?: unknown
21
+ headers?: Record<string, string>
22
+ signal?: AbortSignal
23
+ timeout?: number
24
+ }
25
+
26
+ /** Configuration shared by all transport types. */
27
+ export type TransportConfig = {
28
+ /** Base URL of the Canton node. */
29
+ readonly url: string
30
+ /** JWT Bearer token for authentication. */
31
+ readonly token?: string
32
+ /** Request timeout in milliseconds. Default: 30000. */
33
+ readonly timeout?: number
34
+ /** Custom fetch implementation (for testing or environments without global fetch). */
35
+ readonly fetchFn?: typeof fetch
36
+ }
37
+
38
+ /** Factory function type for creating transports. */
39
+ export type TransportFactory = (config: TransportConfig) => Transport
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Canton command types.
3
+ *
4
+ * Commands are the units of submission to the ledger. Each command atomically
5
+ * creates contracts or exercises choices on existing contracts.
6
+ *
7
+ * Commands on the wire use tagged discriminated unions:
8
+ * { "CreateCommand": {...} } | { "ExerciseCommand": {...} } | ...
9
+ */
10
+
11
+ /**
12
+ * Ledger offset. int64 in Canton 3.4+.
13
+ * 0 = empty ledger, positive = absolute offset.
14
+ */
15
+ export type LedgerOffset = number
16
+
17
+ /** Wire format for a create command. */
18
+ export type CreateCommand = {
19
+ readonly templateId: string
20
+ readonly createArguments: Record<string, unknown>
21
+ }
22
+
23
+ /** Wire format for an exercise command. */
24
+ export type ExerciseCommand = {
25
+ readonly templateId: string
26
+ readonly contractId: string
27
+ readonly choice: string
28
+ readonly choiceArgument: Record<string, unknown>
29
+ }
30
+
31
+ /** Wire format for an exercise-by-key command. */
32
+ export type ExerciseByKeyCommand = {
33
+ readonly templateId: string
34
+ readonly contractKey: unknown
35
+ readonly choice: string
36
+ readonly choiceArgument: Record<string, unknown>
37
+ }
38
+
39
+ /** Wire format for a create-and-exercise command. */
40
+ export type CreateAndExerciseCommand = {
41
+ readonly templateId: string
42
+ readonly createArguments: Record<string, unknown>
43
+ readonly choice: string
44
+ readonly choiceArgument: Record<string, unknown>
45
+ }
46
+
47
+ /** Tagged command union as it appears on the wire. */
48
+ export type TaggedCommand =
49
+ | { readonly CreateCommand: CreateCommand }
50
+ | { readonly ExerciseCommand: ExerciseCommand }
51
+ | { readonly ExerciseByKeyCommand: ExerciseByKeyCommand }
52
+ | { readonly CreateAndExerciseCommand: CreateAndExerciseCommand }
53
+
54
+ /** Full JsCommands request body. */
55
+ export type JsCommands = {
56
+ readonly commands: readonly TaggedCommand[]
57
+ readonly commandId: string
58
+ readonly actAs: readonly string[]
59
+ readonly userId?: string
60
+ readonly readAs?: readonly string[]
61
+ readonly workflowId?: string
62
+ readonly deduplicationPeriod?: DeduplicationPeriod
63
+ readonly submissionId?: string
64
+ readonly synchronizerId?: string
65
+ }
66
+
67
+ /** Deduplication period (tagged union). */
68
+ export type DeduplicationPeriod =
69
+ | { readonly DeduplicationDuration: { readonly seconds: number; readonly nanos?: number } }
70
+ | { readonly DeduplicationOffset: { readonly value: number } }
71
+ | { readonly Empty: Record<string, never> }
72
+
73
+ /** Submit-and-wait response. */
74
+ export type SubmitAndWaitResponse = {
75
+ readonly updateId: string
76
+ readonly completionOffset: number
77
+ }
78
+
79
+ /** Transaction shape for queries. */
80
+ export type TransactionShape =
81
+ | 'TRANSACTION_SHAPE_ACS_DELTA'
82
+ | 'TRANSACTION_SHAPE_LEDGER_EFFECTS'
83
+ | 'TRANSACTION_SHAPE_UNSPECIFIED'
84
+
85
+ /** Event format for filtering. */
86
+ export type EventFormat = {
87
+ readonly filtersByParty?: Record<string, { readonly cumulative: readonly CumulativeFilter[] }>
88
+ readonly filtersForAnyParty?: { readonly cumulative: readonly CumulativeFilter[] }
89
+ readonly verbose?: boolean
90
+ }
91
+
92
+ /** Cumulative filter entry. */
93
+ export type CumulativeFilter = {
94
+ readonly identifierFilter: IdentifierFilter
95
+ }
96
+
97
+ /** Identifier filter (tagged union). */
98
+ export type IdentifierFilter =
99
+ | {
100
+ readonly TemplateFilter: {
101
+ readonly value: {
102
+ readonly templateId: string
103
+ readonly includeCreatedEventBlob?: boolean
104
+ }
105
+ }
106
+ }
107
+ | {
108
+ readonly InterfaceFilter: {
109
+ readonly value: {
110
+ readonly interfaceId: string
111
+ readonly includeInterfaceView?: boolean
112
+ readonly includeCreatedEventBlob?: boolean
113
+ }
114
+ }
115
+ }
116
+ | { readonly WildcardFilter: { readonly value: { readonly includeCreatedEventBlob?: boolean } } }
117
+ | { readonly Empty: Record<string, never> }
118
+
119
+ /** Transaction format for queries. */
120
+ export type TransactionFormat = {
121
+ readonly transactionShape: TransactionShape
122
+ readonly eventFormat: EventFormat
123
+ }
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Core Canton contract types.
3
+ *
4
+ * Canton uses a UTXO model: contracts are created and archived, never mutated.
5
+ * Each contract is identified by a unique ContractId and belongs to a template.
6
+ *
7
+ * Events on the wire use tagged discriminated unions:
8
+ * { "CreatedEvent": {...} } | { "ArchivedEvent": {...} } | { "ExercisedEvent": {...} }
9
+ */
10
+
11
+ /** Unique identifier for a contract instance on the ledger. */
12
+ export type ContractId<T = unknown> = string & { readonly __contractId: T }
13
+
14
+ /**
15
+ * Template identifier string.
16
+ * Supports two formats:
17
+ * - `#package-name:Module:Entity` (preferred, package-name reference)
18
+ * - `packageId:Module:Entity` (deprecated package-id reference)
19
+ */
20
+ export type TemplateId = string & { readonly __templateId: true }
21
+
22
+ /** A created event from the ledger (wire format). */
23
+ export type CreatedEvent = {
24
+ readonly offset: number
25
+ readonly nodeId: number
26
+ readonly contractId: string
27
+ readonly templateId: string
28
+ readonly packageName: string
29
+ readonly representativePackageId: string
30
+ readonly createArgument: Record<string, unknown>
31
+ readonly signatories: readonly string[]
32
+ readonly witnessParties: readonly string[]
33
+ readonly acsDelta: boolean
34
+ readonly createdAt: string
35
+ readonly contractKey?: Record<string, unknown>
36
+ readonly createdEventBlob?: string
37
+ readonly interfaceViews?: readonly InterfaceView[]
38
+ readonly observers?: readonly string[]
39
+ }
40
+
41
+ /** An archived event from the ledger (wire format). */
42
+ export type ArchivedEvent = {
43
+ readonly offset: number
44
+ readonly nodeId: number
45
+ readonly contractId: string
46
+ readonly templateId: string
47
+ readonly packageName: string
48
+ readonly witnessParties: readonly string[]
49
+ readonly implementedInterfaces?: readonly string[]
50
+ }
51
+
52
+ /** An exercised event from a transaction tree (wire format). */
53
+ export type ExercisedEvent = {
54
+ readonly offset: number
55
+ readonly nodeId: number
56
+ readonly contractId: string
57
+ readonly templateId: string
58
+ readonly choice: string
59
+ readonly choiceArgument: Record<string, unknown>
60
+ readonly consuming: boolean
61
+ readonly lastDescendantNodeId: number
62
+ readonly packageName: string
63
+ readonly acsDelta: boolean
64
+ readonly actingParties: readonly string[]
65
+ readonly witnessParties: readonly string[]
66
+ readonly interfaceId?: string
67
+ readonly exerciseResult?: unknown
68
+ readonly implementedInterfaces?: readonly string[]
69
+ }
70
+
71
+ /** Interface view attached to a created event. */
72
+ export type InterfaceView = {
73
+ readonly interfaceId: string
74
+ readonly viewValue: Record<string, unknown>
75
+ }
76
+
77
+ /**
78
+ * Tagged event union as it appears on the wire.
79
+ * Canton uses { "CreatedEvent": {...} } | { "ArchivedEvent": {...} } | ...
80
+ */
81
+ export type TaggedEvent =
82
+ | { readonly CreatedEvent: CreatedEvent }
83
+ | { readonly ArchivedEvent: ArchivedEvent }
84
+ | { readonly ExercisedEvent: ExercisedEvent }
85
+
86
+ /** A contract from the active contract set. */
87
+ export type ActiveContract = {
88
+ readonly createdEvent: CreatedEvent
89
+ readonly synchronizerId: string
90
+ readonly reassignmentCounter: number
91
+ }
92
+
93
+ /**
94
+ * Tagged contract entry from active contracts query.
95
+ * { "JsActiveContract": ... } | { "JsEmpty": {} } | ...
96
+ */
97
+ export type ContractEntry =
98
+ | { readonly JsActiveContract: ActiveContract }
99
+ | { readonly JsEmpty: Record<string, never> }
100
+ | { readonly JsIncompleteAssigned: unknown }
101
+ | { readonly JsIncompleteUnassigned: unknown }
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Canton Identity Provider (IDP) configuration types.
3
+ *
4
+ * Identity providers allow delegating user authentication to external
5
+ * OpenID Connect providers (e.g., Auth0, Okta, Keycloak).
6
+ */
7
+
8
+ import type { ObjectMeta } from './party.js'
9
+
10
+ /** An identity provider configuration (wire format). */
11
+ export type IdentityProviderConfig = {
12
+ readonly identityProviderId: string
13
+ readonly isDeactivated?: boolean
14
+ readonly issuer: string
15
+ readonly jwksUrl: string
16
+ readonly audience?: string
17
+ readonly metadata?: ObjectMeta
18
+ }
19
+
20
+ /** Request to create an identity provider. */
21
+ export type CreateIdentityProviderRequest = {
22
+ readonly identityProviderConfig: IdentityProviderConfig
23
+ }
24
+
25
+ /** Request to update an identity provider. */
26
+ export type UpdateIdentityProviderRequest = {
27
+ readonly identityProviderConfig: IdentityProviderConfig
28
+ readonly updateMask?: {
29
+ readonly paths: readonly string[]
30
+ }
31
+ }
@@ -0,0 +1,66 @@
1
+ export type {
2
+ ContractId,
3
+ TemplateId,
4
+ CreatedEvent,
5
+ ArchivedEvent,
6
+ ExercisedEvent,
7
+ InterfaceView,
8
+ TaggedEvent,
9
+ ActiveContract,
10
+ ContractEntry,
11
+ } from './contract.js'
12
+
13
+ export type { Party, ObjectMeta, PartyDetails, AllocatePartyRequest } from './party.js'
14
+
15
+ export type {
16
+ LedgerOffset,
17
+ CreateCommand,
18
+ ExerciseCommand,
19
+ ExerciseByKeyCommand,
20
+ CreateAndExerciseCommand,
21
+ TaggedCommand,
22
+ JsCommands,
23
+ DeduplicationPeriod,
24
+ SubmitAndWaitResponse,
25
+ TransactionShape,
26
+ EventFormat,
27
+ CumulativeFilter,
28
+ IdentifierFilter,
29
+ TransactionFormat,
30
+ } from './command.js'
31
+
32
+ export type {
33
+ JsTransaction,
34
+ OffsetCheckpoint,
35
+ TaggedUpdate,
36
+ UpdateFormat,
37
+ } from './transaction.js'
38
+
39
+ export type { User, Right, RightKind, CreateUserRequest } from './user.js'
40
+
41
+ export type { PackageStatus, PackageDetails } from './package.js'
42
+
43
+ export type {
44
+ IdentityProviderConfig,
45
+ CreateIdentityProviderRequest,
46
+ UpdateIdentityProviderRequest,
47
+ } from './idp.js'
48
+
49
+ export type {
50
+ PrepareSubmissionRequest,
51
+ PrepareSubmissionResponse,
52
+ ExecuteSubmissionRequest,
53
+ PartySignatures,
54
+ Signature,
55
+ SignatureFormat,
56
+ } from './interactive.js'
57
+
58
+ export type {
59
+ Reassignment,
60
+ ReassignmentEvent,
61
+ AssignedEvent,
62
+ UnassignedEvent,
63
+ ReassignmentCommand,
64
+ UnassignCommand,
65
+ AssignCommand,
66
+ } from './reassignment.js'
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Interactive submission types for external signing workflows.
3
+ *
4
+ * The interactive submission flow allows external signing of transactions:
5
+ * 1. Prepare — submit commands, get back a prepared transaction with hash
6
+ * 2. Sign — sign the hash externally (HSM, hardware wallet, etc.)
7
+ * 3. Execute — submit the signed transaction
8
+ *
9
+ * Canton 3.3+ uses hashing algorithm V2.
10
+ */
11
+
12
+ import type { TaggedCommand } from './command.js'
13
+
14
+ /** Request to prepare a transaction for external signing. */
15
+ export type PrepareSubmissionRequest = {
16
+ readonly commands: readonly TaggedCommand[]
17
+ readonly commandId: string
18
+ readonly actAs: readonly string[]
19
+ readonly readAs?: readonly string[]
20
+ readonly workflowId?: string
21
+ readonly synchronizerId?: string
22
+ readonly submissionId?: string
23
+ }
24
+
25
+ /** Response from preparing a transaction — contains the hash to sign. */
26
+ export type PrepareSubmissionResponse = {
27
+ readonly preparedTransaction: string
28
+ readonly preparedTransactionHash: string
29
+ readonly hashingSchemeVersion: string
30
+ }
31
+
32
+ /** Request to execute a previously prepared and signed transaction. */
33
+ export type ExecuteSubmissionRequest = {
34
+ readonly preparedTransaction: string
35
+ readonly partySignatures: readonly PartySignatures[]
36
+ readonly submissionId?: string
37
+ }
38
+
39
+ /** Signatures from a party for a prepared transaction. */
40
+ export type PartySignatures = {
41
+ readonly party: string
42
+ readonly signatures: readonly Signature[]
43
+ }
44
+
45
+ /** A cryptographic signature. */
46
+ export type Signature = {
47
+ readonly format: SignatureFormat
48
+ readonly signature: string
49
+ readonly signedBy: string
50
+ }
51
+
52
+ /** Supported signature formats. */
53
+ export type SignatureFormat = 'RAW'
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Canton package management types.
3
+ *
4
+ * Packages (DARs/DALFs) contain Daml code compiled for the ledger.
5
+ */
6
+
7
+ /** Status of a package on the ledger. */
8
+ export type PackageStatus = 'REGISTERED' | 'UNKNOWN'
9
+
10
+ /** Details about a known package. */
11
+ export type PackageDetails = {
12
+ readonly packageId: string
13
+ readonly packageSize: number
14
+ readonly sourceDescription: string
15
+ readonly knownSince: string
16
+ }
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Canton party types.
3
+ *
4
+ * In Canton, the fundamental identity unit is the party — not an account or address.
5
+ * A party's permissions are encoded in their JWT token.
6
+ * Party IDs follow the format: `Name::fingerprint`
7
+ */
8
+
9
+ /** A party identifier on the Canton ledger. */
10
+ export type Party = string & { readonly __party: true }
11
+
12
+ /** Object metadata for Canton resources. */
13
+ export type ObjectMeta = {
14
+ readonly resourceVersion?: string
15
+ readonly annotations?: Record<string, string>
16
+ }
17
+
18
+ /** Details about a known party (wire format). */
19
+ export type PartyDetails = {
20
+ readonly party: string
21
+ readonly isLocal?: boolean
22
+ readonly localMetadata?: ObjectMeta
23
+ readonly identityProviderId?: string
24
+ }
25
+
26
+ /** Request to allocate a new party. */
27
+ export type AllocatePartyRequest = {
28
+ readonly partyIdHint?: string
29
+ readonly localMetadata?: ObjectMeta
30
+ readonly identityProviderId?: string
31
+ readonly synchronizerId?: string
32
+ readonly userId?: string
33
+ }