@layerzerolabs/common-canton 1.2.77 → 1.2.79

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 (38) hide show
  1. package/dist/{XUUD5A5A.js → BWU4MCVK.js} +3 -3
  2. package/dist/{XUUD5A5A.js.map → BWU4MCVK.js.map} +1 -1
  3. package/dist/{NMGEBYN4.js → RVJRKYSC.js} +4 -4
  4. package/dist/RVJRKYSC.js.map +1 -0
  5. package/dist/{VIR73OTW.js → TP2SKXF6.js} +12 -7
  6. package/dist/{VIR73OTW.js.map → TP2SKXF6.js.map} +1 -1
  7. package/dist/{MAPJ2MAL.js → U3XCZGRR.js} +5 -5
  8. package/dist/{MAPJ2MAL.js.map → U3XCZGRR.js.map} +1 -1
  9. package/dist/{WNK77EWB.js → V3KXSTGZ.js} +3 -3
  10. package/dist/{WNK77EWB.js.map → V3KXSTGZ.js.map} +1 -1
  11. package/dist/{HUATNETA.js → YCF6SVF6.js} +15 -7
  12. package/dist/YCF6SVF6.js.map +1 -0
  13. package/dist/{RQQM2SSD.js → ZBLS2HTS.js} +9 -2
  14. package/dist/ZBLS2HTS.js.map +1 -0
  15. package/dist/client/amulet.d.ts +5 -0
  16. package/dist/client/amulet.d.ts.map +1 -1
  17. package/dist/client/amulet.js +1 -1
  18. package/dist/client/canton-client.d.ts +3 -1
  19. package/dist/client/canton-client.d.ts.map +1 -1
  20. package/dist/client/canton-client.js +2 -2
  21. package/dist/client/index.js +2 -2
  22. package/dist/client/interface.d.ts +4 -2
  23. package/dist/client/interface.d.ts.map +1 -1
  24. package/dist/index.js +7 -7
  25. package/dist/provider.js +3 -3
  26. package/dist/refresh/address-resolver.d.ts.map +1 -1
  27. package/dist/refresh/address-resolver.js +1 -1
  28. package/dist/refresh/index.js +4 -4
  29. package/dist/refresh/resolve-plan.js +2 -2
  30. package/dist/refresh/resolve.js +4 -4
  31. package/dist/sdk/canton-sdk.d.ts +7 -0
  32. package/dist/sdk/canton-sdk.d.ts.map +1 -1
  33. package/dist/sdk/canton-sdk.js +1 -1
  34. package/dist/sdk/index.js +1 -1
  35. package/package.json +10 -10
  36. package/dist/HUATNETA.js.map +0 -1
  37. package/dist/NMGEBYN4.js.map +0 -1
  38. package/dist/RQQM2SSD.js.map +0 -1
package/dist/index.js CHANGED
@@ -1,17 +1,17 @@
1
1
  import './5GUYLHA7.js';
2
- export { CantonSdk } from './RQQM2SSD.js';
2
+ export { CantonSdk } from './ZBLS2HTS.js';
3
3
  import './6UDREB6T.js';
4
- export { resolveCantonTransaction } from './MAPJ2MAL.js';
5
- export { resolveCantonActiveContracts, resolveCantonRefreshPlan, selectContractsByGte } from './WNK77EWB.js';
6
- export { createContractAddressResolver, isConcreteActiveContractRef, isRefAlive, matchesContractStateFilter, queryLiveContractIdsForRef, queryLiveContractsForRef, resolveContractStateFilter, resolveExpectedSignatories } from './NMGEBYN4.js';
4
+ export { resolveCantonTransaction } from './U3XCZGRR.js';
5
+ export { resolveCantonActiveContracts, resolveCantonRefreshPlan, selectContractsByGte } from './V3KXSTGZ.js';
6
+ export { createContractAddressResolver, isConcreteActiveContractRef, isRefAlive, matchesContractStateFilter, queryLiveContractIdsForRef, queryLiveContractsForRef, resolveContractStateFilter, resolveExpectedSignatories } from './RVJRKYSC.js';
7
7
  export { wrapLzSdk } from './I5ERUZDD.js';
8
8
  export { substituteCidsToRefs, substituteRefsToCids } from './BSVJEBKM.js';
9
9
  import './7JX6NIYS.js';
10
10
  export { buildMultiTransactionSignatures, buildSignedTransaction } from './WKC6X2E3.js';
11
11
  import './IIWYAFUO.js';
12
12
  export { parseMinFeeValue } from './M3GPMXME.js';
13
- export { createCantonChainProvider, parseCantonChainUri } from './XUUD5A5A.js';
14
- export { CantonClient } from './VIR73OTW.js';
13
+ export { createCantonChainProvider, parseCantonChainUri } from './BWU4MCVK.js';
14
+ export { CantonClient } from './TP2SKXF6.js';
15
15
  import './YQ7YDN2E.js';
16
16
  import './YBJJNRKE.js';
17
17
  import './DYK7UQLE.js';
@@ -291,7 +291,7 @@ import './3BHGC5S7.js';
291
291
  import './PIFB5EMI.js';
292
292
  import './OCBHUIYX.js';
293
293
  export { Configuration, ResponseError } from './XVX7EVTW.js';
294
- export { AMULET_INSTRUMENT_ID, fetchAcceptContext, fetchAmuletContext, fetchAmuletRules, fetchDsoParty, fetchOpenAndIssuingMiningRounds, injectExternalPartyAmuletRules, toDisclosedContract } from './HUATNETA.js';
294
+ export { AMULET_INSTRUMENT_ID, fetchAcceptContext, fetchAmuletContext, fetchAmuletRules, fetchDsoParty, fetchOpenAndIssuingMiningRounds, findAmuletRulesDisclosures, injectExternalPartyAmuletRules, toDisclosedContract } from './YCF6SVF6.js';
295
295
  export { CantonGrpcClient } from './6AK25YSE.js';
296
296
  export { computeDecentralizedNamespace, computeMultiTransactionHash } from './PL4H5XEA.js';
297
297
  import './RVQWP4JU.js';
package/dist/provider.js CHANGED
@@ -1,5 +1,5 @@
1
- export { createCantonChainProvider, parseCantonChainUri } from './XUUD5A5A.js';
2
- import './VIR73OTW.js';
1
+ export { createCantonChainProvider, parseCantonChainUri } from './BWU4MCVK.js';
2
+ import './TP2SKXF6.js';
3
3
  import './YQ7YDN2E.js';
4
4
  import './YBJJNRKE.js';
5
5
  import './DYK7UQLE.js';
@@ -279,7 +279,7 @@ import './3BHGC5S7.js';
279
279
  import './PIFB5EMI.js';
280
280
  import './OCBHUIYX.js';
281
281
  import './XVX7EVTW.js';
282
- import './HUATNETA.js';
282
+ import './YCF6SVF6.js';
283
283
  import './6AK25YSE.js';
284
284
  import './PL4H5XEA.js';
285
285
  import './RVQWP4JU.js';
@@ -1 +1 @@
1
- {"version":3,"file":"address-resolver.d.ts","sourceRoot":"","sources":["../../src/refresh/address-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAEH,KAAK,mBAAmB,EAE3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAO9D,MAAM,MAAM,iBAAiB,GAAG,OAAO,CACnC,mBAAmB,EACnB;IAAE,IAAI,EAAE,kBAAkB,GAAG,mBAAmB,CAAA;CAAE,CACrD,GAAG;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7B,qFAAqF;AACrF,MAAM,MAAM,yBAAyB,GAAG,iBAAiB,GAAG;IACxD,aAAa,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACpC,CAAC;AAEF,eAAO,MAAM,2BAA2B,GACpC,KAAK,mBAAmB,KACzB,GAAG,IAAI,yBAEsC,CAAC;AAEjD,MAAM,WAAW,2BAA2B;IACxC,MAAM,EAAE,aAAa,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8FAA8F;IAC9F,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,iBAAiB,EAAE,CAAC,WAAW,EAAE,uBAAuB,EAAE,KAAK,IAAI,CAAC;CACvE;AAED;;GAEG;AACH,eAAO,MAAM,0BAA0B,GACnC,UAAU,gBAAgB,EAC1B,qBAAqB,iBAAiB,CAAC,qBAAqB,CAAC,KAC9D,OASF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,GACnC,qBAAqB,SAAS,MAAM,EAAE,GAAG,SAAS,EAClD,YAAY,MAAM,EAClB,YAAY,MAAM,KACnB,MAAM,EAAE,GAAG,SAUb,CAAC;AAEF,qGAAqG;AACrG,eAAO,MAAM,0BAA0B,GACnC,qBAAqB,iBAAiB,CAAC,qBAAqB,CAAC,EAC7D,YAAY,MAAM,KACnB,iBAAiB,CAAC,qBAAqB,CAQzC,CAAC;AAEF,eAAO,MAAM,UAAU,GACnB,QAAQ,aAAa,EACrB,KAAK,mBAAmB,KACzB,OAAO,CAAC,OAAO,CAIjB,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,wBAAwB,GACjC,QAAQ,aAAa,EACrB,OAAO,MAAM,EACb,KAAK,iBAAiB,KACvB,OAAO,CAAC,gBAAgB,EAAE,CA8C5B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,0BAA0B,GACnC,QAAQ,aAAa,EACrB,KAAK,mBAAmB,EACxB,cAAc,MAAM,KACrB,OAAO,CAAC,MAAM,EAAE,CAOlB,CAAC;AAEF,eAAO,MAAM,6BAA6B,GAAI,MAAM,2BAA2B;mCAsE/B,iBAAiB,KAAG,OAAO,CAAC,MAAM,CAAC;oCAWlC,iBAAiB,KAAG,OAAO,CAAC,MAAM,EAAE,CAAC;kCAjEjD,iBAAiB,KAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;mCA8BvE,iBAAiB,aACX,gBAAgB,EAAE,KAC9B,OAAO,CAAC,IAAI,CAAC;qCA7CmB,MAAM,KAAG,MAAM;CA2FrD,CAAC"}
1
+ {"version":3,"file":"address-resolver.d.ts","sourceRoot":"","sources":["../../src/refresh/address-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAEH,KAAK,mBAAmB,EAE3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAO9D,MAAM,MAAM,iBAAiB,GAAG,OAAO,CACnC,mBAAmB,EACnB;IAAE,IAAI,EAAE,kBAAkB,GAAG,mBAAmB,CAAA;CAAE,CACrD,GAAG;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7B,qFAAqF;AACrF,MAAM,MAAM,yBAAyB,GAAG,iBAAiB,GAAG;IACxD,aAAa,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACpC,CAAC;AAEF,eAAO,MAAM,2BAA2B,GACpC,KAAK,mBAAmB,KACzB,GAAG,IAAI,yBAEsC,CAAC;AAEjD,MAAM,WAAW,2BAA2B;IACxC,MAAM,EAAE,aAAa,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8FAA8F;IAC9F,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,iBAAiB,EAAE,CAAC,WAAW,EAAE,uBAAuB,EAAE,KAAK,IAAI,CAAC;CACvE;AAED;;GAEG;AACH,eAAO,MAAM,0BAA0B,GACnC,UAAU,gBAAgB,EAC1B,qBAAqB,iBAAiB,CAAC,qBAAqB,CAAC,KAC9D,OASF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,GACnC,qBAAqB,SAAS,MAAM,EAAE,GAAG,SAAS,EAClD,YAAY,MAAM,EAClB,YAAY,MAAM,KACnB,MAAM,EAAE,GAAG,SAUb,CAAC;AAEF,qGAAqG;AACrG,eAAO,MAAM,0BAA0B,GACnC,qBAAqB,iBAAiB,CAAC,qBAAqB,CAAC,EAC7D,YAAY,MAAM,KACnB,iBAAiB,CAAC,qBAAqB,CAQzC,CAAC;AAEF,eAAO,MAAM,UAAU,GACnB,QAAQ,aAAa,EACrB,KAAK,mBAAmB,KACzB,OAAO,CAAC,OAAO,CAIjB,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,wBAAwB,GACjC,QAAQ,aAAa,EACrB,OAAO,MAAM,EACb,KAAK,iBAAiB,KACvB,OAAO,CAAC,gBAAgB,EAAE,CAgD5B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,0BAA0B,GACnC,QAAQ,aAAa,EACrB,KAAK,mBAAmB,EACxB,cAAc,MAAM,KACrB,OAAO,CAAC,MAAM,EAAE,CAOlB,CAAC;AAEF,eAAO,MAAM,6BAA6B,GAAI,MAAM,2BAA2B;mCAsE/B,iBAAiB,KAAG,OAAO,CAAC,MAAM,CAAC;oCAWlC,iBAAiB,KAAG,OAAO,CAAC,MAAM,EAAE,CAAC;kCAjEjD,iBAAiB,KAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;mCA8BvE,iBAAiB,aACX,gBAAgB,EAAE,KAC9B,OAAO,CAAC,IAAI,CAAC;qCA7CmB,MAAM,KAAG,MAAM;CA2FrD,CAAC"}
@@ -1,4 +1,4 @@
1
- export { createContractAddressResolver, isConcreteActiveContractRef, isRefAlive, matchesContractStateFilter, queryLiveContractIdsForRef, queryLiveContractsForRef, resolveContractStateFilter, resolveExpectedSignatories } from '../NMGEBYN4.js';
1
+ export { createContractAddressResolver, isConcreteActiveContractRef, isRefAlive, matchesContractStateFilter, queryLiveContractIdsForRef, queryLiveContractsForRef, resolveContractStateFilter, resolveExpectedSignatories } from '../RVJRKYSC.js';
2
2
  import '../SWY4QT4I.js';
3
3
  import '../PWKI6T6A.js';
4
4
  import '../VUOMXK5T.js';
@@ -1,10 +1,10 @@
1
1
  import '../6UDREB6T.js';
2
- export { resolveCantonTransaction } from '../MAPJ2MAL.js';
3
- export { resolveCantonActiveContracts, resolveCantonRefreshPlan, selectContractsByGte } from '../WNK77EWB.js';
4
- export { createContractAddressResolver, isConcreteActiveContractRef, isRefAlive, matchesContractStateFilter, queryLiveContractIdsForRef, queryLiveContractsForRef, resolveContractStateFilter, resolveExpectedSignatories } from '../NMGEBYN4.js';
2
+ export { resolveCantonTransaction } from '../U3XCZGRR.js';
3
+ export { resolveCantonActiveContracts, resolveCantonRefreshPlan, selectContractsByGte } from '../V3KXSTGZ.js';
4
+ export { createContractAddressResolver, isConcreteActiveContractRef, isRefAlive, matchesContractStateFilter, queryLiveContractIdsForRef, queryLiveContractsForRef, resolveContractStateFilter, resolveExpectedSignatories } from '../RVJRKYSC.js';
5
5
  export { wrapLzSdk } from '../I5ERUZDD.js';
6
6
  export { substituteCidsToRefs, substituteRefsToCids } from '../BSVJEBKM.js';
7
- import '../HUATNETA.js';
7
+ import '../YCF6SVF6.js';
8
8
  import '../3K5JL2TP.js';
9
9
  export { buildCantonDeployedContractAddressRef, qualifiedTemplateName, templateIdMatches } from '../BQWTGHOG.js';
10
10
  export { cantonActiveContractSelectionSchema, cantonArgumentRefreshTargetSchema, cantonRefreshPathSchema, cantonRefreshPathSegmentSchema, cantonRefreshPlanSchema, cantonRefreshSchema, cantonRefreshTargetSchema } from '../UGGRFD54.js';
@@ -1,5 +1,5 @@
1
- export { resolveCantonActiveContracts, resolveCantonRefreshPlan, selectContractsByGte } from '../WNK77EWB.js';
2
- import '../NMGEBYN4.js';
1
+ export { resolveCantonActiveContracts, resolveCantonRefreshPlan, selectContractsByGte } from '../V3KXSTGZ.js';
2
+ import '../RVJRKYSC.js';
3
3
  import '../SWY4QT4I.js';
4
4
  import '../PWKI6T6A.js';
5
5
  import '../VUOMXK5T.js';
@@ -1,8 +1,8 @@
1
- export { resolveCantonTransaction } from '../MAPJ2MAL.js';
2
- import '../WNK77EWB.js';
3
- import '../NMGEBYN4.js';
1
+ export { resolveCantonTransaction } from '../U3XCZGRR.js';
2
+ import '../V3KXSTGZ.js';
3
+ import '../RVJRKYSC.js';
4
4
  import '../BSVJEBKM.js';
5
- import '../HUATNETA.js';
5
+ import '../YCF6SVF6.js';
6
6
  import '../3K5JL2TP.js';
7
7
  import '../SWY4QT4I.js';
8
8
  import '../PWKI6T6A.js';
@@ -68,6 +68,13 @@ export declare class CantonSdk {
68
68
  * @param parties Parties to use for visibility filtering
69
69
  */
70
70
  get<T extends object>(contractId: ContractId<T>, parties: Party[]): Promise<Contract<T> | undefined>;
71
+ /**
72
+ * Fetch a live contract's created event by ID, with the views of `interfaceIds` when given:
73
+ * one point lookup that returns the payload, the interface views and the signatories.
74
+ */
75
+ fetchContractEvent(contractId: string, parties: Party[], opts?: {
76
+ interfaceIds?: string[];
77
+ }): Promise<CreatedEvent | undefined>;
71
78
  /**
72
79
  * Fetch an update (transaction) by its ID.
73
80
  *
@@ -1 +1 @@
1
- {"version":3,"file":"canton-sdk.d.ts","sourceRoot":"","sources":["../../src/sdk/canton-sdk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"canton-sdk.d.ts","sourceRoot":"","sources":["../../src/sdk/canton-sdk.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export { CantonSdk } from '../RQQM2SSD.js';
1
+ export { CantonSdk } from '../ZBLS2HTS.js';
2
2
  import '../3K5JL2TP.js';
3
3
  import '../VUOMXK5T.js';
4
4
  //# sourceMappingURL=canton-sdk.js.map
package/dist/sdk/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import '../5GUYLHA7.js';
2
- export { CantonSdk } from '../RQQM2SSD.js';
2
+ export { CantonSdk } from '../ZBLS2HTS.js';
3
3
  import '../3K5JL2TP.js';
4
4
  import '../VUOMXK5T.js';
5
5
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@layerzerolabs/common-canton",
3
- "version": "1.2.77",
3
+ "version": "1.2.79",
4
4
  "private": false,
5
5
  "description": "Canton VM client and utilities",
6
6
  "license": "MIT",
@@ -32,10 +32,10 @@
32
32
  "@canton-network/core-ledger-proto": "^1.7.0",
33
33
  "@daml/types": "3.4.8",
34
34
  "@grpc/grpc-js": "^1.12.0",
35
- "@layerzerolabs/common-chain-model": "1.2.77",
36
- "@layerzerolabs/common-encoding-utils": "1.2.77",
37
- "@layerzerolabs/common-error-utils": "1.2.77",
38
- "@layerzerolabs/typescript-utils": "1.2.77",
35
+ "@layerzerolabs/common-chain-model": "1.2.79",
36
+ "@layerzerolabs/common-encoding-utils": "1.2.79",
37
+ "@layerzerolabs/common-error-utils": "1.2.79",
38
+ "@layerzerolabs/typescript-utils": "1.2.79",
39
39
  "@mojotech/json-type-validation": "^3.1.0",
40
40
  "@noble/hashes": "^1.8.0",
41
41
  "@noble/secp256k1": "1.7.1",
@@ -46,11 +46,11 @@
46
46
  "zod": "4.3.5"
47
47
  },
48
48
  "devDependencies": {
49
- "@layerzerolabs/eslint-configuration": "^1.2.77",
50
- "@layerzerolabs/tsup-configuration": "1.2.77",
51
- "@layerzerolabs/typescript-configuration": "1.2.77",
52
- "@layerzerolabs/vitest-configuration": "1.2.77",
53
- "@layerzerolabs/vm-tooling-canton": "1.2.77",
49
+ "@layerzerolabs/eslint-configuration": "^1.2.79",
50
+ "@layerzerolabs/tsup-configuration": "1.2.79",
51
+ "@layerzerolabs/typescript-configuration": "1.2.79",
52
+ "@layerzerolabs/vitest-configuration": "1.2.79",
53
+ "@layerzerolabs/vm-tooling-canton": "1.2.79",
54
54
  "@vitest/coverage-v8": "4.1.10",
55
55
  "eslint": "9.39.1",
56
56
  "tsup": "^8.4.0",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/client/amulet.ts"],"names":["AMULET_INSTRUMENT_ID","CONTEXT_PROBE_EXECUTE_BEFORE_WINDOW_MS","fetchAmuletContext","walletUrl","token","instrumentId","now","Date","later","getTime","response","fetch","URL","method","headers","Authorization","body","JSON","stringify","choiceArguments","expectedAdmin","admin","transfer","sender","receiver","amount","requestedAt","toISOString","executeBefore","inputHoldingCids","meta","values","extraArgs","context","ok","text","CantonProtocolError","status","data","json","disclosedContracts","choiceContextData","amuletContext","choiceContext","fetchAcceptContext","args","encodeURIComponent","contractId","excludeDebugFields","injectExternalPartyAmuletRules","externalRulesContract","find","contract","templateId","includes","Error","tag","value","externalPartyAmuletRulesCid","fetchDsoParty","dso_party_id","scanProxyGet","path","fetchAmuletRules","amulet_rules","fetchOpenAndIssuingMiningRounds","open_mining_rounds","issuing_mining_rounds","toDisclosedContract","entry","contract_id","template_id","createdEventBlob","created_event_blob","synchronizerId","domain_id"],"mappings":"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","file":"HUATNETA.js","sourcesContent":["import type { TokenProvider } from '../auth/token-provider';\nimport { CantonProtocolError } from '../errors';\nimport type { CantonDisclosedContract } from '../transaction';\n\n/** Validator-wallet access a {@link CantonClient} needs to serve amulet endpoints. */\nexport type CantonClientWalletConfig = {\n /** Validator wallet URL for scan-proxy CIP-56 endpoints. */\n walletUrl: string;\n /** Bearer-token source for wallet requests. */\n tokenProvider: TokenProvider;\n};\n\n/** The single Amulet instrument id used across Canton Network fee flows. */\nexport const AMULET_INSTRUMENT_ID = 'Amulet';\n\n/** Instrument identifier for an amulet context probe. */\nexport type InstrumentId = { admin: string; id: string };\n\n/** DAML ChoiceContext — a bag of named AnyValues passed to fee-bearing choices. */\nexport type ChoiceContext = { values: Record<string, unknown> };\n\nexport type AmuletContextResult = {\n amuletContext: ChoiceContext;\n disclosedContracts: CantonDisclosedContract[];\n externalPartyAmuletRulesCid: string;\n};\n\n// The probe (amount 0, sender = receiver = admin) never executes — it only fetches context; 1-hour window is ample.\nconst CONTEXT_PROBE_EXECUTE_BEFORE_WINDOW_MS = 60 * 60 * 1000;\n\ntype AmuletContextResponse = {\n choiceContext: {\n disclosedContracts: CantonDisclosedContract[];\n choiceContextData: ChoiceContext;\n };\n};\n\n/** Amulet ChoiceContext from the validator scan-proxy — same call for all fee-bearing choices. */\nexport const fetchAmuletContext = async (\n walletUrl: string,\n token: string,\n instrumentId: InstrumentId,\n): Promise<{ amuletContext: ChoiceContext; disclosedContracts: CantonDisclosedContract[] }> => {\n const now = new Date();\n const later = new Date(now.getTime() + CONTEXT_PROBE_EXECUTE_BEFORE_WINDOW_MS);\n\n const response = await fetch(\n new URL(\n '/api/validator/v0/scan-proxy/registry/transfer-instruction/v1/transfer-factory',\n walletUrl,\n ),\n {\n method: 'POST',\n headers: {\n Authorization: `Bearer ${token}`,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n choiceArguments: {\n expectedAdmin: instrumentId.admin,\n transfer: {\n sender: instrumentId.admin,\n receiver: instrumentId.admin,\n amount: '0',\n instrumentId,\n requestedAt: now.toISOString(),\n executeBefore: later.toISOString(),\n inputHoldingCids: [],\n meta: { values: {} },\n },\n extraArgs: { context: { values: {} }, meta: { values: {} } },\n },\n }),\n },\n );\n\n if (!response.ok) {\n const text = await response.text();\n throw new CantonProtocolError(`Failed to get amulet context: ${response.status} ${text}`);\n }\n\n const data = (await response.json()) as AmuletContextResponse;\n const { disclosedContracts, choiceContextData: amuletContext } = data.choiceContext;\n\n return { amuletContext, disclosedContracts };\n};\n\n// Validators disagree on where they nest the accept context: some return it under\n// `choiceContext.choiceContextData`, others at the top level, with or without a `values` wrapper.\ntype AcceptContextResponse = {\n choiceContextData?: { values?: Record<string, unknown> } | Record<string, unknown>;\n choiceContext?: {\n choiceContextData?: { values?: Record<string, unknown> };\n disclosedContracts?: CantonDisclosedContract[];\n };\n disclosedContracts?: CantonDisclosedContract[];\n};\n\n/** ChoiceContext for `TransferInstruction_Accept` on a single pending instruction. */\nexport const fetchAcceptContext = async (args: {\n walletUrl: string;\n token: string;\n contractId: string;\n}): Promise<{ choiceContext: ChoiceContext; disclosedContracts: CantonDisclosedContract[] }> => {\n const response = await fetch(\n new URL(\n `/api/validator/v0/scan-proxy/registry/transfer-instruction/v1/${encodeURIComponent(\n args.contractId,\n )}/choice-contexts/accept`,\n args.walletUrl,\n ),\n {\n method: 'POST',\n headers: {\n Authorization: `Bearer ${args.token}`,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ excludeDebugFields: true }),\n },\n );\n\n if (!response.ok) {\n const text = await response.text();\n throw new CantonProtocolError(`Failed to get accept context: ${response.status} ${text}`);\n }\n\n const data = (await response.json()) as AcceptContextResponse;\n const choiceContextData = data.choiceContext?.choiceContextData ??\n data.choiceContextData ?? { values: {} };\n const disclosedContracts =\n data.choiceContext?.disclosedContracts ?? data.disclosedContracts ?? [];\n const values =\n 'values' in choiceContextData &&\n choiceContextData.values &&\n typeof choiceContextData.values === 'object'\n ? (choiceContextData.values as Record<string, unknown>)\n : choiceContextData;\n\n return { choiceContext: { values }, disclosedContracts };\n};\n\n/** Injects ExternalPartyAmuletRules cid into the ChoiceContext — required by every flow hitting FeeUtils.validateContext. */\nexport const injectExternalPartyAmuletRules = (\n amuletContext: ChoiceContext,\n disclosedContracts: CantonDisclosedContract[],\n): { amuletContext: ChoiceContext; externalPartyAmuletRulesCid: string } => {\n const externalRulesContract = disclosedContracts.find((contract) =>\n contract.templateId?.includes('ExternalPartyAmuletRules'),\n );\n\n if (!externalRulesContract) {\n throw new Error(\n 'ExternalPartyAmuletRules not found in disclosed contracts from amulet context',\n );\n }\n\n return {\n amuletContext: {\n values: {\n ...amuletContext.values,\n 'external-party-amulet-rules': {\n tag: 'AV_ContractId',\n value: externalRulesContract.contractId,\n },\n },\n },\n externalPartyAmuletRulesCid: externalRulesContract.contractId,\n };\n};\n\n/** Fetch the DSO party id from the validator scan-proxy API. */\nexport const fetchDsoParty = async (walletUrl: string, token: string): Promise<string> => {\n const response = await fetch(new URL('/api/validator/v0/scan-proxy/dso-party-id', walletUrl), {\n headers: { Authorization: `Bearer ${token}` },\n });\n if (!response.ok) {\n throw new CantonProtocolError(`Failed to get DSO party: ${response.status}`);\n }\n const data = (await response.json()) as { dso_party_id: string };\n return data.dso_party_id;\n};\n\n/** Scan-proxy contract envelope (`amulet-rules`, mining rounds). */\nexport type ScanContractEntry = {\n contract: {\n template_id: string;\n contract_id: string;\n payload?: unknown;\n created_event_blob: string;\n created_at?: string;\n };\n domain_id: string;\n};\n\nexport type OpenAndIssuingMiningRounds = {\n open_mining_rounds: Record<string, ScanContractEntry>;\n issuing_mining_rounds: Record<string, ScanContractEntry>;\n};\n\nconst scanProxyGet = async <T>(walletUrl: string, token: string, path: string): Promise<T> => {\n const response = await fetch(new URL(path, walletUrl), {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${token}`,\n 'Content-Type': 'application/json',\n },\n });\n if (!response.ok) {\n const text = await response.text();\n throw new CantonProtocolError(`Scan-proxy ${path} failed: ${response.status} ${text}`);\n }\n return (await response.json()) as T;\n};\n\nexport const fetchAmuletRules = async (\n walletUrl: string,\n token: string,\n): Promise<ScanContractEntry> => {\n const data = await scanProxyGet<{ amulet_rules: ScanContractEntry }>(\n walletUrl,\n token,\n '/api/validator/v0/scan-proxy/amulet-rules',\n );\n return data.amulet_rules;\n};\n\nexport const fetchOpenAndIssuingMiningRounds = async (\n walletUrl: string,\n token: string,\n): Promise<OpenAndIssuingMiningRounds> => {\n const data = await scanProxyGet<OpenAndIssuingMiningRounds>(\n walletUrl,\n token,\n '/api/validator/v0/scan-proxy/open-and-issuing-mining-rounds',\n );\n return {\n open_mining_rounds: data.open_mining_rounds ?? {},\n issuing_mining_rounds: data.issuing_mining_rounds ?? {},\n };\n};\n\nexport const toDisclosedContract = (entry: ScanContractEntry): CantonDisclosedContract => ({\n contractId: entry.contract.contract_id,\n templateId: entry.contract.template_id,\n createdEventBlob: entry.contract.created_event_blob,\n synchronizerId: entry.domain_id,\n});\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/refresh/address-resolver.ts"],"names":["isAmuletHoldingTemplateId","templateId","endsWith","isConcreteActiveContractRef","ref","type","partyToFilter","CANTON_DEFERRED_SENDER","matchesContractStateFilter","contract","contractStateFilter","createArgument","createdEvent","Object","entries","every","key","value","actual","getCreateArgumentField","undefined","JSON","stringify","resolveExpectedSignatories","expectedSignatories","queryParty","length","map","party","isCantonDeferredSender","resolveContractStateFilter","fromEntries","isRefAlive","client","contracts","queryLiveContractsForRef","interfaceId","startsWith","packageName","moduleName","entityName","extra","slice","split","Error","packageId","getPackageId","offset","getLedgerEndOffset","queryActiveContractsByInterface","includeCreatedEventBlob","queryActiveContracts","templateIds","filter","areExpectedSignatories","views","interfaceViews","view","viewValue","viewStatus","code","queryLiveContractIdsForRef","senderParty","c","contractId","createContractAddressResolver","deps","signingParties","appendDisclosures","requireSender","resolveQueryParty","queryCache","Map","queryAsParty","cacheKey","cached","get","query","set","needsDisclosure","stakeholders","Set","signatories","observers","some","has","discloseContracts","toDisclose","disclosures","createdEventBlob","synchronizerId","resolveActiveContractId","resolveActiveContractIds","resolveActiveContracts","discloseActiveContracts","requireSenderParty"],"mappings":"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","file":"NMGEBYN4.js","sourcesContent":["import type { ICantonClient } from '../client/interface';\nimport {\n CANTON_DEFERRED_SENDER,\n type CantonDeferredValue,\n isCantonDeferredSender,\n} from '../deferredValue';\nimport type { JsActiveContract } from '../open-api/models';\nimport type { CantonDisclosedContract } from '../transaction';\nimport { areExpectedSignatories, getCreateArgumentField } from '../trusted-origin';\n\n/** CIP-56 Amulet holding — DSO is the sole signatory; owner is payload/observer. */\nconst isAmuletHoldingTemplateId = (templateId: string): boolean =>\n templateId.endsWith(':Splice.Amulet:Amulet');\n\nexport type ActiveContractRef = Extract<\n CantonDeferredValue,\n { type: 'activeContractId' | 'activeContractIds' }\n> & { interfaceId?: string };\n\n/** Active-contract ref whose handler party is concrete (not the sender sentinel). */\nexport type ConcreteActiveContractRef = ActiveContractRef & {\n partyToFilter: { party: string };\n};\n\nexport const isConcreteActiveContractRef = (\n ref: CantonDeferredValue,\n): ref is ConcreteActiveContractRef =>\n (ref.type === 'activeContractId' || ref.type === 'activeContractIds') &&\n ref.partyToFilter !== CANTON_DEFERRED_SENDER;\n\nexport interface ContractAddressResolverDeps {\n client: ICantonClient;\n senderParty?: string;\n /** A contract is only disclosed when none of these parties is already a stakeholder on it. */\n signingParties: string[];\n appendDisclosures: (disclosures: CantonDisclosedContract[]) => void;\n}\n\n/**\n * Match create-argument fields, including dotted paths (`instrumentId.admin`).\n */\nexport const matchesContractStateFilter = (\n contract: JsActiveContract,\n contractStateFilter: ActiveContractRef['contractStateFilter'],\n): boolean => {\n if (!contractStateFilter) return true;\n const createArgument = contract.createdEvent.createArgument;\n return Object.entries(contractStateFilter).every(([key, value]) => {\n const actual = getCreateArgumentField(createArgument, key);\n // Missing / unresolvable paths must not match (fail closed).\n if (actual === undefined) return false;\n return JSON.stringify(actual) === JSON.stringify(value);\n });\n};\n\n/**\n * Resolve {@link CANTON_DEFERRED_SENDER} entries to the ACS query party.\n * Missing lists default to `[queryParty]` except CIP-56 Amulet holdings, where\n * the owner is not a signatory — omit the filter so pre-PR refs still resolve.\n */\nexport const resolveExpectedSignatories = (\n expectedSignatories: readonly string[] | undefined,\n queryParty: string,\n templateId: string,\n): string[] | undefined => {\n if (expectedSignatories?.length) {\n return expectedSignatories.map((party) =>\n isCantonDeferredSender(party) ? queryParty : party,\n );\n }\n if (isAmuletHoldingTemplateId(templateId)) {\n return undefined;\n }\n return [queryParty];\n};\n\n/** Resolve {@link CANTON_DEFERRED_SENDER} values in `contractStateFilter` to the ACS query party. */\nexport const resolveContractStateFilter = (\n contractStateFilter: ActiveContractRef['contractStateFilter'],\n queryParty: string,\n): ActiveContractRef['contractStateFilter'] => {\n if (!contractStateFilter) return contractStateFilter;\n return Object.fromEntries(\n Object.entries(contractStateFilter).map(([key, value]) => [\n key,\n isCantonDeferredSender(value) ? queryParty : value,\n ]),\n );\n};\n\nexport const isRefAlive = async (\n client: ICantonClient,\n ref: CantonDeferredValue,\n): Promise<boolean> => {\n if (!isConcreteActiveContractRef(ref)) return false;\n const contracts = await queryLiveContractsForRef(client, ref.partyToFilter.party, ref);\n return ref.type === 'activeContractId' ? contracts.length === 1 : contracts.length > 0;\n};\n\n/**\n * Query ACS for `party` + template, apply state filter, then\n * authenticate-then-count: keep only contracts where every resolved\n * `expectedSignatories` entry is a ledger signatory.\n *\n * `partyToFilter` is visibility (may be an observer). `expectedSignatories` is\n * authority (defaults to the query party when omitted, except Amulet holdings).\n * Optional `contractStateFilter` disambiguates / binds payload roles (supports\n * dotted paths; {@link CANTON_DEFERRED_SENDER} values resolve).\n */\nexport const queryLiveContractsForRef = async (\n client: ICantonClient,\n party: string,\n ref: ActiveContractRef,\n): Promise<JsActiveContract[]> => {\n let interfaceId = ref.interfaceId;\n if (interfaceId?.startsWith('#')) {\n const [packageName, moduleName, entityName, ...extra] = interfaceId.slice(1).split(':');\n if (!packageName || !moduleName || !entityName || extra.length) {\n throw new Error(`Invalid package-name-qualified interface ID: ${interfaceId}`);\n }\n const packageId = await client.getPackageId(packageName, [party]);\n interfaceId = `${packageId}:${moduleName}:${entityName}`;\n }\n const offset = await client.getLedgerEndOffset();\n const expectedSignatories = resolveExpectedSignatories(\n ref.expectedSignatories,\n party,\n ref.templateId,\n );\n const contractStateFilter = resolveContractStateFilter(ref.contractStateFilter, party);\n const contracts = interfaceId\n ? await client.queryActiveContractsByInterface([party], offset, [interfaceId], {\n includeCreatedEventBlob: true,\n })\n : await client.queryActiveContracts(party, offset, {\n templateIds: [ref.templateId],\n includeCreatedEventBlob: true,\n });\n return contracts.filter((contract) => {\n if (\n expectedSignatories !== undefined &&\n !areExpectedSignatories(contract.createdEvent, expectedSignatories)\n )\n return false;\n if (!interfaceId) return matchesContractStateFilter(contract, contractStateFilter);\n const views = (contract.createdEvent.interfaceViews ?? []).filter(\n (view) => view.interfaceId === interfaceId,\n );\n if (views.length !== 1 || views[0]!.viewValue == null || views[0]!.viewStatus?.code !== 0) {\n return false;\n }\n return matchesContractStateFilter(\n {\n ...contract,\n createdEvent: { ...contract.createdEvent, createArgument: views[0]!.viewValue },\n },\n contractStateFilter,\n );\n });\n};\n\n/**\n * Returns the contractIds of all live contracts matching ref.\n * Resolves {@link CANTON_DEFERRED_SENDER} to senderParty when provided; returns [] if unresolvable.\n */\nexport const queryLiveContractIdsForRef = async (\n client: ICantonClient,\n ref: CantonDeferredValue,\n senderParty?: string,\n): Promise<string[]> => {\n if (ref.type !== 'activeContractId' && ref.type !== 'activeContractIds') return [];\n const party =\n ref.partyToFilter === CANTON_DEFERRED_SENDER ? senderParty : ref.partyToFilter.party;\n if (!party) return [];\n const contracts = await queryLiveContractsForRef(client, party, ref);\n return contracts.map((c) => c.createdEvent.contractId);\n};\n\nexport const createContractAddressResolver = (deps: ContractAddressResolverDeps) => {\n const { client, senderParty, signingParties, appendDisclosures } = deps;\n\n const requireSender = (templateId: string): string => {\n if (!senderParty) {\n throw new Error(\n `Refresh entry for ${templateId} needs a resolved sender party, but none was provided`,\n );\n }\n return senderParty;\n };\n\n const resolveQueryParty = ({ partyToFilter, templateId }: ActiveContractRef): string =>\n partyToFilter === CANTON_DEFERRED_SENDER ? requireSender(templateId) : partyToFilter.party;\n\n const queryCache = new Map<string, Promise<JsActiveContract[]>>();\n const queryAsParty = async (ref: ActiveContractRef): Promise<JsActiveContract[]> => {\n const party = resolveQueryParty(ref);\n const cacheKey = JSON.stringify({ ...ref, party });\n const cached = queryCache.get(cacheKey);\n if (cached) return cached;\n\n const query = (async () => {\n const contracts = await queryLiveContractsForRef(client, party, ref);\n if (contracts.length === 0) {\n throw new Error(\n `Party ${party} has no matching active contracts of ${ref.templateId}`,\n );\n }\n return contracts;\n })();\n queryCache.set(cacheKey, query);\n return query;\n };\n\n // A signing party that is already a stakeholder can see the contract on its\n // own stream, so only disclose to parties that aren't signatories/observers.\n const needsDisclosure = (contract: JsActiveContract): boolean => {\n const stakeholders = new Set([\n ...(contract.createdEvent.signatories ?? []),\n ...(contract.createdEvent.observers ?? []),\n ]);\n return !signingParties.some((party) => stakeholders.has(party));\n };\n\n const discloseContracts = async (\n ref: ActiveContractRef,\n contracts: JsActiveContract[],\n ): Promise<void> => {\n const toDisclose = contracts.filter(needsDisclosure);\n if (toDisclose.length === 0) return;\n\n const disclosures = toDisclose.map((contract) => {\n const contractId = contract.createdEvent.contractId;\n const createdEventBlob = contract.createdEvent.createdEventBlob;\n if (!createdEventBlob) {\n throw new Error(\n `Could not disclose ${contractId} (template ${ref.templateId}) — ACS result omitted createdEventBlob`,\n );\n }\n return {\n contractId,\n templateId: contract.createdEvent.templateId,\n createdEventBlob,\n synchronizerId: contract.synchronizerId,\n };\n });\n appendDisclosures(disclosures);\n };\n\n const resolveActiveContractId = async (ref: ActiveContractRef): Promise<string> => {\n const contracts = await queryAsParty(ref);\n if (contracts.length !== 1) {\n throw new Error(\n `Refresh for ${ref.templateId} matched ${contracts.length} contracts, but a scalar ref expects exactly one`,\n );\n }\n await discloseContracts(ref, contracts);\n return contracts[0]!.createdEvent.contractId;\n };\n\n const resolveActiveContractIds = async (ref: ActiveContractRef): Promise<string[]> => {\n const contracts = await queryAsParty(ref);\n await discloseContracts(ref, contracts);\n return contracts.map((contract) => contract.createdEvent.contractId);\n };\n\n return {\n resolveActiveContractId,\n resolveActiveContractIds,\n resolveActiveContracts: queryAsParty,\n discloseActiveContracts: discloseContracts,\n requireSenderParty: requireSender,\n };\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/sdk/canton-sdk.ts"],"names":["CantonSdk","client","event","contractId","undefined","templateId","CantonProtocolError","createArgument","payload","buildCreate","template","packageId","parts","replace","split","createCommand","join","createArguments","encode","buildExercise","choice","args","encodedArgs","argumentEncode","exerciseCommand","choiceName","choiceArgument","submit","actors","commands","opts","prepareForSigning","submitSigned","prepared","signatures","waitForCommand","commandId","get","parties","fetchContractById","fetchTransaction","updateId","fetchTransactionByUpdateId","fetchTransactionByOffset","offset","fetchEventsByContractId","createDisclosure","connectedSynchronizers","uploadDar","dar","validateDar","listParties","listUserParties","allocateParty","partyIdHint","getPackageId","packageName","getLedgerEndOffset","queryActiveContracts","party","normalizeActiveContract","contract","e","createdEvent","synchronizerId","queryActiveContractsByParties","templateIds","queryActiveContractsByInterface","interfaceIds","queryActiveContractsForParties","templateFilter","apiOpts","perPartyResults","Promise","all","map","partyId","seen","Set","result","contracts","c","cid","has","add","normalized","push"],"mappings":"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","file":"RQQM2SSD.js","sourcesContent":["import type { Choice, ContractId, Party, Template } from '@daml/types';\n\nimport type { CantonTransaction, ICantonClient } from '../client/index';\nimport { CantonProtocolError } from '../errors';\nimport type {\n ArchivedEvent,\n Command,\n CreatedEvent,\n DisclosedContract,\n JsActiveContract,\n} from '../open-api/models';\nimport type { CantonDisclosedContract } from '../transaction';\nimport type {\n Contract,\n ExternalSignature,\n NormalizedActiveContract,\n PreparedTransaction,\n SubmitActors,\n SubmitResult,\n WaitOptions,\n WaitResult,\n} from '../types';\n\n/**\n * High-level SDK for Canton/DAML contract operations.\n *\n * Users interact with this SDK, not CantonClient directly.\n *\n * @example\n * ```ts\n * import { CantonClient, CantonSdk } from '@layerzerolabs/common-canton';\n *\n * const client = new CantonClient(config, userId);\n * const sdk = new CantonSdk(client);\n *\n * await sdk.submit({ actAs: [party] }, [cmd]);\n * ```\n */\nexport class CantonSdk {\n readonly #client: ICantonClient;\n\n constructor(client: ICantonClient) {\n this.#client = client;\n }\n\n // ─────────────────────────────────────────────────────────────────────────\n // Private Helpers\n // ─────────────────────────────────────────────────────────────────────────\n\n /**\n * Validate and extract contract fields from a CreatedEvent.\n * Returns undefined if event is undefined (contract not found).\n */\n #validateContractEvent<T extends object>(\n event: { templateId?: string; contractId?: string; createArgument?: unknown } | undefined,\n contractId: ContractId<T>,\n ): Contract<T> | undefined {\n if (!event) return undefined;\n\n if (!event.templateId) {\n throw new CantonProtocolError('Contract response missing templateId', {\n contractId,\n });\n }\n if (!event.contractId) {\n throw new CantonProtocolError('Contract response missing contractId', {\n contractId,\n });\n }\n if (event.createArgument === undefined) {\n throw new CantonProtocolError('Contract response missing createArgument', {\n contractId,\n });\n }\n return {\n templateId: event.templateId,\n contractId: event.contractId as ContractId<T>,\n payload: event.createArgument as T,\n };\n }\n\n // ─────────────────────────────────────────────────────────────────────────\n // Command Builders\n // ─────────────────────────────────────────────────────────────────────────\n\n /**\n * Build a create command using a generated DAML template.\n *\n * @param template The generated DAML template (e.g., StateCommitment)\n * @param payload The contract payload\n * @param packageId The package ID from the generated package's index.js\n */\n buildCreate<T extends object, K, I extends string>(\n template: Template<T, K, I>,\n payload: T,\n packageId: string,\n ): Command {\n // Generated templateId format: '#packageName:Module:Entity'\n // Canton API needs: 'packageId:Module:Entity'\n const parts = template.templateId.replace(/^#/, '').split(':');\n parts[0] = packageId;\n\n return {\n createCommand: {\n templateId: parts.join(':'),\n createArguments: template.encode(payload),\n },\n };\n }\n\n /**\n * Build an exercise command using a generated DAML choice.\n *\n * @param choice The generated DAML choice (e.g., StateCommitment.Archive)\n * @param contractId The contract ID to exercise on\n * @param args The choice arguments\n * @param packageId The package ID from the generated package's index.js\n */\n buildExercise<T extends object, C, R, K>(\n choice: Choice<T, C, R, K>,\n contractId: ContractId<T>,\n args: C,\n packageId: string,\n ): Command {\n // Generated templateId format: '#packageName:Module:Entity'\n // Canton API needs: 'packageId:Module:Entity'\n const parts = choice.template().templateId.replace(/^#/, '').split(':');\n parts[0] = packageId;\n\n const encodedArgs = choice.argumentEncode(args);\n\n return {\n exerciseCommand: {\n templateId: parts.join(':'),\n contractId,\n choice: choice.choiceName,\n choiceArgument: encodedArgs,\n },\n };\n }\n\n // ─────────────────────────────────────────────────────────────────────────\n // Submission (networked)\n // ─────────────────────────────────────────────────────────────────────────\n\n /**\n * Submit commands to the ledger.\n */\n submit(\n actors: SubmitActors,\n commands: Command[],\n opts?: { disclosedContracts?: DisclosedContract[]; commandId?: string },\n ): Promise<SubmitResult> {\n return this.#client.submit(actors, commands, opts);\n }\n\n /**\n * Prepare commands for off-chain signing by external parties.\n */\n prepareForSigning(\n actors: SubmitActors,\n commands: Command[],\n opts?: { disclosedContracts?: DisclosedContract[]; commandId?: string },\n ): Promise<PreparedTransaction> {\n return this.#client.prepareForSigning(actors, commands, opts);\n }\n\n /**\n * Submit a pre-signed transaction (external party flow).\n */\n submitSigned(\n prepared: PreparedTransaction,\n signatures: ExternalSignature[],\n ): Promise<SubmitResult> {\n return this.#client.submitSigned(prepared, signatures);\n }\n\n /**\n * Wait for a command to be accepted or rejected.\n */\n waitForCommand(commandId: string, opts: WaitOptions): Promise<WaitResult> {\n return this.#client.waitForCommand(commandId, opts);\n }\n\n // ─────────────────────────────────────────────────────────────────────────\n // Queries\n // ─────────────────────────────────────────────────────────────────────────\n\n /**\n * Fetch a specific contract by ID.\n * Returns undefined if archived or not visible.\n *\n * @param contractId The contract ID to fetch\n * @param parties Parties to use for visibility filtering\n */\n async get<T extends object>(\n contractId: ContractId<T>,\n parties: Party[],\n ): Promise<Contract<T> | undefined> {\n const event = await this.#client.fetchContractById(contractId, parties);\n return this.#validateContractEvent(event, contractId);\n }\n\n /**\n * Fetch an update (transaction) by its ID.\n *\n * Use this to get created contract IDs after a command is accepted.\n * The updateId comes from WaitResult.updateId.\n *\n * @param updateId The update ID from WaitResult\n * @param parties Parties to filter events\n * @returns Parsed update with events\n *\n * @example\n * ```ts\n * const waitResult = await sdk.waitForCommand(commandId, opts);\n * if (waitResult.status === 'accepted') {\n * const tx = await sdk.fetchTransaction(waitResult.updateId, [party]);\n * const createdIds = (tx.events ?? [])\n * .filter(e => 'CreatedEvent' in e)\n * .map(e => e.CreatedEvent.contractId);\n * }\n * ```\n */\n fetchTransaction(updateId: string, parties: string[]): Promise<CantonTransaction> {\n return this.#client.fetchTransactionByUpdateId(updateId, parties);\n }\n\n /**\n * Fetch a transaction by its offset.\n *\n * @param offset The ledger offset\n * @param parties Parties to filter events\n * @returns Parsed transaction with events and timestamps\n */\n fetchTransactionByOffset(offset: number, parties: string[]): Promise<CantonTransaction> {\n return this.#client.fetchTransactionByOffset(offset, parties);\n }\n\n /**\n * Fetch both the created and archived events for a contract by ID.\n *\n * @param contractId - The contract ID to look up\n * @param parties - Parties to use for visibility filtering\n */\n fetchEventsByContractId(\n contractId: string,\n parties: string[],\n ): Promise<{ created: CreatedEvent | undefined; archived: ArchivedEvent | undefined }> {\n return this.#client.fetchEventsByContractId(contractId, parties);\n }\n\n // ─────────────────────────────────────────────────────────────────────────\n // Disclosure\n // ─────────────────────────────────────────────────────────────────────────\n\n /**\n * Create a disclosure for a contract.\n *\n * Disclosures allow a party to share a contract's content with another party\n * who isn't a stakeholder, enabling them to exercise choices that reference it.\n *\n * @param contractId The contract to create disclosure for\n * @param parties Parties that have visibility to the contract\n * @returns The disclosed contract, or undefined if contract not found\n *\n * @example\n * ```ts\n * // Alice creates disclosure for Bob to use\n * const disclosure = await aliceSdk.createDisclosure(contractId, [aliceParty]);\n * if (disclosure) {\n * // Bob uses the disclosure in his submission\n * await bobSdk.submit(\n * { actAs: [bobParty] },\n * [command],\n * { disclosedContracts: [disclosure] }\n * );\n * }\n * ```\n */\n createDisclosure<T extends object>(\n contractId: ContractId<T>,\n parties: Party[],\n ): Promise<CantonDisclosedContract | undefined> {\n return this.#client.createDisclosure(contractId, parties);\n }\n\n // ─────────────────────────────────────────────────────────────────────────\n // Utilities\n // ─────────────────────────────────────────────────────────────────────────\n\n /**\n * Get connected synchronizers.\n */\n connectedSynchronizers(): Promise<string[]> {\n return this.#client.connectedSynchronizers();\n }\n\n /**\n * Upload a DAR to the participant node.\n *\n * POST /v2/dars\n *\n * @param opts.skipIfVetted - If true, treat KNOWN_PACKAGE_VERSION errors as success\n */\n uploadDar(\n dar: Uint8Array<ArrayBuffer>,\n opts?: { vetAllPackages?: boolean; synchronizerId?: string; skipIfVetted?: boolean },\n ): Promise<object> {\n return this.#client.uploadDar(dar, opts);\n }\n\n /**\n * Validate a DAR for upgrade compatibility against the current vetting state.\n *\n * POST /v2/dars/validate\n */\n validateDar(dar: Uint8Array<ArrayBuffer>, opts?: { synchronizerId?: string }): Promise<void> {\n return this.#client.validateDar(dar, opts);\n }\n\n /**\n * List all known parties on the participant node.\n *\n * GET /v2/parties\n *\n * @param opts.pageSize - Maximum number of results per page\n * @param opts.pageToken - Pagination token from previous response\n * @returns Array of party IDs\n */\n listParties(opts?: {\n pageSize?: number;\n pageToken?: string;\n }): Promise<{ parties: string[]; nextPageToken?: string }> {\n return this.#client.listParties(opts);\n }\n\n /**\n * List the parties the configured user can act/read as.\n *\n * Narrower than {@link listParties} (all parties on the node): use this when a\n * call needs the caller's own read-scoped parties.\n */\n listUserParties(): Promise<string[]> {\n return this.#client.listUserParties();\n }\n\n /**\n * Allocate a new party on the participant node.\n *\n * POST /v2/parties\n *\n * @param partyIdHint - A hint for the party ID (e.g., \"alice\", \"bob\")\n * @param opts.userId - User who gets actAs rights (empty string = no user)\n * @param opts.synchronizerId - Synchronizer to allocate on (auto-detected if omitted)\n * @param opts.identityProviderId - Identity provider ID (empty string = default)\n * @returns The allocated party ID\n */\n allocateParty(\n partyIdHint: string,\n opts?: { userId?: string; synchronizerId?: string; identityProviderId?: string },\n ): Promise<string> {\n return this.#client.allocateParty(partyIdHint, opts);\n }\n\n /**\n * Get the package ID for a package by name.\n *\n * POST /v2/interactive-submission/preferred-packages\n *\n * @param packageName - The package name (e.g., \"layerzero-oft\")\n * @param parties - Parties whose vetting state should be considered\n * @param opts.synchronizerId - Synchronizer to query (auto-detected if omitted)\n * @returns The package ID (hash)\n */\n getPackageId(\n packageName: string,\n parties: string[],\n opts?: { synchronizerId?: string },\n ): Promise<string> {\n return this.#client.getPackageId(packageName, parties, opts);\n }\n\n // ─────────────────────────────────────────────────────────────────────────\n // Active Contracts Query\n // ─────────────────────────────────────────────────────────────────────────\n\n /**\n * Get the current ledger end offset.\n *\n * GET /v2/state/ledger-end\n *\n * @returns The current ledger end offset\n */\n getLedgerEndOffset(): Promise<number> {\n return this.#client.getLedgerEndOffset();\n }\n\n /**\n * Query active contracts at a given offset with optional template filtering.\n *\n * POST /v2/state/active-contracts\n *\n * @param party - Party to query as (for visibility)\n * @param offset - Ledger offset to query at\n * @param opts.templateIds - Template IDs to filter by (e.g., \"packageId:Module:Template\")\n * @param opts.limit - Maximum number of contracts to return\n * @returns Array of active contracts\n *\n * @example\n * ```ts\n * const offset = await sdk.getLedgerEndOffset();\n * const contracts = await sdk.queryActiveContracts(party, offset, {\n * templateIds: ['packageId:SimpleRequest:SimpleRequest'],\n * limit: 100,\n * });\n * for (const contract of contracts) {\n * console.log(contract.createdEvent.contractId, contract.createdEvent.templateId);\n * }\n * ```\n */\n queryActiveContracts(\n party: string,\n offset: number,\n opts?: { templateIds?: string[]; limit?: number; includeCreatedEventBlob?: boolean },\n ): Promise<JsActiveContract[]> {\n return this.#client.queryActiveContracts(party, offset, opts);\n }\n\n /**\n * Normalize a ledger API JsActiveContract to a flat shape (contractId, templateId, payload, synchronizerId).\n * Useful when you only need these fields and not createdEvent / reassignmentCounter.\n */\n static normalizeActiveContract(contract: JsActiveContract): NormalizedActiveContract {\n const e = contract.createdEvent;\n return {\n contractId: e.contractId,\n templateId: e.templateId,\n payload: e.createArgument,\n synchronizerId: contract.synchronizerId,\n };\n }\n\n /**\n * Query active contracts visible to any of the given parties (single API call).\n */\n queryActiveContractsByParties(\n parties: string[],\n offset: number,\n templateIds: string[],\n opts?: { limit?: number },\n ): Promise<JsActiveContract[]> {\n return this.#client.queryActiveContractsByParties(parties, offset, templateIds, opts);\n }\n\n /**\n * Query active contracts visible to any of the given parties that implement\n * the given interfaces (single API call).\n */\n queryActiveContractsByInterface(\n parties: string[],\n offset: number,\n interfaceIds: string[],\n opts?: { limit?: number; includeCreatedEventBlob?: boolean },\n ): Promise<JsActiveContract[]> {\n return this.#client.queryActiveContractsByInterface(parties, offset, interfaceIds, opts);\n }\n\n /**\n * Query active contracts visible to any of the given parties, deduplicated by contractId.\n * Returns normalized contracts (flat shape). Use when you need a merged view across multiple parties.\n *\n * @param parties - Party IDs to query as (contracts visible to any party are included, each contract once)\n * @param opts - Optional templateIds and limit (passed per-party to the ledger API); optional templateFilter (applied after fetch)\n */\n async queryActiveContractsForParties(\n parties: string[],\n opts?: {\n templateIds?: string[];\n limit?: number;\n /** If provided, only contracts whose templateId passes this predicate are returned. */\n templateFilter?: (templateId: string) => boolean;\n },\n ): Promise<NormalizedActiveContract[]> {\n const offset = await this.#client.getLedgerEndOffset();\n const { templateFilter, ...apiOpts } = opts ?? {};\n const perPartyResults = await Promise.all(\n parties.map((partyId) => this.#client.queryActiveContracts(partyId, offset, apiOpts)),\n );\n const seen = new Set<string>();\n const result: NormalizedActiveContract[] = [];\n for (const contracts of perPartyResults) {\n for (const c of contracts) {\n const cid = c.createdEvent.contractId;\n if (!seen.has(cid)) {\n seen.add(cid);\n const normalized = CantonSdk.normalizeActiveContract(c);\n if (!templateFilter || templateFilter(normalized.templateId)) {\n result.push(normalized);\n }\n }\n }\n }\n return result;\n }\n}\n"]}