UNPKG

@fairmint/canton-node-sdk

Version:
168 lines (157 loc) 5.9 kB
# Copyright (c) 2025 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved. # SPDX-License-Identifier: Apache-2.0 openapi: 3.0.0 info: title: allocation instruction off-ledger API description: | Implemented by token registries for using and managing allocation instructions by wallets. version: 1.0.0 paths: /registry/allocation-instruction/v1/allocation-factory: post: operationId: "getAllocationFactory" description: | Get the factory and choice context for creating allocations using the `AllocationFactory_Allocate` choice. requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/GetFactoryRequest" responses: "200": description: ok content: application/json: schema: $ref: "#/components/schemas/FactoryWithChoiceContext" "400": $ref: "#/components/responses/400" "404": $ref: "#/components/responses/404" components: responses: "400": description: "bad request" content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "404": description: "not found" content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" schemas: # Note: intentionally not shared with the other APIs to keep the self-contained, and because not all OpenAPI codegens support such shared definitions. GetFactoryRequest: type: object properties: choiceArguments: type: object description: | The arguments that are intended to be passed to the choice provided by the factory. To avoid repeating the Daml type definitions, they are specified as JSON objects. However the concrete format is given by how the choice arguments are encoded using the Daml JSON API (with the `extraArgs.context` and `extraArgs.meta` fields set to the empty object). The choice arguments are provided so that the registry can also provide choice-argument specific contracts, e.g., the configuration for a specific instrument-id. excludeDebugFields: description: "If set to true, the response will not include debug fields." default: false type: boolean required: [ "choiceArguments", ] FactoryWithChoiceContext: description: | A factory contract together with the choice context required to exercise the choice provided by the factory. Typically used to implement the generic initiation of on-ledger workflows via a Daml interface. Clients SHOULD avoid reusing the same `FactoryWithChoiceContext` for exercising multiple choices, as the choice context MAY be specific to the choice being exercised. type: object properties: factoryId: description: "The contract ID of the contract implementing the factory interface." type: string choiceContext: $ref: "#/components/schemas/ChoiceContext" required: [ "factoryId", "choiceContext", ] ChoiceContext: description: | The context required to exercise a choice on a contract via an interface. Used to retrieve additional reference date that is passed in via disclosed contracts, which are in turn referred to via their contract ID in the `choiceContextData`. type: object properties: choiceContextData: description: "The additional data to use when exercising the choice." type: object disclosedContracts: description: | The contracts that are required to be disclosed to the participant node for exercising the choice. type: array items: $ref: "#/components/schemas/DisclosedContract" required: [ "choiceContextData", "disclosedContracts", ] # Note: intentionally not shared with the other APIs to keep the self-contained, and because not all OpenAPI codegens support such shared definitions. DisclosedContract: type: object properties: templateId: type: string contractId: type: string createdEventBlob: type: string synchronizerId: description: | The synchronizer to which the contract is currently assigned. If the contract is in the process of being reassigned, then a "409" response is returned. type: string debugPackageName: description: | The name of the Daml package that was used to create the contract. Use this data only if you trust the provider, as it might not match the data in the `createdEventBlob`. type: string debugPayload: description: | The contract arguments that were used to create the contract. Use this data only if you trust the provider, as it might not match the data in the `createdEventBlob`. type: object debugCreatedAt: description: | The ledger effective time at which the contract was created. Use this data only if you trust the provider, as it might not match the data in the `createdEventBlob`. type: string format: date-time required: [ "templateId", "contractId", "createdEventBlob", "synchronizerId" ] ErrorResponse: type: object required: - error properties: error: type: string