diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES index db12e92..4d61cb0 100644 --- a/.openapi-generator/FILES +++ b/.openapi-generator/FILES @@ -196,6 +196,7 @@ CallAccepted.md CallbackHandler.md CallbackHandlerRequest.md CancelTransactionResponse.md +CantonBetaApi.md CantonCall.md CantonCallAllowListAdd.md CantonCallAllowListRemove.md @@ -1448,6 +1449,7 @@ api/approvals-beta-api.ts api/audit-logs-api.ts api/blockchain-link-beta-api.ts api/blockchains-assets-api.ts +api/canton-beta-api.ts api/compliance-api.ts api/compliance-orchestrator-beta-api.ts api/compliance-screening-configuration-api.ts diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 965a34f..0000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,258 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [v35.0.0](https://github.com/fireblocks/ts-sdk/compare/v19.0.0...v35.0.0) - 2026-10-13 - -### Merged - -- Generated SDK #2941386800 [`#213`](https://github.com/fireblocks/ts-sdk/pull/213) - -## [v19.0.0](https://github.com/fireblocks/ts-sdk/compare/v18.0.0...v19.0.0) - 2026-05-17 - -### Merged - -- Generated SDK #7742 (major) [`#183`](https://github.com/fireblocks/ts-sdk/pull/183) - -## [v18.0.0](https://github.com/fireblocks/ts-sdk/compare/v17.0.0...v18.0.0) - 2026-05-06 - -### Merged - -- Generated SDK #3222 [`#181`](https://github.com/fireblocks/ts-sdk/pull/181) - -## [v17.0.0](https://github.com/fireblocks/ts-sdk/compare/v16.0.0...v17.0.0) - 2026-04-20 - -### Merged - -- Generated SDK #9605 (major) [`#180`](https://github.com/fireblocks/ts-sdk/pull/180) - -## [v16.0.0](https://github.com/fireblocks/ts-sdk/compare/v15.0.0...v16.0.0) - 2026-04-06 - -### Merged - -- Generated SDK #3331 [`#179`](https://github.com/fireblocks/ts-sdk/pull/179) - -## [v15.0.0](https://github.com/fireblocks/ts-sdk/compare/v14.1.0...v15.0.0) - 2026-03-15 - -### Merged - -- Generated SDK #3733 (major) [`#174`](https://github.com/fireblocks/ts-sdk/pull/174) - -## [v14.1.0](https://github.com/fireblocks/ts-sdk/compare/v14.0.0...v14.1.0) - 2026-02-26 - -### Merged - -- Generated SDK #2167 [`#172`](https://github.com/fireblocks/ts-sdk/pull/172) - -## [v14.0.0](https://github.com/fireblocks/ts-sdk/compare/v13.0.0...v14.0.0) - 2026-02-03 - -### Merged - -- Generated SDK #4746 [`#164`](https://github.com/fireblocks/ts-sdk/pull/164) - -## [v13.0.0](https://github.com/fireblocks/ts-sdk/compare/v12.1.2...v13.0.0) - 2025-11-13 - -### Merged - -- Generated SDK #5834 [`#146`](https://github.com/fireblocks/ts-sdk/pull/146) - -## [v12.1.2](https://github.com/fireblocks/ts-sdk/compare/v12.1.1...v12.1.2) - 2025-10-22 - -### Merged - -- Generated SDK #8293 [`#145`](https://github.com/fireblocks/ts-sdk/pull/145) - -## [v12.1.1](https://github.com/fireblocks/ts-sdk/compare/v12.1.0...v12.1.1) - 2025-09-29 - -### Merged - -- Generated SDK #6061 [`#143`](https://github.com/fireblocks/ts-sdk/pull/143) - -## [v12.1.0](https://github.com/fireblocks/ts-sdk/compare/v12.0.0...v12.1.0) - 2025-09-09 - -### Merged - -- Generated SDK #4521 [`#142`](https://github.com/fireblocks/ts-sdk/pull/142) - -## [v12.0.0](https://github.com/fireblocks/ts-sdk/compare/v11.2.0...v12.0.0) - 2025-09-01 - -### Merged - -- Generated SDK #7741 [`#141`](https://github.com/fireblocks/ts-sdk/pull/141) - -## [v11.2.0](https://github.com/fireblocks/ts-sdk/compare/v11.1.0...v11.2.0) - 2025-08-18 - -### Merged - -- Generated SDK #3302 [`#140`](https://github.com/fireblocks/ts-sdk/pull/140) - -## [v11.1.0](https://github.com/fireblocks/ts-sdk/compare/v11.0.0...v11.1.0) - 2025-08-11 - -### Merged - -- Generated SDK #1782 [`#139`](https://github.com/fireblocks/ts-sdk/pull/139) - -## [v11.0.0](https://github.com/fireblocks/ts-sdk/compare/v10.4.0...v11.0.0) - 2025-07-15 - -### Merged - -- Generated SDK #5610 [`#136`](https://github.com/fireblocks/ts-sdk/pull/136) - -## [v10.4.0](https://github.com/fireblocks/ts-sdk/compare/v10.3.0...v10.4.0) - 2025-06-29 - -### Merged - -- Generated SDK #1492 [`#135`](https://github.com/fireblocks/ts-sdk/pull/135) - -## [v10.3.0](https://github.com/fireblocks/ts-sdk/compare/v10.2.0...v10.3.0) - 2025-06-18 - -### Merged - -- Generated SDK #4009 [`#134`](https://github.com/fireblocks/ts-sdk/pull/134) - -## [v10.2.0](https://github.com/fireblocks/ts-sdk/compare/v10.1.1...v10.2.0) - 2025-06-04 - -### Merged - -- Generated SDK #8912 [`#133`](https://github.com/fireblocks/ts-sdk/pull/133) - -## [v10.1.1](https://github.com/fireblocks/ts-sdk/compare/v10.1.0...v10.1.1) - 2025-05-18 - -### Merged - -- Generated SDK #5019 [`#132`](https://github.com/fireblocks/ts-sdk/pull/132) - -## [v10.1.0](https://github.com/fireblocks/ts-sdk/compare/v10.0.2...v10.1.0) - 2025-05-07 - -### Merged - -- Generated SDK #7076 [`#130`](https://github.com/fireblocks/ts-sdk/pull/130) - -## [v10.0.2](https://github.com/fireblocks/ts-sdk/compare/v10.0.1...v10.0.2) - 2025-04-20 - -### Merged - -- Generated SDK #4794 [`#128`](https://github.com/fireblocks/ts-sdk/pull/128) - -## [v10.0.1](https://github.com/fireblocks/ts-sdk/compare/v10.0.0...v10.0.1) - 2025-04-07 - -### Merged - -- Generated SDK #3065 [`#126`](https://github.com/fireblocks/ts-sdk/pull/126) - -## [v10.0.0](https://github.com/fireblocks/ts-sdk/compare/v9.0.0...v10.0.0) - 2025-03-27 - -### Merged - -- Generated SDK #619 [`#124`](https://github.com/fireblocks/ts-sdk/pull/124) - -## [v9.0.0](https://github.com/fireblocks/ts-sdk/compare/v8.1.0...v9.0.0) - 2025-03-17 - -### Merged - -- Generated SDK #645 [`#123`](https://github.com/fireblocks/ts-sdk/pull/123) - -## [v8.1.0](https://github.com/fireblocks/ts-sdk/compare/v8.0.1...v8.1.0) - 2025-02-24 - -### Merged - -- Generated SDK #9833 [`#120`](https://github.com/fireblocks/ts-sdk/pull/120) - -## [v8.0.1](https://github.com/fireblocks/ts-sdk/compare/v8.0.0...v8.0.1) - 2025-02-12 - -### Merged - -- Generated SDK #4262 [`#119`](https://github.com/fireblocks/ts-sdk/pull/119) - -## [v8.0.0](https://github.com/fireblocks/ts-sdk/compare/v7.0.0...v8.0.0) - 2025-02-02 - -### Merged - -- Generated SDK #538 [`#118`](https://github.com/fireblocks/ts-sdk/pull/118) - -## [v7.0.0](https://github.com/fireblocks/ts-sdk/compare/v6.0.0...v7.0.0) - 2025-01-08 - -### Merged - -- Generated SDK #8699 [`#116`](https://github.com/fireblocks/ts-sdk/pull/116) - -## [v6.0.0](https://github.com/fireblocks/ts-sdk/compare/v5.0.0...v6.0.0) - 2024-12-05 - -### Merged - -- Generated SDK #1430 [`#111`](https://github.com/fireblocks/ts-sdk/pull/111) - -## [v5.0.0](https://github.com/fireblocks/ts-sdk/compare/v4.0.0...v5.0.0) - 2024-10-31 - -### Merged - -- Generated SDK #5184 [`#109`](https://github.com/fireblocks/ts-sdk/pull/109) - -## [v4.0.0](https://github.com/fireblocks/ts-sdk/compare/v3.1.0...v4.0.0) - 2024-09-17 - -### Merged - -- Generated SDK #237 [`#107`](https://github.com/fireblocks/ts-sdk/pull/107) - -## [v3.1.0](https://github.com/fireblocks/ts-sdk/compare/v3.0.0...v3.1.0) - 2024-07-25 - -### Merged - -- Generated SDK #6749 [`#102`](https://github.com/fireblocks/ts-sdk/pull/102) - -## [v3.0.0](https://github.com/fireblocks/ts-sdk/compare/v2.1.0...v3.0.0) - 2024-07-17 - -### Merged - -- Generated SDK #6152 [`#90`](https://github.com/fireblocks/ts-sdk/pull/90) -- Generated SDK #2589 [`#86`](https://github.com/fireblocks/ts-sdk/pull/86) -- Generated SDK #7882 [`#85`](https://github.com/fireblocks/ts-sdk/pull/85) -- Generated SDK #8418 [`#84`](https://github.com/fireblocks/ts-sdk/pull/84) -- Generated SDK #3524 [`#83`](https://github.com/fireblocks/ts-sdk/pull/83) -- Generated SDK #7984 [`#82`](https://github.com/fireblocks/ts-sdk/pull/82) -- Generated SDK #2873 [`#81`](https://github.com/fireblocks/ts-sdk/pull/81) - -## [v2.1.0](https://github.com/fireblocks/ts-sdk/compare/v2.0.0...v2.1.0) - 2024-06-04 - -### Merged - -- Generated SDK for version COR-46191/fix_pipelines [`#44`](https://github.com/fireblocks/ts-sdk/pull/44) - -## [v2.0.0](https://github.com/fireblocks/ts-sdk/compare/v1.1.0...v2.0.0) - 2024-05-08 - -### Merged - -- feat: add tokenization api [`#35`](https://github.com/fireblocks/ts-sdk/pull/35) - -## [v1.1.0](https://github.com/fireblocks/ts-sdk/compare/v1.0.1...v1.1.0) - 2024-04-17 - -### Merged - -- feat: adding consigners beta api [`#34`](https://github.com/fireblocks/ts-sdk/pull/34) -- fix: modify error message when secretKey missing and fix readme doc [`#33`](https://github.com/fireblocks/ts-sdk/pull/33) - -## [v1.0.1](https://github.com/fireblocks/ts-sdk/compare/v1.0.0...v1.0.1) - 2024-04-07 - -### Merged - -- Generated SDK for version v1.0.1 [`#32`](https://github.com/fireblocks/ts-sdk/pull/32) - -## v1.0.0 - 2024-04-07 - -### Merged - -- Generated SDK for version v1.0.0 GA [`#31`](https://github.com/fireblocks/ts-sdk/pull/31) -- add_license [`#30`](https://github.com/fireblocks/ts-sdk/pull/30) -- version_3_0_6_beta [`#29`](https://github.com/fireblocks/ts-sdk/pull/29) -- version_3_0_5_beta [`#27`](https://github.com/fireblocks/ts-sdk/pull/27) -- Version 3.0.4-beta [`#26`](https://github.com/fireblocks/ts-sdk/pull/26) -- Fireblocks api spec/generated/9818 [`#25`](https://github.com/fireblocks/ts-sdk/pull/25) -- Generated SDK for version 9817 [`#24`](https://github.com/fireblocks/ts-sdk/pull/24) -- Generated SDK for version master [`#23`](https://github.com/fireblocks/ts-sdk/pull/23) -- Added Idempotency & NCW headers support [`#22`](https://github.com/fireblocks/ts-sdk/pull/22) -- API SDK Improvments [`#21`](https://github.com/fireblocks/ts-sdk/pull/21) -- Update README.md [`#18`](https://github.com/fireblocks/ts-sdk/pull/18) -- Update README.md [`#17`](https://github.com/fireblocks/ts-sdk/pull/17) diff --git a/README.md b/README.md index b2b9640..80d71a6 100644 --- a/README.md +++ b/README.md @@ -186,6 +186,8 @@ Class | Method | HTTP request | Description *BlockchainsAssetsApi* | [**registerNewAsset**](docs/apis/BlockchainsAssetsApi.md#registerNewAsset) | **POST** /assets | Register an asset *BlockchainsAssetsApi* | [**setAssetPrice**](docs/apis/BlockchainsAssetsApi.md#setAssetPrice) | **POST** /assets/prices/{id} | Set asset price *BlockchainsAssetsApi* | [**updateAssetUserMetadata**](docs/apis/BlockchainsAssetsApi.md#updateAssetUserMetadata) | **PATCH** /assets/{id} | Update the user’s metadata for an asset +*CantonBetaApi* | [**createCantonCall**](docs/apis/CantonBetaApi.md#createCantonCall) | **POST** /operations/canton/calls | Make a Canton call +*CantonBetaApi* | [**respondToCantonOffer**](docs/apis/CantonBetaApi.md#respondToCantonOffer) | **POST** /operations/canton/offers/{offerId}/responses | Answer an offer *ComplianceApi* | [**activateArsConfig**](docs/apis/ComplianceApi.md#activateArsConfig) | **POST** /screening/ars/config/activate | Activate ARS (Address Registry Screening) *ComplianceApi* | [**activateByorkConfig**](docs/apis/ComplianceApi.md#activateByorkConfig) | **POST** /screening/byork/config/activate | Activate BYORK Light *ComplianceApi* | [**addAddressRegistryVaultOptOuts**](docs/apis/ComplianceApi.md#addAddressRegistryVaultOptOuts) | **POST** /address_registry/vaults | Add vault accounts to the address registry opt-out list diff --git a/api.ts b/api.ts index 56d7e27..5649d3a 100644 --- a/api.ts +++ b/api.ts @@ -19,6 +19,7 @@ export * from './api/approvals-beta-api'; export * from './api/audit-logs-api'; export * from './api/blockchain-link-beta-api'; export * from './api/blockchains-assets-api'; +export * from './api/canton-beta-api'; export * from './api/compliance-api'; export * from './api/compliance-orchestrator-beta-api'; export * from './api/compliance-screening-configuration-api'; diff --git a/api/api-user-api.ts b/api/api-user-api.ts index a509eac..6a26841 100644 --- a/api/api-user-api.ts +++ b/api/api-user-api.ts @@ -120,7 +120,7 @@ export const ApiUserApiAxiosParamCreator = function (configuration?: Configurati }; }, /** - * Issues a device pairing token for the given user and returns the user\'s info along with the token. - The API user must be in PENDING_ACTIVATION status. If the user is already set up (enabled), the request is rejected with a 409 Conflict. - Please note that this endpoint is available only for API keys with Owner/Admin/Non Signing Admin permissions. Endpoint Permission: Owner, Admin, Non-Signing Admin. + * Issues a device pairing token for the given user and returns the user\'s info along with the token. - The API user must be in PENDING_ACTIVATION status. If the user is already set up (enabled), the request is rejected with a 409 Conflict. - Please note that this endpoint is available only for API keys with Owner/Admin/Non Signing Admin permissions. - This is the same pairing token that the API Co-signer requests during installation and when you pair an additional API user with an existing Co-signer. You can use this endpoint instead of copying the token from Pair API user in the Console. The token is valid for one hour. * @summary Issue API user pairing token * @param {string} userId The ID of the api user * @param {string} [idempotencyKey] A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. @@ -198,7 +198,7 @@ export const ApiUserApiFp = function(configuration?: Configuration) { return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, operationBasePath || basePath); }, /** - * Issues a device pairing token for the given user and returns the user\'s info along with the token. - The API user must be in PENDING_ACTIVATION status. If the user is already set up (enabled), the request is rejected with a 409 Conflict. - Please note that this endpoint is available only for API keys with Owner/Admin/Non Signing Admin permissions. Endpoint Permission: Owner, Admin, Non-Signing Admin. + * Issues a device pairing token for the given user and returns the user\'s info along with the token. - The API user must be in PENDING_ACTIVATION status. If the user is already set up (enabled), the request is rejected with a 409 Conflict. - Please note that this endpoint is available only for API keys with Owner/Admin/Non Signing Admin permissions. - This is the same pairing token that the API Co-signer requests during installation and when you pair an additional API user with an existing Co-signer. You can use this endpoint instead of copying the token from Pair API user in the Console. The token is valid for one hour. * @summary Issue API user pairing token * @param {string} userId The ID of the api user * @param {string} [idempotencyKey] A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. @@ -241,7 +241,7 @@ export const ApiUserApiFactory = function (configuration?: Configuration, basePa return localVarFp.getApiUsers(options).then((request) => request(axios, basePath)); }, /** - * Issues a device pairing token for the given user and returns the user\'s info along with the token. - The API user must be in PENDING_ACTIVATION status. If the user is already set up (enabled), the request is rejected with a 409 Conflict. - Please note that this endpoint is available only for API keys with Owner/Admin/Non Signing Admin permissions. Endpoint Permission: Owner, Admin, Non-Signing Admin. + * Issues a device pairing token for the given user and returns the user\'s info along with the token. - The API user must be in PENDING_ACTIVATION status. If the user is already set up (enabled), the request is rejected with a 409 Conflict. - Please note that this endpoint is available only for API keys with Owner/Admin/Non Signing Admin permissions. - This is the same pairing token that the API Co-signer requests during installation and when you pair an additional API user with an existing Co-signer. You can use this endpoint instead of copying the token from Pair API user in the Console. The token is valid for one hour. * @summary Issue API user pairing token * @param {ApiUserApiIssueApiUserPairingTokenRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. @@ -326,7 +326,7 @@ export class ApiUserApi extends BaseAPI { } /** - * Issues a device pairing token for the given user and returns the user\'s info along with the token. - The API user must be in PENDING_ACTIVATION status. If the user is already set up (enabled), the request is rejected with a 409 Conflict. - Please note that this endpoint is available only for API keys with Owner/Admin/Non Signing Admin permissions. Endpoint Permission: Owner, Admin, Non-Signing Admin. + * Issues a device pairing token for the given user and returns the user\'s info along with the token. - The API user must be in PENDING_ACTIVATION status. If the user is already set up (enabled), the request is rejected with a 409 Conflict. - Please note that this endpoint is available only for API keys with Owner/Admin/Non Signing Admin permissions. - This is the same pairing token that the API Co-signer requests during installation and when you pair an additional API user with an existing Co-signer. You can use this endpoint instead of copying the token from Pair API user in the Console. The token is valid for one hour. * @summary Issue API user pairing token * @param {ApiUserApiIssueApiUserPairingTokenRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. diff --git a/api/canton-beta-api.ts b/api/canton-beta-api.ts new file mode 100644 index 0000000..935afea --- /dev/null +++ b/api/canton-beta-api.ts @@ -0,0 +1,288 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +import type { Configuration } from '../configuration'; +import type { AxiosPromise, AxiosInstance, RawAxiosRequestConfig } from 'axios'; +import globalAxios from 'axios'; +import { convertToFireblocksResponse } from "../response/fireblocksResponse"; +// URLSearchParams not necessarily used +// @ts-ignore +import { URL, URLSearchParams } from 'url'; +// Some imports not used depending on template conditions +// @ts-ignore +import { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObject, setBearerAuthToObject, setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction } from '../common'; +import { assertParamExistsAndNotEmpty } from '../utils/validation_utils'; +// @ts-ignore +import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError, operationServerMap } from '../base'; +// @ts-ignore +import { CallAccepted } from '../models'; +// @ts-ignore +import { CantonCall } from '../models'; +// @ts-ignore +import { ErrorSchema } from '../models'; +// @ts-ignore +import { OfferResponse } from '../models'; +// @ts-ignore +import { OfferResponseAccepted } from '../models'; +/** + * CantonBetaApi - axios parameter creator + * @export + */ +export const CantonBetaApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * Submits a Canton call from a vault account\'s Canton wallet. `type` selects the call and the shape of `payload`. + * @summary Make a Canton call + * @param {CantonCall} cantonCall + * @param {string} [idempotencyKey] A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + createCantonCall: async (cantonCall: CantonCall, idempotencyKey?: string, options: RawAxiosRequestConfig = {}): Promise => { + assertParamExists('createCantonCall', 'cantonCall', cantonCall) + const localVarPath = `/operations/canton/calls`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + // Stamped onto the request config (not the headers, so it never goes on + // the wire) so the response interceptor can name the operation in the + // lifecycle warning. Key must match OPERATION_ID_CONFIG_KEY in utils/lifecycleWarning. + (localVarRequestOptions as any).fireblocksOperationId = 'createCantonCall'; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + if (idempotencyKey != null) { + localVarHeaderParameter['Idempotency-Key'] = String(idempotencyKey); + } + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(cantonCall, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Responds to an incoming Canton offer. Set `responseType` to one of the values in the offer transaction\'s `cantonDetails.offerResponse.availableResponses`. + * @summary Answer an offer + * @param {OfferResponse} offerResponse + * @param {string} offerId The Fireblocks transaction id of the incoming offer being answered. + * @param {string} [idempotencyKey] A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + respondToCantonOffer: async (offerResponse: OfferResponse, offerId: string, idempotencyKey?: string, options: RawAxiosRequestConfig = {}): Promise => { + assertParamExists('respondToCantonOffer', 'offerResponse', offerResponse) + assertParamExistsAndNotEmpty('respondToCantonOffer', 'offerId', offerId) + const localVarPath = `/operations/canton/offers/{offerId}/responses` + .replace(`{${"offerId"}}`, encodeURIComponent(String(offerId))); + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + // Stamped onto the request config (not the headers, so it never goes on + // the wire) so the response interceptor can name the operation in the + // lifecycle warning. Key must match OPERATION_ID_CONFIG_KEY in utils/lifecycleWarning. + (localVarRequestOptions as any).fireblocksOperationId = 'respondToCantonOffer'; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + if (idempotencyKey != null) { + localVarHeaderParameter['Idempotency-Key'] = String(idempotencyKey); + } + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(offerResponse, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * CantonBetaApi - functional programming interface + * @export + */ +export const CantonBetaApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = CantonBetaApiAxiosParamCreator(configuration) + return { + /** + * Submits a Canton call from a vault account\'s Canton wallet. `type` selects the call and the shape of `payload`. + * @summary Make a Canton call + * @param {CantonCall} cantonCall + * @param {string} [idempotencyKey] A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async createCantonCall(cantonCall: CantonCall, idempotencyKey?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.createCantonCall(cantonCall, idempotencyKey, options); + const index = configuration?.serverIndex ?? 0; + const operationBasePath = operationServerMap['CantonBetaApi.createCantonCall']?.[index]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, operationBasePath || basePath); + }, + /** + * Responds to an incoming Canton offer. Set `responseType` to one of the values in the offer transaction\'s `cantonDetails.offerResponse.availableResponses`. + * @summary Answer an offer + * @param {OfferResponse} offerResponse + * @param {string} offerId The Fireblocks transaction id of the incoming offer being answered. + * @param {string} [idempotencyKey] A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async respondToCantonOffer(offerResponse: OfferResponse, offerId: string, idempotencyKey?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.respondToCantonOffer(offerResponse, offerId, idempotencyKey, options); + const index = configuration?.serverIndex ?? 0; + const operationBasePath = operationServerMap['CantonBetaApi.respondToCantonOffer']?.[index]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, operationBasePath || basePath); + }, + } +}; + +/** + * CantonBetaApi - factory interface + * @export + */ +export const CantonBetaApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = CantonBetaApiFp(configuration) + return { + /** + * Submits a Canton call from a vault account\'s Canton wallet. `type` selects the call and the shape of `payload`. + * @summary Make a Canton call + * @param {CantonBetaApiCreateCantonCallRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + createCantonCall(requestParameters: CantonBetaApiCreateCantonCallRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.createCantonCall(requestParameters.cantonCall, requestParameters.idempotencyKey, options).then((request) => request(axios, basePath)); + }, + /** + * Responds to an incoming Canton offer. Set `responseType` to one of the values in the offer transaction\'s `cantonDetails.offerResponse.availableResponses`. + * @summary Answer an offer + * @param {CantonBetaApiRespondToCantonOfferRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + respondToCantonOffer(requestParameters: CantonBetaApiRespondToCantonOfferRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.respondToCantonOffer(requestParameters.offerResponse, requestParameters.offerId, requestParameters.idempotencyKey, options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * Request parameters for createCantonCall operation in CantonBetaApi. + * @export + * @interface CantonBetaApiCreateCantonCallRequest + */ +export interface CantonBetaApiCreateCantonCallRequest { + /** + * + * @type {CantonCall} + * @memberof CantonBetaApiCreateCantonCall + */ + readonly cantonCall: CantonCall + + /** + * A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. + * @type {string} + * @memberof CantonBetaApiCreateCantonCall + */ + readonly idempotencyKey?: string +} + +/** + * Request parameters for respondToCantonOffer operation in CantonBetaApi. + * @export + * @interface CantonBetaApiRespondToCantonOfferRequest + */ +export interface CantonBetaApiRespondToCantonOfferRequest { + /** + * + * @type {OfferResponse} + * @memberof CantonBetaApiRespondToCantonOffer + */ + readonly offerResponse: OfferResponse + + /** + * The Fireblocks transaction id of the incoming offer being answered. + * @type {string} + * @memberof CantonBetaApiRespondToCantonOffer + */ + readonly offerId: string + + /** + * A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. + * @type {string} + * @memberof CantonBetaApiRespondToCantonOffer + */ + readonly idempotencyKey?: string +} + +/** + * CantonBetaApi - object-oriented interface + * @export + * @class CantonBetaApi + * @extends {BaseAPI} + */ +export class CantonBetaApi extends BaseAPI { + /** + * Submits a Canton call from a vault account\'s Canton wallet. `type` selects the call and the shape of `payload`. + * @summary Make a Canton call + * @param {CantonBetaApiCreateCantonCallRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof CantonBetaApi + */ + public createCantonCall(requestParameters: CantonBetaApiCreateCantonCallRequest) { + return CantonBetaApiFp(this.configuration).createCantonCall(requestParameters.cantonCall, requestParameters.idempotencyKey).then((request) => request(this.axios, this.basePath)).then(convertToFireblocksResponse); + } + + /** + * Responds to an incoming Canton offer. Set `responseType` to one of the values in the offer transaction\'s `cantonDetails.offerResponse.availableResponses`. + * @summary Answer an offer + * @param {CantonBetaApiRespondToCantonOfferRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof CantonBetaApi + */ + public respondToCantonOffer(requestParameters: CantonBetaApiRespondToCantonOfferRequest) { + return CantonBetaApiFp(this.configuration).respondToCantonOffer(requestParameters.offerResponse, requestParameters.offerId, requestParameters.idempotencyKey).then((request) => request(this.axios, this.basePath)).then(convertToFireblocksResponse); + } +} + diff --git a/api/webhooks-v2-api.ts b/api/webhooks-v2-api.ts index 139b2bd..1432ac5 100644 --- a/api/webhooks-v2-api.ts +++ b/api/webhooks-v2-api.ts @@ -382,7 +382,7 @@ export const WebhooksV2ApiAxiosParamCreator = function (configuration?: Configur }; }, /** - * Returns the Certificate Signing Request (CSR) PEM that customers use to generate their signed client certificate. The private key the CSR is built from is held by Fireblocks and is specific to this workspace. It is created on the first request for a given key type, and the same CSR is returned on subsequent requests for that type. Pass `keyAlgorithm` to choose RSA or ECDSA. A workspace may hold one key of each: the CSR returned is always the one for the type requested, so a certificate signed against it matches the key used at delivery time. + * Returns the Certificate Signing Request (CSR) PEM that customers use to generate their signed client certificate. The private key the CSR is built from is held by Fireblocks and is specific to this workspace. It is created on the first request for a given key type, and the same CSR is returned on subsequent requests for that type. Pass `keyAlgorithm` to choose RSA or ECDSA. A workspace may hold one key of each: the CSR returned is always the one for the type requested, so a certificate signed against it matches the key used at delivery time. **Endpoint Permissions:** Owner, Admin, Non-Signing Admin. * @summary Get mTLS CSR * @param {GetMtlsCsrKeyAlgorithmEnum} [keyAlgorithm] Algorithm of the private key the CSR is generated for. ECDSA keys are smaller and quicker to issue, but the certificate authority signing the request has to accept an EC subject key, which some do not by default. * @param {*} [options] Override http request option. @@ -1330,7 +1330,7 @@ export const WebhooksV2ApiFp = function(configuration?: Configuration) { return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, operationBasePath || basePath); }, /** - * Returns the Certificate Signing Request (CSR) PEM that customers use to generate their signed client certificate. The private key the CSR is built from is held by Fireblocks and is specific to this workspace. It is created on the first request for a given key type, and the same CSR is returned on subsequent requests for that type. Pass `keyAlgorithm` to choose RSA or ECDSA. A workspace may hold one key of each: the CSR returned is always the one for the type requested, so a certificate signed against it matches the key used at delivery time. + * Returns the Certificate Signing Request (CSR) PEM that customers use to generate their signed client certificate. The private key the CSR is built from is held by Fireblocks and is specific to this workspace. It is created on the first request for a given key type, and the same CSR is returned on subsequent requests for that type. Pass `keyAlgorithm` to choose RSA or ECDSA. A workspace may hold one key of each: the CSR returned is always the one for the type requested, so a certificate signed against it matches the key used at delivery time. **Endpoint Permissions:** Owner, Admin, Non-Signing Admin. * @summary Get mTLS CSR * @param {GetMtlsCsrKeyAlgorithmEnum} [keyAlgorithm] Algorithm of the private key the CSR is generated for. ECDSA keys are smaller and quicker to issue, but the certificate authority signing the request has to accept an EC subject key, which some do not by default. * @param {*} [options] Override http request option. @@ -1685,7 +1685,7 @@ export const WebhooksV2ApiFactory = function (configuration?: Configuration, bas return localVarFp.getMetrics(requestParameters.webhookId, requestParameters.metricName, options).then((request) => request(axios, basePath)); }, /** - * Returns the Certificate Signing Request (CSR) PEM that customers use to generate their signed client certificate. The private key the CSR is built from is held by Fireblocks and is specific to this workspace. It is created on the first request for a given key type, and the same CSR is returned on subsequent requests for that type. Pass `keyAlgorithm` to choose RSA or ECDSA. A workspace may hold one key of each: the CSR returned is always the one for the type requested, so a certificate signed against it matches the key used at delivery time. + * Returns the Certificate Signing Request (CSR) PEM that customers use to generate their signed client certificate. The private key the CSR is built from is held by Fireblocks and is specific to this workspace. It is created on the first request for a given key type, and the same CSR is returned on subsequent requests for that type. Pass `keyAlgorithm` to choose RSA or ECDSA. A workspace may hold one key of each: the CSR returned is always the one for the type requested, so a certificate signed against it matches the key used at delivery time. **Endpoint Permissions:** Owner, Admin, Non-Signing Admin. * @summary Get mTLS CSR * @param {WebhooksV2ApiGetMtlsCsrRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. @@ -2563,7 +2563,7 @@ export class WebhooksV2Api extends BaseAPI { } /** - * Returns the Certificate Signing Request (CSR) PEM that customers use to generate their signed client certificate. The private key the CSR is built from is held by Fireblocks and is specific to this workspace. It is created on the first request for a given key type, and the same CSR is returned on subsequent requests for that type. Pass `keyAlgorithm` to choose RSA or ECDSA. A workspace may hold one key of each: the CSR returned is always the one for the type requested, so a certificate signed against it matches the key used at delivery time. + * Returns the Certificate Signing Request (CSR) PEM that customers use to generate their signed client certificate. The private key the CSR is built from is held by Fireblocks and is specific to this workspace. It is created on the first request for a given key type, and the same CSR is returned on subsequent requests for that type. Pass `keyAlgorithm` to choose RSA or ECDSA. A workspace may hold one key of each: the CSR returned is always the one for the type requested, so a certificate signed against it matches the key used at delivery time. **Endpoint Permissions:** Owner, Admin, Non-Signing Admin. * @summary Get mTLS CSR * @param {WebhooksV2ApiGetMtlsCsrRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. diff --git a/client/client.ts b/client/client.ts index bed3c8a..38060cd 100644 --- a/client/client.ts +++ b/client/client.ts @@ -17,6 +17,7 @@ import { ApiUserApi, AuditLogsApi, BlockchainLinkBetaApi, BlockchainsAssetsApi, + CantonBetaApi, ComplianceApi, ComplianceOrchestratorBetaApi, ComplianceScreeningConfigurationApi, @@ -81,6 +82,7 @@ export class Fireblocks { private _auditLogs?: AuditLogsApi; private _blockchainLinkBeta?: BlockchainLinkBetaApi; private _blockchainsAssets?: BlockchainsAssetsApi; + private _cantonBeta?: CantonBetaApi; private _compliance?: ComplianceApi; private _complianceOrchestratorBeta?: ComplianceOrchestratorBetaApi; private _complianceScreeningConfiguration?: ComplianceScreeningConfigurationApi; @@ -169,6 +171,9 @@ export class Fireblocks { get blockchainsAssets(): BlockchainsAssetsApi { return this._blockchainsAssets ?? new BlockchainsAssetsApi(this.config, undefined, this.axiosManager.axios); } + get cantonBeta(): CantonBetaApi { + return this._cantonBeta ?? new CantonBetaApi(this.config, undefined, this.axiosManager.axios); + } get compliance(): ComplianceApi { return this._compliance ?? new ComplianceApi(this.config, undefined, this.axiosManager.axios); } diff --git a/docs/apis/ApiUserApi.md b/docs/apis/ApiUserApi.md index fcb3f99..598ed15 100644 --- a/docs/apis/ApiUserApi.md +++ b/docs/apis/ApiUserApi.md @@ -136,7 +136,7 @@ No authorization required # **issueApiUserPairingToken** > IssueApiUserPairingTokenResponse issueApiUserPairingToken() -Issues a device pairing token for the given user and returns the user\'s info along with the token. - The API user must be in PENDING_ACTIVATION status. If the user is already set up (enabled), the request is rejected with a 409 Conflict. - Please note that this endpoint is available only for API keys with Owner/Admin/Non Signing Admin permissions. Endpoint Permission: Owner, Admin, Non-Signing Admin. +Issues a device pairing token for the given user and returns the user\'s info along with the token. - The API user must be in PENDING_ACTIVATION status. If the user is already set up (enabled), the request is rejected with a 409 Conflict. - Please note that this endpoint is available only for API keys with Owner/Admin/Non Signing Admin permissions. - This is the same pairing token that the API Co-signer requests during installation and when you pair an additional API user with an existing Co-signer. You can use this endpoint instead of copying the token from Pair API user in the Console. The token is valid for one hour. ### Example diff --git a/docs/apis/CantonBetaApi.md b/docs/apis/CantonBetaApi.md new file mode 100644 index 0000000..effa0a0 --- /dev/null +++ b/docs/apis/CantonBetaApi.md @@ -0,0 +1,148 @@ +# CantonBetaApi + +All URIs are relative to https://developers.fireblocks.com/reference/ + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**createCantonCall**](#createCantonCall) | **POST** /operations/canton/calls | Make a Canton call +[**respondToCantonOffer**](#respondToCantonOffer) | **POST** /operations/canton/offers/{offerId}/responses | Answer an offer + + +# **createCantonCall** +> CallAccepted createCantonCall(cantonCall) + +Submits a Canton call from a vault account\'s Canton wallet. `type` selects the call and the shape of `payload`. + +### Example + + +```typescript +import { readFileSync } from 'fs'; +import { Fireblocks, BasePath } from '@fireblocks/ts-sdk'; +import type { FireblocksResponse, CantonBetaApiCreateCantonCallRequest, CallAccepted } from '@fireblocks/ts-sdk'; + +// Set the environment variables for authentication +process.env.FIREBLOCKS_BASE_PATH = BasePath.Sandbox; // or assign directly to "https://sandbox-api.fireblocks.io/v1" +process.env.FIREBLOCKS_API_KEY = "my-api-key"; +process.env.FIREBLOCKS_SECRET_KEY = readFileSync("./fireblocks_secret.key", "utf8"); + +const fireblocks = new Fireblocks(); + +let body: CantonBetaApiCreateCantonCallRequest = { + // CantonCall + cantonCall: param_value, + // string | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) + idempotencyKey: idempotencyKey_example, +}; + +fireblocks.cantonBeta.createCantonCall(body).then((res: FireblocksResponse) => { + console.log('API called successfully. Returned data: ' + JSON.stringify(res, null, 2)); +}).catch((error:any) => console.error(error)); +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **cantonCall** | **[CantonCall](../models/CantonCall.md)**| | + **idempotencyKey** | [**string**] | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | (optional) defaults to undefined + + +### Return type + +**[CallAccepted](../models/CallAccepted.md)** + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**201** | The outgoing transaction that carries the call. | * X-Request-ID -
| +**400** | Unknown or missing type, a missing required payload field, or an invalid party id, blockchainId, or expiry | * X-Request-ID -
| +**404** | No Canton wallet for this vault account and blockchainId, or an unknown end investor for this tenant | * X-Request-ID -
| +**409** | The target is not in a state this call can act on, or more than one candidate contract matched the wallet | * X-Request-ID -
| +**501** | This call type is not yet available: DTCC_END_INVESTOR_INVITE_CANCEL, DTCC_ALLOW_LIST_ADD, DTCC_ALLOW_LIST_REMOVE | * X-Request-ID -
| +**0** | Error Response | * X-Request-ID -
| + +[[Back to top]](#) [[Back to API list]](../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../README.md#documentation-for-models) [[Back to README]](../../README.md) + +# **respondToCantonOffer** +> OfferResponseAccepted respondToCantonOffer(offerResponse, ) + +Responds to an incoming Canton offer. Set `responseType` to one of the values in the offer transaction\'s `cantonDetails.offerResponse.availableResponses`. + +### Example + + +```typescript +import { readFileSync } from 'fs'; +import { Fireblocks, BasePath } from '@fireblocks/ts-sdk'; +import type { FireblocksResponse, CantonBetaApiRespondToCantonOfferRequest, OfferResponseAccepted } from '@fireblocks/ts-sdk'; + +// Set the environment variables for authentication +process.env.FIREBLOCKS_BASE_PATH = BasePath.Sandbox; // or assign directly to "https://sandbox-api.fireblocks.io/v1" +process.env.FIREBLOCKS_API_KEY = "my-api-key"; +process.env.FIREBLOCKS_SECRET_KEY = readFileSync("./fireblocks_secret.key", "utf8"); + +const fireblocks = new Fireblocks(); + +let body: CantonBetaApiRespondToCantonOfferRequest = { + // OfferResponse + offerResponse: param_value, + // string | The Fireblocks transaction id of the incoming offer being answered. + offerId: 5a1d8b0f-2c31-4c7e-9d0a-118e7b6c4a21, + // string | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) + idempotencyKey: idempotencyKey_example, +}; + +fireblocks.cantonBeta.respondToCantonOffer(body).then((res: FireblocksResponse) => { + console.log('API called successfully. Returned data: ' + JSON.stringify(res, null, 2)); +}).catch((error:any) => console.error(error)); +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **offerResponse** | **[OfferResponse](../models/OfferResponse.md)**| | + **offerId** | [**string**] | The Fireblocks transaction id of the incoming offer being answered. | defaults to undefined + **idempotencyKey** | [**string**] | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | (optional) defaults to undefined + + +### Return type + +**[OfferResponseAccepted](../models/OfferResponseAccepted.md)** + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**201** | The outgoing transaction that carries the response. Its on-chain outcome arrives by webhook as a status update on this transaction. | * X-Request-ID -
| +**400** | Unknown or missing responseType, or a missing required payload field, or the response is not available to this workspace\'s side of the offer (a sender sending accept/reject, a receiver sending withdraw) | * X-Request-ID -
| +**404** | Unknown offer id for this tenant | * X-Request-ID -
| +**409** | The offer cannot take this response now. An accept or reject: the offer is already answered, expired, or a response is in flight. ALLOCATION_WITHDRAW — which is sent AFTER the accept, on the same offer: the allocation is not ALLOCATED, because the accept has not settled yet, or it was already withdrawn or settled by the venue. The message names the state. | * X-Request-ID -
| +**501** | This responseType is not yet available | * X-Request-ID -
| +**0** | Error Response | * X-Request-ID -
| + +[[Back to top]](#) [[Back to API list]](../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../README.md#documentation-for-models) [[Back to README]](../../README.md) + + diff --git a/docs/apis/WebhooksV2Api.md b/docs/apis/WebhooksV2Api.md index 2376738..5e35276 100644 --- a/docs/apis/WebhooksV2Api.md +++ b/docs/apis/WebhooksV2Api.md @@ -475,7 +475,7 @@ No authorization required # **getMtlsCsr** > WebhookMtlsCsrResponse getMtlsCsr() -Returns the Certificate Signing Request (CSR) PEM that customers use to generate their signed client certificate. The private key the CSR is built from is held by Fireblocks and is specific to this workspace. It is created on the first request for a given key type, and the same CSR is returned on subsequent requests for that type. Pass `keyAlgorithm` to choose RSA or ECDSA. A workspace may hold one key of each: the CSR returned is always the one for the type requested, so a certificate signed against it matches the key used at delivery time. +Returns the Certificate Signing Request (CSR) PEM that customers use to generate their signed client certificate. The private key the CSR is built from is held by Fireblocks and is specific to this workspace. It is created on the first request for a given key type, and the same CSR is returned on subsequent requests for that type. Pass `keyAlgorithm` to choose RSA or ECDSA. A workspace may hold one key of each: the CSR returned is always the one for the type requested, so a certificate signed against it matches the key used at delivery time. **Endpoint Permissions:** Owner, Admin, Non-Signing Admin. ### Example diff --git a/docs/models/OfferResponse.md b/docs/models/OfferResponse.md index d0ab209..8a611a3 100644 --- a/docs/models/OfferResponse.md +++ b/docs/models/OfferResponse.md @@ -4,7 +4,7 @@ |Name | Type | Description | Notes| |------------ | ------------- | ------------- | -------------| -|**responseType** | **string** | How you are answering the offer. Must be one of the values listed in the transaction\'s `cantonDetails.offerResponse.availableResponses` — TOP-LEVEL on the transaction, not nested under an `additionalInfo` envelope, which does not exist on `TransactionResponse`. `availableResponses` states what this offer TYPE accepts. It is set when the offer arrives and does not change, so it does NOT tell you whether the offer is still answerable — check `expiresAt` and the transaction\'s status for that, and expect this endpoint to be the authority: it re-checks state and expiry on every call and answers 409 when either has moved. | [default to undefined]| +|**responseType** | **string** | How you are answering the offer — one of the offer transaction\'s `cantonDetails.offerResponse.availableResponses`. That list does not change after the offer arrives; check `expiresAt` and the transaction status to see whether it is still answerable. | [default to undefined]| |**payload** | [**DtccOnboardingRejectPayload**](DtccOnboardingRejectPayload.md) | | [default to undefined]| diff --git a/docs/models/OfferResponseAllocationAccept.md b/docs/models/OfferResponseAllocationAccept.md index e410b4e..59c766f 100644 --- a/docs/models/OfferResponseAllocationAccept.md +++ b/docs/models/OfferResponseAllocationAccept.md @@ -4,7 +4,7 @@ |Name | Type | Description | Notes| |------------ | ------------- | ------------- | -------------| -|**responseType** | **string** | How you are answering the offer. Must be one of the values listed in the transaction\'s `cantonDetails.offerResponse.availableResponses` — TOP-LEVEL on the transaction, not nested under an `additionalInfo` envelope, which does not exist on `TransactionResponse`. `availableResponses` states what this offer TYPE accepts. It is set when the offer arrives and does not change, so it does NOT tell you whether the offer is still answerable — check `expiresAt` and the transaction\'s status for that, and expect this endpoint to be the authority: it re-checks state and expiry on every call and answers 409 when either has moved. | [default to undefined]| +|**responseType** | **string** | How you are answering the offer — one of the offer transaction\'s `cantonDetails.offerResponse.availableResponses`. That list does not change after the offer arrives; check `expiresAt` and the transaction status to see whether it is still answerable. | [default to undefined]| ## Enum: OfferResponseAllocationAcceptResponseTypeEnum diff --git a/docs/models/OfferResponseAllocationReject.md b/docs/models/OfferResponseAllocationReject.md index 339d229..8ea74dd 100644 --- a/docs/models/OfferResponseAllocationReject.md +++ b/docs/models/OfferResponseAllocationReject.md @@ -4,7 +4,7 @@ |Name | Type | Description | Notes| |------------ | ------------- | ------------- | -------------| -|**responseType** | **string** | How you are answering the offer. Must be one of the values listed in the transaction\'s `cantonDetails.offerResponse.availableResponses` — TOP-LEVEL on the transaction, not nested under an `additionalInfo` envelope, which does not exist on `TransactionResponse`. `availableResponses` states what this offer TYPE accepts. It is set when the offer arrives and does not change, so it does NOT tell you whether the offer is still answerable — check `expiresAt` and the transaction\'s status for that, and expect this endpoint to be the authority: it re-checks state and expiry on every call and answers 409 when either has moved. | [default to undefined]| +|**responseType** | **string** | How you are answering the offer — one of the offer transaction\'s `cantonDetails.offerResponse.availableResponses`. That list does not change after the offer arrives; check `expiresAt` and the transaction status to see whether it is still answerable. | [default to undefined]| ## Enum: OfferResponseAllocationRejectResponseTypeEnum diff --git a/docs/models/OfferResponseAllocationWithdraw.md b/docs/models/OfferResponseAllocationWithdraw.md index 4d19883..2b723b9 100644 --- a/docs/models/OfferResponseAllocationWithdraw.md +++ b/docs/models/OfferResponseAllocationWithdraw.md @@ -4,7 +4,7 @@ |Name | Type | Description | Notes| |------------ | ------------- | ------------- | -------------| -|**responseType** | **string** | How you are answering the offer. Must be one of the values listed in the transaction\'s `cantonDetails.offerResponse.availableResponses` — TOP-LEVEL on the transaction, not nested under an `additionalInfo` envelope, which does not exist on `TransactionResponse`. `availableResponses` states what this offer TYPE accepts. It is set when the offer arrives and does not change, so it does NOT tell you whether the offer is still answerable — check `expiresAt` and the transaction\'s status for that, and expect this endpoint to be the authority: it re-checks state and expiry on every call and answers 409 when either has moved. | [default to undefined]| +|**responseType** | **string** | How you are answering the offer — one of the offer transaction\'s `cantonDetails.offerResponse.availableResponses`. That list does not change after the offer arrives; check `expiresAt` and the transaction status to see whether it is still answerable. | [default to undefined]| ## Enum: OfferResponseAllocationWithdrawResponseTypeEnum diff --git a/docs/models/OfferResponseDtccOnboardingAccept.md b/docs/models/OfferResponseDtccOnboardingAccept.md index 71baf0d..37d78d2 100644 --- a/docs/models/OfferResponseDtccOnboardingAccept.md +++ b/docs/models/OfferResponseDtccOnboardingAccept.md @@ -4,7 +4,7 @@ |Name | Type | Description | Notes| |------------ | ------------- | ------------- | -------------| -|**responseType** | **string** | How you are answering the offer. Must be one of the values listed in the transaction\'s `cantonDetails.offerResponse.availableResponses` — TOP-LEVEL on the transaction, not nested under an `additionalInfo` envelope, which does not exist on `TransactionResponse`. `availableResponses` states what this offer TYPE accepts. It is set when the offer arrives and does not change, so it does NOT tell you whether the offer is still answerable — check `expiresAt` and the transaction\'s status for that, and expect this endpoint to be the authority: it re-checks state and expiry on every call and answers 409 when either has moved. | [default to undefined]| +|**responseType** | **string** | How you are answering the offer — one of the offer transaction\'s `cantonDetails.offerResponse.availableResponses`. That list does not change after the offer arrives; check `expiresAt` and the transaction status to see whether it is still answerable. | [default to undefined]| ## Enum: OfferResponseDtccOnboardingAcceptResponseTypeEnum diff --git a/docs/models/OfferResponseDtccOnboardingReject.md b/docs/models/OfferResponseDtccOnboardingReject.md index 3b5e33a..f659ef0 100644 --- a/docs/models/OfferResponseDtccOnboardingReject.md +++ b/docs/models/OfferResponseDtccOnboardingReject.md @@ -4,7 +4,7 @@ |Name | Type | Description | Notes| |------------ | ------------- | ------------- | -------------| -|**responseType** | **string** | How you are answering the offer. Must be one of the values listed in the transaction\'s `cantonDetails.offerResponse.availableResponses` — TOP-LEVEL on the transaction, not nested under an `additionalInfo` envelope, which does not exist on `TransactionResponse`. `availableResponses` states what this offer TYPE accepts. It is set when the offer arrives and does not change, so it does NOT tell you whether the offer is still answerable — check `expiresAt` and the transaction\'s status for that, and expect this endpoint to be the authority: it re-checks state and expiry on every call and answers 409 when either has moved. | [default to undefined]| +|**responseType** | **string** | How you are answering the offer — one of the offer transaction\'s `cantonDetails.offerResponse.availableResponses`. That list does not change after the offer arrives; check `expiresAt` and the transaction status to see whether it is still answerable. | [default to undefined]| |**payload** | [**DtccOnboardingRejectPayload**](DtccOnboardingRejectPayload.md) | | [default to undefined]| diff --git a/docs/models/OfferResponseTradewebAccept.md b/docs/models/OfferResponseTradewebAccept.md index 3352463..b1914dd 100644 --- a/docs/models/OfferResponseTradewebAccept.md +++ b/docs/models/OfferResponseTradewebAccept.md @@ -4,7 +4,7 @@ |Name | Type | Description | Notes| |------------ | ------------- | ------------- | -------------| -|**responseType** | **string** | How you are answering the offer. Must be one of the values listed in the transaction\'s `cantonDetails.offerResponse.availableResponses` — TOP-LEVEL on the transaction, not nested under an `additionalInfo` envelope, which does not exist on `TransactionResponse`. `availableResponses` states what this offer TYPE accepts. It is set when the offer arrives and does not change, so it does NOT tell you whether the offer is still answerable — check `expiresAt` and the transaction\'s status for that, and expect this endpoint to be the authority: it re-checks state and expiry on every call and answers 409 when either has moved. | [default to undefined]| +|**responseType** | **string** | How you are answering the offer — one of the offer transaction\'s `cantonDetails.offerResponse.availableResponses`. That list does not change after the offer arrives; check `expiresAt` and the transaction status to see whether it is still answerable. | [default to undefined]| ## Enum: OfferResponseTradewebAcceptResponseTypeEnum diff --git a/docs/models/OfferResponseTradewebReject.md b/docs/models/OfferResponseTradewebReject.md index 7ae3128..d4e03c3 100644 --- a/docs/models/OfferResponseTradewebReject.md +++ b/docs/models/OfferResponseTradewebReject.md @@ -4,7 +4,7 @@ |Name | Type | Description | Notes| |------------ | ------------- | ------------- | -------------| -|**responseType** | **string** | How you are answering the offer. Must be one of the values listed in the transaction\'s `cantonDetails.offerResponse.availableResponses` — TOP-LEVEL on the transaction, not nested under an `additionalInfo` envelope, which does not exist on `TransactionResponse`. `availableResponses` states what this offer TYPE accepts. It is set when the offer arrives and does not change, so it does NOT tell you whether the offer is still answerable — check `expiresAt` and the transaction\'s status for that, and expect this endpoint to be the authority: it re-checks state and expiry on every call and answers 409 when either has moved. | [default to undefined]| +|**responseType** | **string** | How you are answering the offer — one of the offer transaction\'s `cantonDetails.offerResponse.availableResponses`. That list does not change after the offer arrives; check `expiresAt` and the transaction status to see whether it is still answerable. | [default to undefined]| ## Enum: OfferResponseTradewebRejectResponseTypeEnum diff --git a/docs/models/OfferResponseTransferAccept.md b/docs/models/OfferResponseTransferAccept.md index a20e1e1..f6ebf29 100644 --- a/docs/models/OfferResponseTransferAccept.md +++ b/docs/models/OfferResponseTransferAccept.md @@ -4,7 +4,7 @@ |Name | Type | Description | Notes| |------------ | ------------- | ------------- | -------------| -|**responseType** | **string** | How you are answering the offer. Must be one of the values listed in the transaction\'s `cantonDetails.offerResponse.availableResponses` — TOP-LEVEL on the transaction, not nested under an `additionalInfo` envelope, which does not exist on `TransactionResponse`. `availableResponses` states what this offer TYPE accepts. It is set when the offer arrives and does not change, so it does NOT tell you whether the offer is still answerable — check `expiresAt` and the transaction\'s status for that, and expect this endpoint to be the authority: it re-checks state and expiry on every call and answers 409 when either has moved. | [default to undefined]| +|**responseType** | **string** | How you are answering the offer — one of the offer transaction\'s `cantonDetails.offerResponse.availableResponses`. That list does not change after the offer arrives; check `expiresAt` and the transaction status to see whether it is still answerable. | [default to undefined]| ## Enum: OfferResponseTransferAcceptResponseTypeEnum diff --git a/docs/models/OfferResponseTransferReject.md b/docs/models/OfferResponseTransferReject.md index bf18da3..d8c307f 100644 --- a/docs/models/OfferResponseTransferReject.md +++ b/docs/models/OfferResponseTransferReject.md @@ -4,7 +4,7 @@ |Name | Type | Description | Notes| |------------ | ------------- | ------------- | -------------| -|**responseType** | **string** | How you are answering the offer. Must be one of the values listed in the transaction\'s `cantonDetails.offerResponse.availableResponses` — TOP-LEVEL on the transaction, not nested under an `additionalInfo` envelope, which does not exist on `TransactionResponse`. `availableResponses` states what this offer TYPE accepts. It is set when the offer arrives and does not change, so it does NOT tell you whether the offer is still answerable — check `expiresAt` and the transaction\'s status for that, and expect this endpoint to be the authority: it re-checks state and expiry on every call and answers 409 when either has moved. | [default to undefined]| +|**responseType** | **string** | How you are answering the offer — one of the offer transaction\'s `cantonDetails.offerResponse.availableResponses`. That list does not change after the offer arrives; check `expiresAt` and the transaction status to see whether it is still answerable. | [default to undefined]| ## Enum: OfferResponseTransferRejectResponseTypeEnum diff --git a/docs/models/OfferResponseTransferWithdraw.md b/docs/models/OfferResponseTransferWithdraw.md index 00adee1..4fe25f9 100644 --- a/docs/models/OfferResponseTransferWithdraw.md +++ b/docs/models/OfferResponseTransferWithdraw.md @@ -4,7 +4,7 @@ |Name | Type | Description | Notes| |------------ | ------------- | ------------- | -------------| -|**responseType** | **string** | How you are answering the offer. Must be one of the values listed in the transaction\'s `cantonDetails.offerResponse.availableResponses` — TOP-LEVEL on the transaction, not nested under an `additionalInfo` envelope, which does not exist on `TransactionResponse`. `availableResponses` states what this offer TYPE accepts. It is set when the offer arrives and does not change, so it does NOT tell you whether the offer is still answerable — check `expiresAt` and the transaction\'s status for that, and expect this endpoint to be the authority: it re-checks state and expiry on every call and answers 409 when either has moved. | [default to undefined]| +|**responseType** | **string** | How you are answering the offer — one of the offer transaction\'s `cantonDetails.offerResponse.availableResponses`. That list does not change after the offer arrives; check `expiresAt` and the transaction status to see whether it is still answerable. | [default to undefined]| ## Enum: OfferResponseTransferWithdrawResponseTypeEnum diff --git a/docs/models/TrustProofOfAddressRequest.md b/docs/models/TrustProofOfAddressRequest.md index cd81239..bb2659a 100644 --- a/docs/models/TrustProofOfAddressRequest.md +++ b/docs/models/TrustProofOfAddressRequest.md @@ -8,6 +8,7 @@ |**asset** | **string** | The asset identifier for which proof of address is being created. | [default to undefined]| |**prefix** | **string** | The prefix to be used for signing messages. | [default to undefined]| |**trustUuid** | **string** | A unique identifier (UUID) obtained from TRUST (CreateAddressOwnership) | [default to undefined]| +|**address** | **string** | Optional non-default (derived) address of the vault account to prove. Supported for UTXO assets only (`BTC`, `BTC_TEST`). The address must belong to the vault account for the given asset. Both SegWit and Legacy address forms are accepted. When omitted, the proof is created for the default (index 0) address of the vault account. | [optional] [default to undefined]| diff --git a/docs/models/TrustProofOfAddressResponse.md b/docs/models/TrustProofOfAddressResponse.md index 1c1fa6e..8c58f6b 100644 --- a/docs/models/TrustProofOfAddressResponse.md +++ b/docs/models/TrustProofOfAddressResponse.md @@ -7,6 +7,7 @@ |**transactionId** | **string** | Transaction ID from Fireblocks (UUID format) | [default to undefined]| |**status** | [**TypedMessageTransactionStatusEnum**](TypedMessageTransactionStatusEnum.md) | | [default to undefined]| |**signature** | **string** | TRUST-compatible encoded signature for proof of address verification. | [default to undefined]| +|**publicKey** | **string** | Hex public key of the Fireblocks vault key that produced the signature. Present only when `status` is `SIGNED` or `COMPLETED`, and only if Fireblocks returned it. TRUST requires this key for SUI, TON and XTZ (as `auxProofData.encryptedPublicKey`). | [optional] [default to undefined]| diff --git a/models/end-investor-payload.ts b/models/end-investor-payload.ts index 0f80718..2f385bc 100644 --- a/models/end-investor-payload.ts +++ b/models/end-investor-payload.ts @@ -15,7 +15,7 @@ /** - * Shared by invite / invite-cancel / offboard — identical wire shape, different verb. + * The end investor a call acts on. * @export * @interface EndInvestorPayload */ diff --git a/models/offer-response-allocation-accept.ts b/models/offer-response-allocation-accept.ts index 158ce09..711bd8b 100644 --- a/models/offer-response-allocation-accept.ts +++ b/models/offer-response-allocation-accept.ts @@ -21,7 +21,7 @@ */ export interface OfferResponseAllocationAccept { /** - * How you are answering the offer. Must be one of the values listed in the transaction\'s `cantonDetails.offerResponse.availableResponses` — TOP-LEVEL on the transaction, not nested under an `additionalInfo` envelope, which does not exist on `TransactionResponse`. `availableResponses` states what this offer TYPE accepts. It is set when the offer arrives and does not change, so it does NOT tell you whether the offer is still answerable — check `expiresAt` and the transaction\'s status for that, and expect this endpoint to be the authority: it re-checks state and expiry on every call and answers 409 when either has moved. + * How you are answering the offer — one of the offer transaction\'s `cantonDetails.offerResponse.availableResponses`. That list does not change after the offer arrives; check `expiresAt` and the transaction status to see whether it is still answerable. * @type {string} * @memberof OfferResponseAllocationAccept */ diff --git a/models/offer-response-allocation-reject.ts b/models/offer-response-allocation-reject.ts index 241166c..d59fd23 100644 --- a/models/offer-response-allocation-reject.ts +++ b/models/offer-response-allocation-reject.ts @@ -21,7 +21,7 @@ */ export interface OfferResponseAllocationReject { /** - * How you are answering the offer. Must be one of the values listed in the transaction\'s `cantonDetails.offerResponse.availableResponses` — TOP-LEVEL on the transaction, not nested under an `additionalInfo` envelope, which does not exist on `TransactionResponse`. `availableResponses` states what this offer TYPE accepts. It is set when the offer arrives and does not change, so it does NOT tell you whether the offer is still answerable — check `expiresAt` and the transaction\'s status for that, and expect this endpoint to be the authority: it re-checks state and expiry on every call and answers 409 when either has moved. + * How you are answering the offer — one of the offer transaction\'s `cantonDetails.offerResponse.availableResponses`. That list does not change after the offer arrives; check `expiresAt` and the transaction status to see whether it is still answerable. * @type {string} * @memberof OfferResponseAllocationReject */ diff --git a/models/offer-response-allocation-withdraw.ts b/models/offer-response-allocation-withdraw.ts index cccff4f..c8489d7 100644 --- a/models/offer-response-allocation-withdraw.ts +++ b/models/offer-response-allocation-withdraw.ts @@ -21,7 +21,7 @@ */ export interface OfferResponseAllocationWithdraw { /** - * How you are answering the offer. Must be one of the values listed in the transaction\'s `cantonDetails.offerResponse.availableResponses` — TOP-LEVEL on the transaction, not nested under an `additionalInfo` envelope, which does not exist on `TransactionResponse`. `availableResponses` states what this offer TYPE accepts. It is set when the offer arrives and does not change, so it does NOT tell you whether the offer is still answerable — check `expiresAt` and the transaction\'s status for that, and expect this endpoint to be the authority: it re-checks state and expiry on every call and answers 409 when either has moved. + * How you are answering the offer — one of the offer transaction\'s `cantonDetails.offerResponse.availableResponses`. That list does not change after the offer arrives; check `expiresAt` and the transaction status to see whether it is still answerable. * @type {string} * @memberof OfferResponseAllocationWithdraw */ diff --git a/models/offer-response-dtcc-onboarding-accept.ts b/models/offer-response-dtcc-onboarding-accept.ts index 78308a7..d095a23 100644 --- a/models/offer-response-dtcc-onboarding-accept.ts +++ b/models/offer-response-dtcc-onboarding-accept.ts @@ -21,7 +21,7 @@ */ export interface OfferResponseDtccOnboardingAccept { /** - * How you are answering the offer. Must be one of the values listed in the transaction\'s `cantonDetails.offerResponse.availableResponses` — TOP-LEVEL on the transaction, not nested under an `additionalInfo` envelope, which does not exist on `TransactionResponse`. `availableResponses` states what this offer TYPE accepts. It is set when the offer arrives and does not change, so it does NOT tell you whether the offer is still answerable — check `expiresAt` and the transaction\'s status for that, and expect this endpoint to be the authority: it re-checks state and expiry on every call and answers 409 when either has moved. + * How you are answering the offer — one of the offer transaction\'s `cantonDetails.offerResponse.availableResponses`. That list does not change after the offer arrives; check `expiresAt` and the transaction status to see whether it is still answerable. * @type {string} * @memberof OfferResponseDtccOnboardingAccept */ diff --git a/models/offer-response-dtcc-onboarding-reject.ts b/models/offer-response-dtcc-onboarding-reject.ts index 8da467a..68a7cd3 100644 --- a/models/offer-response-dtcc-onboarding-reject.ts +++ b/models/offer-response-dtcc-onboarding-reject.ts @@ -24,7 +24,7 @@ import { DtccOnboardingRejectPayload } from './dtcc-onboarding-reject-payload'; */ export interface OfferResponseDtccOnboardingReject { /** - * How you are answering the offer. Must be one of the values listed in the transaction\'s `cantonDetails.offerResponse.availableResponses` — TOP-LEVEL on the transaction, not nested under an `additionalInfo` envelope, which does not exist on `TransactionResponse`. `availableResponses` states what this offer TYPE accepts. It is set when the offer arrives and does not change, so it does NOT tell you whether the offer is still answerable — check `expiresAt` and the transaction\'s status for that, and expect this endpoint to be the authority: it re-checks state and expiry on every call and answers 409 when either has moved. + * How you are answering the offer — one of the offer transaction\'s `cantonDetails.offerResponse.availableResponses`. That list does not change after the offer arrives; check `expiresAt` and the transaction status to see whether it is still answerable. * @type {string} * @memberof OfferResponseDtccOnboardingReject */ diff --git a/models/offer-response-tradeweb-accept.ts b/models/offer-response-tradeweb-accept.ts index cc623b0..fb7d9fe 100644 --- a/models/offer-response-tradeweb-accept.ts +++ b/models/offer-response-tradeweb-accept.ts @@ -21,7 +21,7 @@ */ export interface OfferResponseTradewebAccept { /** - * How you are answering the offer. Must be one of the values listed in the transaction\'s `cantonDetails.offerResponse.availableResponses` — TOP-LEVEL on the transaction, not nested under an `additionalInfo` envelope, which does not exist on `TransactionResponse`. `availableResponses` states what this offer TYPE accepts. It is set when the offer arrives and does not change, so it does NOT tell you whether the offer is still answerable — check `expiresAt` and the transaction\'s status for that, and expect this endpoint to be the authority: it re-checks state and expiry on every call and answers 409 when either has moved. + * How you are answering the offer — one of the offer transaction\'s `cantonDetails.offerResponse.availableResponses`. That list does not change after the offer arrives; check `expiresAt` and the transaction status to see whether it is still answerable. * @type {string} * @memberof OfferResponseTradewebAccept */ diff --git a/models/offer-response-tradeweb-reject.ts b/models/offer-response-tradeweb-reject.ts index 19ad913..09f971c 100644 --- a/models/offer-response-tradeweb-reject.ts +++ b/models/offer-response-tradeweb-reject.ts @@ -15,13 +15,13 @@ /** - * Reject a Tradeweb co-signing delegation offer. Carries no arguments — the DAR has nowhere on-ledger to record a reason, so none is accepted. + * Reject a Tradeweb co-signing delegation offer. Carries no arguments — Tradeweb does not record a reject reason on the ledger, so none is accepted. * @export * @interface OfferResponseTradewebReject */ export interface OfferResponseTradewebReject { /** - * How you are answering the offer. Must be one of the values listed in the transaction\'s `cantonDetails.offerResponse.availableResponses` — TOP-LEVEL on the transaction, not nested under an `additionalInfo` envelope, which does not exist on `TransactionResponse`. `availableResponses` states what this offer TYPE accepts. It is set when the offer arrives and does not change, so it does NOT tell you whether the offer is still answerable — check `expiresAt` and the transaction\'s status for that, and expect this endpoint to be the authority: it re-checks state and expiry on every call and answers 409 when either has moved. + * How you are answering the offer — one of the offer transaction\'s `cantonDetails.offerResponse.availableResponses`. That list does not change after the offer arrives; check `expiresAt` and the transaction status to see whether it is still answerable. * @type {string} * @memberof OfferResponseTradewebReject */ diff --git a/models/offer-response-transfer-accept.ts b/models/offer-response-transfer-accept.ts index 53fd48b..9f16f44 100644 --- a/models/offer-response-transfer-accept.ts +++ b/models/offer-response-transfer-accept.ts @@ -21,7 +21,7 @@ */ export interface OfferResponseTransferAccept { /** - * How you are answering the offer. Must be one of the values listed in the transaction\'s `cantonDetails.offerResponse.availableResponses` — TOP-LEVEL on the transaction, not nested under an `additionalInfo` envelope, which does not exist on `TransactionResponse`. `availableResponses` states what this offer TYPE accepts. It is set when the offer arrives and does not change, so it does NOT tell you whether the offer is still answerable — check `expiresAt` and the transaction\'s status for that, and expect this endpoint to be the authority: it re-checks state and expiry on every call and answers 409 when either has moved. + * How you are answering the offer — one of the offer transaction\'s `cantonDetails.offerResponse.availableResponses`. That list does not change after the offer arrives; check `expiresAt` and the transaction status to see whether it is still answerable. * @type {string} * @memberof OfferResponseTransferAccept */ diff --git a/models/offer-response-transfer-reject.ts b/models/offer-response-transfer-reject.ts index c5f9ba5..6c4c519 100644 --- a/models/offer-response-transfer-reject.ts +++ b/models/offer-response-transfer-reject.ts @@ -21,7 +21,7 @@ */ export interface OfferResponseTransferReject { /** - * How you are answering the offer. Must be one of the values listed in the transaction\'s `cantonDetails.offerResponse.availableResponses` — TOP-LEVEL on the transaction, not nested under an `additionalInfo` envelope, which does not exist on `TransactionResponse`. `availableResponses` states what this offer TYPE accepts. It is set when the offer arrives and does not change, so it does NOT tell you whether the offer is still answerable — check `expiresAt` and the transaction\'s status for that, and expect this endpoint to be the authority: it re-checks state and expiry on every call and answers 409 when either has moved. + * How you are answering the offer — one of the offer transaction\'s `cantonDetails.offerResponse.availableResponses`. That list does not change after the offer arrives; check `expiresAt` and the transaction status to see whether it is still answerable. * @type {string} * @memberof OfferResponseTransferReject */ diff --git a/models/offer-response-transfer-withdraw.ts b/models/offer-response-transfer-withdraw.ts index 062b66d..8814b54 100644 --- a/models/offer-response-transfer-withdraw.ts +++ b/models/offer-response-transfer-withdraw.ts @@ -15,13 +15,13 @@ /** - * Withdraw your own OUTGOING transfer offer. Carries no arguments — `offerId` in the path is the offer, so the vault account and blockchain are resolved from it rather than restated. Was `CantonCallType.TRANSFER_WITHDRAW` with a 3-field payload until FA-10624. + * Withdraw your own outgoing transfer offer. Carries no arguments — `offerId` in the path identifies the offer, and the vault account and blockchain are resolved from it. * @export * @interface OfferResponseTransferWithdraw */ export interface OfferResponseTransferWithdraw { /** - * How you are answering the offer. Must be one of the values listed in the transaction\'s `cantonDetails.offerResponse.availableResponses` — TOP-LEVEL on the transaction, not nested under an `additionalInfo` envelope, which does not exist on `TransactionResponse`. `availableResponses` states what this offer TYPE accepts. It is set when the offer arrives and does not change, so it does NOT tell you whether the offer is still answerable — check `expiresAt` and the transaction\'s status for that, and expect this endpoint to be the authority: it re-checks state and expiry on every call and answers 409 when either has moved. + * How you are answering the offer — one of the offer transaction\'s `cantonDetails.offerResponse.availableResponses`. That list does not change after the offer arrives; check `expiresAt` and the transaction status to see whether it is still answerable. * @type {string} * @memberof OfferResponseTransferWithdraw */ diff --git a/models/trust-proof-of-address-request.ts b/models/trust-proof-of-address-request.ts index c6c1354..a86a600 100644 --- a/models/trust-proof-of-address-request.ts +++ b/models/trust-proof-of-address-request.ts @@ -44,5 +44,11 @@ export interface TrustProofOfAddressRequest { * @memberof TrustProofOfAddressRequest */ 'trustUuid': string; + /** + * Optional non-default (derived) address of the vault account to prove. Supported for UTXO assets only (`BTC`, `BTC_TEST`). The address must belong to the vault account for the given asset. Both SegWit and Legacy address forms are accepted. When omitted, the proof is created for the default (index 0) address of the vault account. + * @type {string} + * @memberof TrustProofOfAddressRequest + */ + 'address'?: string; } diff --git a/models/trust-proof-of-address-response.ts b/models/trust-proof-of-address-response.ts index 75854f2..35c1fc7 100644 --- a/models/trust-proof-of-address-response.ts +++ b/models/trust-proof-of-address-response.ts @@ -41,6 +41,12 @@ export interface TrustProofOfAddressResponse { * @memberof TrustProofOfAddressResponse */ 'signature': string; + /** + * Hex public key of the Fireblocks vault key that produced the signature. Present only when `status` is `SIGNED` or `COMPLETED`, and only if Fireblocks returned it. TRUST requires this key for SUI, TON and XTZ (as `auxProofData.encryptedPublicKey`). + * @type {string} + * @memberof TrustProofOfAddressResponse + */ + 'publicKey'?: string; } diff --git a/package-lock.json b/package-lock.json index 0ee257a..303dd9c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@fireblocks/ts-sdk", - "version": "35.0.0", + "version": "0.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@fireblocks/ts-sdk", - "version": "35.0.0", + "version": "0.0.0", "license": "MIT License", "dependencies": { "axios": "^1.15.2", @@ -1294,9 +1294,9 @@ "license": "MIT" }, "node_modules/baseline-browser-mapping": { - "version": "2.11.25", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.25.tgz", - "integrity": "sha512-gMmEShwwq7FJqMwvfRwvCl00v4kN+KOfJqXn+f4nrufak5gNHJOksd/60Dvjuz7sI8Y5WiSFBa8FEYr+zoyqCw==", + "version": "2.11.26", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.26.tgz", + "integrity": "sha512-GLQdD3y6UF8iVuMJl5fHgE4jdn/ua7n+toKfLgNlg3BqQtOZjpy68T8Tup8/wGWZCDlm7KMg7tPb4MPn7oN0TQ==", "dev": true, "license": "Apache-2.0", "bin": { @@ -1331,9 +1331,9 @@ } }, "node_modules/browserslist": { - "version": "4.29.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.29.0.tgz", - "integrity": "sha512-3GSvyjvDI4Dur1Meg2BekJquu5uF+9R9a1+5M1Mde192eZoXbeXjzgOsgqPS2V8D5wrrip0gR5Hf/GhWQ9ZzaA==", + "version": "4.29.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.29.3.tgz", + "integrity": "sha512-1R4kiYKXGViqEN0CnoDrXc1StD9niAwu+j2dukWzrD4bJgsD4lDmEp0CRbc6E/vYJIfTHwPmwyaKtVSudICdPA==", "dev": true, "funding": [ { @@ -1351,10 +1351,10 @@ ], "license": "MIT", "dependencies": { - "baseline-browser-mapping": "^2.11.23", - "caniuse-lite": "^1.0.30001810", - "electron-to-chromium": "^1.5.427", - "node-releases": "^2.0.55", + "baseline-browser-mapping": "^2.11.26", + "caniuse-lite": "^1.0.30001813", + "electron-to-chromium": "^1.5.439", + "node-releases": "^2.0.57", "update-browserslist-db": "^1.3.3" }, "bin": { @@ -1434,9 +1434,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001810", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001810.tgz", - "integrity": "sha512-TITQPUkaz+aVk5GL6NhOdwk1aEaNTSDPsGFWrTuhKGtjTF70jL/Oht2W4c6rXUe5fu7Ie19VIahAXHIIiWWNeg==", + "version": "1.0.30001813", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001813.tgz", + "integrity": "sha512-zfjJo4rM0+fUomGDBW/xcDjhIwz/210DGvip2MAMDZ8KHcRPnOHmEgHPZP0UHlZoxr8fYKVJOqcORhYQcG4FKQ==", "dev": true, "funding": [ { @@ -1715,9 +1715,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.435", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.435.tgz", - "integrity": "sha512-hwZNgb6JmRlmQX/L0yojyu6upuvtR7iGS1hB/9nc7I9vCsvekahqh3noFeXUBRirv9+Hk7E6v/LFz4CW6FvpWA==", + "version": "1.5.441", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.441.tgz", + "integrity": "sha512-b84H5dyxtHtXYbJRJPLvbS+iud4ys2GVZ61BH7/9lJrfCcIL+Sk+Vh2AW6beaErTdstvjZLgEwkE2j0fZlmwRA==", "dev": true, "license": "ISC" }, @@ -1925,9 +1925,9 @@ } }, "node_modules/follow-redirects": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", - "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.1.tgz", + "integrity": "sha512-FNvFGzoMLWmE6Yj9spb/zjd7yiNCHiAW9/Tg9CXrQ8wuu32HtlJOwWO11OJafl5FfY3DxTdQ0vj42zU1kvv5jg==", "funding": [ { "type": "individual", @@ -3371,9 +3371,9 @@ "license": "MIT" }, "node_modules/node-releases": { - "version": "2.0.56", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.56.tgz", - "integrity": "sha512-x0InOIyzgdk+eyaWaRJFH5snEtiImgBgblZ2CyPrLmqqcuMQkEvcDPHbzqbD8eDsSeJbVOjn+crzyzHaM4D+/A==", + "version": "2.0.57", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.57.tgz", + "integrity": "sha512-kQK9LGGFiHtrWiNhZtA7Qbw17AQz+dmsEKODRIVTXA9+e5MS/2gZEBhYJt13GrAz5/IOZKddH/0Z3TP/Zgo+yw==", "dev": true, "license": "MIT", "engines": { diff --git a/package.json b/package.json index f1bb9ed..584251d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@fireblocks/ts-sdk", - "version": "35.0.0", + "version": "0.0.0", "description": "OpenAPI client for @fireblocks/ts-sdk", "author": "Fireblocks SDK Generator", "repository": { diff --git a/tests/client.spec.ts b/tests/client.spec.ts index a7a603d..dce0fdf 100644 --- a/tests/client.spec.ts +++ b/tests/client.spec.ts @@ -16,6 +16,7 @@ ApprovalsBetaApi, AuditLogsApi, BlockchainLinkBetaApi, BlockchainsAssetsApi, +CantonBetaApi, ComplianceApi, ComplianceOrchestratorBetaApi, ComplianceScreeningConfigurationApi, @@ -78,6 +79,7 @@ let mockApprovalsBetaApi: jest.Mock; let mockAuditLogsApi: jest.Mock; let mockBlockchainLinkBetaApi: jest.Mock; let mockBlockchainsAssetsApi: jest.Mock; +let mockCantonBetaApi: jest.Mock; let mockComplianceApi: jest.Mock; let mockComplianceOrchestratorBetaApi: jest.Mock; let mockComplianceScreeningConfigurationApi: jest.Mock; @@ -137,6 +139,7 @@ jest.mock('../api', () => { mockAuditLogsApi = jest.fn(); mockBlockchainLinkBetaApi = jest.fn(); mockBlockchainsAssetsApi = jest.fn(); + mockCantonBetaApi = jest.fn(); mockComplianceApi = jest.fn(); mockComplianceOrchestratorBetaApi = jest.fn(); mockComplianceScreeningConfigurationApi = jest.fn(); @@ -197,6 +200,7 @@ jest.mock('../api', () => { AuditLogsApi: mockAuditLogsApi, BlockchainLinkBetaApi: mockBlockchainLinkBetaApi, BlockchainsAssetsApi: mockBlockchainsAssetsApi, + CantonBetaApi: mockCantonBetaApi, ComplianceApi: mockComplianceApi, ComplianceOrchestratorBetaApi: mockComplianceOrchestratorBetaApi, ComplianceScreeningConfigurationApi: mockComplianceScreeningConfigurationApi, @@ -348,6 +352,10 @@ describe("Fireblocks Client Tests", () => { expect(fireblocks.blockchainsAssets).toBeInstanceOf(BlockchainsAssetsApi); expect(mockBlockchainsAssetsApi).toHaveBeenCalledWith(expectedConfig, undefined, mockAxios); }); + it('Should return CantonBetaApi', async () => { + expect(fireblocks.cantonBeta).toBeInstanceOf(CantonBetaApi); + expect(mockCantonBetaApi).toHaveBeenCalledWith(expectedConfig, undefined, mockAxios); + }); it('Should return ComplianceApi', async () => { expect(fireblocks.compliance).toBeInstanceOf(ComplianceApi); expect(mockComplianceApi).toHaveBeenCalledWith(expectedConfig, undefined, mockAxios);