@layerzerolabs/common-canton 1.2.100 → 1.2.102

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 (104) hide show
  1. package/dist/{D3KVE5XQ.js → 3H5UAMWJ.js} +12 -9
  2. package/dist/3H5UAMWJ.js.map +1 -0
  3. package/dist/{YBGD26CU.js → 45C3KMUJ.js} +12 -6
  4. package/dist/45C3KMUJ.js.map +1 -0
  5. package/dist/{5BK6GCUD.js → 5VT3BVW6.js} +4 -4
  6. package/dist/{5BK6GCUD.js.map → 5VT3BVW6.js.map} +1 -1
  7. package/dist/{CMFVLC7C.js → 6GIDRO6Y.js} +3 -3
  8. package/dist/{CMFVLC7C.js.map → 6GIDRO6Y.js.map} +1 -1
  9. package/dist/{4SK2ZV46.js → 7DFFQF5Y.js} +37 -14
  10. package/dist/7DFFQF5Y.js.map +1 -0
  11. package/dist/{RFGCLYQN.js → 7Z6L2FXT.js} +3 -3
  12. package/dist/{RFGCLYQN.js.map → 7Z6L2FXT.js.map} +1 -1
  13. package/dist/{NSHNCUWI.js → A4HRBTRS.js} +5 -5
  14. package/dist/{NSHNCUWI.js.map → A4HRBTRS.js.map} +1 -1
  15. package/dist/{HQMIA66Y.js → DELPT7WC.js} +3 -3
  16. package/dist/{HQMIA66Y.js.map → DELPT7WC.js.map} +1 -1
  17. package/dist/{4WZTQJXP.js → KDLPAZ3P.js} +2 -2
  18. package/dist/{4WZTQJXP.js.map → KDLPAZ3P.js.map} +1 -1
  19. package/dist/{YV6LAB6R.js → KGEOWAAR.js} +3 -3
  20. package/dist/{YV6LAB6R.js.map → KGEOWAAR.js.map} +1 -1
  21. package/dist/{K7FRAGGM.js → KLMACWXT.js} +3 -3
  22. package/dist/KLMACWXT.js.map +1 -0
  23. package/dist/{UG2M23HF.js → MM7EIOP4.js} +3 -3
  24. package/dist/{UG2M23HF.js.map → MM7EIOP4.js.map} +1 -1
  25. package/dist/{E6W3YWXU.js → MRAAJXQA.js} +4 -4
  26. package/dist/{E6W3YWXU.js.map → MRAAJXQA.js.map} +1 -1
  27. package/dist/{NGED2YCU.js → OK7GQCQM.js} +9 -5
  28. package/dist/OK7GQCQM.js.map +1 -0
  29. package/dist/{JJDWTXLN.js → QOVYNKLD.js} +3 -3
  30. package/dist/{JJDWTXLN.js.map → QOVYNKLD.js.map} +1 -1
  31. package/dist/{HC2GOOAL.js → QWU4V7O2.js} +138 -24
  32. package/dist/QWU4V7O2.js.map +1 -0
  33. package/dist/{XUXLV3PL.js → SAHSVYH6.js} +2 -2
  34. package/dist/{XUXLV3PL.js.map → SAHSVYH6.js.map} +1 -1
  35. package/dist/{5VKWPQE4.js → SEKZMYNZ.js} +3 -3
  36. package/dist/{5VKWPQE4.js.map → SEKZMYNZ.js.map} +1 -1
  37. package/dist/{DCDLEU2R.js → UUUJS2PY.js} +11 -3
  38. package/dist/UUUJS2PY.js.map +1 -0
  39. package/dist/{M3GPMXME.js → W3ZJSUA6.js} +3 -3
  40. package/dist/{M3GPMXME.js.map → W3ZJSUA6.js.map} +1 -1
  41. package/dist/{IUQEDBC6.js → XKBA43N7.js} +12 -9
  42. package/dist/XKBA43N7.js.map +1 -0
  43. package/dist/{KPFKPA5E.js → XWNGGI4V.js} +6 -6
  44. package/dist/XWNGGI4V.js.map +1 -0
  45. package/dist/{2B3PTIL7.js → ZVEWMW6Q.js} +4 -4
  46. package/dist/{2B3PTIL7.js.map → ZVEWMW6Q.js.map} +1 -1
  47. package/dist/client/amulet.d.ts +11 -1
  48. package/dist/client/amulet.d.ts.map +1 -1
  49. package/dist/client/amulet.js +3 -3
  50. package/dist/client/canton-client.d.ts +13 -4
  51. package/dist/client/canton-client.d.ts.map +1 -1
  52. package/dist/client/canton-client.js +4 -4
  53. package/dist/client/grpc.js +2 -2
  54. package/dist/client/index.d.ts +1 -1
  55. package/dist/client/index.d.ts.map +1 -1
  56. package/dist/client/index.js +6 -6
  57. package/dist/client/interface.d.ts +13 -4
  58. package/dist/client/interface.d.ts.map +1 -1
  59. package/dist/client/topology/utils.d.ts +4 -0
  60. package/dist/client/topology/utils.d.ts.map +1 -1
  61. package/dist/client/topology/utils.js +1 -1
  62. package/dist/events.js +3 -3
  63. package/dist/index.js +23 -23
  64. package/dist/minFee.js +2 -2
  65. package/dist/provider.js +7 -7
  66. package/dist/refresh/callback-burn-mint.js +5 -5
  67. package/dist/refresh/callback-lock-unlock.js +5 -5
  68. package/dist/refresh/callback-registry.js +4 -4
  69. package/dist/refresh/callback.js +7 -7
  70. package/dist/refresh/index.js +17 -17
  71. package/dist/refresh/onesig-config.js +1 -1
  72. package/dist/refresh/onesig-request.js +1 -1
  73. package/dist/refresh/onesig-scope.d.ts.map +1 -1
  74. package/dist/refresh/onesig-scope.js +1 -1
  75. package/dist/refresh/onesig-transfer-instruction.js +8 -8
  76. package/dist/refresh/onesig-transfer.js +9 -9
  77. package/dist/refresh/plan.d.ts +18 -0
  78. package/dist/refresh/plan.d.ts.map +1 -1
  79. package/dist/refresh/plan.js +1 -1
  80. package/dist/refresh/prepare-amulet-transfer.d.ts.map +1 -1
  81. package/dist/refresh/prepare-amulet-transfer.js +4 -4
  82. package/dist/refresh/resolve-plan.d.ts.map +1 -1
  83. package/dist/refresh/resolve-plan.js +15 -15
  84. package/dist/refresh/resolve.js +16 -16
  85. package/dist/sdk/canton-sdk.d.ts +1 -0
  86. package/dist/sdk/canton-sdk.d.ts.map +1 -1
  87. package/dist/sdk/canton-sdk.js +1 -1
  88. package/dist/sdk/index.js +1 -1
  89. package/dist/transaction.d.ts +30 -0
  90. package/dist/transaction.d.ts.map +1 -1
  91. package/dist/transaction.js +2 -2
  92. package/dist/types.d.ts +14 -0
  93. package/dist/types.d.ts.map +1 -1
  94. package/dist/types.js +1 -1
  95. package/package.json +10 -10
  96. package/dist/4SK2ZV46.js.map +0 -1
  97. package/dist/D3KVE5XQ.js.map +0 -1
  98. package/dist/DCDLEU2R.js.map +0 -1
  99. package/dist/HC2GOOAL.js.map +0 -1
  100. package/dist/IUQEDBC6.js.map +0 -1
  101. package/dist/K7FRAGGM.js.map +0 -1
  102. package/dist/KPFKPA5E.js.map +0 -1
  103. package/dist/NGED2YCU.js.map +0 -1
  104. package/dist/YBGD26CU.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/client/amulet.ts"],"names":["AMULET_INSTRUMENT_ID","amuletFactoryResponseSchema","z","object","factoryId","string","min","choiceContext","choiceContextData","values","record","unknown","optional","disclosedContracts","array","cantonDisclosedContractSchema","extend","contractId","createdEventBlob","synchronizerId","fetchAmuletTransferFactoryContext","walletUrl","token","args","parsed","safeParse","postRegistryJson","URL","toString","choiceArguments","expectedAdmin","instrumentId","admin","transfer","meta","extraArgs","context","probeName","headers","Authorization","success","Error","data","CONTEXT_PROBE_EXECUTE_BEFORE_WINDOW_MS","fetchAmuletContext","now","Date","later","getTime","response","fetch","method","body","JSON","stringify","sender","receiver","amount","requestedAt","toISOString","executeBefore","inputHoldingCids","ok","text","CantonProtocolError","status","json","amuletContext","findDisclosure","templateSuffix","contract","find","templateId","endsWith","findAmuletRulesDisclosures","amuletRules","openMiningRound","fetchTransferInstructionContext","encodeURIComponent","choice","excludeDebugFields","fetchAcceptContext","injectExternalPartyAmuletRules","externalRulesContract","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","created_event_blob","domain_id"],"mappings":"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","file":"KPFKPA5E.js","sourcesContent":["import { z } from 'zod';\n\nimport type { TokenProvider } from '../auth/token-provider';\nimport { CantonProtocolError } from '../errors';\nimport { postRegistryJson, type TransferFactoryContext } from '../refresh/registry-context';\nimport { type CantonDisclosedContract, cantonDisclosedContractSchema } 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 AmuletTransferFactoryArgs = {\n instrumentId: InstrumentId;\n sender: string;\n receiver: string;\n amount: string;\n inputHoldingCids: string[];\n requestedAt: string;\n executeBefore: string;\n};\n\nconst amuletFactoryResponseSchema = z.object({\n factoryId: z.string().min(1),\n choiceContext: z.object({\n choiceContextData: z\n .object({ values: z.record(z.string(), z.unknown()).optional() })\n .optional(),\n disclosedContracts: z\n .array(\n cantonDisclosedContractSchema.extend({\n contractId: z.string().min(1),\n createdEventBlob: z.string().min(1),\n synchronizerId: z.string().min(1),\n }),\n )\n .optional(),\n }),\n});\n\nexport const fetchAmuletTransferFactoryContext = async (\n walletUrl: string,\n token: string,\n args: AmuletTransferFactoryArgs,\n): Promise<TransferFactoryContext> => {\n const parsed = amuletFactoryResponseSchema.safeParse(\n await postRegistryJson(\n new URL(\n '/api/validator/v0/scan-proxy/registry/transfer-instruction/v1/transfer-factory',\n walletUrl,\n ).toString(),\n {\n choiceArguments: {\n expectedAdmin: args.instrumentId.admin,\n transfer: { ...args, meta: { values: {} } },\n extraArgs: { context: { values: {} }, meta: { values: {} } },\n },\n },\n { probeName: 'amulet transfer-factory', headers: { Authorization: `Bearer ${token}` } },\n ),\n );\n if (!parsed.success)\n throw new Error('Amulet transfer-factory response failed schema validation');\n return {\n factoryId: parsed.data.factoryId,\n choiceContext: { values: parsed.data.choiceContext.choiceContextData?.values ?? {} },\n disclosedContracts: parsed.data.choiceContext.disclosedContracts ?? [],\n };\n};\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\nconst findDisclosure = (\n disclosedContracts: CantonDisclosedContract[],\n templateSuffix: string,\n): CantonDisclosedContract => {\n const contract = disclosedContracts.find(({ templateId }) =>\n templateId?.endsWith(templateSuffix),\n );\n\n if (!contract) {\n throw new CantonProtocolError(`${templateSuffix} not found in amulet context`);\n }\n\n return contract;\n};\n\n/** The AmuletRules and OpenMiningRound an amulet context discloses, as `AmuletRules_*` choices need. */\nexport const findAmuletRulesDisclosures = (\n disclosedContracts: CantonDisclosedContract[],\n): { amuletRules: CantonDisclosedContract; openMiningRound: CantonDisclosedContract } => ({\n amuletRules: findDisclosure(disclosedContracts, ':Splice.AmuletRules:AmuletRules'),\n openMiningRound: findDisclosure(disclosedContracts, ':Splice.Round:OpenMiningRound'),\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\nexport type TransferInstructionAcceptContextResult = {\n choiceContext: ChoiceContext;\n disclosedContracts: CantonDisclosedContract[];\n};\n\nexport type TransferInstructionChoice = 'accept' | 'reject' | 'withdraw';\n\nexport const fetchTransferInstructionContext = async (args: {\n walletUrl: string;\n token: string;\n contractId: string;\n choice: TransferInstructionChoice;\n}): Promise<TransferInstructionAcceptContextResult> => {\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/${args.choice}`,\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(\n `Failed to get ${args.choice} context: ${response.status} ${text}`,\n );\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\nexport const fetchAcceptContext = (args: {\n walletUrl: string;\n token: string;\n contractId: string;\n}): Promise<TransferInstructionAcceptContextResult> =>\n fetchTransferInstructionContext({ ...args, choice: 'accept' });\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 = findDisclosure(\n disclosedContracts,\n ':Splice.ExternalPartyAmuletRules:ExternalPartyAmuletRules',\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/onesig-scope.ts"],"names":["ACCESS_CONTROL","resolveCantonOneSigScopeContext","sdk","input","offset","getLedgerEndOffset","matching","interfaceId","name","entity","slice","split","packageId","getPackageId","informee","resolvedId","join","queryActiveContractsByInterface","includeCreatedEventBlob","filter","createdEvent","views","interfaceViews","view","scope","getCreateArgumentField","viewValue","length","viewStatus","code","areExpectedSignatories","admin","category","id","setter","operation","tag","field","undefined","targets","Error","target","disclosedContracts","callbackDisclosure","context","value","targetContractId","contractId","access","push","accessControlCid"],"mappings":"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","file":"NGED2YCU.js","sourcesContent":["import type { JsActiveContract } from '../open-api/models';\nimport type { CantonSdk } from '../sdk/canton-sdk';\nimport type { CantonDisclosedContract } from '../transaction';\nimport { areExpectedSignatories, getCreateArgumentField } from '../trusted-origin';\nimport { callbackDisclosure } from './callback-contracts';\nimport type { CantonOneSigScopeContextRefresh } from './plan';\n\nconst ACCESS_CONTROL = '#layerzero-iaccess-control:IAccessControl:IAccessControl';\ntype Input = CantonOneSigScopeContextRefresh['resolver'];\nexport const resolveCantonOneSigScopeContext = async (\n sdk: CantonSdk,\n input: Input,\n): Promise<{\n context: { tag: string; value: Record<string, string | null> };\n disclosedContracts: CantonDisclosedContract[];\n}> => {\n const offset = await sdk.getLedgerEndOffset();\n const matching = async (interfaceId: string): Promise<JsActiveContract[]> => {\n const [name, ...entity] = interfaceId.slice(1).split(':');\n const packageId = await sdk.getPackageId(name!, [input.informee]);\n const resolvedId = `${packageId}:${entity.join(':')}`;\n return (\n await sdk.queryActiveContractsByInterface([input.informee], offset, [interfaceId], {\n includeCreatedEventBlob: true,\n })\n ).filter(({ createdEvent }) => {\n const views =\n createdEvent.interfaceViews?.filter((view) => view.interfaceId === resolvedId) ??\n [];\n const view = views[0];\n const scope = getCreateArgumentField(view?.viewValue, 'scope');\n return (\n views.length === 1 &&\n view?.viewStatus?.code === 0 &&\n areExpectedSignatories(createdEvent, [input.scope.admin]) &&\n getCreateArgumentField(scope, 'category') === input.scope.category &&\n getCreateArgumentField(scope, 'admin') === input.scope.admin &&\n getCreateArgumentField(scope, 'id') === input.scope.id\n );\n });\n };\n const setter =\n input.operation === 'OpSetMinFee'\n ? {\n interfaceId: '#layerzero-iminfee:IMinFee:IMinFee',\n tag: 'MinFeeContext',\n field: 'minFeeContractId',\n }\n : input.operation === 'OpSetMinPayoutValue'\n ? {\n interfaceId: '#layerzero-iminpayoutvalue:IMinPayoutValue:IMinPayoutValue',\n tag: 'MinPayoutValueContext',\n field: 'minPayoutValueContractId',\n }\n : input.operation === 'OpSetProtocolLedgerTimeValidityPeriod'\n ? {\n interfaceId:\n '#layerzero-iledger-time-validity-period:ILedgerTimeValidityPeriod:ILedgerTimeValidityPeriod',\n tag: 'LedgerTimeValidityContext',\n field: 'ledgerTimeValidityContractId',\n }\n : undefined;\n const targets = await matching(setter?.interfaceId ?? ACCESS_CONTROL);\n if (targets.length !== 1)\n throw new Error(`Expected exactly one scope target, found ${targets.length}`);\n const target = targets[0]!;\n const disclosedContracts = [callbackDisclosure(target)];\n if (!setter)\n return {\n context: {\n tag: 'AccessControlContext',\n value: { targetContractId: target.createdEvent.contractId },\n },\n disclosedContracts,\n };\n const access = await matching(ACCESS_CONTROL);\n if (access.length > 1) throw new Error('Ambiguous scope access control');\n if (access[0]) disclosedContracts.push(callbackDisclosure(access[0]));\n return {\n context: {\n tag: setter.tag,\n value: {\n [setter.field]: target.createdEvent.contractId,\n accessControlCid: access[0]?.createdEvent.contractId ?? null,\n },\n },\n disclosedContracts,\n };\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/refresh/prepare-amulet-transfer.ts"],"names":["AMULET_TEMPLATE_ID","TRANSFER_FACTORY_TEMPLATE_ID","TRANSFER_CHOICE","TRANSFER_WINDOW_MS","argumentTarget","fields","commandIndex","command","choice","arguments","path","map","field","amuletTransferRefreshPlan","dsoParty","amount","replaceSentinels","kind","targets","commands","resolver","type","selector","queryAs","CANTON_DEFERRED_SENDER","templateId","expectedSignatories","stateFilter","owner","selection","value","contractIdTargets","offsetMs","prepareRefreshableAmuletTransfer","client","receiverParty","getDsoParty","instrumentId","admin","id","AMULET_INSTRUMENT_ID","bundle","getAmuletContextWithExternalRules","now","Date","actAs","unresolvedCommands","exerciseCommand","contractId","externalPartyAmuletRulesCid","choiceArgument","expectedAdmin","transfer","sender","cantonSenderPartyRef","receiver","lock","requestedAt","toISOString","executeBefore","getTime","inputHoldingCids","meta","values","extraArgs","context","amuletContext","unresolvedDisclosedContracts","disclosedContracts","refreshPlan"],"mappings":"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","file":"YBGD26CU.js","sourcesContent":["import { AMULET_INSTRUMENT_ID } from '../client/amulet';\nimport type { ICantonClient } from '../client/interface';\nimport { CANTON_DEFERRED_SENDER, cantonSenderPartyRef } from '../deferredValue';\nimport type { CantonPopulatedTransaction } from '../transaction';\nimport type { CantonArgumentRefreshTarget, CantonRefreshPlan } from './plan';\n\nconst AMULET_TEMPLATE_ID = '#splice-amulet:Splice.Amulet:Amulet';\nconst TRANSFER_FACTORY_TEMPLATE_ID =\n '#splice-api-token-transfer-instruction-v1:Splice.Api.Token.TransferInstructionV1:TransferFactory';\nconst TRANSFER_CHOICE = 'TransferFactory_Transfer';\nconst TRANSFER_WINDOW_MS = 24 * 60 * 60 * 1000;\n\nconst argumentTarget = (...fields: string[]): CantonArgumentRefreshTarget => ({\n commandIndex: 0,\n command: 'exercise',\n choice: TRANSFER_CHOICE,\n arguments: [{ path: fields.map((field) => ({ field })) }],\n});\n\nconst amuletTransferRefreshPlan = ({\n dsoParty,\n amount,\n}: {\n dsoParty: string;\n amount: string;\n}): CantonRefreshPlan => ({\n replaceSentinels: [{ kind: 'senderParty', targets: [argumentTarget('transfer', 'sender')] }],\n commands: [\n {\n resolver: {\n type: 'activeContract',\n selector: {\n queryAs: CANTON_DEFERRED_SENDER,\n templateId: AMULET_TEMPLATE_ID,\n expectedSignatories: [dsoParty],\n stateFilter: { owner: CANTON_DEFERRED_SENDER },\n },\n selection: { kind: 'gte', field: 'amount', value: amount },\n },\n targets: [argumentTarget('transfer', 'inputHoldingCids')],\n },\n {\n resolver: { type: 'amuletContext', dsoParty },\n targets: [argumentTarget('extraArgs', 'context')],\n contractIdTargets: [{ commandIndex: 0, command: 'exercise', field: 'contractId' }],\n },\n {\n resolver: { type: 'timestamp' },\n targets: [\n {\n commandIndex: 0,\n command: 'exercise',\n choice: TRANSFER_CHOICE,\n arguments: [\n { path: [{ field: 'transfer' }, { field: 'requestedAt' }] },\n {\n path: [{ field: 'transfer' }, { field: 'executeBefore' }],\n offsetMs: TRANSFER_WINDOW_MS,\n },\n ],\n },\n ],\n },\n ],\n});\n\n/** Sender binding and initial funding must resolve before preparing or signing this transfer. */\nexport const prepareRefreshableAmuletTransfer = async ({\n client,\n receiverParty,\n amount,\n}: {\n client: ICantonClient;\n receiverParty: string;\n amount: string;\n}): Promise<CantonPopulatedTransaction> => {\n const dsoParty = await client.getDsoParty();\n const instrumentId = { admin: dsoParty, id: AMULET_INSTRUMENT_ID };\n const bundle = await client.getAmuletContextWithExternalRules(instrumentId);\n const now = new Date();\n\n return {\n actAs: [],\n unresolvedCommands: [\n {\n exerciseCommand: {\n templateId: TRANSFER_FACTORY_TEMPLATE_ID,\n contractId: bundle.externalPartyAmuletRulesCid,\n choice: TRANSFER_CHOICE,\n choiceArgument: {\n expectedAdmin: dsoParty,\n transfer: {\n sender: cantonSenderPartyRef(),\n receiver: receiverParty,\n amount,\n instrumentId,\n lock: null,\n requestedAt: now.toISOString(),\n executeBefore: new Date(\n now.getTime() + TRANSFER_WINDOW_MS,\n ).toISOString(),\n inputHoldingCids: [],\n meta: { values: {} },\n },\n extraArgs: { context: bundle.amuletContext, meta: { values: {} } },\n },\n },\n },\n ],\n unresolvedDisclosedContracts: bundle.disclosedContracts,\n refreshPlan: amuletTransferRefreshPlan({ dsoParty, amount }),\n };\n};\n"]}