diff --git a/config/mintlify-openapi/splice-openapi/source-artifacts.json b/config/mintlify-openapi/splice-openapi/source-artifacts.json index c3fd5d72a..dfbbb5ac5 100644 --- a/config/mintlify-openapi/splice-openapi/source-artifacts.json +++ b/config/mintlify-openapi/splice-openapi/source-artifacts.json @@ -3,7 +3,7 @@ "release_repo": "digital-asset/decentralized-canton-sync", "tag_regex": "^v(?P0\\.[0-9]+\\.[0-9]+)$", "min_version": "0.5.10", - "publish_version": "0.6.10", + "publish_version": "0.6.11", "asset_template": "{version}_openapi.tar.gz", "nav_dropdown": "API Reference", "top_level_group_label": "Splice APIs", diff --git a/docs-main/docs.json b/docs-main/docs.json index e219a699a..105646f71 100644 --- a/docs-main/docs.json +++ b/docs-main/docs.json @@ -1794,6 +1794,7 @@ "GET /v0/dso-sequencers", "GET /v0/sv-bft-sequencers", "GET /v0/roll-forward-lsu", + "GET /v0/lsu", "GET /v0/active-synchronizer-serial", "GET /v0/domains/{domain_id}/parties/{party_id}/participant-id", "GET /v1/domains/{domain_id}/parties/{party_id}/participant-id", diff --git a/docs-main/openapi/splice/scan/scan.yaml b/docs-main/openapi/splice/scan/scan.yaml index 8d9f8a39a..65cc4e46c 100644 --- a/docs-main/openapi/splice/scan/scan.yaml +++ b/docs-main/openapi/splice/scan/scan.yaml @@ -226,6 +226,23 @@ paths: application/json: schema: $ref: '#/components/schemas/GetRollForwardLsuResponse' + /v0/lsu: + get: + summary: "GET /v0/lsu" + tags: + - internal + - scan + x-jvm-package: scan + operationId: getLsu + description: | + Retrieve information on the next logical synchronizer upgrade (LSU) + responses: + '200': + description: ok + content: + application/json: + schema: + $ref: '#/components/schemas/GetLsuResponse' /v0/active-synchronizer-serial: get: summary: "GET /v0/active-synchronizer-serial" @@ -2297,6 +2314,30 @@ components: type: string successorPhysicalSynchronizerId: type: string + GetLsuResponse: + type: object + properties: + lsu: + description: Info on the next LSU + $ref: '#/components/schemas/Lsu' + Lsu: + type: object + required: + - topologyFreezeTime + - upgradeTime + - successorPhysicalSynchronizerId + properties: + topologyFreezeTime: + description: The time when topology freeze starts + type: string + format: date-time + upgradeTime: + description: The time at which to upgrade + type: string + format: date-time + successorPhysicalSynchronizerId: + description: The successor physical synchronizer ID + type: string GetActivePhysicalSynchronizerSerialResponse: type: object required: diff --git a/docs-main/openapi/splice/token-standard/token-metadata-v1.yaml b/docs-main/openapi/splice/token-standard/token-metadata-v1.yaml index 5dd403006..a104d8019 100644 --- a/docs-main/openapi/splice/token-standard/token-metadata-v1.yaml +++ b/docs-main/openapi/splice/token-standard/token-metadata-v1.yaml @@ -4,7 +4,7 @@ info: description: | Implemented by token registries for the purpose of serving metadata about their tokens and the standards supported by the registry. - version: 1.0.0 + version: 1.2.0 paths: /registry/metadata/v1/info: get: @@ -148,8 +148,26 @@ components: type: integer format: int8 default: 10 + paused: + description: | + Indicates whether the instrument is currently paused. A paused instrument cannot be + transferred or allocated. + type: boolean + default: false + pauseInfo: + $ref: '#/components/schemas/PauseInfo' supportedApis: $ref: '#/components/schemas/SupportedApis' + showAccountInputFields: + description: | + Informs wallets whether the instrument supports non-basic accounts + and the wallet should thus show input fields for the account + provider and the account id in input forms for transfers and allocations. + + Note that wallets should always show non-null account providers and + account ids when displaying transfers and allocations. + type: boolean + default: false required: - id - name @@ -183,3 +201,17 @@ components: additionalProperties: type: integer format: int32 + PauseInfo: + description: | + Additional information about the instrument pause state. + type: object + properties: + reason: + description: | + Why the instrument is paused. + type: string + until: + description: | + Timestamp (exclusive) until which the instrument is paused, if known. + type: string + format: date-time diff --git a/docs-main/openapi/splice/validator/wallet-internal.yaml b/docs-main/openapi/splice/validator/wallet-internal.yaml index 0455105f3..439103e1a 100644 --- a/docs-main/openapi/splice/validator/wallet-internal.yaml +++ b/docs-main/openapi/splice/validator/wallet-internal.yaml @@ -759,6 +759,126 @@ paths: $ref: '#/components/responses/404' '500': $ref: '#/components/responses/500' + /v2/wallet/token-standard/transfers: + post: + summary: "POST /v2/wallet/token-standard/transfers" + tags: + - wallet + x-jvm-package: wallet + operationId: createTokenStandardTransferV2 + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTokenStandardTransferRequest' + responses: + '200': + description: The transfer has been created + content: + application/json: + schema: + $ref: '#/components/schemas/TransferInstructionResultResponse' + '400': + description: | + Invalid request, check the error response for details. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + '404': + description: | + The submitter’s wallet could not be found. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + '409': + description: A transfer with the same tracking id has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + '429': + description: A transfer with the same tracking id is currently being processed, which may or may not succeed. Retry submitting the request with exponential back-off. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + '500': + $ref: '#/components/responses/500' + /v2/wallet/token-standard/transfers/{contract_id}/reject: + post: + summary: "POST /v2/wallet/token-standard/transfers/:contract_id/reject" + tags: + - wallet + x-jvm-package: wallet + operationId: rejectTokenStandardTransferV2 + parameters: + - in: path + name: contract_id + required: true + schema: + type: string + responses: + '200': + description: ok + content: + application/json: + schema: + $ref: '#/components/schemas/TransferInstructionResultResponse' + '404': + $ref: '#/components/responses/404' + '500': + $ref: '#/components/responses/500' + /v2/wallet/token-standard/transfers/{contract_id}/accept: + post: + summary: "POST /v2/wallet/token-standard/transfers/:contract_id/accept" + tags: + - wallet + x-jvm-package: wallet + operationId: acceptTokenStandardTransferV2 + parameters: + - in: path + name: contract_id + required: true + schema: + type: string + responses: + '200': + description: ok + content: + application/json: + schema: + $ref: '#/components/schemas/TransferInstructionResultResponse' + '404': + $ref: '#/components/responses/404' + '500': + $ref: '#/components/responses/500' + /v2/wallet/token-standard/transfers/{contract_id}/withdraw: + post: + summary: "POST /v2/wallet/token-standard/transfers/:contract_id/withdraw" + tags: + - wallet + x-jvm-package: wallet + operationId: withdrawTokenStandardTransferV2 + parameters: + - in: path + name: contract_id + required: true + schema: + type: string + responses: + '200': + description: ok + content: + application/json: + schema: + $ref: '#/components/schemas/TransferInstructionResultResponse' + '404': + $ref: '#/components/responses/404' + '500': + $ref: '#/components/responses/500' /v0/wallet/token-standard/allocation-requests: get: summary: "GET /v0/wallet/token-standard/allocation-requests" @@ -812,6 +932,41 @@ paths: $ref: '#/components/schemas/ErrorResponse' '500': $ref: '#/components/responses/500' + /v2/wallet/token-standard/allocation-requests/{contract_id}/reject: + post: + summary: "POST /v2/wallet/token-standard/allocation-requests/:contract_id/reject" + tags: + - wallet + x-jvm-package: wallet + operationId: rejectAllocationRequestV2 + parameters: + - in: path + name: contract_id + required: true + schema: + type: string + responses: + '200': + description: The AllocationRequest has been rejected + content: + application/json: + schema: + $ref: '#/components/schemas/ChoiceExecutionMetadata' + '404': + description: | + The AllocationRequest or the submitter’s wallet could not be found. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + '429': + description: A reject for the AllocationRequest is currently being processed, which may or may not succeed. Retry submitting the request with exponential back-off. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + '500': + $ref: '#/components/responses/500' /v0/feature-support: get: summary: "GET /v0/feature-support" @@ -893,6 +1048,54 @@ paths: $ref: '#/components/schemas/ErrorResponse' '500': $ref: '#/components/responses/500' + /v2/allocations: + post: + summary: "POST /v2/allocations" + tags: + - wallet + x-jvm-package: wallet + operationId: allocateAmuletV2 + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/AllocateAmuletV2Request' + responses: + '200': + description: The AmuletAllocation has been created + content: + application/json: + schema: + $ref: '#/components/schemas/AllocateAmuletV2Response' + '400': + description: | + Invalid request, check the error response for details. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + '404': + description: | + The submitter’s wallet could not be found. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + '409': + description: An allocation with the same tracking id has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + '429': + description: An allocation with the same tracking id is currently being processed, which may or may not succeed. Retry submitting the request with exponential back-off. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + '500': + $ref: '#/components/responses/500' /v0/allocations/{contract_id}/withdraw: post: summary: "POST /v0/allocations/:contract_id/withdraw" @@ -928,6 +1131,41 @@ paths: $ref: '#/components/schemas/ErrorResponse' '500': $ref: '#/components/responses/500' + /v2/allocations/{contract_id}/withdraw: + post: + summary: "POST /v2/allocations/:contract_id/withdraw" + tags: + - wallet + x-jvm-package: wallet + operationId: withdrawAmuletAllocationV2 + parameters: + - in: path + name: contract_id + required: true + schema: + type: string + responses: + '200': + description: The AmuletAllocation has been withdrawn + content: + application/json: + schema: + $ref: '#/components/schemas/AmuletAllocationV2WithdrawResult' + '404': + description: | + The allocation or the submitter’s wallet could not be found. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + '429': + description: A withdraw for the allocation is currently being processed, which may or may not succeed. Retry submitting the request with exponential back-off. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + '500': + $ref: '#/components/responses/500' /v0/wallet/development-fund-coupons/allocate: post: summary: "POST /v0/wallet/development-fund-coupons/allocate" @@ -1756,6 +1994,79 @@ components: type: object additionalProperties: type: string + AllocateAmuletV2Request: + type: object + required: + - settlement + - transfer_leg_sides + - committed + properties: + settlement: + type: object + required: + - executors + - settlement_ref + properties: + executors: + type: array + items: + type: string + settlement_ref: + type: object + required: + - id + properties: + id: + type: string + cid: + type: string + settlement_deadline: + type: integer + format: int64 + meta: + type: object + additionalProperties: + type: string + transfer_leg_sides: + type: array + items: + $ref: '#/components/schemas/TransferLegSide' + next_iteration_funding: + type: object + additionalProperties: + description: BigDecimal amount, encoded as string to prevent precision loss + type: string + committed: + type: boolean + default: false + meta: + type: object + additionalProperties: + type: string + TransferLegSide: + type: object + required: + - transfer_leg_id + - side + - otherside + - amount + properties: + transfer_leg_id: + type: string + side: + type: string + enum: + - SENDERSIDE + - RECEIVERSIDE + otherside: + description: A party id + type: string + amount: + type: string + meta: + type: object + additionalProperties: + type: string AllocateAmuletResponse: type: object required: @@ -1773,6 +2084,23 @@ components: type: object additionalProperties: type: string + AllocateAmuletV2Response: + type: object + required: + - output + - sender_change_cids + - meta + properties: + output: + $ref: '#/components/schemas/AllocationInstructionResultOutput' + sender_change_cids: + type: array + items: + type: string + meta: + type: object + additionalProperties: + type: string AllocationInstructionResultOutput: oneOf: - $ref: '#/components/schemas/AllocationInstructionResultPending' @@ -1799,16 +2127,17 @@ components: type: object ListAllocationsResponse: type: object - description: Includes all Allocation views where the user is a sender of one of the transferLegs and where the involved instrument's admin is the DSO party. + description: Includes all AmuletAllocation views (for both Token Standard v1 and v2) where the user is a sender of one of the transferLegs and where the involved instrument's admin is the DSO party. required: - allocations properties: allocations: type: array items: - $ref: '#/components/schemas/Allocation' - Allocation: + $ref: '#/components/schemas/AmuletAllocation' + AmuletAllocation: type: object + description: An AmuletAllocation contract, either V1 or V2. You can distinguish the type of the contract by checking the template_id field. required: - contract properties: @@ -1826,6 +2155,7 @@ components: $ref: '#/components/schemas/AllocationRequest' AllocationRequest: type: object + description: A contract implementing the Token Standard (V1 or V2) interface AllocationRequest. You can distinguish the type of the contract by checking the template_id field, which will contain the template_id of the corresponding (v1,v2) AllocationRequest interface. required: - contract properties: @@ -1845,6 +2175,23 @@ components: type: object additionalProperties: type: string + AmuletAllocationV2WithdrawResult: + type: object + required: + - authorizer_holding_cids + - meta + properties: + authorizer_holding_cids: + description: New holdings created for the authorizer as part of the settlement keyed by their `instrumentId.id`. + type: object + additionalProperties: + type: array + items: + type: string + meta: + type: object + additionalProperties: + type: string ChoiceExecutionMetadata: type: object required: