@oumla/sdk 1.2.4 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../api/index.ts","../api/resources/deployedContracts/index.ts","../api/resources/deployedContracts/types/GetDeployedContractsRequestNetwork.ts","../api/resources/tokenization/index.ts","../api/resources/tokenization/types/GetCollectionTokensRequestType.ts","../api/resources/tokenization/client/requests/CreateCollectionRequest.ts","../api/resources/profiles/index.ts","../api/resources/profiles/client/requests/CreateProfileRequest.ts","../api/resources/wallets/index.ts","../api/resources/wallets/client/requests/CreateWalletRequest.ts","../api/resources/addresses/index.ts","../api/resources/transactions/index.ts","../api/resources/withdrawals/index.ts","../api/resources/withdrawals/client/requests/CreateWithdrawalRequest.ts","../api/resources/contractTemplates/index.ts","../api/resources/contractTemplates/client/requests/CreateContractTemplateRequest.ts","../api/resources/contractInteractions/index.ts","../api/resources/contractInteractions/client/requests/WriteFunctionRequest.ts","../api/resources/temporal/index.ts","../api/resources/assets/index.ts","../api/types/CreateAddressRequest.ts","../core/json.ts","../errors/OumlaSdkApiError.ts","../errors/OumlaSdkApiTimeoutError.ts","../api/errors/BadRequestError.ts","../api/errors/NotFoundError.ts","../core/fetcher/EndpointSupplier.ts","../core/url/qs.ts","../core/fetcher/createRequestUrl.ts","../core/fetcher/BinaryResponse.ts","../core/fetcher/ResponseWithBody.ts","../core/fetcher/getResponseBody.ts","../core/fetcher/getErrorResponseBody.ts","../core/fetcher/getFetchFn.ts","../core/fetcher/getRequestBody.ts","../core/fetcher/signals.ts","../core/fetcher/makeRequest.ts","../core/fetcher/Headers.ts","../core/fetcher/RawResponse.ts","../core/fetcher/requestWithRetries.ts","../core/fetcher/Fetcher.ts","../core/fetcher/HttpResponsePromise.ts","../core/fetcher/Supplier.ts","../core/runtime/runtime.ts","../core/url/index.ts","../core/url/join.ts","../core/headers.ts","../environments.ts","../api/resources/profiles/client/Client.ts","../api/resources/wallets/client/Client.ts","../api/resources/addresses/client/Client.ts","../api/resources/transactions/client/Client.ts","../api/resources/withdrawals/client/Client.ts","../api/resources/contractTemplates/client/Client.ts","../api/resources/deployedContracts/client/Client.ts","../api/resources/contractInteractions/client/Client.ts","../api/resources/tokenization/client/Client.ts","../api/resources/temporal/client/Client.ts","../api/resources/assets/client/Client.ts","../Client.ts"],"names":["CreateCollectionRequest","CreateProfileRequest","CreateWalletRequest","CreateWithdrawalRequest","CreateContractTemplateRequest","Docs","WriteFunctionRequest","CreateAddressRequest","text","Headers"],"mappings":"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","sourcesContent":["export * from \"./resources/index.js\";\nexport * from \"./types/index.js\";\nexport * from \"./errors/index.js\";\n","export * from \"./types/index.js\";\nexport * from \"./client/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const GetDeployedContractsRequestNetwork = {\n Btc: \"BTC\",\n TBtc: \"tBTC\",\n Eth: \"ETH\",\n TEth: \"tETH\",\n} as const;\nexport type GetDeployedContractsRequestNetwork =\n (typeof GetDeployedContractsRequestNetwork)[keyof typeof GetDeployedContractsRequestNetwork];\n","export * from \"./types/index.js\";\nexport * from \"./client/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const GetCollectionTokensRequestType = {\n Mint: \"MINT\",\n Burn: \"BURN\",\n} as const;\nexport type GetCollectionTokensRequestType =\n (typeof GetCollectionTokensRequestType)[keyof typeof GetCollectionTokensRequestType];\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * @example\n * {\n * type: \"NON_FUNGIBLE_TOKEN\",\n * addressId: \"addressId\",\n * clientShare: \"clientShare\",\n * createParams: {\n * initializeParams: [{\n * name: \"name\",\n * type: \"type\",\n * value: \"value\"\n * }]\n * }\n * }\n */\nexport interface CreateCollectionRequest {\n /** Blockchain network */\n network?: string;\n /** Collection type */\n type: CreateCollectionRequest.Type;\n /** Address ID for collection creation */\n addressId: string;\n /** Client share for signing */\n clientShare: string;\n createParams: CreateCollectionRequest.CreateParams;\n /** Collection description */\n description?: string;\n /** Collection display name */\n displayName?: string;\n /** Use gasless transaction */\n useGasless?: boolean;\n /** Transaction fee */\n fee?: string;\n /** Fee level */\n feeLevel?: string;\n}\n\nexport namespace CreateCollectionRequest {\n /** Collection type */\n export const Type = {\n NonFungibleToken: \"NON_FUNGIBLE_TOKEN\",\n SemiFungibleToken: \"SEMI_FUNGIBLE_TOKEN\",\n } as const;\n export type Type = (typeof Type)[keyof typeof Type];\n\n export interface CreateParams {\n /** Initialize parameters */\n initializeParams: CreateParams.InitializeParams.Item[];\n }\n\n export namespace CreateParams {\n export type InitializeParams = InitializeParams.Item[];\n\n export namespace InitializeParams {\n export interface Item {\n /** Parameter name */\n name: string;\n /** Parameter type */\n type: string;\n /** Parameter value */\n value: string;\n }\n }\n }\n}\n","export * from \"./client/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * @example\n * {\n * reference: \"reference\",\n * type: \"User\"\n * }\n */\nexport interface CreateProfileRequest {\n /** Profile reference identifier */\n reference: string;\n /** Profile type */\n type: CreateProfileRequest.Type;\n}\n\nexport namespace CreateProfileRequest {\n /** Profile type */\n export const Type = {\n User: \"User\",\n Department: \"Department\",\n Merchant: \"Merchant\",\n } as const;\n export type Type = (typeof Type)[keyof typeof Type];\n}\n","export * from \"./client/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * @example\n * {\n * reference: \"reference\",\n * network: \"BTC\"\n * }\n */\nexport interface CreateWalletRequest {\n /** Profile reference */\n reference: string;\n /** Blockchain network */\n network: CreateWalletRequest.Network;\n}\n\nexport namespace CreateWalletRequest {\n /** Blockchain network */\n export const Network = {\n Btc: \"BTC\",\n TBtc: \"tBTC\",\n Eth: \"ETH\",\n TEth: \"tETH\",\n } as const;\n export type Network = (typeof Network)[keyof typeof Network];\n}\n","export * from \"./client/index.js\";\n","export * from \"./client/index.js\";\n","export * from \"./client/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * @example\n * {\n * to: \"to\",\n * amount: \"amount\",\n * from: [\"from\"],\n * network: \"BTC\",\n * clientShare: \"clientShare\"\n * }\n */\nexport interface CreateWithdrawalRequest {\n /** Recipient address for withdrawal */\n to: string;\n /** Withdrawal amount */\n amount: string;\n /** Array of source addresses for withdrawal */\n from: string[];\n /** Blockchain network */\n network: CreateWithdrawalRequest.Network;\n /** Client share for signing */\n clientShare: string;\n}\n\nexport namespace CreateWithdrawalRequest {\n /** Blockchain network */\n export const Network = {\n Btc: \"BTC\",\n TBtc: \"tBTC\",\n Eth: \"ETH\",\n TEth: \"tETH\",\n } as const;\n export type Network = (typeof Network)[keyof typeof Network];\n}\n","export * from \"./client/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * @example\n * {\n * name: \"name\",\n * description: \"description\",\n * abi: [{\n * \"key\": \"value\"\n * }],\n * bytecode: \"bytecode\"\n * }\n */\nexport interface CreateContractTemplateRequest {\n /** Contract template name */\n name: string;\n /** Contract template description */\n description: string;\n /** Contract ABI */\n abi: Record<string, unknown>[];\n /** Contract bytecode */\n bytecode: string;\n /** Long description of the contract */\n longDescription?: string;\n /** Contract source code */\n sourceCode?: string;\n /** Contract type */\n type?: string;\n /** Contract documentation */\n docs?: CreateContractTemplateRequest.Docs;\n /** Contract attributes */\n attributes?: CreateContractTemplateRequest.Attributes;\n}\n\nexport namespace CreateContractTemplateRequest {\n /**\n * Contract documentation\n */\n export interface Docs {\n details?: string;\n events?: string;\n kind?: Docs.Kind;\n methods?: Docs.Methods.Item[];\n version?: string;\n }\n\n export namespace Docs {\n export const Kind = {\n Dev: \"dev\",\n User: \"user\",\n } as const;\n export type Kind = (typeof Kind)[keyof typeof Kind];\n export type Methods = Methods.Item[];\n\n export namespace Methods {\n export interface Item {\n name?: string;\n description?: string;\n params?: Record<string, unknown>;\n returns?: Record<string, unknown>;\n }\n }\n }\n\n /**\n * Contract attributes\n */\n export interface Attributes {\n useCases?: string[];\n standards?: string[];\n auditor?: Attributes.Auditor;\n }\n\n export namespace Attributes {\n export interface Auditor {\n name?: string;\n imageURL?: string;\n link?: string;\n }\n }\n}\n","export * from \"./client/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * @example\n * {\n * addressId: \"addressId\",\n * clientShare: \"clientShare\",\n * abiFunction: {\n * name: \"name\",\n * inputs: [{}],\n * outputs: [{}],\n * type: \"type\"\n * }\n * }\n */\nexport interface WriteFunctionRequest {\n /** Address ID for transaction */\n addressId: string;\n /** Client share for signing */\n clientShare: string;\n /** ABI function definition */\n abiFunction: WriteFunctionRequest.AbiFunction;\n /** ETH value to send */\n amount?: string;\n /** Fee level for transaction */\n feeLevel?: WriteFunctionRequest.FeeLevel;\n}\n\nexport namespace WriteFunctionRequest {\n /**\n * ABI function definition\n */\n export interface AbiFunction {\n /** Function name */\n name: string;\n /** Function input parameters */\n inputs: AbiFunction.Inputs.Item[];\n /** Function output parameters */\n outputs: AbiFunction.Outputs.Item[];\n stateMutability?: string;\n type: string;\n }\n\n export namespace AbiFunction {\n export type Inputs = Inputs.Item[];\n\n export namespace Inputs {\n export interface Item {\n name?: string;\n type?: string;\n internalType?: string;\n }\n }\n\n export type Outputs = Outputs.Item[];\n\n export namespace Outputs {\n export interface Item {\n name?: string;\n type?: string;\n internalType?: string;\n }\n }\n }\n\n /** Fee level for transaction */\n export const FeeLevel = {\n Low: \"LOW\",\n Medium: \"MEDIUM\",\n High: \"HIGH\",\n } as const;\n export type FeeLevel = (typeof FeeLevel)[keyof typeof FeeLevel];\n}\n","export * from \"./client/index.js\";\n","export * from \"./client/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nexport interface CreateAddressRequest {\n /** Profile reference */\n reference: string;\n /** Blockchain network */\n network: CreateAddressRequest.Network;\n /** Client share for signing */\n clientShare: string;\n}\n\nexport namespace CreateAddressRequest {\n /** Blockchain network */\n export const Network = {\n Btc: \"BTC\",\n TBtc: \"tBTC\",\n Eth: \"ETH\",\n TEth: \"tETH\",\n } as const;\n export type Network = (typeof Network)[keyof typeof Network];\n}\n","/**\n * Serialize a value to JSON\n * @param value A JavaScript value, usually an object or array, to be converted.\n * @param replacer A function that transforms the results.\n * @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.\n * @returns JSON string\n */\nexport const toJson = (\n value: unknown,\n replacer?: (this: unknown, key: string, value: unknown) => unknown,\n space?: string | number,\n): string => {\n return JSON.stringify(value, replacer, space);\n};\n\n/**\n * Parse JSON string to object, array, or other type\n * @param text A valid JSON string.\n * @param reviver A function that transforms the results. This function is called for each member of the object. If a member contains nested objects, the nested objects are transformed before the parent object is.\n * @returns Parsed object, array, or other type\n */\nexport function fromJson<T = unknown>(\n text: string,\n reviver?: (this: unknown, key: string, value: unknown) => unknown,\n): T {\n return JSON.parse(text, reviver);\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport * as core from \"../core/index.js\";\nimport { toJson } from \"../core/json.js\";\n\nexport class OumlaSdkApiError extends Error {\n public readonly statusCode?: number;\n public readonly body?: unknown;\n public readonly rawResponse?: core.RawResponse;\n\n constructor({\n message,\n statusCode,\n body,\n rawResponse,\n }: {\n message?: string;\n statusCode?: number;\n body?: unknown;\n rawResponse?: core.RawResponse;\n }) {\n super(buildMessage({ message, statusCode, body }));\n Object.setPrototypeOf(this, OumlaSdkApiError.prototype);\n this.statusCode = statusCode;\n this.body = body;\n this.rawResponse = rawResponse;\n }\n}\n\nfunction buildMessage({\n message,\n statusCode,\n body,\n}: {\n message: string | undefined;\n statusCode: number | undefined;\n body: unknown | undefined;\n}): string {\n let lines: string[] = [];\n if (message != null) {\n lines.push(message);\n }\n\n if (statusCode != null) {\n lines.push(`Status code: ${statusCode.toString()}`);\n }\n\n if (body != null) {\n lines.push(`Body: ${toJson(body, undefined, 2)}`);\n }\n\n return lines.join(\"\\n\");\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nexport class OumlaSdkApiTimeoutError extends Error {\n constructor(message: string) {\n super(message);\n Object.setPrototypeOf(this, OumlaSdkApiTimeoutError.prototype);\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport * as errors from \"../../errors/index.js\";\nimport * as OumlaSdkApi from \"../index.js\";\nimport * as core from \"../../core/index.js\";\n\nexport class BadRequestError extends errors.OumlaSdkApiError {\n constructor(body: OumlaSdkApi.ErrorResponse, rawResponse?: core.RawResponse) {\n super({\n message: \"BadRequestError\",\n statusCode: 400,\n body: body,\n rawResponse: rawResponse,\n });\n Object.setPrototypeOf(this, BadRequestError.prototype);\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport * as errors from \"../../errors/index.js\";\nimport * as OumlaSdkApi from \"../index.js\";\nimport * as core from \"../../core/index.js\";\n\nexport class NotFoundError extends errors.OumlaSdkApiError {\n constructor(body: OumlaSdkApi.ErrorResponse, rawResponse?: core.RawResponse) {\n super({\n message: \"NotFoundError\",\n statusCode: 404,\n body: body,\n rawResponse: rawResponse,\n });\n Object.setPrototypeOf(this, NotFoundError.prototype);\n }\n}\n","import { EndpointMetadata } from \"./EndpointMetadata.js\";\nimport { Supplier } from \"./Supplier.js\";\n\ntype EndpointSupplierFn<T> = (arg: { endpointMetadata: EndpointMetadata }) => T | Promise<T>;\nexport type EndpointSupplier<T> = Supplier<T> | EndpointSupplierFn<T>;\nexport const EndpointSupplier = {\n get: async <T>(supplier: EndpointSupplier<T>, arg: { endpointMetadata: EndpointMetadata }): Promise<T> => {\n if (typeof supplier === \"function\") {\n return (supplier as EndpointSupplierFn<T>)(arg);\n } else {\n return supplier;\n }\n },\n};\n","interface QueryStringOptions {\n arrayFormat?: \"indices\" | \"repeat\";\n encode?: boolean;\n}\n\nconst defaultQsOptions: Required<QueryStringOptions> = {\n arrayFormat: \"indices\",\n encode: true,\n} as const;\n\nfunction encodeValue(value: unknown, shouldEncode: boolean): string {\n if (value === undefined) {\n return \"\";\n }\n if (value === null) {\n return \"\";\n }\n const stringValue = String(value);\n return shouldEncode ? encodeURIComponent(stringValue) : stringValue;\n}\n\nfunction stringifyObject(obj: Record<string, unknown>, prefix = \"\", options: Required<QueryStringOptions>): string[] {\n const parts: string[] = [];\n\n for (const [key, value] of Object.entries(obj)) {\n const fullKey = prefix ? `${prefix}[${key}]` : key;\n\n if (value === undefined) {\n continue;\n }\n\n if (Array.isArray(value)) {\n if (value.length === 0) {\n continue;\n }\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n if (item === undefined) {\n continue;\n }\n if (typeof item === \"object\" && !Array.isArray(item) && item !== null) {\n const arrayKey = options.arrayFormat === \"indices\" ? `${fullKey}[${i}]` : fullKey;\n parts.push(...stringifyObject(item as Record<string, unknown>, arrayKey, options));\n } else {\n const arrayKey = options.arrayFormat === \"indices\" ? `${fullKey}[${i}]` : fullKey;\n const encodedKey = options.encode ? encodeURIComponent(arrayKey) : arrayKey;\n parts.push(`${encodedKey}=${encodeValue(item, options.encode)}`);\n }\n }\n } else if (typeof value === \"object\" && value !== null) {\n if (Object.keys(value as Record<string, unknown>).length === 0) {\n continue;\n }\n parts.push(...stringifyObject(value as Record<string, unknown>, fullKey, options));\n } else {\n const encodedKey = options.encode ? encodeURIComponent(fullKey) : fullKey;\n parts.push(`${encodedKey}=${encodeValue(value, options.encode)}`);\n }\n }\n\n return parts;\n}\n\nexport function toQueryString(obj: unknown, options?: QueryStringOptions): string {\n if (obj == null || typeof obj !== \"object\") {\n return \"\";\n }\n\n const parts = stringifyObject(obj as Record<string, unknown>, \"\", {\n ...defaultQsOptions,\n ...options,\n });\n return parts.join(\"&\");\n}\n","import { toQueryString } from \"../url/qs.js\";\n\nexport function createRequestUrl(baseUrl: string, queryParameters?: Record<string, unknown>): string {\n const queryString = toQueryString(queryParameters, { arrayFormat: \"repeat\" });\n return queryString ? `${baseUrl}?${queryString}` : baseUrl;\n}\n","import { ResponseWithBody } from \"./ResponseWithBody.js\";\n\nexport type BinaryResponse = {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/bodyUsed) */\n bodyUsed: boolean;\n /**\n * Returns a ReadableStream of the response body.\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/body)\n */\n stream: () => ReadableStream<Uint8Array>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/arrayBuffer) */\n arrayBuffer: () => Promise<ArrayBuffer>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/blob) */\n blob: () => Promise<Blob>;\n /**\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/bytes)\n * Some versions of the Fetch API may not support this method.\n */\n bytes?(): Promise<Uint8Array>;\n};\n\nexport function getBinaryResponse(response: ResponseWithBody): BinaryResponse {\n const binaryResponse: BinaryResponse = {\n get bodyUsed() {\n return response.bodyUsed;\n },\n stream: () => response.body,\n arrayBuffer: response.arrayBuffer.bind(response),\n blob: response.blob.bind(response),\n };\n if (\"bytes\" in response && typeof response.bytes === \"function\") {\n binaryResponse.bytes = response.bytes.bind(response);\n }\n\n return binaryResponse;\n}\n","export type ResponseWithBody = Response & {\n body: ReadableStream<Uint8Array>;\n};\n\nexport function isResponseWithBody(response: Response): response is ResponseWithBody {\n return (response as ResponseWithBody).body != null;\n}\n","import { getBinaryResponse } from \"./BinaryResponse.js\";\nimport { isResponseWithBody } from \"./ResponseWithBody.js\";\nimport { fromJson } from \"../json.js\";\n\nexport async function getResponseBody(response: Response, responseType?: string): Promise<unknown> {\n if (!isResponseWithBody(response)) {\n return undefined;\n }\n switch (responseType) {\n case \"binary-response\":\n return getBinaryResponse(response);\n case \"blob\":\n return await response.blob();\n case \"arrayBuffer\":\n return await response.arrayBuffer();\n case \"sse\":\n return response.body;\n case \"streaming\":\n return response.body;\n\n case \"text\":\n return await response.text();\n }\n\n // if responseType is \"json\" or not specified, try to parse as JSON\n const text = await response.text();\n if (text.length > 0) {\n try {\n let responseBody = fromJson(text);\n return responseBody;\n } catch (err) {\n return {\n ok: false,\n error: {\n reason: \"non-json\",\n statusCode: response.status,\n rawBody: text,\n },\n };\n }\n }\n return undefined;\n}\n","import { fromJson } from \"../json.js\";\nimport { getResponseBody } from \"./getResponseBody.js\";\n\nexport async function getErrorResponseBody(response: Response): Promise<unknown> {\n let contentType = response.headers.get(\"Content-Type\")?.toLowerCase();\n if (contentType == null || contentType.length === 0) {\n return getResponseBody(response);\n }\n\n if (contentType.indexOf(\";\") !== -1) {\n contentType = contentType.split(\";\")[0]?.trim() ?? \"\";\n }\n switch (contentType) {\n case \"application/hal+json\":\n case \"application/json\":\n case \"application/ld+json\":\n case \"application/problem+json\":\n case \"application/vnd.api+json\":\n case \"text/json\":\n const text = await response.text();\n return text.length > 0 ? fromJson(text) : undefined;\n default:\n if (contentType.startsWith(\"application/vnd.\") && contentType.endsWith(\"+json\")) {\n const text = await response.text();\n return text.length > 0 ? fromJson(text) : undefined;\n }\n\n // Fallback to plain text if content type is not recognized\n // Even if no body is present, the response will be an empty string\n return await response.text();\n }\n}\n","export async function getFetchFn(): Promise<typeof fetch> {\n return fetch;\n}\n","import { toJson } from \"../json.js\";\n\nexport declare namespace GetRequestBody {\n interface Args {\n body: unknown;\n type: \"json\" | \"file\" | \"bytes\" | \"other\";\n }\n}\n\nexport async function getRequestBody({ body, type }: GetRequestBody.Args): Promise<BodyInit | undefined> {\n if (type.includes(\"json\")) {\n return toJson(body);\n } else {\n return body as BodyInit;\n }\n}\n","const TIMEOUT = \"timeout\";\n\nexport function getTimeoutSignal(timeoutMs: number): { signal: AbortSignal; abortId: NodeJS.Timeout } {\n const controller = new AbortController();\n const abortId = setTimeout(() => controller.abort(TIMEOUT), timeoutMs);\n return { signal: controller.signal, abortId };\n}\n\n/**\n * Returns an abort signal that is getting aborted when\n * at least one of the specified abort signals is aborted.\n *\n * Requires at least node.js 18.\n */\nexport function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal {\n // Allowing signals to be passed either as array\n // of signals or as multiple arguments.\n const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args) as AbortSignal[];\n\n const controller = new AbortController();\n\n for (const signal of signals) {\n if (signal.aborted) {\n // Exiting early if one of the signals\n // is already aborted.\n controller.abort((signal as any)?.reason);\n break;\n }\n\n // Listening for signals and removing the listeners\n // when at least one symbol is aborted.\n signal.addEventListener(\"abort\", () => controller.abort((signal as any)?.reason), {\n signal: controller.signal,\n });\n }\n\n return controller.signal;\n}\n","import { anySignal, getTimeoutSignal } from \"./signals.js\";\n\nexport const makeRequest = async (\n fetchFn: (url: string, init: RequestInit) => Promise<Response>,\n url: string,\n method: string,\n headers: Record<string, string>,\n requestBody: BodyInit | undefined,\n timeoutMs?: number,\n abortSignal?: AbortSignal,\n withCredentials?: boolean,\n duplex?: \"half\",\n): Promise<Response> => {\n const signals: AbortSignal[] = [];\n\n // Add timeout signal\n let timeoutAbortId: NodeJS.Timeout | undefined = undefined;\n if (timeoutMs != null) {\n const { signal, abortId } = getTimeoutSignal(timeoutMs);\n timeoutAbortId = abortId;\n signals.push(signal);\n }\n\n // Add arbitrary signal\n if (abortSignal != null) {\n signals.push(abortSignal);\n }\n let newSignals = anySignal(signals);\n const response = await fetchFn(url, {\n method: method,\n headers,\n body: requestBody,\n signal: newSignals,\n credentials: withCredentials ? \"include\" : undefined,\n // @ts-ignore\n duplex,\n });\n\n if (timeoutAbortId != null) {\n clearTimeout(timeoutAbortId);\n }\n\n return response;\n};\n","let Headers: typeof globalThis.Headers;\n\nif (typeof globalThis.Headers !== \"undefined\") {\n Headers = globalThis.Headers;\n} else {\n Headers = class Headers implements Headers {\n private headers: Map<string, string[]>;\n\n constructor(init?: HeadersInit) {\n this.headers = new Map();\n\n if (init) {\n if (init instanceof Headers) {\n init.forEach((value, key) => this.append(key, value));\n } else if (Array.isArray(init)) {\n for (const [key, value] of init) {\n if (typeof key === \"string\" && typeof value === \"string\") {\n this.append(key, value);\n } else {\n throw new TypeError(\"Each header entry must be a [string, string] tuple\");\n }\n }\n } else {\n for (const [key, value] of Object.entries(init)) {\n if (typeof value === \"string\") {\n this.append(key, value);\n } else {\n throw new TypeError(\"Header values must be strings\");\n }\n }\n }\n }\n }\n\n append(name: string, value: string): void {\n const key = name.toLowerCase();\n const existing = this.headers.get(key) || [];\n this.headers.set(key, [...existing, value]);\n }\n\n delete(name: string): void {\n const key = name.toLowerCase();\n this.headers.delete(key);\n }\n\n get(name: string): string | null {\n const key = name.toLowerCase();\n const values = this.headers.get(key);\n return values ? values.join(\", \") : null;\n }\n\n has(name: string): boolean {\n const key = name.toLowerCase();\n return this.headers.has(key);\n }\n\n set(name: string, value: string): void {\n const key = name.toLowerCase();\n this.headers.set(key, [value]);\n }\n\n forEach(callbackfn: (value: string, key: string, parent: Headers) => void, thisArg?: unknown): void {\n const boundCallback = thisArg ? callbackfn.bind(thisArg) : callbackfn;\n this.headers.forEach((values, key) => boundCallback(values.join(\", \"), key, this));\n }\n\n getSetCookie(): string[] {\n return this.headers.get(\"set-cookie\") || [];\n }\n\n *entries(): HeadersIterator<[string, string]> {\n for (const [key, values] of this.headers.entries()) {\n yield [key, values.join(\", \")];\n }\n }\n\n *keys(): HeadersIterator<string> {\n yield* this.headers.keys();\n }\n\n *values(): HeadersIterator<string> {\n for (const values of this.headers.values()) {\n yield values.join(\", \");\n }\n }\n\n [Symbol.iterator](): HeadersIterator<[string, string]> {\n return this.entries();\n }\n };\n}\n\nexport { Headers };\n","import { Headers } from \"./Headers.js\";\n\n/**\n * The raw response from the fetch call excluding the body.\n */\nexport type RawResponse = Omit<\n {\n [K in keyof Response as Response[K] extends Function ? never : K]: Response[K]; // strips out functions\n },\n \"ok\" | \"body\" | \"bodyUsed\"\n>; // strips out body and bodyUsed\n\n/**\n * A raw response indicating that the request was aborted.\n */\nexport const abortRawResponse: RawResponse = {\n headers: new Headers(),\n redirected: false,\n status: 499,\n statusText: \"Client Closed Request\",\n type: \"error\",\n url: \"\",\n} as const;\n\n/**\n * A raw response indicating an unknown error.\n */\nexport const unknownRawResponse: RawResponse = {\n headers: new Headers(),\n redirected: false,\n status: 0,\n statusText: \"Unknown Error\",\n type: \"error\",\n url: \"\",\n} as const;\n\n/**\n * Converts a `RawResponse` object into a `RawResponse` by extracting its properties,\n * excluding the `body` and `bodyUsed` fields.\n *\n * @param response - The `RawResponse` object to convert.\n * @returns A `RawResponse` object containing the extracted properties of the input response.\n */\nexport function toRawResponse(response: Response): RawResponse {\n return {\n headers: response.headers,\n redirected: response.redirected,\n status: response.status,\n statusText: response.statusText,\n type: response.type,\n url: response.url,\n };\n}\n\n/**\n * Creates a `RawResponse` from a standard `Response` object.\n */\nexport interface WithRawResponse<T> {\n readonly data: T;\n readonly rawResponse: RawResponse;\n}\n","const INITIAL_RETRY_DELAY = 1000; // in milliseconds\nconst MAX_RETRY_DELAY = 60000; // in milliseconds\nconst DEFAULT_MAX_RETRIES = 2;\nconst JITTER_FACTOR = 0.2; // 20% random jitter\n\nfunction addPositiveJitter(delay: number): number {\n // Generate a random value between 0 and +JITTER_FACTOR\n const jitterMultiplier = 1 + Math.random() * JITTER_FACTOR;\n return delay * jitterMultiplier;\n}\n\nfunction addSymmetricJitter(delay: number): number {\n // Generate a random value in a JITTER_FACTOR-sized percentage range around delay\n const jitterMultiplier = 1 + (Math.random() - 0.5) * JITTER_FACTOR;\n return delay * jitterMultiplier;\n}\n\nfunction getRetryDelayFromHeaders(response: Response, retryAttempt: number): number {\n // Check for Retry-After header first (RFC 7231), with no jitter\n const retryAfter = response.headers.get(\"Retry-After\");\n if (retryAfter) {\n // Parse as number of seconds...\n const retryAfterSeconds = parseInt(retryAfter, 10);\n if (!isNaN(retryAfterSeconds) && retryAfterSeconds > 0) {\n return Math.min(retryAfterSeconds * 1000, MAX_RETRY_DELAY);\n }\n\n // ...or as an HTTP date; both are valid\n const retryAfterDate = new Date(retryAfter);\n if (!isNaN(retryAfterDate.getTime())) {\n const delay = retryAfterDate.getTime() - Date.now();\n if (delay > 0) {\n return Math.min(Math.max(delay, 0), MAX_RETRY_DELAY);\n }\n }\n }\n\n // Then check for industry-standard X-RateLimit-Reset header, with positive jitter\n const rateLimitReset = response.headers.get(\"X-RateLimit-Reset\");\n if (rateLimitReset) {\n const resetTime = parseInt(rateLimitReset, 10);\n if (!isNaN(resetTime)) {\n // Assume Unix timestamp in epoch seconds\n const delay = resetTime * 1000 - Date.now();\n if (delay > 0) {\n return addPositiveJitter(Math.min(delay, MAX_RETRY_DELAY));\n }\n }\n }\n\n // Fall back to exponential backoff, with symmetric jitter\n return addSymmetricJitter(Math.min(INITIAL_RETRY_DELAY * Math.pow(2, retryAttempt), MAX_RETRY_DELAY));\n}\n\nexport async function requestWithRetries(\n requestFn: () => Promise<Response>,\n maxRetries: number = DEFAULT_MAX_RETRIES,\n): Promise<Response> {\n let response: Response = await requestFn();\n\n for (let i = 0; i < maxRetries; ++i) {\n if ([408, 429].includes(response.status) || response.status >= 500) {\n // Get delay with appropriate jitter applied\n const delay = getRetryDelayFromHeaders(response, i);\n\n await new Promise((resolve) => setTimeout(resolve, delay));\n response = await requestFn();\n } else {\n break;\n }\n }\n return response!;\n}\n","import { toJson } from \"../json.js\";\nimport { APIResponse } from \"./APIResponse.js\";\nimport { createRequestUrl } from \"./createRequestUrl.js\";\nimport { EndpointMetadata } from \"./EndpointMetadata.js\";\nimport { EndpointSupplier } from \"./EndpointSupplier.js\";\nimport { getErrorResponseBody } from \"./getErrorResponseBody.js\";\nimport { getFetchFn } from \"./getFetchFn.js\";\nimport { getRequestBody } from \"./getRequestBody.js\";\nimport { getResponseBody } from \"./getResponseBody.js\";\nimport { makeRequest } from \"./makeRequest.js\";\nimport { abortRawResponse, toRawResponse, unknownRawResponse } from \"./RawResponse.js\";\nimport { requestWithRetries } from \"./requestWithRetries.js\";\n\nexport type FetchFunction = <R = unknown>(args: Fetcher.Args) => Promise<APIResponse<R, Fetcher.Error>>;\n\nexport declare namespace Fetcher {\n export interface Args {\n url: string;\n method: string;\n contentType?: string;\n headers?: Record<string, string | EndpointSupplier<string | null | undefined> | null | undefined>;\n queryParameters?: Record<string, unknown>;\n body?: unknown;\n timeoutMs?: number;\n maxRetries?: number;\n withCredentials?: boolean;\n abortSignal?: AbortSignal;\n requestType?: \"json\" | \"file\" | \"bytes\";\n responseType?: \"json\" | \"blob\" | \"sse\" | \"streaming\" | \"text\" | \"arrayBuffer\" | \"binary-response\";\n duplex?: \"half\";\n endpointMetadata?: EndpointMetadata;\n }\n\n export type Error = FailedStatusCodeError | NonJsonError | TimeoutError | UnknownError;\n\n export interface FailedStatusCodeError {\n reason: \"status-code\";\n statusCode: number;\n body: unknown;\n }\n\n export interface NonJsonError {\n reason: \"non-json\";\n statusCode: number;\n rawBody: string;\n }\n\n export interface TimeoutError {\n reason: \"timeout\";\n }\n\n export interface UnknownError {\n reason: \"unknown\";\n errorMessage: string;\n }\n}\n\nasync function getHeaders(args: Fetcher.Args): Promise<Record<string, string>> {\n const newHeaders: Record<string, string> = {};\n if (args.body !== undefined && args.contentType != null) {\n newHeaders[\"Content-Type\"] = args.contentType;\n }\n\n if (args.headers == null) {\n return newHeaders;\n }\n\n for (const [key, value] of Object.entries(args.headers)) {\n const result = await EndpointSupplier.get(value, { endpointMetadata: args.endpointMetadata ?? {} });\n if (typeof result === \"string\") {\n newHeaders[key] = result;\n continue;\n }\n if (result == null) {\n continue;\n }\n newHeaders[key] = `${result}`;\n }\n return newHeaders;\n}\n\nexport async function fetcherImpl<R = unknown>(args: Fetcher.Args): Promise<APIResponse<R, Fetcher.Error>> {\n const url = createRequestUrl(args.url, args.queryParameters);\n const requestBody: BodyInit | undefined = await getRequestBody({\n body: args.body,\n type: args.requestType === \"json\" ? \"json\" : \"other\",\n });\n const fetchFn = await getFetchFn();\n\n try {\n const response = await requestWithRetries(\n async () =>\n makeRequest(\n fetchFn,\n url,\n args.method,\n await getHeaders(args),\n requestBody,\n args.timeoutMs,\n args.abortSignal,\n args.withCredentials,\n args.duplex,\n ),\n args.maxRetries,\n );\n\n if (response.status >= 200 && response.status < 400) {\n return {\n ok: true,\n body: (await getResponseBody(response, args.responseType)) as R,\n headers: response.headers,\n rawResponse: toRawResponse(response),\n };\n } else {\n return {\n ok: false,\n error: {\n reason: \"status-code\",\n statusCode: response.status,\n body: await getErrorResponseBody(response),\n },\n rawResponse: toRawResponse(response),\n };\n }\n } catch (error) {\n if (args.abortSignal != null && args.abortSignal.aborted) {\n return {\n ok: false,\n error: {\n reason: \"unknown\",\n errorMessage: \"The user aborted a request\",\n },\n rawResponse: abortRawResponse,\n };\n } else if (error instanceof Error && error.name === \"AbortError\") {\n return {\n ok: false,\n error: {\n reason: \"timeout\",\n },\n rawResponse: abortRawResponse,\n };\n } else if (error instanceof Error) {\n return {\n ok: false,\n error: {\n reason: \"unknown\",\n errorMessage: error.message,\n },\n rawResponse: unknownRawResponse,\n };\n }\n\n return {\n ok: false,\n error: {\n reason: \"unknown\",\n errorMessage: toJson(error),\n },\n rawResponse: unknownRawResponse,\n };\n }\n}\n\nexport const fetcher: FetchFunction = fetcherImpl;\n","import { WithRawResponse } from \"./RawResponse.js\";\n\n/**\n * A promise that returns the parsed response and lets you retrieve the raw response too.\n */\nexport class HttpResponsePromise<T> extends Promise<T> {\n private innerPromise: Promise<WithRawResponse<T>>;\n private unwrappedPromise: Promise<T> | undefined;\n\n private constructor(promise: Promise<WithRawResponse<T>>) {\n // Initialize with a no-op to avoid premature parsing\n super((resolve) => {\n resolve(undefined as unknown as T);\n });\n this.innerPromise = promise;\n }\n\n /**\n * Creates an `HttpResponsePromise` from a function that returns a promise.\n *\n * @param fn - A function that returns a promise resolving to a `WithRawResponse` object.\n * @param args - Arguments to pass to the function.\n * @returns An `HttpResponsePromise` instance.\n */\n public static fromFunction<F extends (...args: never[]) => Promise<WithRawResponse<T>>, T>(\n fn: F,\n ...args: Parameters<F>\n ): HttpResponsePromise<T> {\n return new HttpResponsePromise<T>(fn(...args));\n }\n\n /**\n * Creates a function that returns an `HttpResponsePromise` from a function that returns a promise.\n *\n * @param fn - A function that returns a promise resolving to a `WithRawResponse` object.\n * @returns A function that returns an `HttpResponsePromise` instance.\n */\n public static interceptFunction<\n F extends (...args: never[]) => Promise<WithRawResponse<T>>,\n T = Awaited<ReturnType<F>>[\"data\"],\n >(fn: F): (...args: Parameters<F>) => HttpResponsePromise<T> {\n return (...args: Parameters<F>): HttpResponsePromise<T> => {\n return HttpResponsePromise.fromPromise<T>(fn(...args));\n };\n }\n\n /**\n * Creates an `HttpResponsePromise` from an existing promise.\n *\n * @param promise - A promise resolving to a `WithRawResponse` object.\n * @returns An `HttpResponsePromise` instance.\n */\n public static fromPromise<T>(promise: Promise<WithRawResponse<T>>): HttpResponsePromise<T> {\n return new HttpResponsePromise<T>(promise);\n }\n\n /**\n * Creates an `HttpResponsePromise` from an executor function.\n *\n * @param executor - A function that takes resolve and reject callbacks to create a promise.\n * @returns An `HttpResponsePromise` instance.\n */\n public static fromExecutor<T>(\n executor: (resolve: (value: WithRawResponse<T>) => void, reject: (reason?: unknown) => void) => void,\n ): HttpResponsePromise<T> {\n const promise = new Promise<WithRawResponse<T>>(executor);\n return new HttpResponsePromise<T>(promise);\n }\n\n /**\n * Creates an `HttpResponsePromise` from a resolved result.\n *\n * @param result - A `WithRawResponse` object to resolve immediately.\n * @returns An `HttpResponsePromise` instance.\n */\n public static fromResult<T>(result: WithRawResponse<T>): HttpResponsePromise<T> {\n const promise = Promise.resolve(result);\n return new HttpResponsePromise<T>(promise);\n }\n\n private unwrap(): Promise<T> {\n if (!this.unwrappedPromise) {\n this.unwrappedPromise = this.innerPromise.then(({ data }) => data);\n }\n return this.unwrappedPromise;\n }\n\n /** @inheritdoc */\n public override then<TResult1 = T, TResult2 = never>(\n onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null,\n onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null,\n ): Promise<TResult1 | TResult2> {\n return this.unwrap().then(onfulfilled, onrejected);\n }\n\n /** @inheritdoc */\n public override catch<TResult = never>(\n onrejected?: ((reason: unknown) => TResult | PromiseLike<TResult>) | null,\n ): Promise<T | TResult> {\n return this.unwrap().catch(onrejected);\n }\n\n /** @inheritdoc */\n public override finally(onfinally?: (() => void) | null): Promise<T> {\n return this.unwrap().finally(onfinally);\n }\n\n /**\n * Retrieves the data and raw response.\n *\n * @returns A promise resolving to a `WithRawResponse` object.\n */\n public async withRawResponse(): Promise<WithRawResponse<T>> {\n return await this.innerPromise;\n }\n}\n","export type Supplier<T> = T | Promise<T> | (() => T | Promise<T>);\n\nexport const Supplier = {\n get: async <T>(supplier: Supplier<T>): Promise<T> => {\n if (typeof supplier === \"function\") {\n return (supplier as () => T)();\n } else {\n return supplier;\n }\n },\n};\n","interface DenoGlobal {\n version: {\n deno: string;\n };\n}\n\ninterface BunGlobal {\n version: string;\n}\n\ndeclare const Deno: DenoGlobal | undefined;\ndeclare const Bun: BunGlobal | undefined;\ndeclare const EdgeRuntime: string | undefined;\ndeclare const self: typeof globalThis.self & {\n importScripts?: unknown;\n};\n\n/**\n * A constant that indicates which environment and version the SDK is running in.\n */\nexport const RUNTIME: Runtime = evaluateRuntime();\n\nexport interface Runtime {\n type: \"browser\" | \"web-worker\" | \"deno\" | \"bun\" | \"node\" | \"react-native\" | \"unknown\" | \"workerd\" | \"edge-runtime\";\n version?: string;\n parsedVersion?: number;\n}\n\nfunction evaluateRuntime(): Runtime {\n /**\n * A constant that indicates whether the environment the code is running is a Web Browser.\n */\n const isBrowser = typeof window !== \"undefined\" && typeof window.document !== \"undefined\";\n if (isBrowser) {\n return {\n type: \"browser\",\n version: window.navigator.userAgent,\n };\n }\n\n /**\n * A constant that indicates whether the environment the code is running is Cloudflare.\n * https://developers.cloudflare.com/workers/runtime-apis/web-standards/#navigatoruseragent\n */\n const isCloudflare = typeof globalThis !== \"undefined\" && globalThis?.navigator?.userAgent === \"Cloudflare-Workers\";\n if (isCloudflare) {\n return {\n type: \"workerd\",\n };\n }\n\n /**\n * A constant that indicates whether the environment the code is running is Edge Runtime.\n * https://vercel.com/docs/functions/runtimes/edge-runtime#check-if-you're-running-on-the-edge-runtime\n */\n const isEdgeRuntime = typeof EdgeRuntime === \"string\";\n if (isEdgeRuntime) {\n return {\n type: \"edge-runtime\",\n };\n }\n\n /**\n * A constant that indicates whether the environment the code is running is a Web Worker.\n */\n const isWebWorker =\n typeof self === \"object\" &&\n typeof self?.importScripts === \"function\" &&\n (self.constructor?.name === \"DedicatedWorkerGlobalScope\" ||\n self.constructor?.name === \"ServiceWorkerGlobalScope\" ||\n self.constructor?.name === \"SharedWorkerGlobalScope\");\n if (isWebWorker) {\n return {\n type: \"web-worker\",\n };\n }\n\n /**\n * A constant that indicates whether the environment the code is running is Deno.\n * FYI Deno spoofs process.versions.node, see https://deno.land/std@0.177.0/node/process.ts?s=versions\n */\n const isDeno =\n typeof Deno !== \"undefined\" && typeof Deno.version !== \"undefined\" && typeof Deno.version.deno !== \"undefined\";\n if (isDeno) {\n return {\n type: \"deno\",\n version: Deno.version.deno,\n };\n }\n\n /**\n * A constant that indicates whether the environment the code is running is Bun.sh.\n */\n const isBun = typeof Bun !== \"undefined\" && typeof Bun.version !== \"undefined\";\n if (isBun) {\n return {\n type: \"bun\",\n version: Bun.version,\n };\n }\n\n /**\n * A constant that indicates whether the environment the code is running is Node.JS.\n */\n const isNode =\n typeof process !== \"undefined\" &&\n \"version\" in process &&\n !!process.version &&\n \"versions\" in process &&\n !!process.versions?.node;\n if (isNode) {\n return {\n type: \"node\",\n version: process.versions.node,\n parsedVersion: Number(process.versions.node.split(\".\")[0]),\n };\n }\n\n /**\n * A constant that indicates whether the environment the code is running is in React-Native.\n * https://github.com/facebook/react-native/blob/main/packages/react-native/Libraries/Core/setUpNavigator.js\n */\n const isReactNative = typeof navigator !== \"undefined\" && navigator?.product === \"ReactNative\";\n if (isReactNative) {\n return {\n type: \"react-native\",\n };\n }\n\n return {\n type: \"unknown\",\n };\n}\n","export { join } from \"./join.js\";\nexport { toQueryString } from \"./qs.js\";\n","export function join(base: string, ...segments: string[]): string {\n if (!base) {\n return \"\";\n }\n\n if (segments.length === 0) {\n return base;\n }\n\n if (base.includes(\"://\")) {\n let url: URL;\n try {\n url = new URL(base);\n } catch {\n // Fallback to path joining if URL is malformed\n return joinPath(base, ...segments);\n }\n\n const lastSegment = segments[segments.length - 1];\n const shouldPreserveTrailingSlash = lastSegment && lastSegment.endsWith(\"/\");\n\n for (const segment of segments) {\n const cleanSegment = trimSlashes(segment);\n if (cleanSegment) {\n url.pathname = joinPathSegments(url.pathname, cleanSegment);\n }\n }\n\n if (shouldPreserveTrailingSlash && !url.pathname.endsWith(\"/\")) {\n url.pathname += \"/\";\n }\n\n return url.toString();\n }\n\n return joinPath(base, ...segments);\n}\n\nfunction joinPath(base: string, ...segments: string[]): string {\n if (segments.length === 0) {\n return base;\n }\n\n let result = base;\n\n const lastSegment = segments[segments.length - 1];\n const shouldPreserveTrailingSlash = lastSegment && lastSegment.endsWith(\"/\");\n\n for (const segment of segments) {\n const cleanSegment = trimSlashes(segment);\n if (cleanSegment) {\n result = joinPathSegments(result, cleanSegment);\n }\n }\n\n if (shouldPreserveTrailingSlash && !result.endsWith(\"/\")) {\n result += \"/\";\n }\n\n return result;\n}\n\nfunction joinPathSegments(left: string, right: string): string {\n if (left.endsWith(\"/\")) {\n return left + right;\n }\n return left + \"/\" + right;\n}\n\nfunction trimSlashes(str: string): string {\n if (!str) return str;\n\n let start = 0;\n let end = str.length;\n\n if (str.startsWith(\"/\")) start = 1;\n if (str.endsWith(\"/\")) end = str.length - 1;\n\n return start === 0 && end === str.length ? str : str.slice(start, end);\n}\n","export function mergeHeaders<THeaderValue>(\n ...headersArray: (Record<string, THeaderValue> | null | undefined)[]\n): Record<string, string | THeaderValue> {\n const result: Record<string, THeaderValue> = {};\n\n for (const [key, value] of headersArray\n .filter((headers) => headers != null)\n .flatMap((headers) => Object.entries(headers))) {\n if (value != null) {\n result[key] = value;\n } else if (key in result) {\n delete result[key];\n }\n }\n\n return result;\n}\n\nexport function mergeOnlyDefinedHeaders<THeaderValue>(\n ...headersArray: (Record<string, THeaderValue> | null | undefined)[]\n): Record<string, THeaderValue> {\n const result: Record<string, THeaderValue> = {};\n\n for (const [key, value] of headersArray\n .filter((headers) => headers != null)\n .flatMap((headers) => Object.entries(headers))) {\n if (value != null) {\n result[key] = value;\n }\n }\n\n return result;\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const OumlaSdkApiEnvironment = {\n Mainnet: \"https://sandbox.oumla.com\",\n} as const;\n\nexport type OumlaSdkApiEnvironment = typeof OumlaSdkApiEnvironment.Mainnet;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport * as environments from \"../../../../environments.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as OumlaSdkApi from \"../../../index.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../core/headers.js\";\nimport * as errors from \"../../../../errors/index.js\";\n\nexport declare namespace Profiles {\n export interface Options {\n environment?: core.Supplier<environments.OumlaSdkApiEnvironment | string>;\n /** Specify a custom URL to connect the client to. */\n baseUrl?: core.Supplier<string>;\n token?: core.Supplier<core.BearerToken | undefined>;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey: core.Supplier<string>;\n /** Additional headers to include in requests. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n\n export interface RequestOptions {\n /** The maximum time to wait for a response in seconds. */\n timeoutInSeconds?: number;\n /** The number of times to retry the request. Defaults to 2. */\n maxRetries?: number;\n /** A hook to abort the request. */\n abortSignal?: AbortSignal;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey?: string;\n /** Additional query string parameters to include in the request. */\n queryParams?: Record<string, unknown>;\n /** Additional headers to include in the request. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n}\n\n/**\n * User profile management\n */\nexport class Profiles {\n protected readonly _options: Profiles.Options;\n\n constructor(_options: Profiles.Options) {\n this._options = _options;\n }\n\n /**\n * Retrieve a paginated list of profiles\n *\n * @param {OumlaSdkApi.GetProfilesRequest} request\n * @param {Profiles.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.profiles.getProfiles({\n * skip: 1,\n * take: 1\n * })\n */\n public getProfiles(\n request: OumlaSdkApi.GetProfilesRequest = {},\n requestOptions?: Profiles.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.PaginatedResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getProfiles(request, requestOptions));\n }\n\n private async __getProfiles(\n request: OumlaSdkApi.GetProfilesRequest = {},\n requestOptions?: Profiles.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.PaginatedResponse>> {\n const { skip, take } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n if (skip != null) {\n _queryParams[\"skip\"] = skip.toString();\n }\n\n if (take != null) {\n _queryParams[\"take\"] = take.toString();\n }\n\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v1/profiles\",\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.PaginatedResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\"Timeout exceeded when calling GET /api/v1/profiles.\");\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Create a new user profile\n *\n * @param {OumlaSdkApi.CreateProfileRequest} request\n * @param {Profiles.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n *\n * @example\n * await client.profiles.createProfile({\n * reference: \"reference\",\n * type: \"User\"\n * })\n */\n public createProfile(\n request: OumlaSdkApi.CreateProfileRequest,\n requestOptions?: Profiles.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.SuccessResponse> {\n return core.HttpResponsePromise.fromPromise(this.__createProfile(request, requestOptions));\n }\n\n private async __createProfile(\n request: OumlaSdkApi.CreateProfileRequest,\n requestOptions?: Profiles.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.SuccessResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v1/profiles\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.SuccessResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\"Timeout exceeded when calling POST /api/v1/profiles.\");\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport * as environments from \"../../../../environments.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as OumlaSdkApi from \"../../../index.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../core/headers.js\";\nimport * as errors from \"../../../../errors/index.js\";\n\nexport declare namespace Wallets {\n export interface Options {\n environment?: core.Supplier<environments.OumlaSdkApiEnvironment | string>;\n /** Specify a custom URL to connect the client to. */\n baseUrl?: core.Supplier<string>;\n token?: core.Supplier<core.BearerToken | undefined>;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey: core.Supplier<string>;\n /** Additional headers to include in requests. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n\n export interface RequestOptions {\n /** The maximum time to wait for a response in seconds. */\n timeoutInSeconds?: number;\n /** The number of times to retry the request. Defaults to 2. */\n maxRetries?: number;\n /** A hook to abort the request. */\n abortSignal?: AbortSignal;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey?: string;\n /** Additional query string parameters to include in the request. */\n queryParams?: Record<string, unknown>;\n /** Additional headers to include in the request. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n}\n\n/**\n * Wallet creation and management\n */\nexport class Wallets {\n protected readonly _options: Wallets.Options;\n\n constructor(_options: Wallets.Options) {\n this._options = _options;\n }\n\n /**\n * Retrieve wallets for the organization\n *\n * @param {OumlaSdkApi.GetOrganizationWalletsRequest} request\n * @param {Wallets.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.wallets.getOrganizationWallets({\n * skip: 1,\n * take: 1\n * })\n */\n public getOrganizationWallets(\n request: OumlaSdkApi.GetOrganizationWalletsRequest = {},\n requestOptions?: Wallets.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.PaginatedResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getOrganizationWallets(request, requestOptions));\n }\n\n private async __getOrganizationWallets(\n request: OumlaSdkApi.GetOrganizationWalletsRequest = {},\n requestOptions?: Wallets.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.PaginatedResponse>> {\n const { skip, take } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n if (skip != null) {\n _queryParams[\"skip\"] = skip.toString();\n }\n\n if (take != null) {\n _queryParams[\"take\"] = take.toString();\n }\n\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v1/wallets/organization\",\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.PaginatedResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/wallets/organization.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Retrieve wallets for a specific profile\n *\n * @param {string} reference - Profile reference\n * @param {OumlaSdkApi.GetProfileWalletsRequest} request\n * @param {Wallets.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.wallets.getProfileWallets(\"reference\", {\n * skip: 1,\n * take: 1\n * })\n */\n public getProfileWallets(\n reference: string,\n request: OumlaSdkApi.GetProfileWalletsRequest = {},\n requestOptions?: Wallets.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.PaginatedResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getProfileWallets(reference, request, requestOptions));\n }\n\n private async __getProfileWallets(\n reference: string,\n request: OumlaSdkApi.GetProfileWalletsRequest = {},\n requestOptions?: Wallets.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.PaginatedResponse>> {\n const { skip, take } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n if (skip != null) {\n _queryParams[\"skip\"] = skip.toString();\n }\n\n if (take != null) {\n _queryParams[\"take\"] = take.toString();\n }\n\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/wallets/profile/${encodeURIComponent(reference)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.PaginatedResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/wallets/profile/{reference}.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Generate a new wallet for a profile\n *\n * @param {OumlaSdkApi.CreateWalletRequest} request\n * @param {Wallets.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.wallets.generateWallet({\n * reference: \"reference\",\n * network: \"BTC\"\n * })\n */\n public generateWallet(\n request: OumlaSdkApi.CreateWalletRequest,\n requestOptions?: Wallets.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.SuccessResponse> {\n return core.HttpResponsePromise.fromPromise(this.__generateWallet(request, requestOptions));\n }\n\n private async __generateWallet(\n request: OumlaSdkApi.CreateWalletRequest,\n requestOptions?: Wallets.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.SuccessResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v1/wallets/generate\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.SuccessResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling POST /api/v1/wallets/generate.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport * as environments from \"../../../../environments.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as OumlaSdkApi from \"../../../index.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../core/headers.js\";\nimport * as errors from \"../../../../errors/index.js\";\n\nexport declare namespace Addresses {\n export interface Options {\n environment?: core.Supplier<environments.OumlaSdkApiEnvironment | string>;\n /** Specify a custom URL to connect the client to. */\n baseUrl?: core.Supplier<string>;\n token?: core.Supplier<core.BearerToken | undefined>;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey: core.Supplier<string>;\n /** Additional headers to include in requests. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n\n export interface RequestOptions {\n /** The maximum time to wait for a response in seconds. */\n timeoutInSeconds?: number;\n /** The number of times to retry the request. Defaults to 2. */\n maxRetries?: number;\n /** A hook to abort the request. */\n abortSignal?: AbortSignal;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey?: string;\n /** Additional query string parameters to include in the request. */\n queryParams?: Record<string, unknown>;\n /** Additional headers to include in the request. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n}\n\n/**\n * Address generation and management\n */\nexport class Addresses {\n protected readonly _options: Addresses.Options;\n\n constructor(_options: Addresses.Options) {\n this._options = _options;\n }\n\n /**\n * Retrieve addresses for the organization\n *\n * @param {OumlaSdkApi.GetOrganizationAddressesRequest} request\n * @param {Addresses.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.addresses.getOrganizationAddresses({\n * skip: 1,\n * take: 1\n * })\n */\n public getOrganizationAddresses(\n request: OumlaSdkApi.GetOrganizationAddressesRequest = {},\n requestOptions?: Addresses.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.PaginatedResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getOrganizationAddresses(request, requestOptions));\n }\n\n private async __getOrganizationAddresses(\n request: OumlaSdkApi.GetOrganizationAddressesRequest = {},\n requestOptions?: Addresses.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.PaginatedResponse>> {\n const { skip, take } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n if (skip != null) {\n _queryParams[\"skip\"] = skip.toString();\n }\n\n if (take != null) {\n _queryParams[\"take\"] = take.toString();\n }\n\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v1/addresses/organization\",\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.PaginatedResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/addresses/organization.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Retrieve addresses for a specific profile\n *\n * @param {string} reference - Profile reference\n * @param {OumlaSdkApi.GetProfileAddressesRequest} request\n * @param {Addresses.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.addresses.getProfileAddresses(\"reference\", {\n * skip: 1,\n * take: 1\n * })\n */\n public getProfileAddresses(\n reference: string,\n request: OumlaSdkApi.GetProfileAddressesRequest = {},\n requestOptions?: Addresses.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.PaginatedResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getProfileAddresses(reference, request, requestOptions));\n }\n\n private async __getProfileAddresses(\n reference: string,\n request: OumlaSdkApi.GetProfileAddressesRequest = {},\n requestOptions?: Addresses.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.PaginatedResponse>> {\n const { skip, take } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n if (skip != null) {\n _queryParams[\"skip\"] = skip.toString();\n }\n\n if (take != null) {\n _queryParams[\"take\"] = take.toString();\n }\n\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/addresses/${encodeURIComponent(reference)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.PaginatedResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/addresses/{reference}.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Generate a new address for a profile\n *\n * @param {OumlaSdkApi.CreateAddressRequest} request\n * @param {Addresses.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.addresses.generateAddressV1({\n * reference: \"reference\",\n * network: \"BTC\",\n * clientShare: \"clientShare\"\n * })\n */\n public generateAddressV1(\n request: OumlaSdkApi.CreateAddressRequest,\n requestOptions?: Addresses.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.SuccessResponse> {\n return core.HttpResponsePromise.fromPromise(this.__generateAddressV1(request, requestOptions));\n }\n\n private async __generateAddressV1(\n request: OumlaSdkApi.CreateAddressRequest,\n requestOptions?: Addresses.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.SuccessResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v1/addresses/generate\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.SuccessResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling POST /api/v1/addresses/generate.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Generate a new address for a profile\n *\n * @param {OumlaSdkApi.CreateAddressRequest} request\n * @param {Addresses.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.addresses.generateAddressV2({\n * reference: \"reference\",\n * network: \"BTC\",\n * clientShare: \"clientShare\"\n * })\n */\n public generateAddressV2(\n request: OumlaSdkApi.CreateAddressRequest,\n requestOptions?: Addresses.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.SuccessResponse> {\n return core.HttpResponsePromise.fromPromise(this.__generateAddressV2(request, requestOptions));\n }\n\n private async __generateAddressV2(\n request: OumlaSdkApi.CreateAddressRequest,\n requestOptions?: Addresses.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.SuccessResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v2/addresses/generate\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.SuccessResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling POST /api/v2/addresses/generate.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport * as environments from \"../../../../environments.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as OumlaSdkApi from \"../../../index.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../core/headers.js\";\nimport * as errors from \"../../../../errors/index.js\";\n\nexport declare namespace Transactions {\n export interface Options {\n environment?: core.Supplier<environments.OumlaSdkApiEnvironment | string>;\n /** Specify a custom URL to connect the client to. */\n baseUrl?: core.Supplier<string>;\n token?: core.Supplier<core.BearerToken | undefined>;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey: core.Supplier<string>;\n /** Additional headers to include in requests. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n\n export interface RequestOptions {\n /** The maximum time to wait for a response in seconds. */\n timeoutInSeconds?: number;\n /** The number of times to retry the request. Defaults to 2. */\n maxRetries?: number;\n /** A hook to abort the request. */\n abortSignal?: AbortSignal;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey?: string;\n /** Additional query string parameters to include in the request. */\n queryParams?: Record<string, unknown>;\n /** Additional headers to include in the request. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n}\n\n/**\n * Transaction history and tracking\n */\nexport class Transactions {\n protected readonly _options: Transactions.Options;\n\n constructor(_options: Transactions.Options) {\n this._options = _options;\n }\n\n /**\n * Retrieve transactions for a specific address\n *\n * @param {string} address - Blockchain address\n * @param {OumlaSdkApi.GetTransactionsByAddressRequest} request\n * @param {Transactions.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.transactions.getTransactionsByAddress(\"address\", {\n * skip: 1,\n * take: 1\n * })\n */\n public getTransactionsByAddress(\n address: string,\n request: OumlaSdkApi.GetTransactionsByAddressRequest = {},\n requestOptions?: Transactions.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.PaginatedResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getTransactionsByAddress(address, request, requestOptions));\n }\n\n private async __getTransactionsByAddress(\n address: string,\n request: OumlaSdkApi.GetTransactionsByAddressRequest = {},\n requestOptions?: Transactions.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.PaginatedResponse>> {\n const { skip, take } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n if (skip != null) {\n _queryParams[\"skip\"] = skip.toString();\n }\n\n if (take != null) {\n _queryParams[\"take\"] = take.toString();\n }\n\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/transactions/address/${encodeURIComponent(address)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.PaginatedResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/transactions/address/{address}.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Retrieve transactions for a specific wallet\n *\n * @param {string} miniWalletId - Mini wallet ID\n * @param {OumlaSdkApi.GetTransactionsByWalletRequest} request\n * @param {Transactions.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.transactions.getTransactionsByWallet(\"miniWalletId\", {\n * skip: 1,\n * take: 1\n * })\n */\n public getTransactionsByWallet(\n miniWalletId: string,\n request: OumlaSdkApi.GetTransactionsByWalletRequest = {},\n requestOptions?: Transactions.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.PaginatedResponse> {\n return core.HttpResponsePromise.fromPromise(\n this.__getTransactionsByWallet(miniWalletId, request, requestOptions),\n );\n }\n\n private async __getTransactionsByWallet(\n miniWalletId: string,\n request: OumlaSdkApi.GetTransactionsByWalletRequest = {},\n requestOptions?: Transactions.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.PaginatedResponse>> {\n const { skip, take } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n if (skip != null) {\n _queryParams[\"skip\"] = skip.toString();\n }\n\n if (take != null) {\n _queryParams[\"take\"] = take.toString();\n }\n\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/transactions/wallet/${encodeURIComponent(miniWalletId)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.PaginatedResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/transactions/wallet/{miniWalletId}.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Retrieve transactions for the organization\n *\n * @param {OumlaSdkApi.GetOrganizationTransactionsRequest} request\n * @param {Transactions.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.transactions.getOrganizationTransactions({\n * skip: 1,\n * take: 1\n * })\n */\n public getOrganizationTransactions(\n request: OumlaSdkApi.GetOrganizationTransactionsRequest = {},\n requestOptions?: Transactions.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.PaginatedResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getOrganizationTransactions(request, requestOptions));\n }\n\n private async __getOrganizationTransactions(\n request: OumlaSdkApi.GetOrganizationTransactionsRequest = {},\n requestOptions?: Transactions.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.PaginatedResponse>> {\n const { skip, take } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n if (skip != null) {\n _queryParams[\"skip\"] = skip.toString();\n }\n\n if (take != null) {\n _queryParams[\"take\"] = take.toString();\n }\n\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v1/transactions/organization\",\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.PaginatedResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/transactions/organization.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Retrieve transactions for a specific profile\n *\n * @param {string} reference - Profile reference\n * @param {OumlaSdkApi.GetProfileTransactionsRequest} request\n * @param {Transactions.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.transactions.getProfileTransactions(\"reference\", {\n * skip: 1,\n * take: 1\n * })\n */\n public getProfileTransactions(\n reference: string,\n request: OumlaSdkApi.GetProfileTransactionsRequest = {},\n requestOptions?: Transactions.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.PaginatedResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getProfileTransactions(reference, request, requestOptions));\n }\n\n private async __getProfileTransactions(\n reference: string,\n request: OumlaSdkApi.GetProfileTransactionsRequest = {},\n requestOptions?: Transactions.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.PaginatedResponse>> {\n const { skip, take } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n if (skip != null) {\n _queryParams[\"skip\"] = skip.toString();\n }\n\n if (take != null) {\n _queryParams[\"take\"] = take.toString();\n }\n\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/transactions/profile/${encodeURIComponent(reference)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.PaginatedResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/transactions/profile/{reference}.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport * as environments from \"../../../../environments.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as OumlaSdkApi from \"../../../index.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../core/headers.js\";\nimport * as errors from \"../../../../errors/index.js\";\n\nexport declare namespace Withdrawals {\n export interface Options {\n environment?: core.Supplier<environments.OumlaSdkApiEnvironment | string>;\n /** Specify a custom URL to connect the client to. */\n baseUrl?: core.Supplier<string>;\n token?: core.Supplier<core.BearerToken | undefined>;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey: core.Supplier<string>;\n /** Additional headers to include in requests. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n\n export interface RequestOptions {\n /** The maximum time to wait for a response in seconds. */\n timeoutInSeconds?: number;\n /** The number of times to retry the request. Defaults to 2. */\n maxRetries?: number;\n /** A hook to abort the request. */\n abortSignal?: AbortSignal;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey?: string;\n /** Additional query string parameters to include in the request. */\n queryParams?: Record<string, unknown>;\n /** Additional headers to include in the request. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n}\n\n/**\n * Withdrawal operations\n */\nexport class Withdrawals {\n protected readonly _options: Withdrawals.Options;\n\n constructor(_options: Withdrawals.Options) {\n this._options = _options;\n }\n\n /**\n * Create a new withdrawal request\n *\n * @param {OumlaSdkApi.CreateWithdrawalRequest} request\n * @param {Withdrawals.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.withdrawals.createWithdrawal({\n * to: \"to\",\n * amount: \"amount\",\n * from: [\"from\"],\n * network: \"BTC\",\n * clientShare: \"clientShare\"\n * })\n */\n public createWithdrawal(\n request: OumlaSdkApi.CreateWithdrawalRequest,\n requestOptions?: Withdrawals.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.SuccessResponse> {\n return core.HttpResponsePromise.fromPromise(this.__createWithdrawal(request, requestOptions));\n }\n\n private async __createWithdrawal(\n request: OumlaSdkApi.CreateWithdrawalRequest,\n requestOptions?: Withdrawals.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.SuccessResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v1/withdraw\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.SuccessResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\"Timeout exceeded when calling POST /api/v1/withdraw.\");\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport * as environments from \"../../../../environments.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as OumlaSdkApi from \"../../../index.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../core/headers.js\";\nimport * as errors from \"../../../../errors/index.js\";\n\nexport declare namespace ContractTemplates {\n export interface Options {\n environment?: core.Supplier<environments.OumlaSdkApiEnvironment | string>;\n /** Specify a custom URL to connect the client to. */\n baseUrl?: core.Supplier<string>;\n token?: core.Supplier<core.BearerToken | undefined>;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey: core.Supplier<string>;\n /** Additional headers to include in requests. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n\n export interface RequestOptions {\n /** The maximum time to wait for a response in seconds. */\n timeoutInSeconds?: number;\n /** The number of times to retry the request. Defaults to 2. */\n maxRetries?: number;\n /** A hook to abort the request. */\n abortSignal?: AbortSignal;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey?: string;\n /** Additional query string parameters to include in the request. */\n queryParams?: Record<string, unknown>;\n /** Additional headers to include in the request. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n}\n\n/**\n * Smart contract template management\n */\nexport class ContractTemplates {\n protected readonly _options: ContractTemplates.Options;\n\n constructor(_options: ContractTemplates.Options) {\n this._options = _options;\n }\n\n /**\n * Retrieve a paginated list of contract templates\n *\n * @param {OumlaSdkApi.GetContractTemplatesRequest} request\n * @param {ContractTemplates.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.contractTemplates.getContractTemplates({\n * skip: 1,\n * take: 1\n * })\n */\n public getContractTemplates(\n request: OumlaSdkApi.GetContractTemplatesRequest = {},\n requestOptions?: ContractTemplates.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.PaginatedResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getContractTemplates(request, requestOptions));\n }\n\n private async __getContractTemplates(\n request: OumlaSdkApi.GetContractTemplatesRequest = {},\n requestOptions?: ContractTemplates.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.PaginatedResponse>> {\n const { skip, take } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n if (skip != null) {\n _queryParams[\"skip\"] = skip.toString();\n }\n\n if (take != null) {\n _queryParams[\"take\"] = take.toString();\n }\n\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v1/contract-templates\",\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.PaginatedResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/contract-templates.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Create a new contract template\n *\n * @param {OumlaSdkApi.CreateContractTemplateRequest} request\n * @param {ContractTemplates.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.contractTemplates.createContractTemplate({\n * name: \"name\",\n * description: \"description\",\n * abi: [{\n * \"key\": \"value\"\n * }],\n * bytecode: \"bytecode\"\n * })\n */\n public createContractTemplate(\n request: OumlaSdkApi.CreateContractTemplateRequest,\n requestOptions?: ContractTemplates.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.SuccessResponse> {\n return core.HttpResponsePromise.fromPromise(this.__createContractTemplate(request, requestOptions));\n }\n\n private async __createContractTemplate(\n request: OumlaSdkApi.CreateContractTemplateRequest,\n requestOptions?: ContractTemplates.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.SuccessResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v1/contract-templates\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.SuccessResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling POST /api/v1/contract-templates.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Retrieve a specific contract template\n *\n * @param {string} templateId - Contract template ID\n * @param {ContractTemplates.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.contractTemplates.getContractTemplate(\"templateId\")\n */\n public getContractTemplate(\n templateId: string,\n requestOptions?: ContractTemplates.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.SuccessResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getContractTemplate(templateId, requestOptions));\n }\n\n private async __getContractTemplate(\n templateId: string,\n requestOptions?: ContractTemplates.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.SuccessResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/contract-templates/${encodeURIComponent(templateId)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.SuccessResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/contract-templates/{templateId}.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Delete a contract template\n *\n * @param {string} templateId - Contract template ID\n * @param {ContractTemplates.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.contractTemplates.deleteContractTemplate(\"templateId\")\n */\n public deleteContractTemplate(\n templateId: string,\n requestOptions?: ContractTemplates.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.SuccessResponse> {\n return core.HttpResponsePromise.fromPromise(this.__deleteContractTemplate(templateId, requestOptions));\n }\n\n private async __deleteContractTemplate(\n templateId: string,\n requestOptions?: ContractTemplates.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.SuccessResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/contract-templates/${encodeURIComponent(templateId)}`,\n ),\n method: \"DELETE\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.SuccessResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling DELETE /api/v1/contract-templates/{templateId}.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Retrieve constructor information for a contract template\n *\n * @param {string} templateId - Contract template ID\n * @param {ContractTemplates.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.contractTemplates.getContractConstructor(\"templateId\")\n */\n public getContractConstructor(\n templateId: string,\n requestOptions?: ContractTemplates.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.SuccessResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getContractConstructor(templateId, requestOptions));\n }\n\n private async __getContractConstructor(\n templateId: string,\n requestOptions?: ContractTemplates.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.SuccessResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/contract-templates/${encodeURIComponent(templateId)}/constructorInfo`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.SuccessResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/contract-templates/{templateId}/constructorInfo.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Retrieve function information for a contract template\n *\n * @param {string} templateId - Contract template ID\n * @param {OumlaSdkApi.GetTemplateFunctionsRequest} request\n * @param {ContractTemplates.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.contractTemplates.getTemplateFunctions(\"templateId\", {\n * functionSignature: \"functionSignature\"\n * })\n */\n public getTemplateFunctions(\n templateId: string,\n request: OumlaSdkApi.GetTemplateFunctionsRequest = {},\n requestOptions?: ContractTemplates.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.SuccessResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getTemplateFunctions(templateId, request, requestOptions));\n }\n\n private async __getTemplateFunctions(\n templateId: string,\n request: OumlaSdkApi.GetTemplateFunctionsRequest = {},\n requestOptions?: ContractTemplates.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.SuccessResponse>> {\n const { functionSignature } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n if (functionSignature != null) {\n _queryParams[\"functionSignature\"] = functionSignature;\n }\n\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/contract-templates/${encodeURIComponent(templateId)}/function`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.SuccessResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/contract-templates/{templateId}/function.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Deploy a contract from a template\n *\n * @param {string} templateId - Contract template ID\n * @param {OumlaSdkApi.DeployContractRequest} request\n * @param {ContractTemplates.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.contractTemplates.deployContract(\"templateId\", {\n * network: \"network\",\n * addressId: \"addressId\",\n * clientShare: \"clientShare\"\n * })\n */\n public deployContract(\n templateId: string,\n request: OumlaSdkApi.DeployContractRequest,\n requestOptions?: ContractTemplates.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.SuccessResponse> {\n return core.HttpResponsePromise.fromPromise(this.__deployContract(templateId, request, requestOptions));\n }\n\n private async __deployContract(\n templateId: string,\n request: OumlaSdkApi.DeployContractRequest,\n requestOptions?: ContractTemplates.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.SuccessResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/contract-templates/${encodeURIComponent(templateId)}/deploy`,\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.SuccessResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling POST /api/v1/contract-templates/{templateId}/deploy.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport * as environments from \"../../../../environments.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as OumlaSdkApi from \"../../../index.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../core/headers.js\";\nimport * as errors from \"../../../../errors/index.js\";\n\nexport declare namespace DeployedContracts {\n export interface Options {\n environment?: core.Supplier<environments.OumlaSdkApiEnvironment | string>;\n /** Specify a custom URL to connect the client to. */\n baseUrl?: core.Supplier<string>;\n token?: core.Supplier<core.BearerToken | undefined>;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey: core.Supplier<string>;\n /** Additional headers to include in requests. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n\n export interface RequestOptions {\n /** The maximum time to wait for a response in seconds. */\n timeoutInSeconds?: number;\n /** The number of times to retry the request. Defaults to 2. */\n maxRetries?: number;\n /** A hook to abort the request. */\n abortSignal?: AbortSignal;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey?: string;\n /** Additional query string parameters to include in the request. */\n queryParams?: Record<string, unknown>;\n /** Additional headers to include in the request. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n}\n\n/**\n * Deployed contract management\n */\nexport class DeployedContracts {\n protected readonly _options: DeployedContracts.Options;\n\n constructor(_options: DeployedContracts.Options) {\n this._options = _options;\n }\n\n /**\n * Retrieve a paginated list of deployed contracts\n *\n * @param {OumlaSdkApi.GetDeployedContractsRequest} request\n * @param {DeployedContracts.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.deployedContracts.getDeployedContracts({\n * skip: 1,\n * take: 1,\n * contractAddress: \"contractAddress\",\n * network: \"BTC\",\n * contractTemplateId: \"contractTemplateId\"\n * })\n */\n public getDeployedContracts(\n request: OumlaSdkApi.GetDeployedContractsRequest = {},\n requestOptions?: DeployedContracts.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.PaginatedResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getDeployedContracts(request, requestOptions));\n }\n\n private async __getDeployedContracts(\n request: OumlaSdkApi.GetDeployedContractsRequest = {},\n requestOptions?: DeployedContracts.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.PaginatedResponse>> {\n const { skip, take, contractAddress, network, contractTemplateId } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n if (skip != null) {\n _queryParams[\"skip\"] = skip.toString();\n }\n\n if (take != null) {\n _queryParams[\"take\"] = take.toString();\n }\n\n if (contractAddress != null) {\n _queryParams[\"contractAddress\"] = contractAddress;\n }\n\n if (network != null) {\n _queryParams[\"network\"] = network;\n }\n\n if (contractTemplateId != null) {\n _queryParams[\"contractTemplateId\"] = contractTemplateId;\n }\n\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v1/deployed-contracts\",\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.PaginatedResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/deployed-contracts.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Retrieve a specific deployed contract\n *\n * @param {string} contractId - Deployed contract ID\n * @param {DeployedContracts.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.deployedContracts.getDeployedContract(\"contractId\")\n */\n public getDeployedContract(\n contractId: string,\n requestOptions?: DeployedContracts.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.SuccessResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getDeployedContract(contractId, requestOptions));\n }\n\n private async __getDeployedContract(\n contractId: string,\n requestOptions?: DeployedContracts.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.SuccessResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/deployed-contracts/${encodeURIComponent(contractId)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.SuccessResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/deployed-contracts/{contractId}.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Retrieve a deployed contract by network and address\n *\n * @param {string} network - Blockchain network\n * @param {string} contractAddress - Contract address\n * @param {DeployedContracts.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.deployedContracts.getDeployedContractByAddress(\"network\", \"contractAddress\")\n */\n public getDeployedContractByAddress(\n network: string,\n contractAddress: string,\n requestOptions?: DeployedContracts.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.SuccessResponse> {\n return core.HttpResponsePromise.fromPromise(\n this.__getDeployedContractByAddress(network, contractAddress, requestOptions),\n );\n }\n\n private async __getDeployedContractByAddress(\n network: string,\n contractAddress: string,\n requestOptions?: DeployedContracts.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.SuccessResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/deployed-contracts/${encodeURIComponent(network)}/${encodeURIComponent(contractAddress)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.SuccessResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/deployed-contracts/{network}/{contractAddress}.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Fetch ABI for a deployed contract\n *\n * @param {OumlaSdkApi.FetchContractAbiRequest} request\n * @param {DeployedContracts.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.deployedContracts.fetchContractAbi({\n * network: \"network\",\n * contractAddress: \"contractAddress\"\n * })\n */\n public fetchContractAbi(\n request: OumlaSdkApi.FetchContractAbiRequest,\n requestOptions?: DeployedContracts.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.SuccessResponse> {\n return core.HttpResponsePromise.fromPromise(this.__fetchContractAbi(request, requestOptions));\n }\n\n private async __fetchContractAbi(\n request: OumlaSdkApi.FetchContractAbiRequest,\n requestOptions?: DeployedContracts.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.SuccessResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v1/deployed-contracts/fetch-abi\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.SuccessResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling POST /api/v1/deployed-contracts/fetch-abi.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Add ABI for a deployed contract\n *\n * @param {OumlaSdkApi.AddContractAbiRequest} request\n * @param {DeployedContracts.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.deployedContracts.addContractAbi({\n * network: \"network\",\n * contractAddress: \"contractAddress\",\n * name: \"name\",\n * abi: [{\n * \"key\": \"value\"\n * }]\n * })\n */\n public addContractAbi(\n request: OumlaSdkApi.AddContractAbiRequest,\n requestOptions?: DeployedContracts.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.SuccessResponse> {\n return core.HttpResponsePromise.fromPromise(this.__addContractAbi(request, requestOptions));\n }\n\n private async __addContractAbi(\n request: OumlaSdkApi.AddContractAbiRequest,\n requestOptions?: DeployedContracts.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.SuccessResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v1/deployed-contracts/add-abi\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.SuccessResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling POST /api/v1/deployed-contracts/add-abi.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport * as environments from \"../../../../environments.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as OumlaSdkApi from \"../../../index.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../core/headers.js\";\nimport * as errors from \"../../../../errors/index.js\";\n\nexport declare namespace ContractInteractions {\n export interface Options {\n environment?: core.Supplier<environments.OumlaSdkApiEnvironment | string>;\n /** Specify a custom URL to connect the client to. */\n baseUrl?: core.Supplier<string>;\n token?: core.Supplier<core.BearerToken | undefined>;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey: core.Supplier<string>;\n /** Additional headers to include in requests. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n\n export interface RequestOptions {\n /** The maximum time to wait for a response in seconds. */\n timeoutInSeconds?: number;\n /** The number of times to retry the request. Defaults to 2. */\n maxRetries?: number;\n /** A hook to abort the request. */\n abortSignal?: AbortSignal;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey?: string;\n /** Additional query string parameters to include in the request. */\n queryParams?: Record<string, unknown>;\n /** Additional headers to include in the request. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n}\n\n/**\n * Smart contract interaction operations\n */\nexport class ContractInteractions {\n protected readonly _options: ContractInteractions.Options;\n\n constructor(_options: ContractInteractions.Options) {\n this._options = _options;\n }\n\n /**\n * Retrieve available functions for a deployed contract\n *\n * @param {string} network - Blockchain network\n * @param {string} contractAddress - Contract address\n * @param {ContractInteractions.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.contractInteractions.getContractFunctions(\"network\", \"contractAddress\")\n */\n public getContractFunctions(\n network: string,\n contractAddress: string,\n requestOptions?: ContractInteractions.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.SuccessResponse> {\n return core.HttpResponsePromise.fromPromise(\n this.__getContractFunctions(network, contractAddress, requestOptions),\n );\n }\n\n private async __getContractFunctions(\n network: string,\n contractAddress: string,\n requestOptions?: ContractInteractions.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.SuccessResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/contract-interactions/network/${encodeURIComponent(network)}/contract-address/${encodeURIComponent(contractAddress)}/functions`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.SuccessResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/contract-interactions/network/{network}/contract-address/{contractAddress}/functions.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Call a read function on a deployed contract\n *\n * @param {string} network - Blockchain network\n * @param {string} contractAddress - Contract address\n * @param {OumlaSdkApi.ReadFunctionRequest} request\n * @param {ContractInteractions.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.contractInteractions.callReadFunction(\"network\", \"contractAddress\", {\n * abiFunction: {\n * name: \"name\",\n * inputs: [{}],\n * outputs: [{}],\n * type: \"type\"\n * }\n * })\n */\n public callReadFunction(\n network: string,\n contractAddress: string,\n request: OumlaSdkApi.ReadFunctionRequest,\n requestOptions?: ContractInteractions.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.SuccessResponse> {\n return core.HttpResponsePromise.fromPromise(\n this.__callReadFunction(network, contractAddress, request, requestOptions),\n );\n }\n\n private async __callReadFunction(\n network: string,\n contractAddress: string,\n request: OumlaSdkApi.ReadFunctionRequest,\n requestOptions?: ContractInteractions.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.SuccessResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/contract-interactions/network/${encodeURIComponent(network)}/contract-address/${encodeURIComponent(contractAddress)}/functions/read`,\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.SuccessResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling POST /api/v1/contract-interactions/network/{network}/contract-address/{contractAddress}/functions/read.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Call a write function on a deployed contract\n *\n * @param {string} network - Blockchain network\n * @param {string} contractAddress - Contract address\n * @param {OumlaSdkApi.WriteFunctionRequest} request\n * @param {ContractInteractions.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.contractInteractions.callWriteFunction(\"network\", \"contractAddress\", {\n * addressId: \"addressId\",\n * clientShare: \"clientShare\",\n * abiFunction: {\n * name: \"name\",\n * inputs: [{}],\n * outputs: [{}],\n * type: \"type\"\n * }\n * })\n */\n public callWriteFunction(\n network: string,\n contractAddress: string,\n request: OumlaSdkApi.WriteFunctionRequest,\n requestOptions?: ContractInteractions.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.SuccessResponse> {\n return core.HttpResponsePromise.fromPromise(\n this.__callWriteFunction(network, contractAddress, request, requestOptions),\n );\n }\n\n private async __callWriteFunction(\n network: string,\n contractAddress: string,\n request: OumlaSdkApi.WriteFunctionRequest,\n requestOptions?: ContractInteractions.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.SuccessResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/contract-interactions/network/${encodeURIComponent(network)}/contract-address/${encodeURIComponent(contractAddress)}/functions/write`,\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.SuccessResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling POST /api/v1/contract-interactions/network/{network}/contract-address/{contractAddress}/functions/write.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Retrieve transaction receipt for a specific transaction\n *\n * @param {string} network - Blockchain network\n * @param {string} txId - Transaction ID\n * @param {ContractInteractions.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.contractInteractions.getTransactionReceipt(\"network\", \"txId\")\n */\n public getTransactionReceipt(\n network: string,\n txId: string,\n requestOptions?: ContractInteractions.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.SuccessResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getTransactionReceipt(network, txId, requestOptions));\n }\n\n private async __getTransactionReceipt(\n network: string,\n txId: string,\n requestOptions?: ContractInteractions.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.SuccessResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/contract-interactions/network/${encodeURIComponent(network)}/tx/${encodeURIComponent(txId)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.SuccessResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/contract-interactions/network/{network}/tx/{txId}.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport * as environments from \"../../../../environments.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as OumlaSdkApi from \"../../../index.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../core/headers.js\";\nimport * as errors from \"../../../../errors/index.js\";\n\nexport declare namespace Tokenization {\n export interface Options {\n environment?: core.Supplier<environments.OumlaSdkApiEnvironment | string>;\n /** Specify a custom URL to connect the client to. */\n baseUrl?: core.Supplier<string>;\n token?: core.Supplier<core.BearerToken | undefined>;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey: core.Supplier<string>;\n /** Additional headers to include in requests. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n\n export interface RequestOptions {\n /** The maximum time to wait for a response in seconds. */\n timeoutInSeconds?: number;\n /** The number of times to retry the request. Defaults to 2. */\n maxRetries?: number;\n /** A hook to abort the request. */\n abortSignal?: AbortSignal;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey?: string;\n /** Additional query string parameters to include in the request. */\n queryParams?: Record<string, unknown>;\n /** Additional headers to include in the request. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n}\n\n/**\n * Token creation, minting, and management\n */\nexport class Tokenization {\n protected readonly _options: Tokenization.Options;\n\n constructor(_options: Tokenization.Options) {\n this._options = _options;\n }\n\n /**\n * Retrieve a paginated list of tokens\n *\n * @param {OumlaSdkApi.GetTokensRequest} request\n * @param {Tokenization.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.tokenization.getTokens({\n * skip: 1,\n * take: 1\n * })\n */\n public getTokens(\n request: OumlaSdkApi.GetTokensRequest = {},\n requestOptions?: Tokenization.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.PaginatedResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getTokens(request, requestOptions));\n }\n\n private async __getTokens(\n request: OumlaSdkApi.GetTokensRequest = {},\n requestOptions?: Tokenization.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.PaginatedResponse>> {\n const { skip, take } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n if (skip != null) {\n _queryParams[\"skip\"] = skip.toString();\n }\n\n if (take != null) {\n _queryParams[\"take\"] = take.toString();\n }\n\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v1/tokenization/tokens\",\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.PaginatedResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/tokenization/tokens.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Issue a new token using a contract template\n *\n * @param {OumlaSdkApi.IssueNewTokenRequest} request\n * @param {Tokenization.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.tokenization.issueNewToken({\n * addressId: \"addressId\",\n * clientShare: \"clientShare\",\n * deploymentId: \"deploymentId\",\n * createParams: {\n * initializeParams: [{\n * name: \"name\",\n * type: \"type\",\n * value: \"value\"\n * }]\n * }\n * })\n */\n public issueNewToken(\n request: OumlaSdkApi.IssueNewTokenRequest,\n requestOptions?: Tokenization.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.SuccessResponse> {\n return core.HttpResponsePromise.fromPromise(this.__issueNewToken(request, requestOptions));\n }\n\n private async __issueNewToken(\n request: OumlaSdkApi.IssueNewTokenRequest,\n requestOptions?: Tokenization.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.SuccessResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v1/tokenization/tokens\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.SuccessResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling POST /api/v1/tokenization/tokens.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Link an existing contract to the platform\n *\n * @param {OumlaSdkApi.LinkContractRequest} request\n * @param {Tokenization.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.tokenization.linkContract({\n * contractAddress: \"contractAddress\"\n * })\n */\n public linkContract(\n request: OumlaSdkApi.LinkContractRequest,\n requestOptions?: Tokenization.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.SuccessResponse> {\n return core.HttpResponsePromise.fromPromise(this.__linkContract(request, requestOptions));\n }\n\n private async __linkContract(\n request: OumlaSdkApi.LinkContractRequest,\n requestOptions?: Tokenization.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.SuccessResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v1/tokenization/tokens/link\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.SuccessResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling POST /api/v1/tokenization/tokens/link.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Retrieve a paginated list of collections\n *\n * @param {OumlaSdkApi.GetCollectionsRequest} request\n * @param {Tokenization.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.tokenization.getCollections({\n * skip: 1,\n * take: 1\n * })\n */\n public getCollections(\n request: OumlaSdkApi.GetCollectionsRequest = {},\n requestOptions?: Tokenization.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.PaginatedResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getCollections(request, requestOptions));\n }\n\n private async __getCollections(\n request: OumlaSdkApi.GetCollectionsRequest = {},\n requestOptions?: Tokenization.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.PaginatedResponse>> {\n const { skip, take } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n if (skip != null) {\n _queryParams[\"skip\"] = skip.toString();\n }\n\n if (take != null) {\n _queryParams[\"take\"] = take.toString();\n }\n\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v1/tokenization/collections\",\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.PaginatedResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/tokenization/collections.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Create a new token collection\n *\n * @param {OumlaSdkApi.CreateCollectionRequest} request\n * @param {Tokenization.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.tokenization.createCollection({\n * type: \"NON_FUNGIBLE_TOKEN\",\n * addressId: \"addressId\",\n * clientShare: \"clientShare\",\n * createParams: {\n * initializeParams: [{\n * name: \"name\",\n * type: \"type\",\n * value: \"value\"\n * }]\n * }\n * })\n */\n public createCollection(\n request: OumlaSdkApi.CreateCollectionRequest,\n requestOptions?: Tokenization.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.SuccessResponse> {\n return core.HttpResponsePromise.fromPromise(this.__createCollection(request, requestOptions));\n }\n\n private async __createCollection(\n request: OumlaSdkApi.CreateCollectionRequest,\n requestOptions?: Tokenization.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.SuccessResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v1/tokenization/collections\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.SuccessResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling POST /api/v1/tokenization/collections.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Retrieve a specific collection\n *\n * @param {string} id - Collection ID\n * @param {Tokenization.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.tokenization.getCollection(\"id\")\n */\n public getCollection(\n id: string,\n requestOptions?: Tokenization.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.SuccessResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getCollection(id, requestOptions));\n }\n\n private async __getCollection(\n id: string,\n requestOptions?: Tokenization.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.SuccessResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/tokenization/collections/${encodeURIComponent(id)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.SuccessResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/tokenization/collections/{id}.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Delete a collection\n *\n * @param {string} id - Collection ID\n * @param {Tokenization.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.tokenization.deleteCollection(\"id\")\n */\n public deleteCollection(\n id: string,\n requestOptions?: Tokenization.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.SuccessResponse> {\n return core.HttpResponsePromise.fromPromise(this.__deleteCollection(id, requestOptions));\n }\n\n private async __deleteCollection(\n id: string,\n requestOptions?: Tokenization.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.SuccessResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/tokenization/collections/${encodeURIComponent(id)}`,\n ),\n method: \"DELETE\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.SuccessResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling DELETE /api/v1/tokenization/collections/{id}.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Retrieve details for a specific token in a collection\n *\n * @param {string} id - Collection ID\n * @param {string} tokenId - Token ID\n * @param {Tokenization.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.tokenization.getCollectionTokenDetails(\"id\", \"tokenId\")\n */\n public getCollectionTokenDetails(\n id: string,\n tokenId: string,\n requestOptions?: Tokenization.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.SuccessResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getCollectionTokenDetails(id, tokenId, requestOptions));\n }\n\n private async __getCollectionTokenDetails(\n id: string,\n tokenId: string,\n requestOptions?: Tokenization.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.SuccessResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/tokenization/collections/${encodeURIComponent(id)}/tokens/${encodeURIComponent(tokenId)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.SuccessResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/tokenization/collections/{id}/tokens/{tokenId}.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Mint a new token in a collection\n *\n * @param {string} id - Collection ID\n * @param {OumlaSdkApi.MintTokenRequest} request\n * @param {Tokenization.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.tokenization.mintToken(\"id\", {\n * addressId: \"addressId\",\n * clientShare: \"clientShare\",\n * to: \"to\",\n * tokenId: \"tokenId\"\n * })\n */\n public mintToken(\n id: string,\n request: OumlaSdkApi.MintTokenRequest,\n requestOptions?: Tokenization.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.SuccessResponse> {\n return core.HttpResponsePromise.fromPromise(this.__mintToken(id, request, requestOptions));\n }\n\n private async __mintToken(\n id: string,\n request: OumlaSdkApi.MintTokenRequest,\n requestOptions?: Tokenization.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.SuccessResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/tokenization/collections/${encodeURIComponent(id)}/tokens/mint`,\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.SuccessResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling POST /api/v1/tokenization/collections/{id}/tokens/mint.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Burn a token\n *\n * @param {string} id - Collection ID\n * @param {OumlaSdkApi.BurnTokenRequest} request\n * @param {Tokenization.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.tokenization.burnToken(\"id\", {\n * addressId: \"addressId\",\n * clientShare: \"clientShare\",\n * tokenId: \"tokenId\"\n * })\n */\n public burnToken(\n id: string,\n request: OumlaSdkApi.BurnTokenRequest,\n requestOptions?: Tokenization.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.SuccessResponse> {\n return core.HttpResponsePromise.fromPromise(this.__burnToken(id, request, requestOptions));\n }\n\n private async __burnToken(\n id: string,\n request: OumlaSdkApi.BurnTokenRequest,\n requestOptions?: Tokenization.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.SuccessResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/tokenization/collections/${encodeURIComponent(id)}/tokens/burn`,\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.SuccessResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling POST /api/v1/tokenization/collections/{id}/tokens/burn.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Retrieve collection tokens (mints or burns) filtered by collection ID and type\n *\n * @param {OumlaSdkApi.GetCollectionTokensRequest} request\n * @param {Tokenization.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.NotFoundError}\n *\n * @example\n * await client.tokenization.getCollectionTokens({\n * id: \"id\",\n * type: \"MINT\",\n * skip: 1,\n * take: 1\n * })\n */\n public getCollectionTokens(\n request: OumlaSdkApi.GetCollectionTokensRequest = {},\n requestOptions?: Tokenization.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.SuccessResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getCollectionTokens(request, requestOptions));\n }\n\n private async __getCollectionTokens(\n request: OumlaSdkApi.GetCollectionTokensRequest = {},\n requestOptions?: Tokenization.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.SuccessResponse>> {\n const { id, type: type_, skip, take } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n if (id != null) {\n _queryParams[\"id\"] = id;\n }\n\n if (type_ != null) {\n _queryParams[\"type\"] = type_;\n }\n\n if (skip != null) {\n _queryParams[\"skip\"] = skip.toString();\n }\n\n if (take != null) {\n _queryParams[\"take\"] = take.toString();\n }\n\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v1/tokenization/collection/tokens\",\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.SuccessResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 404:\n throw new OumlaSdkApi.NotFoundError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/tokenization/collection/tokens.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Unlink a token from the platform\n *\n * @param {string} id - Token ID\n * @param {Tokenization.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.tokenization.unlinkToken(\"id\")\n */\n public unlinkToken(\n id: string,\n requestOptions?: Tokenization.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.SuccessResponse> {\n return core.HttpResponsePromise.fromPromise(this.__unlinkToken(id, requestOptions));\n }\n\n private async __unlinkToken(\n id: string,\n requestOptions?: Tokenization.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.SuccessResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/tokenization/tokens/${encodeURIComponent(id)}`,\n ),\n method: \"DELETE\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.SuccessResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling DELETE /api/v1/tokenization/tokens/{id}.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport * as environments from \"../../../../environments.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as OumlaSdkApi from \"../../../index.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../core/headers.js\";\nimport * as errors from \"../../../../errors/index.js\";\n\nexport declare namespace Temporal {\n export interface Options {\n environment?: core.Supplier<environments.OumlaSdkApiEnvironment | string>;\n /** Specify a custom URL to connect the client to. */\n baseUrl?: core.Supplier<string>;\n token?: core.Supplier<core.BearerToken | undefined>;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey: core.Supplier<string>;\n /** Additional headers to include in requests. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n\n export interface RequestOptions {\n /** The maximum time to wait for a response in seconds. */\n timeoutInSeconds?: number;\n /** The number of times to retry the request. Defaults to 2. */\n maxRetries?: number;\n /** A hook to abort the request. */\n abortSignal?: AbortSignal;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey?: string;\n /** Additional query string parameters to include in the request. */\n queryParams?: Record<string, unknown>;\n /** Additional headers to include in the request. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n}\n\n/**\n * Temporal workflow operations\n */\nexport class Temporal {\n protected readonly _options: Temporal.Options;\n\n constructor(_options: Temporal.Options) {\n this._options = _options;\n }\n\n /**\n * Get workflow status and result\n *\n * @param {string} workflowId - Temporal workflow ID\n * @param {Temporal.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.NotFoundError}\n *\n * @example\n * await client.temporal.getTemporalWorkflowStatus(\"workflowId\")\n */\n public getTemporalWorkflowStatus(\n workflowId: string,\n requestOptions?: Temporal.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.SuccessResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getTemporalWorkflowStatus(workflowId, requestOptions));\n }\n\n private async __getTemporalWorkflowStatus(\n workflowId: string,\n requestOptions?: Temporal.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.SuccessResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/temporal/workflows/${encodeURIComponent(workflowId)}/status`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.SuccessResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 404:\n throw new OumlaSdkApi.NotFoundError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/temporal/workflows/{workflowId}/status.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport * as environments from \"../../../../environments.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as OumlaSdkApi from \"../../../index.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../core/headers.js\";\nimport * as errors from \"../../../../errors/index.js\";\n\nexport declare namespace Assets {\n export interface Options {\n environment?: core.Supplier<environments.OumlaSdkApiEnvironment | string>;\n /** Specify a custom URL to connect the client to. */\n baseUrl?: core.Supplier<string>;\n token?: core.Supplier<core.BearerToken | undefined>;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey: core.Supplier<string>;\n /** Additional headers to include in requests. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n\n export interface RequestOptions {\n /** The maximum time to wait for a response in seconds. */\n timeoutInSeconds?: number;\n /** The number of times to retry the request. Defaults to 2. */\n maxRetries?: number;\n /** A hook to abort the request. */\n abortSignal?: AbortSignal;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey?: string;\n /** Additional query string parameters to include in the request. */\n queryParams?: Record<string, unknown>;\n /** Additional headers to include in the request. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n}\n\n/**\n * Asset management and tracking\n */\nexport class Assets {\n protected readonly _options: Assets.Options;\n\n constructor(_options: Assets.Options) {\n this._options = _options;\n }\n\n /**\n * Retrieve assets for the organization filtered by address, wallet ID, contract address, or tokenization ID\n *\n * @param {OumlaSdkApi.GetAssetsRequest} request\n * @param {Assets.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.NotFoundError}\n *\n * @example\n * await client.assets.getAssets({\n * address: \"address\",\n * walletId: \"walletId\",\n * contractAddress: \"contractAddress\",\n * tokenizationId: \"tokenizationId\",\n * skip: 1,\n * take: 1\n * })\n */\n public getAssets(\n request: OumlaSdkApi.GetAssetsRequest = {},\n requestOptions?: Assets.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.SuccessResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getAssets(request, requestOptions));\n }\n\n private async __getAssets(\n request: OumlaSdkApi.GetAssetsRequest = {},\n requestOptions?: Assets.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.SuccessResponse>> {\n const { address, walletId, contractAddress, tokenizationId, skip, take } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n if (address != null) {\n _queryParams[\"address\"] = address;\n }\n\n if (walletId != null) {\n _queryParams[\"walletId\"] = walletId;\n }\n\n if (contractAddress != null) {\n _queryParams[\"contractAddress\"] = contractAddress;\n }\n\n if (tokenizationId != null) {\n _queryParams[\"tokenizationId\"] = tokenizationId;\n }\n\n if (skip != null) {\n _queryParams[\"skip\"] = skip.toString();\n }\n\n if (take != null) {\n _queryParams[\"take\"] = take.toString();\n }\n\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v1/assets\",\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.SuccessResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 404:\n throw new OumlaSdkApi.NotFoundError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\"Timeout exceeded when calling GET /api/v1/assets.\");\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport * as environments from \"./environments.js\";\nimport * as core from \"./core/index.js\";\nimport { mergeHeaders } from \"./core/headers.js\";\nimport { Profiles } from \"./api/resources/profiles/client/Client.js\";\nimport { Wallets } from \"./api/resources/wallets/client/Client.js\";\nimport { Addresses } from \"./api/resources/addresses/client/Client.js\";\nimport { Transactions } from \"./api/resources/transactions/client/Client.js\";\nimport { Withdrawals } from \"./api/resources/withdrawals/client/Client.js\";\nimport { ContractTemplates } from \"./api/resources/contractTemplates/client/Client.js\";\nimport { DeployedContracts } from \"./api/resources/deployedContracts/client/Client.js\";\nimport { ContractInteractions } from \"./api/resources/contractInteractions/client/Client.js\";\nimport { Tokenization } from \"./api/resources/tokenization/client/Client.js\";\nimport { Temporal } from \"./api/resources/temporal/client/Client.js\";\nimport { Assets } from \"./api/resources/assets/client/Client.js\";\n\nexport declare namespace OumlaSdkApiClient {\n export interface Options {\n environment?: core.Supplier<environments.OumlaSdkApiEnvironment | string>;\n /** Specify a custom URL to connect the client to. */\n baseUrl?: core.Supplier<string>;\n token?: core.Supplier<core.BearerToken | undefined>;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey: core.Supplier<string>;\n /** Additional headers to include in requests. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n\n export interface RequestOptions {\n /** The maximum time to wait for a response in seconds. */\n timeoutInSeconds?: number;\n /** The number of times to retry the request. Defaults to 2. */\n maxRetries?: number;\n /** A hook to abort the request. */\n abortSignal?: AbortSignal;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey?: string;\n /** Additional query string parameters to include in the request. */\n queryParams?: Record<string, unknown>;\n /** Additional headers to include in the request. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n}\n\nexport class OumlaSdkApiClient {\n protected readonly _options: OumlaSdkApiClient.Options;\n protected _profiles: Profiles | undefined;\n protected _wallets: Wallets | undefined;\n protected _addresses: Addresses | undefined;\n protected _transactions: Transactions | undefined;\n protected _withdrawals: Withdrawals | undefined;\n protected _contractTemplates: ContractTemplates | undefined;\n protected _deployedContracts: DeployedContracts | undefined;\n protected _contractInteractions: ContractInteractions | undefined;\n protected _tokenization: Tokenization | undefined;\n protected _temporal: Temporal | undefined;\n protected _assets: Assets | undefined;\n\n constructor(_options: OumlaSdkApiClient.Options) {\n this._options = {\n ..._options,\n headers: mergeHeaders(\n {\n \"x-sdk-version\": _options?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": _options?.apiKey,\n \"X-Fern-Language\": \"JavaScript\",\n \"X-Fern-Runtime\": core.RUNTIME.type,\n \"X-Fern-Runtime-Version\": core.RUNTIME.version,\n },\n _options?.headers,\n ),\n };\n }\n\n public get profiles(): Profiles {\n return (this._profiles ??= new Profiles(this._options));\n }\n\n public get wallets(): Wallets {\n return (this._wallets ??= new Wallets(this._options));\n }\n\n public get addresses(): Addresses {\n return (this._addresses ??= new Addresses(this._options));\n }\n\n public get transactions(): Transactions {\n return (this._transactions ??= new Transactions(this._options));\n }\n\n public get withdrawals(): Withdrawals {\n return (this._withdrawals ??= new Withdrawals(this._options));\n }\n\n public get contractTemplates(): ContractTemplates {\n return (this._contractTemplates ??= new ContractTemplates(this._options));\n }\n\n public get deployedContracts(): DeployedContracts {\n return (this._deployedContracts ??= new DeployedContracts(this._options));\n }\n\n public get contractInteractions(): ContractInteractions {\n return (this._contractInteractions ??= new ContractInteractions(this._options));\n }\n\n public get tokenization(): Tokenization {\n return (this._tokenization ??= new Tokenization(this._options));\n }\n\n public get temporal(): Temporal {\n return (this._temporal ??= new Temporal(this._options));\n }\n\n public get assets(): Assets {\n return (this._assets ??= new Assets(this._options));\n }\n}\n"]}
1
+ {"version":3,"sources":["../api/index.ts","../api/resources/portfolio/index.ts","../api/resources/portfolio/types/GetNativeBalanceRequestNetwork.ts","../api/resources/tokenization/index.ts","../api/resources/tokenization/client/requests/IssueNewTokenRequest.ts","../api/resources/contractTemplates/index.ts","../api/resources/deployedContracts/index.ts","../api/resources/deployedContracts/types/GetDeployedContractsRequestNetwork.ts","../api/resources/deployedContracts/types/GetDeployedContractByAddressRequestNetwork.ts","../api/resources/contractInteractions/index.ts","../api/resources/contractInteractions/types/GetDeployedContractAbiRequestNetwork.ts","../api/resources/contractInteractions/types/ReadCallFunctionRequestNetwork.ts","../api/resources/contractInteractions/types/WriteCallFunctionRequestNetwork.ts","../api/resources/contractInteractions/types/GetTransactionReceiptRequestNetwork.ts","../api/resources/profiles/index.ts","../api/resources/profiles/client/requests/CreateProfileRequest.ts","../api/resources/wallets/index.ts","../api/resources/wallets/client/requests/CreateWalletRequest.ts","../api/resources/addresses/index.ts","../api/resources/transactions/index.ts","../api/resources/temporal/index.ts","../api/resources/withdrawals/index.ts","../api/resources/withdrawals/client/requests/CreateWithdrawRequest.ts","../api/types/ErrorResponse.ts","../api/types/WalletData.ts","../api/types/CreateAddressRequest.ts","../api/types/AddressData.ts","../api/types/TransactionData.ts","../api/types/NativeBalanceData.ts","../api/types/TemporalWorkflowStatusData.ts","../api/types/TokenResponse.ts","../api/types/CollectionTokenDetailsResponse.ts","../api/types/ContractConstructorResponse.ts","../api/types/ContractFunctionsResponse.ts","../api/types/ContractAbiResponse.ts","../api/types/AddContractAbiResponse.ts","../api/types/ReadCallFunctionResponse.ts","../api/types/TokenData.ts","../api/types/CollectionData.ts","../api/types/CollectionTokenData.ts","../api/types/ContractTemplateFunction.ts","../api/types/DeployedContractData.ts","../api/types/DeployedContractByIdResponse.ts","../api/types/DeployedContractByAddressResponse.ts","../api/types/FetchContractAbiResponse.ts","../core/json.ts","../errors/OumlaSdkApiError.ts","../errors/OumlaSdkApiTimeoutError.ts","../api/errors/BadRequestError.ts","../api/errors/UnauthorizedError.ts","../api/errors/InternalServerError.ts","../api/errors/ForbiddenError.ts","../api/errors/ConflictError.ts","../api/errors/UnprocessableEntityError.ts","../api/errors/NotFoundError.ts","../api/errors/BadGatewayError.ts","../api/errors/ServiceUnavailableError.ts","../api/errors/GatewayTimeoutError.ts","../core/fetcher/EndpointSupplier.ts","../core/url/qs.ts","../core/fetcher/createRequestUrl.ts","../core/fetcher/BinaryResponse.ts","../core/fetcher/ResponseWithBody.ts","../core/fetcher/getResponseBody.ts","../core/fetcher/getErrorResponseBody.ts","../core/fetcher/getFetchFn.ts","../core/fetcher/getRequestBody.ts","../core/fetcher/signals.ts","../core/fetcher/makeRequest.ts","../core/fetcher/Headers.ts","../core/fetcher/RawResponse.ts","../core/fetcher/requestWithRetries.ts","../core/fetcher/Fetcher.ts","../core/fetcher/HttpResponsePromise.ts","../core/fetcher/Supplier.ts","../core/runtime/runtime.ts","../core/url/index.ts","../core/url/join.ts","../core/headers.ts","../environments.ts","../api/resources/profiles/client/Client.ts","../api/resources/wallets/client/Client.ts","../api/resources/addresses/client/Client.ts","../api/resources/transactions/client/Client.ts","../api/resources/portfolio/client/Client.ts","../api/resources/temporal/client/Client.ts","../api/resources/tokenization/client/Client.ts","../api/resources/contractTemplates/client/Client.ts","../api/resources/deployedContracts/client/Client.ts","../api/resources/contractInteractions/client/Client.ts","../api/resources/withdrawals/client/Client.ts","../Client.ts"],"names":["IssueNewTokenRequest","CreateProfileRequest","CreateWalletRequest","CreateWithdrawRequest","ErrorResponse","WalletData","CreateAddressRequest","AddressData","TransactionData","NativeBalanceData","TemporalWorkflowStatusData","TokenResponse","Token","CollectionTokenDetailsResponse","Collcetion","ContractConstructorResponse","ContractConstructor","ContractFunctionsResponse","ContractFunction","Item","ContractAbiResponse","ContractAbi","AddContractAbiResponse","Result","ReadCallFunctionResponse","Data","TokenData","TokenMetadata","CollectionData","CollectionTokenData","ContractTemplateFunction","DeployedContractData","DeployedContractByIdResponse","DeployedContract","DeployedContractByAddressResponse","FetchContractAbiResponse","text","Headers"],"mappings":"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","sourcesContent":["export * from \"./resources/index.js\";\nexport * from \"./types/index.js\";\nexport * from \"./errors/index.js\";\n","export * from \"./types/index.js\";\nexport * from \"./client/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const GetNativeBalanceRequestNetwork = {\n TBtc: \"tBTC\",\n TEth: \"tETH\",\n Avax: \"AVAX\",\n Fuji: \"FUJI\",\n Sandbox: \"SANDBOX\",\n} as const;\nexport type GetNativeBalanceRequestNetwork =\n (typeof GetNativeBalanceRequestNetwork)[keyof typeof GetNativeBalanceRequestNetwork];\n","export * from \"./types/index.js\";\nexport * from \"./client/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * @example\n * {\n * network: \"tBTC\",\n * addressId: \"addressId\",\n * clientShare: \"clientShare\",\n * createParams: {\n * \"key\": \"value\"\n * },\n * deploymentId: \"deploymentId\"\n * }\n */\nexport interface IssueNewTokenRequest {\n network: IssueNewTokenRequest.Network;\n addressId: string;\n clientShare: string;\n createParams: Record<string, unknown>;\n displayName?: string;\n deploymentId: string;\n useGasless?: boolean;\n fee?: string;\n feeLevel?: string;\n}\n\nexport namespace IssueNewTokenRequest {\n export const Network = {\n TBtc: \"tBTC\",\n TEth: \"tETH\",\n Avax: \"AVAX\",\n Fuji: \"FUJI\",\n Sandbox: \"SANDBOX\",\n } as const;\n export type Network = (typeof Network)[keyof typeof Network];\n}\n","export * from \"./types/index.js\";\nexport * from \"./client/index.js\";\n","export * from \"./types/index.js\";\nexport * from \"./client/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const GetDeployedContractsRequestNetwork = {\n TBtc: \"tBTC\",\n TEth: \"tETH\",\n Avax: \"AVAX\",\n Fuji: \"FUJI\",\n Sandbox: \"SANDBOX\",\n} as const;\nexport type GetDeployedContractsRequestNetwork =\n (typeof GetDeployedContractsRequestNetwork)[keyof typeof GetDeployedContractsRequestNetwork];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const GetDeployedContractByAddressRequestNetwork = {\n TBtc: \"tBTC\",\n TEth: \"tETH\",\n Avax: \"AVAX\",\n Fuji: \"FUJI\",\n Sandbox: \"SANDBOX\",\n} as const;\nexport type GetDeployedContractByAddressRequestNetwork =\n (typeof GetDeployedContractByAddressRequestNetwork)[keyof typeof GetDeployedContractByAddressRequestNetwork];\n","export * from \"./types/index.js\";\nexport * from \"./client/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const GetDeployedContractAbiRequestNetwork = {\n TBtc: \"tBTC\",\n TEth: \"tETH\",\n Avax: \"AVAX\",\n Fuji: \"FUJI\",\n Sandbox: \"SANDBOX\",\n} as const;\nexport type GetDeployedContractAbiRequestNetwork =\n (typeof GetDeployedContractAbiRequestNetwork)[keyof typeof GetDeployedContractAbiRequestNetwork];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const ReadCallFunctionRequestNetwork = {\n TBtc: \"tBTC\",\n TEth: \"tETH\",\n Avax: \"AVAX\",\n Fuji: \"FUJI\",\n Sandbox: \"SANDBOX\",\n} as const;\nexport type ReadCallFunctionRequestNetwork =\n (typeof ReadCallFunctionRequestNetwork)[keyof typeof ReadCallFunctionRequestNetwork];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const WriteCallFunctionRequestNetwork = {\n TBtc: \"tBTC\",\n TEth: \"tETH\",\n Avax: \"AVAX\",\n Fuji: \"FUJI\",\n Sandbox: \"SANDBOX\",\n} as const;\nexport type WriteCallFunctionRequestNetwork =\n (typeof WriteCallFunctionRequestNetwork)[keyof typeof WriteCallFunctionRequestNetwork];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const GetTransactionReceiptRequestNetwork = {\n TBtc: \"tBTC\",\n TEth: \"tETH\",\n Avax: \"AVAX\",\n Fuji: \"FUJI\",\n Sandbox: \"SANDBOX\",\n} as const;\nexport type GetTransactionReceiptRequestNetwork =\n (typeof GetTransactionReceiptRequestNetwork)[keyof typeof GetTransactionReceiptRequestNetwork];\n","export * from \"./client/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * @example\n * {\n * reference: \"user-123\",\n * type: \"User\"\n * }\n */\nexport interface CreateProfileRequest {\n /** Profile reference identifier */\n reference: string;\n /** Profile type */\n type: CreateProfileRequest.Type;\n}\n\nexport namespace CreateProfileRequest {\n /** Profile type */\n export const Type = {\n User: \"User\",\n Department: \"Department\",\n Merchant: \"Merchant\",\n } as const;\n export type Type = (typeof Type)[keyof typeof Type];\n}\n","export * from \"./client/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * @example\n * {\n * reference: \"user-123\",\n * network: \"tBTC\"\n * }\n */\nexport interface CreateWalletRequest {\n /** Profile reference */\n reference: string;\n /** Blockchain network */\n network: CreateWalletRequest.Network;\n}\n\nexport namespace CreateWalletRequest {\n /** Blockchain network */\n export const Network = {\n TBtc: \"tBTC\",\n TEth: \"tETH\",\n Avax: \"AVAX\",\n Fuji: \"FUJI\",\n Sandbox: \"SANDBOX\",\n } as const;\n export type Network = (typeof Network)[keyof typeof Network];\n}\n","export * from \"./client/index.js\";\n","export * from \"./client/index.js\";\n","export * from \"./client/index.js\";\n","export * from \"./client/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * @example\n * {\n * to: \"to\",\n * amount: \"amount\",\n * from: [\"from\"],\n * network: \"tBTC\",\n * clientShare: \"clientShare\"\n * }\n */\nexport interface CreateWithdrawRequest {\n to: string;\n amount: string;\n from: string[];\n network: CreateWithdrawRequest.Network;\n clientShare: string;\n}\n\nexport namespace CreateWithdrawRequest {\n export const Network = {\n TBtc: \"tBTC\",\n TEth: \"tETH\",\n Avax: \"AVAX\",\n Fuji: \"FUJI\",\n Sandbox: \"SANDBOX\",\n } as const;\n export type Network = (typeof Network)[keyof typeof Network];\n}\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * Error response object\n */\nexport interface ErrorResponse {\n /** Human-readable error message */\n message: string;\n /** Error code for programmatic error handling */\n code: string;\n category: ErrorResponse.Category;\n /** HTTP status code */\n statusCode: number;\n /** API path where error occurred */\n path: string;\n /** Timestamp when error occurred (ISO 8601) */\n timestamp: string;\n /** Unique request identifier for tracking and debugging */\n requestId?: string;\n /** Array of field-specific validation errors (only present for validation errors) */\n errors?: ErrorResponse.Errors.Item[];\n}\n\nexport namespace ErrorResponse {\n export const Category = {\n Conflict: \"CONFLICT\",\n Validation: \"VALIDATION\",\n Cryptographic: \"CRYPTOGRAPHIC\",\n Network: \"NETWORK\",\n Database: \"DATABASE\",\n ExternalService: \"EXTERNAL_SERVICE\",\n UnknownError: \"UNKNOWN_ERROR\",\n Resource: \"RESOURCE\",\n } as const;\n export type Category = (typeof Category)[keyof typeof Category];\n export type Errors = Errors.Item[];\n\n export namespace Errors {\n export interface Item {\n /** Field name that caused the error */\n field: string;\n /** Error message for the field */\n message: string;\n }\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * Wallet data object\n */\nexport interface WalletData {\n id?: string;\n date?: string;\n organizationId?: string;\n reference?: string;\n type?: string;\n network?: WalletData.Network;\n currentDeepIndex?: number;\n index?: number;\n path?: string;\n}\n\nexport namespace WalletData {\n export const Network = {\n TBtc: \"tBTC\",\n TEth: \"tETH\",\n Avax: \"AVAX\",\n Fuji: \"FUJI\",\n Sandbox: \"SANDBOX\",\n } as const;\n export type Network = (typeof Network)[keyof typeof Network];\n}\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * Create address request object\n */\nexport interface CreateAddressRequest {\n /** Profile reference */\n reference: string;\n /** Blockchain network */\n network: CreateAddressRequest.Network;\n /** Client share for wallet derivation */\n clientShare: string;\n}\n\nexport namespace CreateAddressRequest {\n /** Blockchain network */\n export const Network = {\n TBtc: \"tBTC\",\n TEth: \"tETH\",\n Avax: \"AVAX\",\n Fuji: \"FUJI\",\n Sandbox: \"SANDBOX\",\n } as const;\n export type Network = (typeof Network)[keyof typeof Network];\n}\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * Address data object\n */\nexport interface AddressData {\n address?: string;\n date?: string;\n label?: string;\n sub?: string;\n network?: AddressData.Network;\n /** Balance as decimal string */\n balance?: string;\n reference?: string;\n path?: string;\n id?: string;\n miniWalletId?: string;\n}\n\nexport namespace AddressData {\n export const Network = {\n TBtc: \"tBTC\",\n TEth: \"tETH\",\n Avax: \"AVAX\",\n Fuji: \"FUJI\",\n Sandbox: \"SANDBOX\",\n } as const;\n export type Network = (typeof Network)[keyof typeof Network];\n}\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * Transaction data object\n */\nexport interface TransactionData {\n addressFrom?: string;\n addressTo?: string;\n /** Transaction amount as decimal string */\n amount?: string;\n date?: string;\n isMempool?: boolean;\n isSpent?: boolean;\n status?: TransactionData.Status;\n updatedAt?: string;\n createdAt?: string;\n type?: TransactionData.Type;\n network?: TransactionData.Network;\n txid?: string;\n contractAddress?: string;\n tokenId?: string;\n txType?: string;\n /** Transaction fee as decimal string */\n fee?: string;\n}\n\nexport namespace TransactionData {\n export const Status = {\n Pending: \"Pending\",\n Confirmed: \"Confirmed\",\n } as const;\n export type Status = (typeof Status)[keyof typeof Status];\n export const Type = {\n Withdraw: \"Withdraw\",\n Deposit: \"Deposit\",\n } as const;\n export type Type = (typeof Type)[keyof typeof Type];\n export const Network = {\n TBtc: \"tBTC\",\n TEth: \"tETH\",\n Avax: \"AVAX\",\n Fuji: \"FUJI\",\n Sandbox: \"SANDBOX\",\n } as const;\n export type Network = (typeof Network)[keyof typeof Network];\n}\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * Native balance data object\n */\nexport interface NativeBalanceData {\n id?: string;\n walletId?: string;\n addressId?: string;\n network?: NativeBalanceData.Network;\n symbol?: string;\n /** Balance amount as decimal string */\n amount?: string;\n decimals?: number;\n createdAt?: string;\n updatedAt?: string;\n}\n\nexport namespace NativeBalanceData {\n export const Network = {\n TBtc: \"tBTC\",\n TEth: \"tETH\",\n Avax: \"AVAX\",\n Fuji: \"FUJI\",\n Sandbox: \"SANDBOX\",\n } as const;\n export type Network = (typeof Network)[keyof typeof Network];\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport * as OumlaSdkApi from \"../index.js\";\n\n/**\n * Temporal workflow status data object\n */\nexport interface TemporalWorkflowStatusData {\n /** Temporal workflow ID */\n workflowId: string;\n /** Temporal workflow run ID */\n runId: string;\n /** Workflow status */\n status: TemporalWorkflowStatusData.Status;\n /** Workflow start time in ISO 8601 format */\n startTime: string;\n /** Workflow close time in ISO 8601 format (null if still running) */\n closeTime?: string;\n /** Workflow execution time in milliseconds (null if still running) */\n executionTime?: number;\n /** Number of events in workflow history */\n historyLength: number;\n /** Workflow result (only present if workflow is completed) */\n result?: Record<string, unknown>;\n /** Workflow error (only present if workflow failed) */\n error?: OumlaSdkApi.TemporalWorkflowError;\n}\n\nexport namespace TemporalWorkflowStatusData {\n /** Workflow status */\n export const Status = {\n Running: \"RUNNING\",\n Completed: \"COMPLETED\",\n Failed: \"FAILED\",\n Canceled: \"CANCELED\",\n Terminated: \"TERMINATED\",\n ContinuedAsNew: \"CONTINUED_AS_NEW\",\n TimedOut: \"TIMED_OUT\",\n } as const;\n export type Status = (typeof Status)[keyof typeof Status];\n}\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * Token response object\n */\nexport interface TokenResponse {\n token?: TokenResponse.Token;\n}\n\nexport namespace TokenResponse {\n export interface Token {\n id?: string;\n organizationId?: string;\n sub?: string;\n name?: string;\n symbol?: string;\n decimals?: number;\n description?: string;\n type?: string;\n contractAddress?: string;\n contractTemplateId?: string;\n contractDeploymentId?: string;\n network?: Token.Network;\n addressId?: string;\n customerRefId?: string;\n tags?: string[];\n status?: string;\n createdAt?: string;\n updatedAt?: string;\n }\n\n export namespace Token {\n export const Network = {\n TBtc: \"tBTC\",\n TEth: \"tETH\",\n Avax: \"AVAX\",\n Fuji: \"FUJI\",\n Sandbox: \"SANDBOX\",\n } as const;\n export type Network = (typeof Network)[keyof typeof Network];\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * Collection token details response object\n */\nexport interface CollectionTokenDetailsResponse {\n collcetion?: CollectionTokenDetailsResponse.Collcetion;\n}\n\nexport namespace CollectionTokenDetailsResponse {\n export interface Collcetion {\n id?: string;\n collectionId?: string;\n name?: string;\n symbol?: string;\n network?: Collcetion.Network;\n addressId?: string;\n contractAddress?: string;\n status?: Collcetion.Status;\n recipientAddress?: string;\n mintTransactionHash?: string;\n burnTransactionHash?: string;\n mintedAt?: string;\n burnedAt?: string;\n metadata?: Collcetion.Metadata;\n mintRecord?: Collcetion.MintRecord;\n burnRecord?: Collcetion.BurnRecord;\n }\n\n export namespace Collcetion {\n export const Network = {\n TBtc: \"tBTC\",\n TEth: \"tETH\",\n Avax: \"AVAX\",\n Fuji: \"FUJI\",\n Sandbox: \"SANDBOX\",\n } as const;\n export type Network = (typeof Network)[keyof typeof Network];\n export const Status = {\n Active: \"ACTIVE\",\n Burned: \"BURNED\",\n } as const;\n export type Status = (typeof Status)[keyof typeof Status];\n\n export interface Metadata {\n name?: string;\n description?: string;\n image?: string;\n animation_url?: string;\n external_url?: string;\n attributes?: Metadata.Attributes.Item[];\n }\n\n export namespace Metadata {\n export type Attributes = Attributes.Item[];\n\n export namespace Attributes {\n export interface Item {\n trait_type?: string;\n value?: string;\n display_type?: string;\n }\n }\n }\n\n export interface MintRecord {\n id?: string;\n amount?: string;\n note?: string;\n status?: string;\n createdAt?: string;\n updatedAt?: string;\n }\n\n export interface BurnRecord {\n id?: string;\n amount?: string;\n note?: string;\n status?: string;\n createdAt?: string;\n updatedAt?: string;\n }\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * Contract constructor response object\n */\nexport interface ContractConstructorResponse {\n contractConstructor?: ContractConstructorResponse.ContractConstructor;\n}\n\nexport namespace ContractConstructorResponse {\n export interface ContractConstructor {\n id?: string;\n stateMutability?: ContractConstructor.StateMutability;\n type?: ContractConstructor.Type;\n inputs?: Record<string, unknown>[];\n outputs?: Record<string, unknown>[];\n }\n\n export namespace ContractConstructor {\n export const StateMutability = {\n Pure: \"pure\",\n View: \"view\",\n Nonpayable: \"nonpayable\",\n Payable: \"payable\",\n } as const;\n export type StateMutability = (typeof StateMutability)[keyof typeof StateMutability];\n export const Type = {\n Function: \"function\",\n Constructor: \"constructor\",\n Event: \"event\",\n Error: \"error\",\n Fallback: \"fallback\",\n Receive: \"receive\",\n } as const;\n export type Type = (typeof Type)[keyof typeof Type];\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * Contract functions response object\n */\nexport interface ContractFunctionsResponse {\n contractFunction?: ContractFunctionsResponse.ContractFunction.Item[];\n}\n\nexport namespace ContractFunctionsResponse {\n export type ContractFunction = ContractFunction.Item[];\n\n export namespace ContractFunction {\n export interface Item {\n id?: string;\n name?: string;\n stateMutability?: Item.StateMutability;\n type?: Item.Type;\n inputs?: Record<string, unknown>[];\n outputs?: Record<string, unknown>[];\n }\n\n export namespace Item {\n export const StateMutability = {\n Pure: \"pure\",\n View: \"view\",\n Nonpayable: \"nonpayable\",\n Payable: \"payable\",\n } as const;\n export type StateMutability = (typeof StateMutability)[keyof typeof StateMutability];\n export const Type = {\n Function: \"function\",\n Constructor: \"constructor\",\n Event: \"event\",\n Error: \"error\",\n Fallback: \"fallback\",\n Receive: \"receive\",\n } as const;\n export type Type = (typeof Type)[keyof typeof Type];\n }\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * Contract abi response object\n */\nexport interface ContractAbiResponse {\n contractAbi?: ContractAbiResponse.ContractAbi;\n}\n\nexport namespace ContractAbiResponse {\n export interface ContractAbi {\n abi?: Record<string, unknown>[];\n contractAddress?: string;\n network?: ContractAbi.Network;\n implementationAddress?: string;\n status?: string;\n source?: string;\n }\n\n export namespace ContractAbi {\n export const Network = {\n TBtc: \"tBTC\",\n TEth: \"tETH\",\n Avax: \"AVAX\",\n Fuji: \"FUJI\",\n Sandbox: \"SANDBOX\",\n } as const;\n export type Network = (typeof Network)[keyof typeof Network];\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * Add contract abi response object\n */\nexport interface AddContractAbiResponse {\n result?: AddContractAbiResponse.Result;\n}\n\nexport namespace AddContractAbiResponse {\n export interface Result {\n contractAddress?: string;\n network?: Result.Network;\n name?: string;\n abi?: Record<string, unknown>[];\n status?: string;\n source?: string;\n message?: string;\n tenantId?: string;\n userId?: string;\n }\n\n export namespace Result {\n export const Network = {\n TBtc: \"tBTC\",\n TEth: \"tETH\",\n Avax: \"AVAX\",\n Fuji: \"FUJI\",\n Sandbox: \"SANDBOX\",\n } as const;\n export type Network = (typeof Network)[keyof typeof Network];\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * Read call function response object\n */\nexport interface ReadCallFunctionResponse {\n result?: ReadCallFunctionResponse.Result;\n}\n\nexport namespace ReadCallFunctionResponse {\n export interface Result {\n data?: Result.Data;\n success?: boolean;\n status?: number;\n }\n\n export namespace Result {\n export interface Data {\n /** Decoded function result */\n result?: Record<string, unknown>;\n functionName?: string;\n contractAddress?: string;\n network?: Data.Network;\n encodedData?: string;\n }\n\n export namespace Data {\n export const Network = {\n TBtc: \"tBTC\",\n TEth: \"tETH\",\n Avax: \"AVAX\",\n Fuji: \"FUJI\",\n Sandbox: \"SANDBOX\",\n } as const;\n export type Network = (typeof Network)[keyof typeof Network];\n }\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * Token data object\n */\nexport interface TokenData {\n id?: string;\n status?: string;\n type?: string;\n displayName?: string;\n tokenMetadata?: TokenData.TokenMetadata;\n}\n\nexport namespace TokenData {\n export interface TokenMetadata {\n name?: string;\n symbol?: string;\n decimals?: number;\n standard?: string;\n network?: TokenMetadata.Network;\n contractAddress?: string;\n contractTemplateId?: string;\n contractDeploymentId?: string;\n addressId?: string;\n }\n\n export namespace TokenMetadata {\n export const Network = {\n TBtc: \"tBTC\",\n TEth: \"tETH\",\n Avax: \"AVAX\",\n Fuji: \"FUJI\",\n Sandbox: \"SANDBOX\",\n } as const;\n export type Network = (typeof Network)[keyof typeof Network];\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * Collection data object\n */\nexport interface CollectionData {\n id?: string;\n status?: string;\n type?: string;\n displayName?: string;\n createdAt?: string;\n updatedAt?: string;\n network?: CollectionData.Network;\n collectionMetadata?: CollectionData.CollectionMetadata;\n}\n\nexport namespace CollectionData {\n export const Network = {\n TBtc: \"tBTC\",\n TEth: \"tETH\",\n Avax: \"AVAX\",\n Fuji: \"FUJI\",\n Sandbox: \"SANDBOX\",\n } as const;\n export type Network = (typeof Network)[keyof typeof Network];\n\n export interface CollectionMetadata {\n name?: string;\n symbol?: string;\n standard?: string;\n contractAddress?: string;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * Collection token data object\n */\nexport interface CollectionTokenData {\n id?: string;\n status?: string;\n type?: CollectionTokenData.Type;\n metaData?: Record<string, unknown>;\n addressId?: string;\n amount?: string;\n createdAt?: string;\n updatedAt?: string;\n transactionHash?: string;\n tokenId?: string;\n}\n\nexport namespace CollectionTokenData {\n export const Type = {\n Mint: \"MINT\",\n Burn: \"BURN\",\n } as const;\n export type Type = (typeof Type)[keyof typeof Type];\n}\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * Contract template function\n */\nexport interface ContractTemplateFunction {\n name?: string;\n stateMutability?: ContractTemplateFunction.StateMutability;\n type?: ContractTemplateFunction.Type;\n inputs?: Record<string, unknown>[];\n outputs?: Record<string, unknown>[];\n description?: string;\n}\n\nexport namespace ContractTemplateFunction {\n export const StateMutability = {\n Pure: \"pure\",\n View: \"view\",\n Nonpayable: \"nonpayable\",\n Payable: \"payable\",\n } as const;\n export type StateMutability = (typeof StateMutability)[keyof typeof StateMutability];\n export const Type = {\n Function: \"function\",\n Constructor: \"constructor\",\n Event: \"event\",\n Error: \"error\",\n Fallback: \"fallback\",\n Receive: \"receive\",\n } as const;\n export type Type = (typeof Type)[keyof typeof Type];\n}\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * Deployed contract data object\n */\nexport interface DeployedContractData {\n id?: string;\n contractAddress?: string;\n network?: DeployedContractData.Network;\n contractTemplateId?: string;\n}\n\nexport namespace DeployedContractData {\n export const Network = {\n TBtc: \"tBTC\",\n TEth: \"tETH\",\n Avax: \"AVAX\",\n Fuji: \"FUJI\",\n Sandbox: \"SANDBOX\",\n } as const;\n export type Network = (typeof Network)[keyof typeof Network];\n}\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * Deployed contract by id response object\n */\nexport interface DeployedContractByIdResponse {\n deployedContract?: DeployedContractByIdResponse.DeployedContract;\n}\n\nexport namespace DeployedContractByIdResponse {\n export interface DeployedContract {\n id?: string;\n contractAddress?: string;\n network?: DeployedContract.Network;\n contractTemplateId?: string;\n deployerAddressId?: string;\n }\n\n export namespace DeployedContract {\n export const Network = {\n TBtc: \"tBTC\",\n TEth: \"tETH\",\n Avax: \"AVAX\",\n Fuji: \"FUJI\",\n Sandbox: \"SANDBOX\",\n } as const;\n export type Network = (typeof Network)[keyof typeof Network];\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * Deployed contract by address response object\n */\nexport interface DeployedContractByAddressResponse {\n deployedContract?: DeployedContractByAddressResponse.DeployedContract;\n}\n\nexport namespace DeployedContractByAddressResponse {\n export interface DeployedContract {\n id?: string;\n contractAddress?: string;\n network?: DeployedContract.Network;\n contractTemplateId?: string;\n vauldAccountId?: string;\n }\n\n export namespace DeployedContract {\n export const Network = {\n TBtc: \"tBTC\",\n TEth: \"tETH\",\n Avax: \"AVAX\",\n Fuji: \"FUJI\",\n Sandbox: \"SANDBOX\",\n } as const;\n export type Network = (typeof Network)[keyof typeof Network];\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * Fetch contract abi response object\n */\nexport interface FetchContractAbiResponse {\n contractAbi?: FetchContractAbiResponse.ContractAbi;\n}\n\nexport namespace FetchContractAbiResponse {\n export interface ContractAbi {\n abi?: Record<string, unknown>[];\n contractAddress?: string;\n network?: ContractAbi.Network;\n status?: string;\n source?: ContractAbi.Source;\n tenantId?: string;\n userId?: string;\n }\n\n export namespace ContractAbi {\n export const Network = {\n TBtc: \"tBTC\",\n TEth: \"tETH\",\n Avax: \"AVAX\",\n Fuji: \"FUJI\",\n Sandbox: \"SANDBOX\",\n } as const;\n export type Network = (typeof Network)[keyof typeof Network];\n export const Source = {\n TenantDatabase: \"tenant_database\",\n Database: \"database\",\n Blockchain: \"blockchain\",\n } as const;\n export type Source = (typeof Source)[keyof typeof Source];\n }\n}\n","/**\n * Serialize a value to JSON\n * @param value A JavaScript value, usually an object or array, to be converted.\n * @param replacer A function that transforms the results.\n * @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.\n * @returns JSON string\n */\nexport const toJson = (\n value: unknown,\n replacer?: (this: unknown, key: string, value: unknown) => unknown,\n space?: string | number,\n): string => {\n return JSON.stringify(value, replacer, space);\n};\n\n/**\n * Parse JSON string to object, array, or other type\n * @param text A valid JSON string.\n * @param reviver A function that transforms the results. This function is called for each member of the object. If a member contains nested objects, the nested objects are transformed before the parent object is.\n * @returns Parsed object, array, or other type\n */\nexport function fromJson<T = unknown>(\n text: string,\n reviver?: (this: unknown, key: string, value: unknown) => unknown,\n): T {\n return JSON.parse(text, reviver);\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport * as core from \"../core/index.js\";\nimport { toJson } from \"../core/json.js\";\n\nexport class OumlaSdkApiError extends Error {\n public readonly statusCode?: number;\n public readonly body?: unknown;\n public readonly rawResponse?: core.RawResponse;\n\n constructor({\n message,\n statusCode,\n body,\n rawResponse,\n }: {\n message?: string;\n statusCode?: number;\n body?: unknown;\n rawResponse?: core.RawResponse;\n }) {\n super(buildMessage({ message, statusCode, body }));\n Object.setPrototypeOf(this, OumlaSdkApiError.prototype);\n this.statusCode = statusCode;\n this.body = body;\n this.rawResponse = rawResponse;\n }\n}\n\nfunction buildMessage({\n message,\n statusCode,\n body,\n}: {\n message: string | undefined;\n statusCode: number | undefined;\n body: unknown | undefined;\n}): string {\n let lines: string[] = [];\n if (message != null) {\n lines.push(message);\n }\n\n if (statusCode != null) {\n lines.push(`Status code: ${statusCode.toString()}`);\n }\n\n if (body != null) {\n lines.push(`Body: ${toJson(body, undefined, 2)}`);\n }\n\n return lines.join(\"\\n\");\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nexport class OumlaSdkApiTimeoutError extends Error {\n constructor(message: string) {\n super(message);\n Object.setPrototypeOf(this, OumlaSdkApiTimeoutError.prototype);\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport * as errors from \"../../errors/index.js\";\nimport * as OumlaSdkApi from \"../index.js\";\nimport * as core from \"../../core/index.js\";\n\nexport class BadRequestError extends errors.OumlaSdkApiError {\n constructor(body: OumlaSdkApi.ErrorResponse, rawResponse?: core.RawResponse) {\n super({\n message: \"BadRequestError\",\n statusCode: 400,\n body: body,\n rawResponse: rawResponse,\n });\n Object.setPrototypeOf(this, BadRequestError.prototype);\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport * as errors from \"../../errors/index.js\";\nimport * as OumlaSdkApi from \"../index.js\";\nimport * as core from \"../../core/index.js\";\n\nexport class UnauthorizedError extends errors.OumlaSdkApiError {\n constructor(body: OumlaSdkApi.ErrorResponse, rawResponse?: core.RawResponse) {\n super({\n message: \"UnauthorizedError\",\n statusCode: 401,\n body: body,\n rawResponse: rawResponse,\n });\n Object.setPrototypeOf(this, UnauthorizedError.prototype);\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport * as errors from \"../../errors/index.js\";\nimport * as OumlaSdkApi from \"../index.js\";\nimport * as core from \"../../core/index.js\";\n\nexport class InternalServerError extends errors.OumlaSdkApiError {\n constructor(body: OumlaSdkApi.ErrorResponse, rawResponse?: core.RawResponse) {\n super({\n message: \"InternalServerError\",\n statusCode: 500,\n body: body,\n rawResponse: rawResponse,\n });\n Object.setPrototypeOf(this, InternalServerError.prototype);\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport * as errors from \"../../errors/index.js\";\nimport * as OumlaSdkApi from \"../index.js\";\nimport * as core from \"../../core/index.js\";\n\nexport class ForbiddenError extends errors.OumlaSdkApiError {\n constructor(body: OumlaSdkApi.ErrorResponse, rawResponse?: core.RawResponse) {\n super({\n message: \"ForbiddenError\",\n statusCode: 403,\n body: body,\n rawResponse: rawResponse,\n });\n Object.setPrototypeOf(this, ForbiddenError.prototype);\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport * as errors from \"../../errors/index.js\";\nimport * as OumlaSdkApi from \"../index.js\";\nimport * as core from \"../../core/index.js\";\n\nexport class ConflictError extends errors.OumlaSdkApiError {\n constructor(body: OumlaSdkApi.ErrorResponse, rawResponse?: core.RawResponse) {\n super({\n message: \"ConflictError\",\n statusCode: 409,\n body: body,\n rawResponse: rawResponse,\n });\n Object.setPrototypeOf(this, ConflictError.prototype);\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport * as errors from \"../../errors/index.js\";\nimport * as OumlaSdkApi from \"../index.js\";\nimport * as core from \"../../core/index.js\";\n\nexport class UnprocessableEntityError extends errors.OumlaSdkApiError {\n constructor(body: OumlaSdkApi.ErrorResponse, rawResponse?: core.RawResponse) {\n super({\n message: \"UnprocessableEntityError\",\n statusCode: 422,\n body: body,\n rawResponse: rawResponse,\n });\n Object.setPrototypeOf(this, UnprocessableEntityError.prototype);\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport * as errors from \"../../errors/index.js\";\nimport * as OumlaSdkApi from \"../index.js\";\nimport * as core from \"../../core/index.js\";\n\nexport class NotFoundError extends errors.OumlaSdkApiError {\n constructor(body: OumlaSdkApi.ErrorResponse, rawResponse?: core.RawResponse) {\n super({\n message: \"NotFoundError\",\n statusCode: 404,\n body: body,\n rawResponse: rawResponse,\n });\n Object.setPrototypeOf(this, NotFoundError.prototype);\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport * as errors from \"../../errors/index.js\";\nimport * as OumlaSdkApi from \"../index.js\";\nimport * as core from \"../../core/index.js\";\n\nexport class BadGatewayError extends errors.OumlaSdkApiError {\n constructor(body: OumlaSdkApi.ErrorResponse, rawResponse?: core.RawResponse) {\n super({\n message: \"BadGatewayError\",\n statusCode: 502,\n body: body,\n rawResponse: rawResponse,\n });\n Object.setPrototypeOf(this, BadGatewayError.prototype);\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport * as errors from \"../../errors/index.js\";\nimport * as OumlaSdkApi from \"../index.js\";\nimport * as core from \"../../core/index.js\";\n\nexport class ServiceUnavailableError extends errors.OumlaSdkApiError {\n constructor(body: OumlaSdkApi.ErrorResponse, rawResponse?: core.RawResponse) {\n super({\n message: \"ServiceUnavailableError\",\n statusCode: 503,\n body: body,\n rawResponse: rawResponse,\n });\n Object.setPrototypeOf(this, ServiceUnavailableError.prototype);\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport * as errors from \"../../errors/index.js\";\nimport * as OumlaSdkApi from \"../index.js\";\nimport * as core from \"../../core/index.js\";\n\nexport class GatewayTimeoutError extends errors.OumlaSdkApiError {\n constructor(body: OumlaSdkApi.ErrorResponse, rawResponse?: core.RawResponse) {\n super({\n message: \"GatewayTimeoutError\",\n statusCode: 504,\n body: body,\n rawResponse: rawResponse,\n });\n Object.setPrototypeOf(this, GatewayTimeoutError.prototype);\n }\n}\n","import { EndpointMetadata } from \"./EndpointMetadata.js\";\nimport { Supplier } from \"./Supplier.js\";\n\ntype EndpointSupplierFn<T> = (arg: { endpointMetadata: EndpointMetadata }) => T | Promise<T>;\nexport type EndpointSupplier<T> = Supplier<T> | EndpointSupplierFn<T>;\nexport const EndpointSupplier = {\n get: async <T>(supplier: EndpointSupplier<T>, arg: { endpointMetadata: EndpointMetadata }): Promise<T> => {\n if (typeof supplier === \"function\") {\n return (supplier as EndpointSupplierFn<T>)(arg);\n } else {\n return supplier;\n }\n },\n};\n","interface QueryStringOptions {\n arrayFormat?: \"indices\" | \"repeat\";\n encode?: boolean;\n}\n\nconst defaultQsOptions: Required<QueryStringOptions> = {\n arrayFormat: \"indices\",\n encode: true,\n} as const;\n\nfunction encodeValue(value: unknown, shouldEncode: boolean): string {\n if (value === undefined) {\n return \"\";\n }\n if (value === null) {\n return \"\";\n }\n const stringValue = String(value);\n return shouldEncode ? encodeURIComponent(stringValue) : stringValue;\n}\n\nfunction stringifyObject(obj: Record<string, unknown>, prefix = \"\", options: Required<QueryStringOptions>): string[] {\n const parts: string[] = [];\n\n for (const [key, value] of Object.entries(obj)) {\n const fullKey = prefix ? `${prefix}[${key}]` : key;\n\n if (value === undefined) {\n continue;\n }\n\n if (Array.isArray(value)) {\n if (value.length === 0) {\n continue;\n }\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n if (item === undefined) {\n continue;\n }\n if (typeof item === \"object\" && !Array.isArray(item) && item !== null) {\n const arrayKey = options.arrayFormat === \"indices\" ? `${fullKey}[${i}]` : fullKey;\n parts.push(...stringifyObject(item as Record<string, unknown>, arrayKey, options));\n } else {\n const arrayKey = options.arrayFormat === \"indices\" ? `${fullKey}[${i}]` : fullKey;\n const encodedKey = options.encode ? encodeURIComponent(arrayKey) : arrayKey;\n parts.push(`${encodedKey}=${encodeValue(item, options.encode)}`);\n }\n }\n } else if (typeof value === \"object\" && value !== null) {\n if (Object.keys(value as Record<string, unknown>).length === 0) {\n continue;\n }\n parts.push(...stringifyObject(value as Record<string, unknown>, fullKey, options));\n } else {\n const encodedKey = options.encode ? encodeURIComponent(fullKey) : fullKey;\n parts.push(`${encodedKey}=${encodeValue(value, options.encode)}`);\n }\n }\n\n return parts;\n}\n\nexport function toQueryString(obj: unknown, options?: QueryStringOptions): string {\n if (obj == null || typeof obj !== \"object\") {\n return \"\";\n }\n\n const parts = stringifyObject(obj as Record<string, unknown>, \"\", {\n ...defaultQsOptions,\n ...options,\n });\n return parts.join(\"&\");\n}\n","import { toQueryString } from \"../url/qs.js\";\n\nexport function createRequestUrl(baseUrl: string, queryParameters?: Record<string, unknown>): string {\n const queryString = toQueryString(queryParameters, { arrayFormat: \"repeat\" });\n return queryString ? `${baseUrl}?${queryString}` : baseUrl;\n}\n","import { ResponseWithBody } from \"./ResponseWithBody.js\";\n\nexport type BinaryResponse = {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/bodyUsed) */\n bodyUsed: boolean;\n /**\n * Returns a ReadableStream of the response body.\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/body)\n */\n stream: () => ReadableStream<Uint8Array>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/arrayBuffer) */\n arrayBuffer: () => Promise<ArrayBuffer>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/blob) */\n blob: () => Promise<Blob>;\n /**\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/bytes)\n * Some versions of the Fetch API may not support this method.\n */\n bytes?(): Promise<Uint8Array>;\n};\n\nexport function getBinaryResponse(response: ResponseWithBody): BinaryResponse {\n const binaryResponse: BinaryResponse = {\n get bodyUsed() {\n return response.bodyUsed;\n },\n stream: () => response.body,\n arrayBuffer: response.arrayBuffer.bind(response),\n blob: response.blob.bind(response),\n };\n if (\"bytes\" in response && typeof response.bytes === \"function\") {\n binaryResponse.bytes = response.bytes.bind(response);\n }\n\n return binaryResponse;\n}\n","export type ResponseWithBody = Response & {\n body: ReadableStream<Uint8Array>;\n};\n\nexport function isResponseWithBody(response: Response): response is ResponseWithBody {\n return (response as ResponseWithBody).body != null;\n}\n","import { getBinaryResponse } from \"./BinaryResponse.js\";\nimport { isResponseWithBody } from \"./ResponseWithBody.js\";\nimport { fromJson } from \"../json.js\";\n\nexport async function getResponseBody(response: Response, responseType?: string): Promise<unknown> {\n if (!isResponseWithBody(response)) {\n return undefined;\n }\n switch (responseType) {\n case \"binary-response\":\n return getBinaryResponse(response);\n case \"blob\":\n return await response.blob();\n case \"arrayBuffer\":\n return await response.arrayBuffer();\n case \"sse\":\n return response.body;\n case \"streaming\":\n return response.body;\n\n case \"text\":\n return await response.text();\n }\n\n // if responseType is \"json\" or not specified, try to parse as JSON\n const text = await response.text();\n if (text.length > 0) {\n try {\n let responseBody = fromJson(text);\n return responseBody;\n } catch (err) {\n return {\n ok: false,\n error: {\n reason: \"non-json\",\n statusCode: response.status,\n rawBody: text,\n },\n };\n }\n }\n return undefined;\n}\n","import { fromJson } from \"../json.js\";\nimport { getResponseBody } from \"./getResponseBody.js\";\n\nexport async function getErrorResponseBody(response: Response): Promise<unknown> {\n let contentType = response.headers.get(\"Content-Type\")?.toLowerCase();\n if (contentType == null || contentType.length === 0) {\n return getResponseBody(response);\n }\n\n if (contentType.indexOf(\";\") !== -1) {\n contentType = contentType.split(\";\")[0]?.trim() ?? \"\";\n }\n switch (contentType) {\n case \"application/hal+json\":\n case \"application/json\":\n case \"application/ld+json\":\n case \"application/problem+json\":\n case \"application/vnd.api+json\":\n case \"text/json\":\n const text = await response.text();\n return text.length > 0 ? fromJson(text) : undefined;\n default:\n if (contentType.startsWith(\"application/vnd.\") && contentType.endsWith(\"+json\")) {\n const text = await response.text();\n return text.length > 0 ? fromJson(text) : undefined;\n }\n\n // Fallback to plain text if content type is not recognized\n // Even if no body is present, the response will be an empty string\n return await response.text();\n }\n}\n","export async function getFetchFn(): Promise<typeof fetch> {\n return fetch;\n}\n","import { toJson } from \"../json.js\";\n\nexport declare namespace GetRequestBody {\n interface Args {\n body: unknown;\n type: \"json\" | \"file\" | \"bytes\" | \"other\";\n }\n}\n\nexport async function getRequestBody({ body, type }: GetRequestBody.Args): Promise<BodyInit | undefined> {\n if (type.includes(\"json\")) {\n return toJson(body);\n } else {\n return body as BodyInit;\n }\n}\n","const TIMEOUT = \"timeout\";\n\nexport function getTimeoutSignal(timeoutMs: number): { signal: AbortSignal; abortId: NodeJS.Timeout } {\n const controller = new AbortController();\n const abortId = setTimeout(() => controller.abort(TIMEOUT), timeoutMs);\n return { signal: controller.signal, abortId };\n}\n\n/**\n * Returns an abort signal that is getting aborted when\n * at least one of the specified abort signals is aborted.\n *\n * Requires at least node.js 18.\n */\nexport function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal {\n // Allowing signals to be passed either as array\n // of signals or as multiple arguments.\n const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args) as AbortSignal[];\n\n const controller = new AbortController();\n\n for (const signal of signals) {\n if (signal.aborted) {\n // Exiting early if one of the signals\n // is already aborted.\n controller.abort((signal as any)?.reason);\n break;\n }\n\n // Listening for signals and removing the listeners\n // when at least one symbol is aborted.\n signal.addEventListener(\"abort\", () => controller.abort((signal as any)?.reason), {\n signal: controller.signal,\n });\n }\n\n return controller.signal;\n}\n","import { anySignal, getTimeoutSignal } from \"./signals.js\";\n\nexport const makeRequest = async (\n fetchFn: (url: string, init: RequestInit) => Promise<Response>,\n url: string,\n method: string,\n headers: Record<string, string>,\n requestBody: BodyInit | undefined,\n timeoutMs?: number,\n abortSignal?: AbortSignal,\n withCredentials?: boolean,\n duplex?: \"half\",\n): Promise<Response> => {\n const signals: AbortSignal[] = [];\n\n // Add timeout signal\n let timeoutAbortId: NodeJS.Timeout | undefined = undefined;\n if (timeoutMs != null) {\n const { signal, abortId } = getTimeoutSignal(timeoutMs);\n timeoutAbortId = abortId;\n signals.push(signal);\n }\n\n // Add arbitrary signal\n if (abortSignal != null) {\n signals.push(abortSignal);\n }\n let newSignals = anySignal(signals);\n const response = await fetchFn(url, {\n method: method,\n headers,\n body: requestBody,\n signal: newSignals,\n credentials: withCredentials ? \"include\" : undefined,\n // @ts-ignore\n duplex,\n });\n\n if (timeoutAbortId != null) {\n clearTimeout(timeoutAbortId);\n }\n\n return response;\n};\n","let Headers: typeof globalThis.Headers;\n\nif (typeof globalThis.Headers !== \"undefined\") {\n Headers = globalThis.Headers;\n} else {\n Headers = class Headers implements Headers {\n private headers: Map<string, string[]>;\n\n constructor(init?: HeadersInit) {\n this.headers = new Map();\n\n if (init) {\n if (init instanceof Headers) {\n init.forEach((value, key) => this.append(key, value));\n } else if (Array.isArray(init)) {\n for (const [key, value] of init) {\n if (typeof key === \"string\" && typeof value === \"string\") {\n this.append(key, value);\n } else {\n throw new TypeError(\"Each header entry must be a [string, string] tuple\");\n }\n }\n } else {\n for (const [key, value] of Object.entries(init)) {\n if (typeof value === \"string\") {\n this.append(key, value);\n } else {\n throw new TypeError(\"Header values must be strings\");\n }\n }\n }\n }\n }\n\n append(name: string, value: string): void {\n const key = name.toLowerCase();\n const existing = this.headers.get(key) || [];\n this.headers.set(key, [...existing, value]);\n }\n\n delete(name: string): void {\n const key = name.toLowerCase();\n this.headers.delete(key);\n }\n\n get(name: string): string | null {\n const key = name.toLowerCase();\n const values = this.headers.get(key);\n return values ? values.join(\", \") : null;\n }\n\n has(name: string): boolean {\n const key = name.toLowerCase();\n return this.headers.has(key);\n }\n\n set(name: string, value: string): void {\n const key = name.toLowerCase();\n this.headers.set(key, [value]);\n }\n\n forEach(callbackfn: (value: string, key: string, parent: Headers) => void, thisArg?: unknown): void {\n const boundCallback = thisArg ? callbackfn.bind(thisArg) : callbackfn;\n this.headers.forEach((values, key) => boundCallback(values.join(\", \"), key, this));\n }\n\n getSetCookie(): string[] {\n return this.headers.get(\"set-cookie\") || [];\n }\n\n *entries(): HeadersIterator<[string, string]> {\n for (const [key, values] of this.headers.entries()) {\n yield [key, values.join(\", \")];\n }\n }\n\n *keys(): HeadersIterator<string> {\n yield* this.headers.keys();\n }\n\n *values(): HeadersIterator<string> {\n for (const values of this.headers.values()) {\n yield values.join(\", \");\n }\n }\n\n [Symbol.iterator](): HeadersIterator<[string, string]> {\n return this.entries();\n }\n };\n}\n\nexport { Headers };\n","import { Headers } from \"./Headers.js\";\n\n/**\n * The raw response from the fetch call excluding the body.\n */\nexport type RawResponse = Omit<\n {\n [K in keyof Response as Response[K] extends Function ? never : K]: Response[K]; // strips out functions\n },\n \"ok\" | \"body\" | \"bodyUsed\"\n>; // strips out body and bodyUsed\n\n/**\n * A raw response indicating that the request was aborted.\n */\nexport const abortRawResponse: RawResponse = {\n headers: new Headers(),\n redirected: false,\n status: 499,\n statusText: \"Client Closed Request\",\n type: \"error\",\n url: \"\",\n} as const;\n\n/**\n * A raw response indicating an unknown error.\n */\nexport const unknownRawResponse: RawResponse = {\n headers: new Headers(),\n redirected: false,\n status: 0,\n statusText: \"Unknown Error\",\n type: \"error\",\n url: \"\",\n} as const;\n\n/**\n * Converts a `RawResponse` object into a `RawResponse` by extracting its properties,\n * excluding the `body` and `bodyUsed` fields.\n *\n * @param response - The `RawResponse` object to convert.\n * @returns A `RawResponse` object containing the extracted properties of the input response.\n */\nexport function toRawResponse(response: Response): RawResponse {\n return {\n headers: response.headers,\n redirected: response.redirected,\n status: response.status,\n statusText: response.statusText,\n type: response.type,\n url: response.url,\n };\n}\n\n/**\n * Creates a `RawResponse` from a standard `Response` object.\n */\nexport interface WithRawResponse<T> {\n readonly data: T;\n readonly rawResponse: RawResponse;\n}\n","const INITIAL_RETRY_DELAY = 1000; // in milliseconds\nconst MAX_RETRY_DELAY = 60000; // in milliseconds\nconst DEFAULT_MAX_RETRIES = 2;\nconst JITTER_FACTOR = 0.2; // 20% random jitter\n\nfunction addPositiveJitter(delay: number): number {\n // Generate a random value between 0 and +JITTER_FACTOR\n const jitterMultiplier = 1 + Math.random() * JITTER_FACTOR;\n return delay * jitterMultiplier;\n}\n\nfunction addSymmetricJitter(delay: number): number {\n // Generate a random value in a JITTER_FACTOR-sized percentage range around delay\n const jitterMultiplier = 1 + (Math.random() - 0.5) * JITTER_FACTOR;\n return delay * jitterMultiplier;\n}\n\nfunction getRetryDelayFromHeaders(response: Response, retryAttempt: number): number {\n // Check for Retry-After header first (RFC 7231), with no jitter\n const retryAfter = response.headers.get(\"Retry-After\");\n if (retryAfter) {\n // Parse as number of seconds...\n const retryAfterSeconds = parseInt(retryAfter, 10);\n if (!isNaN(retryAfterSeconds) && retryAfterSeconds > 0) {\n return Math.min(retryAfterSeconds * 1000, MAX_RETRY_DELAY);\n }\n\n // ...or as an HTTP date; both are valid\n const retryAfterDate = new Date(retryAfter);\n if (!isNaN(retryAfterDate.getTime())) {\n const delay = retryAfterDate.getTime() - Date.now();\n if (delay > 0) {\n return Math.min(Math.max(delay, 0), MAX_RETRY_DELAY);\n }\n }\n }\n\n // Then check for industry-standard X-RateLimit-Reset header, with positive jitter\n const rateLimitReset = response.headers.get(\"X-RateLimit-Reset\");\n if (rateLimitReset) {\n const resetTime = parseInt(rateLimitReset, 10);\n if (!isNaN(resetTime)) {\n // Assume Unix timestamp in epoch seconds\n const delay = resetTime * 1000 - Date.now();\n if (delay > 0) {\n return addPositiveJitter(Math.min(delay, MAX_RETRY_DELAY));\n }\n }\n }\n\n // Fall back to exponential backoff, with symmetric jitter\n return addSymmetricJitter(Math.min(INITIAL_RETRY_DELAY * Math.pow(2, retryAttempt), MAX_RETRY_DELAY));\n}\n\nexport async function requestWithRetries(\n requestFn: () => Promise<Response>,\n maxRetries: number = DEFAULT_MAX_RETRIES,\n): Promise<Response> {\n let response: Response = await requestFn();\n\n for (let i = 0; i < maxRetries; ++i) {\n if ([408, 429].includes(response.status) || response.status >= 500) {\n // Get delay with appropriate jitter applied\n const delay = getRetryDelayFromHeaders(response, i);\n\n await new Promise((resolve) => setTimeout(resolve, delay));\n response = await requestFn();\n } else {\n break;\n }\n }\n return response!;\n}\n","import { toJson } from \"../json.js\";\nimport { APIResponse } from \"./APIResponse.js\";\nimport { createRequestUrl } from \"./createRequestUrl.js\";\nimport { EndpointMetadata } from \"./EndpointMetadata.js\";\nimport { EndpointSupplier } from \"./EndpointSupplier.js\";\nimport { getErrorResponseBody } from \"./getErrorResponseBody.js\";\nimport { getFetchFn } from \"./getFetchFn.js\";\nimport { getRequestBody } from \"./getRequestBody.js\";\nimport { getResponseBody } from \"./getResponseBody.js\";\nimport { makeRequest } from \"./makeRequest.js\";\nimport { abortRawResponse, toRawResponse, unknownRawResponse } from \"./RawResponse.js\";\nimport { requestWithRetries } from \"./requestWithRetries.js\";\n\nexport type FetchFunction = <R = unknown>(args: Fetcher.Args) => Promise<APIResponse<R, Fetcher.Error>>;\n\nexport declare namespace Fetcher {\n export interface Args {\n url: string;\n method: string;\n contentType?: string;\n headers?: Record<string, string | EndpointSupplier<string | null | undefined> | null | undefined>;\n queryParameters?: Record<string, unknown>;\n body?: unknown;\n timeoutMs?: number;\n maxRetries?: number;\n withCredentials?: boolean;\n abortSignal?: AbortSignal;\n requestType?: \"json\" | \"file\" | \"bytes\";\n responseType?: \"json\" | \"blob\" | \"sse\" | \"streaming\" | \"text\" | \"arrayBuffer\" | \"binary-response\";\n duplex?: \"half\";\n endpointMetadata?: EndpointMetadata;\n }\n\n export type Error = FailedStatusCodeError | NonJsonError | TimeoutError | UnknownError;\n\n export interface FailedStatusCodeError {\n reason: \"status-code\";\n statusCode: number;\n body: unknown;\n }\n\n export interface NonJsonError {\n reason: \"non-json\";\n statusCode: number;\n rawBody: string;\n }\n\n export interface TimeoutError {\n reason: \"timeout\";\n }\n\n export interface UnknownError {\n reason: \"unknown\";\n errorMessage: string;\n }\n}\n\nasync function getHeaders(args: Fetcher.Args): Promise<Record<string, string>> {\n const newHeaders: Record<string, string> = {};\n if (args.body !== undefined && args.contentType != null) {\n newHeaders[\"Content-Type\"] = args.contentType;\n }\n\n if (args.headers == null) {\n return newHeaders;\n }\n\n for (const [key, value] of Object.entries(args.headers)) {\n const result = await EndpointSupplier.get(value, { endpointMetadata: args.endpointMetadata ?? {} });\n if (typeof result === \"string\") {\n newHeaders[key] = result;\n continue;\n }\n if (result == null) {\n continue;\n }\n newHeaders[key] = `${result}`;\n }\n return newHeaders;\n}\n\nexport async function fetcherImpl<R = unknown>(args: Fetcher.Args): Promise<APIResponse<R, Fetcher.Error>> {\n const url = createRequestUrl(args.url, args.queryParameters);\n const requestBody: BodyInit | undefined = await getRequestBody({\n body: args.body,\n type: args.requestType === \"json\" ? \"json\" : \"other\",\n });\n const fetchFn = await getFetchFn();\n\n try {\n const response = await requestWithRetries(\n async () =>\n makeRequest(\n fetchFn,\n url,\n args.method,\n await getHeaders(args),\n requestBody,\n args.timeoutMs,\n args.abortSignal,\n args.withCredentials,\n args.duplex,\n ),\n args.maxRetries,\n );\n\n if (response.status >= 200 && response.status < 400) {\n return {\n ok: true,\n body: (await getResponseBody(response, args.responseType)) as R,\n headers: response.headers,\n rawResponse: toRawResponse(response),\n };\n } else {\n return {\n ok: false,\n error: {\n reason: \"status-code\",\n statusCode: response.status,\n body: await getErrorResponseBody(response),\n },\n rawResponse: toRawResponse(response),\n };\n }\n } catch (error) {\n if (args.abortSignal != null && args.abortSignal.aborted) {\n return {\n ok: false,\n error: {\n reason: \"unknown\",\n errorMessage: \"The user aborted a request\",\n },\n rawResponse: abortRawResponse,\n };\n } else if (error instanceof Error && error.name === \"AbortError\") {\n return {\n ok: false,\n error: {\n reason: \"timeout\",\n },\n rawResponse: abortRawResponse,\n };\n } else if (error instanceof Error) {\n return {\n ok: false,\n error: {\n reason: \"unknown\",\n errorMessage: error.message,\n },\n rawResponse: unknownRawResponse,\n };\n }\n\n return {\n ok: false,\n error: {\n reason: \"unknown\",\n errorMessage: toJson(error),\n },\n rawResponse: unknownRawResponse,\n };\n }\n}\n\nexport const fetcher: FetchFunction = fetcherImpl;\n","import { WithRawResponse } from \"./RawResponse.js\";\n\n/**\n * A promise that returns the parsed response and lets you retrieve the raw response too.\n */\nexport class HttpResponsePromise<T> extends Promise<T> {\n private innerPromise: Promise<WithRawResponse<T>>;\n private unwrappedPromise: Promise<T> | undefined;\n\n private constructor(promise: Promise<WithRawResponse<T>>) {\n // Initialize with a no-op to avoid premature parsing\n super((resolve) => {\n resolve(undefined as unknown as T);\n });\n this.innerPromise = promise;\n }\n\n /**\n * Creates an `HttpResponsePromise` from a function that returns a promise.\n *\n * @param fn - A function that returns a promise resolving to a `WithRawResponse` object.\n * @param args - Arguments to pass to the function.\n * @returns An `HttpResponsePromise` instance.\n */\n public static fromFunction<F extends (...args: never[]) => Promise<WithRawResponse<T>>, T>(\n fn: F,\n ...args: Parameters<F>\n ): HttpResponsePromise<T> {\n return new HttpResponsePromise<T>(fn(...args));\n }\n\n /**\n * Creates a function that returns an `HttpResponsePromise` from a function that returns a promise.\n *\n * @param fn - A function that returns a promise resolving to a `WithRawResponse` object.\n * @returns A function that returns an `HttpResponsePromise` instance.\n */\n public static interceptFunction<\n F extends (...args: never[]) => Promise<WithRawResponse<T>>,\n T = Awaited<ReturnType<F>>[\"data\"],\n >(fn: F): (...args: Parameters<F>) => HttpResponsePromise<T> {\n return (...args: Parameters<F>): HttpResponsePromise<T> => {\n return HttpResponsePromise.fromPromise<T>(fn(...args));\n };\n }\n\n /**\n * Creates an `HttpResponsePromise` from an existing promise.\n *\n * @param promise - A promise resolving to a `WithRawResponse` object.\n * @returns An `HttpResponsePromise` instance.\n */\n public static fromPromise<T>(promise: Promise<WithRawResponse<T>>): HttpResponsePromise<T> {\n return new HttpResponsePromise<T>(promise);\n }\n\n /**\n * Creates an `HttpResponsePromise` from an executor function.\n *\n * @param executor - A function that takes resolve and reject callbacks to create a promise.\n * @returns An `HttpResponsePromise` instance.\n */\n public static fromExecutor<T>(\n executor: (resolve: (value: WithRawResponse<T>) => void, reject: (reason?: unknown) => void) => void,\n ): HttpResponsePromise<T> {\n const promise = new Promise<WithRawResponse<T>>(executor);\n return new HttpResponsePromise<T>(promise);\n }\n\n /**\n * Creates an `HttpResponsePromise` from a resolved result.\n *\n * @param result - A `WithRawResponse` object to resolve immediately.\n * @returns An `HttpResponsePromise` instance.\n */\n public static fromResult<T>(result: WithRawResponse<T>): HttpResponsePromise<T> {\n const promise = Promise.resolve(result);\n return new HttpResponsePromise<T>(promise);\n }\n\n private unwrap(): Promise<T> {\n if (!this.unwrappedPromise) {\n this.unwrappedPromise = this.innerPromise.then(({ data }) => data);\n }\n return this.unwrappedPromise;\n }\n\n /** @inheritdoc */\n public override then<TResult1 = T, TResult2 = never>(\n onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null,\n onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null,\n ): Promise<TResult1 | TResult2> {\n return this.unwrap().then(onfulfilled, onrejected);\n }\n\n /** @inheritdoc */\n public override catch<TResult = never>(\n onrejected?: ((reason: unknown) => TResult | PromiseLike<TResult>) | null,\n ): Promise<T | TResult> {\n return this.unwrap().catch(onrejected);\n }\n\n /** @inheritdoc */\n public override finally(onfinally?: (() => void) | null): Promise<T> {\n return this.unwrap().finally(onfinally);\n }\n\n /**\n * Retrieves the data and raw response.\n *\n * @returns A promise resolving to a `WithRawResponse` object.\n */\n public async withRawResponse(): Promise<WithRawResponse<T>> {\n return await this.innerPromise;\n }\n}\n","export type Supplier<T> = T | Promise<T> | (() => T | Promise<T>);\n\nexport const Supplier = {\n get: async <T>(supplier: Supplier<T>): Promise<T> => {\n if (typeof supplier === \"function\") {\n return (supplier as () => T)();\n } else {\n return supplier;\n }\n },\n};\n","interface DenoGlobal {\n version: {\n deno: string;\n };\n}\n\ninterface BunGlobal {\n version: string;\n}\n\ndeclare const Deno: DenoGlobal | undefined;\ndeclare const Bun: BunGlobal | undefined;\ndeclare const EdgeRuntime: string | undefined;\ndeclare const self: typeof globalThis.self & {\n importScripts?: unknown;\n};\n\n/**\n * A constant that indicates which environment and version the SDK is running in.\n */\nexport const RUNTIME: Runtime = evaluateRuntime();\n\nexport interface Runtime {\n type: \"browser\" | \"web-worker\" | \"deno\" | \"bun\" | \"node\" | \"react-native\" | \"unknown\" | \"workerd\" | \"edge-runtime\";\n version?: string;\n parsedVersion?: number;\n}\n\nfunction evaluateRuntime(): Runtime {\n /**\n * A constant that indicates whether the environment the code is running is a Web Browser.\n */\n const isBrowser = typeof window !== \"undefined\" && typeof window.document !== \"undefined\";\n if (isBrowser) {\n return {\n type: \"browser\",\n version: window.navigator.userAgent,\n };\n }\n\n /**\n * A constant that indicates whether the environment the code is running is Cloudflare.\n * https://developers.cloudflare.com/workers/runtime-apis/web-standards/#navigatoruseragent\n */\n const isCloudflare = typeof globalThis !== \"undefined\" && globalThis?.navigator?.userAgent === \"Cloudflare-Workers\";\n if (isCloudflare) {\n return {\n type: \"workerd\",\n };\n }\n\n /**\n * A constant that indicates whether the environment the code is running is Edge Runtime.\n * https://vercel.com/docs/functions/runtimes/edge-runtime#check-if-you're-running-on-the-edge-runtime\n */\n const isEdgeRuntime = typeof EdgeRuntime === \"string\";\n if (isEdgeRuntime) {\n return {\n type: \"edge-runtime\",\n };\n }\n\n /**\n * A constant that indicates whether the environment the code is running is a Web Worker.\n */\n const isWebWorker =\n typeof self === \"object\" &&\n typeof self?.importScripts === \"function\" &&\n (self.constructor?.name === \"DedicatedWorkerGlobalScope\" ||\n self.constructor?.name === \"ServiceWorkerGlobalScope\" ||\n self.constructor?.name === \"SharedWorkerGlobalScope\");\n if (isWebWorker) {\n return {\n type: \"web-worker\",\n };\n }\n\n /**\n * A constant that indicates whether the environment the code is running is Deno.\n * FYI Deno spoofs process.versions.node, see https://deno.land/std@0.177.0/node/process.ts?s=versions\n */\n const isDeno =\n typeof Deno !== \"undefined\" && typeof Deno.version !== \"undefined\" && typeof Deno.version.deno !== \"undefined\";\n if (isDeno) {\n return {\n type: \"deno\",\n version: Deno.version.deno,\n };\n }\n\n /**\n * A constant that indicates whether the environment the code is running is Bun.sh.\n */\n const isBun = typeof Bun !== \"undefined\" && typeof Bun.version !== \"undefined\";\n if (isBun) {\n return {\n type: \"bun\",\n version: Bun.version,\n };\n }\n\n /**\n * A constant that indicates whether the environment the code is running is Node.JS.\n */\n const isNode =\n typeof process !== \"undefined\" &&\n \"version\" in process &&\n !!process.version &&\n \"versions\" in process &&\n !!process.versions?.node;\n if (isNode) {\n return {\n type: \"node\",\n version: process.versions.node,\n parsedVersion: Number(process.versions.node.split(\".\")[0]),\n };\n }\n\n /**\n * A constant that indicates whether the environment the code is running is in React-Native.\n * https://github.com/facebook/react-native/blob/main/packages/react-native/Libraries/Core/setUpNavigator.js\n */\n const isReactNative = typeof navigator !== \"undefined\" && navigator?.product === \"ReactNative\";\n if (isReactNative) {\n return {\n type: \"react-native\",\n };\n }\n\n return {\n type: \"unknown\",\n };\n}\n","export { join } from \"./join.js\";\nexport { toQueryString } from \"./qs.js\";\n","export function join(base: string, ...segments: string[]): string {\n if (!base) {\n return \"\";\n }\n\n if (segments.length === 0) {\n return base;\n }\n\n if (base.includes(\"://\")) {\n let url: URL;\n try {\n url = new URL(base);\n } catch {\n // Fallback to path joining if URL is malformed\n return joinPath(base, ...segments);\n }\n\n const lastSegment = segments[segments.length - 1];\n const shouldPreserveTrailingSlash = lastSegment && lastSegment.endsWith(\"/\");\n\n for (const segment of segments) {\n const cleanSegment = trimSlashes(segment);\n if (cleanSegment) {\n url.pathname = joinPathSegments(url.pathname, cleanSegment);\n }\n }\n\n if (shouldPreserveTrailingSlash && !url.pathname.endsWith(\"/\")) {\n url.pathname += \"/\";\n }\n\n return url.toString();\n }\n\n return joinPath(base, ...segments);\n}\n\nfunction joinPath(base: string, ...segments: string[]): string {\n if (segments.length === 0) {\n return base;\n }\n\n let result = base;\n\n const lastSegment = segments[segments.length - 1];\n const shouldPreserveTrailingSlash = lastSegment && lastSegment.endsWith(\"/\");\n\n for (const segment of segments) {\n const cleanSegment = trimSlashes(segment);\n if (cleanSegment) {\n result = joinPathSegments(result, cleanSegment);\n }\n }\n\n if (shouldPreserveTrailingSlash && !result.endsWith(\"/\")) {\n result += \"/\";\n }\n\n return result;\n}\n\nfunction joinPathSegments(left: string, right: string): string {\n if (left.endsWith(\"/\")) {\n return left + right;\n }\n return left + \"/\" + right;\n}\n\nfunction trimSlashes(str: string): string {\n if (!str) return str;\n\n let start = 0;\n let end = str.length;\n\n if (str.startsWith(\"/\")) start = 1;\n if (str.endsWith(\"/\")) end = str.length - 1;\n\n return start === 0 && end === str.length ? str : str.slice(start, end);\n}\n","export function mergeHeaders<THeaderValue>(\n ...headersArray: (Record<string, THeaderValue> | null | undefined)[]\n): Record<string, string | THeaderValue> {\n const result: Record<string, THeaderValue> = {};\n\n for (const [key, value] of headersArray\n .filter((headers) => headers != null)\n .flatMap((headers) => Object.entries(headers))) {\n if (value != null) {\n result[key] = value;\n } else if (key in result) {\n delete result[key];\n }\n }\n\n return result;\n}\n\nexport function mergeOnlyDefinedHeaders<THeaderValue>(\n ...headersArray: (Record<string, THeaderValue> | null | undefined)[]\n): Record<string, THeaderValue> {\n const result: Record<string, THeaderValue> = {};\n\n for (const [key, value] of headersArray\n .filter((headers) => headers != null)\n .flatMap((headers) => Object.entries(headers))) {\n if (value != null) {\n result[key] = value;\n }\n }\n\n return result;\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const OumlaSdkApiEnvironment = {\n Mainnet: \"https://sandbox.oumla.com\",\n} as const;\n\nexport type OumlaSdkApiEnvironment = typeof OumlaSdkApiEnvironment.Mainnet;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport * as environments from \"../../../../environments.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as OumlaSdkApi from \"../../../index.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../core/headers.js\";\nimport * as errors from \"../../../../errors/index.js\";\n\nexport declare namespace Profiles {\n export interface Options {\n environment?: core.Supplier<environments.OumlaSdkApiEnvironment | string>;\n /** Specify a custom URL to connect the client to. */\n baseUrl?: core.Supplier<string>;\n token?: core.Supplier<core.BearerToken | undefined>;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey: core.Supplier<string>;\n /** Additional headers to include in requests. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n\n export interface RequestOptions {\n /** The maximum time to wait for a response in seconds. */\n timeoutInSeconds?: number;\n /** The number of times to retry the request. Defaults to 2. */\n maxRetries?: number;\n /** A hook to abort the request. */\n abortSignal?: AbortSignal;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey?: string;\n /** Additional query string parameters to include in the request. */\n queryParams?: Record<string, unknown>;\n /** Additional headers to include in the request. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n}\n\n/**\n * User profile management\n */\nexport class Profiles {\n protected readonly _options: Profiles.Options;\n\n constructor(_options: Profiles.Options) {\n this._options = _options;\n }\n\n /**\n * Get list of profiles with pagination\n *\n * @param {OumlaSdkApi.GetProfilesRequest} request\n * @param {Profiles.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n *\n * @example\n * await client.profiles.getProfiles({\n * skip: 1,\n * take: 1\n * })\n */\n public getProfiles(\n request: OumlaSdkApi.GetProfilesRequest = {},\n requestOptions?: Profiles.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.ProfilesResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getProfiles(request, requestOptions));\n }\n\n private async __getProfiles(\n request: OumlaSdkApi.GetProfilesRequest = {},\n requestOptions?: Profiles.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.ProfilesResponse>> {\n const { skip, take } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n if (skip != null) {\n _queryParams[\"skip\"] = skip.toString();\n }\n\n if (take != null) {\n _queryParams[\"take\"] = take.toString();\n }\n\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v1/profiles\",\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.ProfilesResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\"Timeout exceeded when calling GET /api/v1/profiles.\");\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Create a new user profile\n *\n * @param {OumlaSdkApi.CreateProfileRequest} request\n * @param {Profiles.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.ForbiddenError}\n * @throws {@link OumlaSdkApi.ConflictError}\n * @throws {@link OumlaSdkApi.UnprocessableEntityError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n *\n * @example\n * await client.profiles.createProfile({\n * reference: \"user-123\",\n * type: \"User\"\n * })\n */\n public createProfile(\n request: OumlaSdkApi.CreateProfileRequest,\n requestOptions?: Profiles.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.ProfileResponse> {\n return core.HttpResponsePromise.fromPromise(this.__createProfile(request, requestOptions));\n }\n\n private async __createProfile(\n request: OumlaSdkApi.CreateProfileRequest,\n requestOptions?: Profiles.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.ProfileResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v1/profiles\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.ProfileResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 403:\n throw new OumlaSdkApi.ForbiddenError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 409:\n throw new OumlaSdkApi.ConflictError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 422:\n throw new OumlaSdkApi.UnprocessableEntityError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\"Timeout exceeded when calling POST /api/v1/profiles.\");\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport * as environments from \"../../../../environments.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as OumlaSdkApi from \"../../../index.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../core/headers.js\";\nimport * as errors from \"../../../../errors/index.js\";\n\nexport declare namespace Wallets {\n export interface Options {\n environment?: core.Supplier<environments.OumlaSdkApiEnvironment | string>;\n /** Specify a custom URL to connect the client to. */\n baseUrl?: core.Supplier<string>;\n token?: core.Supplier<core.BearerToken | undefined>;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey: core.Supplier<string>;\n /** Additional headers to include in requests. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n\n export interface RequestOptions {\n /** The maximum time to wait for a response in seconds. */\n timeoutInSeconds?: number;\n /** The number of times to retry the request. Defaults to 2. */\n maxRetries?: number;\n /** A hook to abort the request. */\n abortSignal?: AbortSignal;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey?: string;\n /** Additional query string parameters to include in the request. */\n queryParams?: Record<string, unknown>;\n /** Additional headers to include in the request. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n}\n\n/**\n * Wallet creation and management\n */\nexport class Wallets {\n protected readonly _options: Wallets.Options;\n\n constructor(_options: Wallets.Options) {\n this._options = _options;\n }\n\n /**\n * Generate a new wallet for a profile\n *\n * @param {OumlaSdkApi.CreateWalletRequest} request\n * @param {Wallets.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.ConflictError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n *\n * @example\n * await client.wallets.createWallet({\n * reference: \"user-123\",\n * network: \"tBTC\"\n * })\n */\n public createWallet(\n request: OumlaSdkApi.CreateWalletRequest,\n requestOptions?: Wallets.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.WalletResponse> {\n return core.HttpResponsePromise.fromPromise(this.__createWallet(request, requestOptions));\n }\n\n private async __createWallet(\n request: OumlaSdkApi.CreateWalletRequest,\n requestOptions?: Wallets.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.WalletResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v1/wallets/generate\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.WalletResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 409:\n throw new OumlaSdkApi.ConflictError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling POST /api/v1/wallets/generate.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Get wallets for a specific profile\n *\n * @param {string} reference - Profile or organization reference identifier\n * @param {OumlaSdkApi.GetWalletsByProfileRequest} request\n * @param {Wallets.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.ForbiddenError}\n * @throws {@link OumlaSdkApi.NotFoundError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n *\n * @example\n * await client.wallets.getWalletsByProfile(\"reference\", {\n * skip: 1,\n * take: 1\n * })\n */\n public getWalletsByProfile(\n reference: string,\n request: OumlaSdkApi.GetWalletsByProfileRequest = {},\n requestOptions?: Wallets.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.WalletsResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getWalletsByProfile(reference, request, requestOptions));\n }\n\n private async __getWalletsByProfile(\n reference: string,\n request: OumlaSdkApi.GetWalletsByProfileRequest = {},\n requestOptions?: Wallets.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.WalletsResponse>> {\n const { skip, take } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n if (skip != null) {\n _queryParams[\"skip\"] = skip.toString();\n }\n\n if (take != null) {\n _queryParams[\"take\"] = take.toString();\n }\n\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/wallets/profile/${encodeURIComponent(reference)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.WalletsResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 403:\n throw new OumlaSdkApi.ForbiddenError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 404:\n throw new OumlaSdkApi.NotFoundError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/wallets/profile/{reference}.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Get all wallets for the organization\n *\n * @param {OumlaSdkApi.GetWalletsForOrganizationRequest} request\n * @param {Wallets.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.ForbiddenError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n *\n * @example\n * await client.wallets.getWalletsForOrganization({\n * skip: 1,\n * take: 1\n * })\n */\n public getWalletsForOrganization(\n request: OumlaSdkApi.GetWalletsForOrganizationRequest = {},\n requestOptions?: Wallets.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.WalletsResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getWalletsForOrganization(request, requestOptions));\n }\n\n private async __getWalletsForOrganization(\n request: OumlaSdkApi.GetWalletsForOrganizationRequest = {},\n requestOptions?: Wallets.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.WalletsResponse>> {\n const { skip, take } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n if (skip != null) {\n _queryParams[\"skip\"] = skip.toString();\n }\n\n if (take != null) {\n _queryParams[\"take\"] = take.toString();\n }\n\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v1/wallets/organization\",\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.WalletsResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 403:\n throw new OumlaSdkApi.ForbiddenError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/wallets/organization.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport * as environments from \"../../../../environments.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as OumlaSdkApi from \"../../../index.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../core/headers.js\";\nimport * as errors from \"../../../../errors/index.js\";\n\nexport declare namespace Addresses {\n export interface Options {\n environment?: core.Supplier<environments.OumlaSdkApiEnvironment | string>;\n /** Specify a custom URL to connect the client to. */\n baseUrl?: core.Supplier<string>;\n token?: core.Supplier<core.BearerToken | undefined>;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey: core.Supplier<string>;\n /** Additional headers to include in requests. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n\n export interface RequestOptions {\n /** The maximum time to wait for a response in seconds. */\n timeoutInSeconds?: number;\n /** The number of times to retry the request. Defaults to 2. */\n maxRetries?: number;\n /** A hook to abort the request. */\n abortSignal?: AbortSignal;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey?: string;\n /** Additional query string parameters to include in the request. */\n queryParams?: Record<string, unknown>;\n /** Additional headers to include in the request. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n}\n\n/**\n * Address generation and management\n */\nexport class Addresses {\n protected readonly _options: Addresses.Options;\n\n constructor(_options: Addresses.Options) {\n this._options = _options;\n }\n\n /**\n * Generate a new address for a profile\n *\n * @param {OumlaSdkApi.CreateAddressRequest} request\n * @param {Addresses.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n *\n * @example\n * await client.addresses.createAddress({\n * reference: \"user-123\",\n * network: \"tBTC\",\n * clientShare: \"clientShare\"\n * })\n */\n public createAddress(\n request: OumlaSdkApi.CreateAddressRequest,\n requestOptions?: Addresses.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.CreateAddressResponse> {\n return core.HttpResponsePromise.fromPromise(this.__createAddress(request, requestOptions));\n }\n\n private async __createAddress(\n request: OumlaSdkApi.CreateAddressRequest,\n requestOptions?: Addresses.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.CreateAddressResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v1/addresses/generate\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.CreateAddressResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling POST /api/v1/addresses/generate.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Generate a wallet if not exists and create address\n *\n * @param {OumlaSdkApi.CreateAddressRequest} request\n * @param {Addresses.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n *\n * @example\n * await client.addresses.createAddressV2({\n * reference: \"user-123\",\n * network: \"tBTC\",\n * clientShare: \"clientShare\"\n * })\n */\n public createAddressV2(\n request: OumlaSdkApi.CreateAddressRequest,\n requestOptions?: Addresses.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.CreateAddressResponse> {\n return core.HttpResponsePromise.fromPromise(this.__createAddressV2(request, requestOptions));\n }\n\n private async __createAddressV2(\n request: OumlaSdkApi.CreateAddressRequest,\n requestOptions?: Addresses.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.CreateAddressResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v2/addresses/generate\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.CreateAddressResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling POST /api/v2/addresses/generate.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Get all addresses for the organization\n *\n * @param {OumlaSdkApi.GetAddressForOrganizationRequest} request\n * @param {Addresses.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.ForbiddenError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n *\n * @example\n * await client.addresses.getAddressForOrganization({\n * skip: 1,\n * take: 1\n * })\n */\n public getAddressForOrganization(\n request: OumlaSdkApi.GetAddressForOrganizationRequest = {},\n requestOptions?: Addresses.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.AddressesResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getAddressForOrganization(request, requestOptions));\n }\n\n private async __getAddressForOrganization(\n request: OumlaSdkApi.GetAddressForOrganizationRequest = {},\n requestOptions?: Addresses.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.AddressesResponse>> {\n const { skip, take } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n if (skip != null) {\n _queryParams[\"skip\"] = skip.toString();\n }\n\n if (take != null) {\n _queryParams[\"take\"] = take.toString();\n }\n\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v1/addresses/organization\",\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.AddressesResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 403:\n throw new OumlaSdkApi.ForbiddenError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/addresses/organization.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Get addresses for a specific profile\n *\n * @param {string} reference - Profile or organization reference identifier\n * @param {OumlaSdkApi.GetAddressForProfileRequest} request\n * @param {Addresses.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.ForbiddenError}\n * @throws {@link OumlaSdkApi.NotFoundError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n *\n * @example\n * await client.addresses.getAddressForProfile(\"reference\", {\n * skip: 1,\n * take: 1\n * })\n */\n public getAddressForProfile(\n reference: string,\n request: OumlaSdkApi.GetAddressForProfileRequest = {},\n requestOptions?: Addresses.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.AddressesResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getAddressForProfile(reference, request, requestOptions));\n }\n\n private async __getAddressForProfile(\n reference: string,\n request: OumlaSdkApi.GetAddressForProfileRequest = {},\n requestOptions?: Addresses.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.AddressesResponse>> {\n const { skip, take } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n if (skip != null) {\n _queryParams[\"skip\"] = skip.toString();\n }\n\n if (take != null) {\n _queryParams[\"take\"] = take.toString();\n }\n\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/addresses/${encodeURIComponent(reference)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.AddressesResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 403:\n throw new OumlaSdkApi.ForbiddenError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 404:\n throw new OumlaSdkApi.NotFoundError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/addresses/{reference}.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport * as environments from \"../../../../environments.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as OumlaSdkApi from \"../../../index.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../core/headers.js\";\nimport * as errors from \"../../../../errors/index.js\";\n\nexport declare namespace Transactions {\n export interface Options {\n environment?: core.Supplier<environments.OumlaSdkApiEnvironment | string>;\n /** Specify a custom URL to connect the client to. */\n baseUrl?: core.Supplier<string>;\n token?: core.Supplier<core.BearerToken | undefined>;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey: core.Supplier<string>;\n /** Additional headers to include in requests. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n\n export interface RequestOptions {\n /** The maximum time to wait for a response in seconds. */\n timeoutInSeconds?: number;\n /** The number of times to retry the request. Defaults to 2. */\n maxRetries?: number;\n /** A hook to abort the request. */\n abortSignal?: AbortSignal;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey?: string;\n /** Additional query string parameters to include in the request. */\n queryParams?: Record<string, unknown>;\n /** Additional headers to include in the request. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n}\n\n/**\n * Transaction history and tracking\n */\nexport class Transactions {\n protected readonly _options: Transactions.Options;\n\n constructor(_options: Transactions.Options) {\n this._options = _options;\n }\n\n /**\n * Get transactions for a specific address\n *\n * @param {string} address - Blockchain address\n * @param {OumlaSdkApi.GetTransactionsByAddressRequest} request\n * @param {Transactions.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.ForbiddenError}\n * @throws {@link OumlaSdkApi.NotFoundError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n *\n * @example\n * await client.transactions.getTransactionsByAddress(\"address\", {\n * skip: 1,\n * take: 1\n * })\n */\n public getTransactionsByAddress(\n address: string,\n request: OumlaSdkApi.GetTransactionsByAddressRequest = {},\n requestOptions?: Transactions.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.TransactionsResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getTransactionsByAddress(address, request, requestOptions));\n }\n\n private async __getTransactionsByAddress(\n address: string,\n request: OumlaSdkApi.GetTransactionsByAddressRequest = {},\n requestOptions?: Transactions.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.TransactionsResponse>> {\n const { skip, take } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n if (skip != null) {\n _queryParams[\"skip\"] = skip.toString();\n }\n\n if (take != null) {\n _queryParams[\"take\"] = take.toString();\n }\n\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/transactions/address/${encodeURIComponent(address)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.TransactionsResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 403:\n throw new OumlaSdkApi.ForbiddenError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 404:\n throw new OumlaSdkApi.NotFoundError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/transactions/address/{address}.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Get transactions for a specific wallet\n *\n * @param {string} miniWalletId - Mini wallet identifier\n * @param {OumlaSdkApi.GetTransactionsByMiniWalletRequest} request\n * @param {Transactions.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.ForbiddenError}\n * @throws {@link OumlaSdkApi.NotFoundError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n *\n * @example\n * await client.transactions.getTransactionsByMiniWallet(\"miniWalletId\", {\n * skip: 1,\n * take: 1\n * })\n */\n public getTransactionsByMiniWallet(\n miniWalletId: string,\n request: OumlaSdkApi.GetTransactionsByMiniWalletRequest = {},\n requestOptions?: Transactions.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.TransactionsResponse> {\n return core.HttpResponsePromise.fromPromise(\n this.__getTransactionsByMiniWallet(miniWalletId, request, requestOptions),\n );\n }\n\n private async __getTransactionsByMiniWallet(\n miniWalletId: string,\n request: OumlaSdkApi.GetTransactionsByMiniWalletRequest = {},\n requestOptions?: Transactions.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.TransactionsResponse>> {\n const { skip, take } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n if (skip != null) {\n _queryParams[\"skip\"] = skip.toString();\n }\n\n if (take != null) {\n _queryParams[\"take\"] = take.toString();\n }\n\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/transactions/wallet/${encodeURIComponent(miniWalletId)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.TransactionsResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 403:\n throw new OumlaSdkApi.ForbiddenError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 404:\n throw new OumlaSdkApi.NotFoundError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/transactions/wallet/{miniWalletId}.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Get all transactions for the organization\n *\n * @param {OumlaSdkApi.GetTransactionsByOrganizationRequest} request\n * @param {Transactions.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.ForbiddenError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n *\n * @example\n * await client.transactions.getTransactionsByOrganization({\n * skip: 1,\n * take: 1\n * })\n */\n public getTransactionsByOrganization(\n request: OumlaSdkApi.GetTransactionsByOrganizationRequest = {},\n requestOptions?: Transactions.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.TransactionsResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getTransactionsByOrganization(request, requestOptions));\n }\n\n private async __getTransactionsByOrganization(\n request: OumlaSdkApi.GetTransactionsByOrganizationRequest = {},\n requestOptions?: Transactions.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.TransactionsResponse>> {\n const { skip, take } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n if (skip != null) {\n _queryParams[\"skip\"] = skip.toString();\n }\n\n if (take != null) {\n _queryParams[\"take\"] = take.toString();\n }\n\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v1/transactions/organization\",\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.TransactionsResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 403:\n throw new OumlaSdkApi.ForbiddenError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/transactions/organization.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Get transactions for a specific profile\n *\n * @param {string} reference - Profile or organization reference identifier\n * @param {OumlaSdkApi.GetTransactionsByProfileRequest} request\n * @param {Transactions.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.ForbiddenError}\n * @throws {@link OumlaSdkApi.NotFoundError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n *\n * @example\n * await client.transactions.getTransactionsByProfile(\"reference\", {\n * skip: 1,\n * take: 1\n * })\n */\n public getTransactionsByProfile(\n reference: string,\n request: OumlaSdkApi.GetTransactionsByProfileRequest = {},\n requestOptions?: Transactions.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.TransactionsByProfileResponse> {\n return core.HttpResponsePromise.fromPromise(\n this.__getTransactionsByProfile(reference, request, requestOptions),\n );\n }\n\n private async __getTransactionsByProfile(\n reference: string,\n request: OumlaSdkApi.GetTransactionsByProfileRequest = {},\n requestOptions?: Transactions.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.TransactionsByProfileResponse>> {\n const { skip, take } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n if (skip != null) {\n _queryParams[\"skip\"] = skip.toString();\n }\n\n if (take != null) {\n _queryParams[\"take\"] = take.toString();\n }\n\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/transactions/profile/${encodeURIComponent(reference)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return {\n data: _response.body as OumlaSdkApi.TransactionsByProfileResponse,\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 403:\n throw new OumlaSdkApi.ForbiddenError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 404:\n throw new OumlaSdkApi.NotFoundError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/transactions/profile/{reference}.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport * as environments from \"../../../../environments.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as OumlaSdkApi from \"../../../index.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../core/headers.js\";\nimport * as errors from \"../../../../errors/index.js\";\n\nexport declare namespace Portfolio {\n export interface Options {\n environment?: core.Supplier<environments.OumlaSdkApiEnvironment | string>;\n /** Specify a custom URL to connect the client to. */\n baseUrl?: core.Supplier<string>;\n token?: core.Supplier<core.BearerToken | undefined>;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey: core.Supplier<string>;\n /** Additional headers to include in requests. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n\n export interface RequestOptions {\n /** The maximum time to wait for a response in seconds. */\n timeoutInSeconds?: number;\n /** The number of times to retry the request. Defaults to 2. */\n maxRetries?: number;\n /** A hook to abort the request. */\n abortSignal?: AbortSignal;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey?: string;\n /** Additional query string parameters to include in the request. */\n queryParams?: Record<string, unknown>;\n /** Additional headers to include in the request. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n}\n\n/**\n * Portfolio management and tracking\n */\nexport class Portfolio {\n protected readonly _options: Portfolio.Options;\n\n constructor(_options: Portfolio.Options) {\n this._options = _options;\n }\n\n /**\n * Get assets for address, wallet, or contract\n *\n * @param {OumlaSdkApi.GetAssetsRequest} request\n * @param {Portfolio.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.ForbiddenError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n *\n * @example\n * await client.portfolio.getAssets({\n * address: \"address\",\n * walletId: \"walletId\",\n * contractAddress: \"contractAddress\",\n * tokenizationId: \"tokenizationId\",\n * skip: 1,\n * take: 1\n * })\n */\n public getAssets(\n request: OumlaSdkApi.GetAssetsRequest = {},\n requestOptions?: Portfolio.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.AssetsResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getAssets(request, requestOptions));\n }\n\n private async __getAssets(\n request: OumlaSdkApi.GetAssetsRequest = {},\n requestOptions?: Portfolio.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.AssetsResponse>> {\n const { address, walletId, contractAddress, tokenizationId, skip, take } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n if (address != null) {\n _queryParams[\"address\"] = address;\n }\n\n if (walletId != null) {\n _queryParams[\"walletId\"] = walletId;\n }\n\n if (contractAddress != null) {\n _queryParams[\"contractAddress\"] = contractAddress;\n }\n\n if (tokenizationId != null) {\n _queryParams[\"tokenizationId\"] = tokenizationId;\n }\n\n if (skip != null) {\n _queryParams[\"skip\"] = skip.toString();\n }\n\n if (take != null) {\n _queryParams[\"take\"] = take.toString();\n }\n\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v1/portfolio\",\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.AssetsResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 403:\n throw new OumlaSdkApi.ForbiddenError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\"Timeout exceeded when calling GET /api/v1/portfolio.\");\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Get native balance for network, address, or wallet\n *\n * @param {OumlaSdkApi.GetNativeBalanceRequest} request\n * @param {Portfolio.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.ForbiddenError}\n * @throws {@link OumlaSdkApi.NotFoundError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n *\n * @example\n * await client.portfolio.getNativeBalance({\n * network: \"tBTC\",\n * address: \"address\",\n * walletId: \"walletId\",\n * skip: 1,\n * take: 1\n * })\n */\n public getNativeBalance(\n request: OumlaSdkApi.GetNativeBalanceRequest,\n requestOptions?: Portfolio.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.NativeBalanceResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getNativeBalance(request, requestOptions));\n }\n\n private async __getNativeBalance(\n request: OumlaSdkApi.GetNativeBalanceRequest,\n requestOptions?: Portfolio.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.NativeBalanceResponse>> {\n const { network, address, walletId, skip, take } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n _queryParams[\"network\"] = network;\n if (address != null) {\n _queryParams[\"address\"] = address;\n }\n\n if (walletId != null) {\n _queryParams[\"walletId\"] = walletId;\n }\n\n if (skip != null) {\n _queryParams[\"skip\"] = skip.toString();\n }\n\n if (take != null) {\n _queryParams[\"take\"] = take.toString();\n }\n\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v1/portfolio/native-balance\",\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.NativeBalanceResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 403:\n throw new OumlaSdkApi.ForbiddenError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 404:\n throw new OumlaSdkApi.NotFoundError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/portfolio/native-balance.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport * as environments from \"../../../../environments.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as OumlaSdkApi from \"../../../index.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../core/headers.js\";\nimport * as errors from \"../../../../errors/index.js\";\n\nexport declare namespace Temporal {\n export interface Options {\n environment?: core.Supplier<environments.OumlaSdkApiEnvironment | string>;\n /** Specify a custom URL to connect the client to. */\n baseUrl?: core.Supplier<string>;\n token?: core.Supplier<core.BearerToken | undefined>;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey: core.Supplier<string>;\n /** Additional headers to include in requests. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n\n export interface RequestOptions {\n /** The maximum time to wait for a response in seconds. */\n timeoutInSeconds?: number;\n /** The number of times to retry the request. Defaults to 2. */\n maxRetries?: number;\n /** A hook to abort the request. */\n abortSignal?: AbortSignal;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey?: string;\n /** Additional query string parameters to include in the request. */\n queryParams?: Record<string, unknown>;\n /** Additional headers to include in the request. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n}\n\n/**\n * Temporal workflow operations\n */\nexport class Temporal {\n protected readonly _options: Temporal.Options;\n\n constructor(_options: Temporal.Options) {\n this._options = _options;\n }\n\n /**\n * Get status and result of a Temporal workflow\n *\n * @param {string} workflowId - Temporal workflow ID\n * @param {Temporal.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.ForbiddenError}\n * @throws {@link OumlaSdkApi.NotFoundError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n *\n * @example\n * await client.temporal.getWorkflowStatus(\"workflowId\")\n */\n public getWorkflowStatus(\n workflowId: string,\n requestOptions?: Temporal.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.TemporalWorkflowStatusData> {\n return core.HttpResponsePromise.fromPromise(this.__getWorkflowStatus(workflowId, requestOptions));\n }\n\n private async __getWorkflowStatus(\n workflowId: string,\n requestOptions?: Temporal.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.TemporalWorkflowStatusData>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/temporal/workflows/${encodeURIComponent(workflowId)}/status`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return {\n data: _response.body as OumlaSdkApi.TemporalWorkflowStatusData,\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 403:\n throw new OumlaSdkApi.ForbiddenError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 404:\n throw new OumlaSdkApi.NotFoundError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/temporal/workflows/{workflowId}/status.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport * as environments from \"../../../../environments.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as OumlaSdkApi from \"../../../index.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../core/headers.js\";\nimport * as errors from \"../../../../errors/index.js\";\n\nexport declare namespace Tokenization {\n export interface Options {\n environment?: core.Supplier<environments.OumlaSdkApiEnvironment | string>;\n /** Specify a custom URL to connect the client to. */\n baseUrl?: core.Supplier<string>;\n token?: core.Supplier<core.BearerToken | undefined>;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey: core.Supplier<string>;\n /** Additional headers to include in requests. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n\n export interface RequestOptions {\n /** The maximum time to wait for a response in seconds. */\n timeoutInSeconds?: number;\n /** The number of times to retry the request. Defaults to 2. */\n maxRetries?: number;\n /** A hook to abort the request. */\n abortSignal?: AbortSignal;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey?: string;\n /** Additional query string parameters to include in the request. */\n queryParams?: Record<string, unknown>;\n /** Additional headers to include in the request. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n}\n\n/**\n * Token creation, minting, and management\n */\nexport class Tokenization {\n protected readonly _options: Tokenization.Options;\n\n constructor(_options: Tokenization.Options) {\n this._options = _options;\n }\n\n /**\n * Get list of tokens with pagination\n *\n * @param {OumlaSdkApi.GetTokensRequest} request\n * @param {Tokenization.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.ForbiddenError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n *\n * @example\n * await client.tokenization.getTokens({\n * skip: 1,\n * take: 1\n * })\n */\n public getTokens(\n request: OumlaSdkApi.GetTokensRequest = {},\n requestOptions?: Tokenization.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.TokensResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getTokens(request, requestOptions));\n }\n\n private async __getTokens(\n request: OumlaSdkApi.GetTokensRequest = {},\n requestOptions?: Tokenization.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.TokensResponse>> {\n const { skip, take } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n if (skip != null) {\n _queryParams[\"skip\"] = skip.toString();\n }\n\n if (take != null) {\n _queryParams[\"take\"] = take.toString();\n }\n\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v1/tokenization/tokens\",\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.TokensResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 403:\n throw new OumlaSdkApi.ForbiddenError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/tokenization/tokens.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Issue a new token\n *\n * @param {OumlaSdkApi.IssueNewTokenRequest} request\n * @param {Tokenization.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.ForbiddenError}\n * @throws {@link OumlaSdkApi.NotFoundError}\n * @throws {@link OumlaSdkApi.ConflictError}\n * @throws {@link OumlaSdkApi.UnprocessableEntityError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n * @throws {@link OumlaSdkApi.BadGatewayError}\n * @throws {@link OumlaSdkApi.ServiceUnavailableError}\n * @throws {@link OumlaSdkApi.GatewayTimeoutError}\n *\n * @example\n * await client.tokenization.issueNewToken({\n * network: \"tBTC\",\n * addressId: \"addressId\",\n * clientShare: \"clientShare\",\n * createParams: {\n * \"key\": \"value\"\n * },\n * deploymentId: \"deploymentId\"\n * })\n */\n public issueNewToken(\n request: OumlaSdkApi.IssueNewTokenRequest,\n requestOptions?: Tokenization.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.TokenData> {\n return core.HttpResponsePromise.fromPromise(this.__issueNewToken(request, requestOptions));\n }\n\n private async __issueNewToken(\n request: OumlaSdkApi.IssueNewTokenRequest,\n requestOptions?: Tokenization.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.TokenData>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v1/tokenization/tokens\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.TokenData, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 403:\n throw new OumlaSdkApi.ForbiddenError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 404:\n throw new OumlaSdkApi.NotFoundError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 409:\n throw new OumlaSdkApi.ConflictError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 422:\n throw new OumlaSdkApi.UnprocessableEntityError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 502:\n throw new OumlaSdkApi.BadGatewayError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 503:\n throw new OumlaSdkApi.ServiceUnavailableError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 504:\n throw new OumlaSdkApi.GatewayTimeoutError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling POST /api/v1/tokenization/tokens.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Link an existing contract\n *\n * @param {OumlaSdkApi.LinkContractRequest} request\n * @param {Tokenization.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.NotFoundError}\n * @throws {@link OumlaSdkApi.ConflictError}\n * @throws {@link OumlaSdkApi.UnprocessableEntityError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n *\n * @example\n * await client.tokenization.linkContract({\n * contractAddress: \"contractAddress\"\n * })\n */\n public linkContract(\n request: OumlaSdkApi.LinkContractRequest,\n requestOptions?: Tokenization.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.LinkContractResponse> {\n return core.HttpResponsePromise.fromPromise(this.__linkContract(request, requestOptions));\n }\n\n private async __linkContract(\n request: OumlaSdkApi.LinkContractRequest,\n requestOptions?: Tokenization.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.LinkContractResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v1/tokenization/tokens/link\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.LinkContractResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 404:\n throw new OumlaSdkApi.NotFoundError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 409:\n throw new OumlaSdkApi.ConflictError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 422:\n throw new OumlaSdkApi.UnprocessableEntityError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling POST /api/v1/tokenization/tokens/link.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Get linked token by ID\n *\n * @param {string} id - Token ID\n * @param {Tokenization.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.ForbiddenError}\n * @throws {@link OumlaSdkApi.NotFoundError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n *\n * @example\n * await client.tokenization.getLinkedToken(\"id\")\n */\n public getLinkedToken(\n id: string,\n requestOptions?: Tokenization.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.GetLinkedTokenResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getLinkedToken(id, requestOptions));\n }\n\n private async __getLinkedToken(\n id: string,\n requestOptions?: Tokenization.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.GetLinkedTokenResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/tokenization/tokens/${encodeURIComponent(id)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.GetLinkedTokenResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 403:\n throw new OumlaSdkApi.ForbiddenError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 404:\n throw new OumlaSdkApi.NotFoundError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/tokenization/tokens/{id}.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Unlink a token\n *\n * @param {string} id - Token ID\n * @param {Tokenization.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.ForbiddenError}\n * @throws {@link OumlaSdkApi.NotFoundError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n *\n * @example\n * await client.tokenization.unlinkToken(\"id\")\n */\n public unlinkToken(\n id: string,\n requestOptions?: Tokenization.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.UnlinkTokenResponse> {\n return core.HttpResponsePromise.fromPromise(this.__unlinkToken(id, requestOptions));\n }\n\n private async __unlinkToken(\n id: string,\n requestOptions?: Tokenization.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.UnlinkTokenResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/tokenization/tokens/${encodeURIComponent(id)}`,\n ),\n method: \"DELETE\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.UnlinkTokenResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 403:\n throw new OumlaSdkApi.ForbiddenError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 404:\n throw new OumlaSdkApi.NotFoundError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling DELETE /api/v1/tokenization/tokens/{id}.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Get list of collections with pagination\n *\n * @param {OumlaSdkApi.GetCollectionsRequest} request\n * @param {Tokenization.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.ForbiddenError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n *\n * @example\n * await client.tokenization.getCollections({\n * skip: 1,\n * take: 1\n * })\n */\n public getCollections(\n request: OumlaSdkApi.GetCollectionsRequest = {},\n requestOptions?: Tokenization.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.CollectionsResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getCollections(request, requestOptions));\n }\n\n private async __getCollections(\n request: OumlaSdkApi.GetCollectionsRequest = {},\n requestOptions?: Tokenization.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.CollectionsResponse>> {\n const { skip, take } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n if (skip != null) {\n _queryParams[\"skip\"] = skip.toString();\n }\n\n if (take != null) {\n _queryParams[\"take\"] = take.toString();\n }\n\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v1/tokenization/collections\",\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.CollectionsResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 403:\n throw new OumlaSdkApi.ForbiddenError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/tokenization/collections.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Create a new collection - workflow started\n *\n * @param {OumlaSdkApi.CreateCollectionRequest} request\n * @param {Tokenization.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.ForbiddenError}\n * @throws {@link OumlaSdkApi.NotFoundError}\n * @throws {@link OumlaSdkApi.ConflictError}\n * @throws {@link OumlaSdkApi.UnprocessableEntityError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n * @throws {@link OumlaSdkApi.BadGatewayError}\n * @throws {@link OumlaSdkApi.ServiceUnavailableError}\n * @throws {@link OumlaSdkApi.GatewayTimeoutError}\n *\n * @example\n * await client.tokenization.createCollection({\n * network: \"network\",\n * addressId: \"addressId\",\n * clientShare: \"clientShare\",\n * createParams: {\n * \"key\": \"value\"\n * },\n * deploymentId: \"deploymentId\"\n * })\n */\n public createCollection(\n request: OumlaSdkApi.CreateCollectionRequest,\n requestOptions?: Tokenization.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.WorkflowResponse> {\n return core.HttpResponsePromise.fromPromise(this.__createCollection(request, requestOptions));\n }\n\n private async __createCollection(\n request: OumlaSdkApi.CreateCollectionRequest,\n requestOptions?: Tokenization.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.WorkflowResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v1/tokenization/collections\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.WorkflowResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 403:\n throw new OumlaSdkApi.ForbiddenError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 404:\n throw new OumlaSdkApi.NotFoundError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 409:\n throw new OumlaSdkApi.ConflictError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 422:\n throw new OumlaSdkApi.UnprocessableEntityError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 502:\n throw new OumlaSdkApi.BadGatewayError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 503:\n throw new OumlaSdkApi.ServiceUnavailableError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 504:\n throw new OumlaSdkApi.GatewayTimeoutError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling POST /api/v1/tokenization/collections.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Get collection details by ID\n *\n * @param {string} id - Collection ID\n * @param {Tokenization.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.ForbiddenError}\n * @throws {@link OumlaSdkApi.NotFoundError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n *\n * @example\n * await client.tokenization.getCollectionById(\"id\")\n */\n public getCollectionById(\n id: string,\n requestOptions?: Tokenization.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.CollectionResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getCollectionById(id, requestOptions));\n }\n\n private async __getCollectionById(\n id: string,\n requestOptions?: Tokenization.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.CollectionResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/tokenization/collections/${encodeURIComponent(id)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.CollectionResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 403:\n throw new OumlaSdkApi.ForbiddenError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 404:\n throw new OumlaSdkApi.NotFoundError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/tokenization/collections/{id}.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Delete a collection by ID\n *\n * @param {string} id - Collection ID\n * @param {Tokenization.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.ForbiddenError}\n * @throws {@link OumlaSdkApi.NotFoundError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n *\n * @example\n * await client.tokenization.deleteCollection(\"id\")\n */\n public deleteCollection(\n id: string,\n requestOptions?: Tokenization.RequestOptions,\n ): core.HttpResponsePromise<Record<string, unknown>> {\n return core.HttpResponsePromise.fromPromise(this.__deleteCollection(id, requestOptions));\n }\n\n private async __deleteCollection(\n id: string,\n requestOptions?: Tokenization.RequestOptions,\n ): Promise<core.WithRawResponse<Record<string, unknown>>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/tokenization/collections/${encodeURIComponent(id)}`,\n ),\n method: \"DELETE\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as Record<string, unknown>, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 403:\n throw new OumlaSdkApi.ForbiddenError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 404:\n throw new OumlaSdkApi.NotFoundError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling DELETE /api/v1/tokenization/collections/{id}.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Get token details from a collection\n *\n * @param {string} id - Collection ID\n * @param {string} tokenId - Token ID\n * @param {Tokenization.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.ForbiddenError}\n * @throws {@link OumlaSdkApi.NotFoundError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n *\n * @example\n * await client.tokenization.getCollectionTokenDetails(\"id\", \"tokenId\")\n */\n public getCollectionTokenDetails(\n id: string,\n tokenId: string,\n requestOptions?: Tokenization.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.CollectionTokenDetailsResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getCollectionTokenDetails(id, tokenId, requestOptions));\n }\n\n private async __getCollectionTokenDetails(\n id: string,\n tokenId: string,\n requestOptions?: Tokenization.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.CollectionTokenDetailsResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/tokenization/collections/${encodeURIComponent(id)}/tokens/${encodeURIComponent(tokenId)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return {\n data: _response.body as OumlaSdkApi.CollectionTokenDetailsResponse,\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 403:\n throw new OumlaSdkApi.ForbiddenError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 404:\n throw new OumlaSdkApi.NotFoundError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/tokenization/collections/{id}/tokens/{tokenId}.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Mint new tokens in a collection\n *\n * @param {string} id - Collection ID\n * @param {OumlaSdkApi.MintTokenRequest} request\n * @param {Tokenization.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.ForbiddenError}\n * @throws {@link OumlaSdkApi.NotFoundError}\n * @throws {@link OumlaSdkApi.ConflictError}\n * @throws {@link OumlaSdkApi.UnprocessableEntityError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n * @throws {@link OumlaSdkApi.BadGatewayError}\n * @throws {@link OumlaSdkApi.ServiceUnavailableError}\n * @throws {@link OumlaSdkApi.GatewayTimeoutError}\n *\n * @example\n * await client.tokenization.mintToken(\"id\", {\n * addressId: \"addressId\",\n * clientShare: \"clientShare\",\n * to: \"to\"\n * })\n */\n public mintToken(\n id: string,\n request: OumlaSdkApi.MintTokenRequest,\n requestOptions?: Tokenization.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.MintTokenResponse> {\n return core.HttpResponsePromise.fromPromise(this.__mintToken(id, request, requestOptions));\n }\n\n private async __mintToken(\n id: string,\n request: OumlaSdkApi.MintTokenRequest,\n requestOptions?: Tokenization.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.MintTokenResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/tokenization/collections/${encodeURIComponent(id)}/tokens/mint`,\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.MintTokenResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 403:\n throw new OumlaSdkApi.ForbiddenError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 404:\n throw new OumlaSdkApi.NotFoundError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 409:\n throw new OumlaSdkApi.ConflictError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 422:\n throw new OumlaSdkApi.UnprocessableEntityError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 502:\n throw new OumlaSdkApi.BadGatewayError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 503:\n throw new OumlaSdkApi.ServiceUnavailableError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 504:\n throw new OumlaSdkApi.GatewayTimeoutError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling POST /api/v1/tokenization/collections/{id}/tokens/mint.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Burn tokens from a collection\n *\n * @param {string} id - Collection ID\n * @param {OumlaSdkApi.BurnTokenRequest} request\n * @param {Tokenization.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.ForbiddenError}\n * @throws {@link OumlaSdkApi.NotFoundError}\n * @throws {@link OumlaSdkApi.ConflictError}\n * @throws {@link OumlaSdkApi.UnprocessableEntityError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n * @throws {@link OumlaSdkApi.BadGatewayError}\n * @throws {@link OumlaSdkApi.ServiceUnavailableError}\n * @throws {@link OumlaSdkApi.GatewayTimeoutError}\n *\n * @example\n * await client.tokenization.burnToken(\"id\", {\n * addressId: \"addressId\",\n * clientShare: \"clientShare\",\n * tokenId: \"tokenId\"\n * })\n */\n public burnToken(\n id: string,\n request: OumlaSdkApi.BurnTokenRequest,\n requestOptions?: Tokenization.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.BurnTokenResponse> {\n return core.HttpResponsePromise.fromPromise(this.__burnToken(id, request, requestOptions));\n }\n\n private async __burnToken(\n id: string,\n request: OumlaSdkApi.BurnTokenRequest,\n requestOptions?: Tokenization.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.BurnTokenResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/tokenization/collections/${encodeURIComponent(id)}/tokens/burn`,\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.BurnTokenResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 403:\n throw new OumlaSdkApi.ForbiddenError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 404:\n throw new OumlaSdkApi.NotFoundError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 409:\n throw new OumlaSdkApi.ConflictError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 422:\n throw new OumlaSdkApi.UnprocessableEntityError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 502:\n throw new OumlaSdkApi.BadGatewayError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 503:\n throw new OumlaSdkApi.ServiceUnavailableError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 504:\n throw new OumlaSdkApi.GatewayTimeoutError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling POST /api/v1/tokenization/collections/{id}/tokens/burn.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Get tokens from a collection by ID or type\n *\n * @param {OumlaSdkApi.GetCollectionTokensRequest} request\n * @param {Tokenization.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.ForbiddenError}\n * @throws {@link OumlaSdkApi.NotFoundError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n *\n * @example\n * await client.tokenization.getCollectionTokens({\n * id: \"id\",\n * type: \"type\",\n * skip: 1,\n * take: 1\n * })\n */\n public getCollectionTokens(\n request: OumlaSdkApi.GetCollectionTokensRequest = {},\n requestOptions?: Tokenization.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.CollectionTokensResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getCollectionTokens(request, requestOptions));\n }\n\n private async __getCollectionTokens(\n request: OumlaSdkApi.GetCollectionTokensRequest = {},\n requestOptions?: Tokenization.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.CollectionTokensResponse>> {\n const { id, type: type_, skip, take } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n if (id != null) {\n _queryParams[\"id\"] = id;\n }\n\n if (type_ != null) {\n _queryParams[\"type\"] = type_;\n }\n\n if (skip != null) {\n _queryParams[\"skip\"] = skip.toString();\n }\n\n if (take != null) {\n _queryParams[\"take\"] = take.toString();\n }\n\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v1/tokenization/collection/tokens\",\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.CollectionTokensResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 403:\n throw new OumlaSdkApi.ForbiddenError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 404:\n throw new OumlaSdkApi.NotFoundError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/tokenization/collection/tokens.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport * as environments from \"../../../../environments.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as OumlaSdkApi from \"../../../index.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../core/headers.js\";\nimport * as errors from \"../../../../errors/index.js\";\n\nexport declare namespace ContractTemplates {\n export interface Options {\n environment?: core.Supplier<environments.OumlaSdkApiEnvironment | string>;\n /** Specify a custom URL to connect the client to. */\n baseUrl?: core.Supplier<string>;\n token?: core.Supplier<core.BearerToken | undefined>;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey: core.Supplier<string>;\n /** Additional headers to include in requests. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n\n export interface RequestOptions {\n /** The maximum time to wait for a response in seconds. */\n timeoutInSeconds?: number;\n /** The number of times to retry the request. Defaults to 2. */\n maxRetries?: number;\n /** A hook to abort the request. */\n abortSignal?: AbortSignal;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey?: string;\n /** Additional query string parameters to include in the request. */\n queryParams?: Record<string, unknown>;\n /** Additional headers to include in the request. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n}\n\n/**\n * Smart contract template management\n */\nexport class ContractTemplates {\n protected readonly _options: ContractTemplates.Options;\n\n constructor(_options: ContractTemplates.Options) {\n this._options = _options;\n }\n\n /**\n * Get list of contract templates with pagination\n *\n * @param {OumlaSdkApi.GetContractsRequest} request\n * @param {ContractTemplates.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.ForbiddenError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n *\n * @example\n * await client.contractTemplates.getContracts({\n * skip: 1,\n * take: 1\n * })\n */\n public getContracts(\n request: OumlaSdkApi.GetContractsRequest = {},\n requestOptions?: ContractTemplates.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.ContractTemplatesResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getContracts(request, requestOptions));\n }\n\n private async __getContracts(\n request: OumlaSdkApi.GetContractsRequest = {},\n requestOptions?: ContractTemplates.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.ContractTemplatesResponse>> {\n const { skip, take } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n if (skip != null) {\n _queryParams[\"skip\"] = skip.toString();\n }\n\n if (take != null) {\n _queryParams[\"take\"] = take.toString();\n }\n\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v1/contract-templates\",\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return {\n data: _response.body as OumlaSdkApi.ContractTemplatesResponse,\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 403:\n throw new OumlaSdkApi.ForbiddenError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/contract-templates.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Create a new contract template\n *\n * @param {OumlaSdkApi.CreateContractRequest} request\n * @param {ContractTemplates.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.ForbiddenError}\n * @throws {@link OumlaSdkApi.NotFoundError}\n * @throws {@link OumlaSdkApi.ConflictError}\n * @throws {@link OumlaSdkApi.UnprocessableEntityError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n * @throws {@link OumlaSdkApi.BadGatewayError}\n * @throws {@link OumlaSdkApi.ServiceUnavailableError}\n * @throws {@link OumlaSdkApi.GatewayTimeoutError}\n *\n * @example\n * await client.contractTemplates.createContract({\n * name: \"name\",\n * description: \"description\",\n * bytecode: \"bytecode\",\n * abi: [{\n * \"key\": \"value\"\n * }]\n * })\n */\n public createContract(\n request: OumlaSdkApi.CreateContractRequest,\n requestOptions?: ContractTemplates.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.ContractTemplateResponse> {\n return core.HttpResponsePromise.fromPromise(this.__createContract(request, requestOptions));\n }\n\n private async __createContract(\n request: OumlaSdkApi.CreateContractRequest,\n requestOptions?: ContractTemplates.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.ContractTemplateResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v1/contract-templates\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.ContractTemplateResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 403:\n throw new OumlaSdkApi.ForbiddenError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 404:\n throw new OumlaSdkApi.NotFoundError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 409:\n throw new OumlaSdkApi.ConflictError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 422:\n throw new OumlaSdkApi.UnprocessableEntityError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 502:\n throw new OumlaSdkApi.BadGatewayError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 503:\n throw new OumlaSdkApi.ServiceUnavailableError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 504:\n throw new OumlaSdkApi.GatewayTimeoutError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling POST /api/v1/contract-templates.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Get contract template details by ID\n *\n * @param {string} templateId - Contract template ID\n * @param {ContractTemplates.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.ForbiddenError}\n * @throws {@link OumlaSdkApi.NotFoundError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n *\n * @example\n * await client.contractTemplates.getContractById(\"templateId\")\n */\n public getContractById(\n templateId: string,\n requestOptions?: ContractTemplates.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.ContractTemplateByIdResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getContractById(templateId, requestOptions));\n }\n\n private async __getContractById(\n templateId: string,\n requestOptions?: ContractTemplates.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.ContractTemplateByIdResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/contract-templates/${encodeURIComponent(templateId)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return {\n data: _response.body as OumlaSdkApi.ContractTemplateByIdResponse,\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 403:\n throw new OumlaSdkApi.ForbiddenError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 404:\n throw new OumlaSdkApi.NotFoundError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/contract-templates/{templateId}.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Delete a contract template by ID\n *\n * @param {string} templateId - Contract template ID\n * @param {ContractTemplates.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.ForbiddenError}\n * @throws {@link OumlaSdkApi.NotFoundError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n *\n * @example\n * await client.contractTemplates.deleteContract(\"templateId\")\n */\n public deleteContract(\n templateId: string,\n requestOptions?: ContractTemplates.RequestOptions,\n ): core.HttpResponsePromise<Record<string, unknown>> {\n return core.HttpResponsePromise.fromPromise(this.__deleteContract(templateId, requestOptions));\n }\n\n private async __deleteContract(\n templateId: string,\n requestOptions?: ContractTemplates.RequestOptions,\n ): Promise<core.WithRawResponse<Record<string, unknown>>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/contract-templates/${encodeURIComponent(templateId)}`,\n ),\n method: \"DELETE\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as Record<string, unknown>, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 403:\n throw new OumlaSdkApi.ForbiddenError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 404:\n throw new OumlaSdkApi.NotFoundError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling DELETE /api/v1/contract-templates/{templateId}.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Get contract constructor by template ID\n *\n * @param {string} templateId - Contract template ID\n * @param {ContractTemplates.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.ForbiddenError}\n * @throws {@link OumlaSdkApi.NotFoundError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n *\n * @example\n * await client.contractTemplates.getContractConstructorById(\"templateId\")\n */\n public getContractConstructorById(\n templateId: string,\n requestOptions?: ContractTemplates.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.ContractConstructorResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getContractConstructorById(templateId, requestOptions));\n }\n\n private async __getContractConstructorById(\n templateId: string,\n requestOptions?: ContractTemplates.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.ContractConstructorResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/contract-templates/${encodeURIComponent(templateId)}/getConstructorInfo`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return {\n data: _response.body as OumlaSdkApi.ContractConstructorResponse,\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 403:\n throw new OumlaSdkApi.ForbiddenError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 404:\n throw new OumlaSdkApi.NotFoundError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/contract-templates/{templateId}/getConstructorInfo.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Get contract functions by template ID\n *\n * @param {string} templateId - Contract template ID\n * @param {ContractTemplates.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.ForbiddenError}\n * @throws {@link OumlaSdkApi.NotFoundError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n *\n * @example\n * await client.contractTemplates.getContractFunctionById(\"templateId\")\n */\n public getContractFunctionById(\n templateId: string,\n requestOptions?: ContractTemplates.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.ContractFunctionsResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getContractFunctionById(templateId, requestOptions));\n }\n\n private async __getContractFunctionById(\n templateId: string,\n requestOptions?: ContractTemplates.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.ContractFunctionsResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/contract-templates/${encodeURIComponent(templateId)}/function`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return {\n data: _response.body as OumlaSdkApi.ContractFunctionsResponse,\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 403:\n throw new OumlaSdkApi.ForbiddenError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 404:\n throw new OumlaSdkApi.NotFoundError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/contract-templates/{templateId}/function.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Deploy a contract from template\n *\n * @param {string} templateId - Contract template ID\n * @param {OumlaSdkApi.DeployContractRequest} request\n * @param {ContractTemplates.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.ForbiddenError}\n * @throws {@link OumlaSdkApi.NotFoundError}\n * @throws {@link OumlaSdkApi.ConflictError}\n * @throws {@link OumlaSdkApi.UnprocessableEntityError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n * @throws {@link OumlaSdkApi.BadGatewayError}\n * @throws {@link OumlaSdkApi.ServiceUnavailableError}\n * @throws {@link OumlaSdkApi.GatewayTimeoutError}\n *\n * @example\n * await client.contractTemplates.deployContract(\"templateId\", {\n * network: \"network\",\n * addressId: \"addressId\",\n * clientShare: \"clientShare\"\n * })\n */\n public deployContract(\n templateId: string,\n request: OumlaSdkApi.DeployContractRequest,\n requestOptions?: ContractTemplates.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.DeployContractResponse> {\n return core.HttpResponsePromise.fromPromise(this.__deployContract(templateId, request, requestOptions));\n }\n\n private async __deployContract(\n templateId: string,\n request: OumlaSdkApi.DeployContractRequest,\n requestOptions?: ContractTemplates.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.DeployContractResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/contract-templates/${encodeURIComponent(templateId)}/deploy`,\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.DeployContractResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 403:\n throw new OumlaSdkApi.ForbiddenError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 404:\n throw new OumlaSdkApi.NotFoundError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 409:\n throw new OumlaSdkApi.ConflictError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 422:\n throw new OumlaSdkApi.UnprocessableEntityError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 502:\n throw new OumlaSdkApi.BadGatewayError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 503:\n throw new OumlaSdkApi.ServiceUnavailableError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 504:\n throw new OumlaSdkApi.GatewayTimeoutError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling POST /api/v1/contract-templates/{templateId}/deploy.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport * as environments from \"../../../../environments.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as OumlaSdkApi from \"../../../index.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../core/headers.js\";\nimport * as errors from \"../../../../errors/index.js\";\n\nexport declare namespace DeployedContracts {\n export interface Options {\n environment?: core.Supplier<environments.OumlaSdkApiEnvironment | string>;\n /** Specify a custom URL to connect the client to. */\n baseUrl?: core.Supplier<string>;\n token?: core.Supplier<core.BearerToken | undefined>;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey: core.Supplier<string>;\n /** Additional headers to include in requests. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n\n export interface RequestOptions {\n /** The maximum time to wait for a response in seconds. */\n timeoutInSeconds?: number;\n /** The number of times to retry the request. Defaults to 2. */\n maxRetries?: number;\n /** A hook to abort the request. */\n abortSignal?: AbortSignal;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey?: string;\n /** Additional query string parameters to include in the request. */\n queryParams?: Record<string, unknown>;\n /** Additional headers to include in the request. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n}\n\n/**\n * Deployed contract management\n */\nexport class DeployedContracts {\n protected readonly _options: DeployedContracts.Options;\n\n constructor(_options: DeployedContracts.Options) {\n this._options = _options;\n }\n\n /**\n * Get list of deployed contracts with pagination\n *\n * @param {OumlaSdkApi.GetDeployedContractsRequest} request\n * @param {DeployedContracts.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.ForbiddenError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n *\n * @example\n * await client.deployedContracts.getDeployedContracts({\n * contractAddress: \"contractAddress\",\n * network: \"tBTC\",\n * contractTemplateId: \"contractTemplateId\",\n * skip: 1,\n * take: 1\n * })\n */\n public getDeployedContracts(\n request: OumlaSdkApi.GetDeployedContractsRequest = {},\n requestOptions?: DeployedContracts.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.DeployedContractsResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getDeployedContracts(request, requestOptions));\n }\n\n private async __getDeployedContracts(\n request: OumlaSdkApi.GetDeployedContractsRequest = {},\n requestOptions?: DeployedContracts.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.DeployedContractsResponse>> {\n const { contractAddress, network, contractTemplateId, skip, take } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n if (contractAddress != null) {\n _queryParams[\"contractAddress\"] = contractAddress;\n }\n\n if (network != null) {\n _queryParams[\"network\"] = network;\n }\n\n if (contractTemplateId != null) {\n _queryParams[\"contractTemplateId\"] = contractTemplateId;\n }\n\n if (skip != null) {\n _queryParams[\"skip\"] = skip.toString();\n }\n\n if (take != null) {\n _queryParams[\"take\"] = take.toString();\n }\n\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v1/deployed-contracts\",\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return {\n data: _response.body as OumlaSdkApi.DeployedContractsResponse,\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 403:\n throw new OumlaSdkApi.ForbiddenError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/deployed-contracts.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Get deployed contract details by ID\n *\n * @param {string} contractId - Deployed contract ID\n * @param {DeployedContracts.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.ForbiddenError}\n * @throws {@link OumlaSdkApi.NotFoundError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n *\n * @example\n * await client.deployedContracts.getDeployedContractById(\"contractId\")\n */\n public getDeployedContractById(\n contractId: string,\n requestOptions?: DeployedContracts.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.DeployedContractByIdResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getDeployedContractById(contractId, requestOptions));\n }\n\n private async __getDeployedContractById(\n contractId: string,\n requestOptions?: DeployedContracts.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.DeployedContractByIdResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/deployed-contracts/${encodeURIComponent(contractId)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return {\n data: _response.body as OumlaSdkApi.DeployedContractByIdResponse,\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 403:\n throw new OumlaSdkApi.ForbiddenError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 404:\n throw new OumlaSdkApi.NotFoundError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/deployed-contracts/{contractId}.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Get deployed contract by address and network\n *\n * @param {string} contractAddress - Contract address\n * @param {OumlaSdkApi.GetDeployedContractByAddressRequestNetwork} network - Network\n * @param {DeployedContracts.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.ForbiddenError}\n * @throws {@link OumlaSdkApi.NotFoundError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n *\n * @example\n * await client.deployedContracts.getDeployedContractByAddress(\"contractAddress\", \"tBTC\")\n */\n public getDeployedContractByAddress(\n contractAddress: string,\n network: OumlaSdkApi.GetDeployedContractByAddressRequestNetwork,\n requestOptions?: DeployedContracts.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.DeployedContractByAddressResponse> {\n return core.HttpResponsePromise.fromPromise(\n this.__getDeployedContractByAddress(contractAddress, network, requestOptions),\n );\n }\n\n private async __getDeployedContractByAddress(\n contractAddress: string,\n network: OumlaSdkApi.GetDeployedContractByAddressRequestNetwork,\n requestOptions?: DeployedContracts.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.DeployedContractByAddressResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/deployed-contracts/${encodeURIComponent(contractAddress)}/${encodeURIComponent(network)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return {\n data: _response.body as OumlaSdkApi.DeployedContractByAddressResponse,\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 403:\n throw new OumlaSdkApi.ForbiddenError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 404:\n throw new OumlaSdkApi.NotFoundError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/deployed-contracts/{contractAddress}/{network}.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Fetch contract ABI from blockchain\n *\n * @param {OumlaSdkApi.FetchContractAbiRequest} request\n * @param {DeployedContracts.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.NotFoundError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n *\n * @example\n * await client.deployedContracts.fetchContractAbi({\n * contractAddress: \"contractAddress\",\n * network: \"network\"\n * })\n */\n public fetchContractAbi(\n request: OumlaSdkApi.FetchContractAbiRequest,\n requestOptions?: DeployedContracts.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.FetchContractAbiResponse> {\n return core.HttpResponsePromise.fromPromise(this.__fetchContractAbi(request, requestOptions));\n }\n\n private async __fetchContractAbi(\n request: OumlaSdkApi.FetchContractAbiRequest,\n requestOptions?: DeployedContracts.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.FetchContractAbiResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v1/deployed-contracts/fetch-abi\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.FetchContractAbiResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 404:\n throw new OumlaSdkApi.NotFoundError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling POST /api/v1/deployed-contracts/fetch-abi.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Add ABI for a deployed contract\n *\n * @param {OumlaSdkApi.AddContractAbiRequest} request\n * @param {DeployedContracts.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.NotFoundError}\n * @throws {@link OumlaSdkApi.ConflictError}\n * @throws {@link OumlaSdkApi.UnprocessableEntityError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n *\n * @example\n * await client.deployedContracts.addContractAbi({\n * contractAddress: \"contractAddress\",\n * network: \"network\",\n * name: \"name\",\n * abi: [{\n * \"key\": \"value\"\n * }]\n * })\n */\n public addContractAbi(\n request: OumlaSdkApi.AddContractAbiRequest,\n requestOptions?: DeployedContracts.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.AddContractAbiResponse> {\n return core.HttpResponsePromise.fromPromise(this.__addContractAbi(request, requestOptions));\n }\n\n private async __addContractAbi(\n request: OumlaSdkApi.AddContractAbiRequest,\n requestOptions?: DeployedContracts.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.AddContractAbiResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v1/deployed-contracts/add-abi\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.AddContractAbiResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 404:\n throw new OumlaSdkApi.NotFoundError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 409:\n throw new OumlaSdkApi.ConflictError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 422:\n throw new OumlaSdkApi.UnprocessableEntityError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling POST /api/v1/deployed-contracts/add-abi.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport * as environments from \"../../../../environments.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as OumlaSdkApi from \"../../../index.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../core/headers.js\";\nimport * as errors from \"../../../../errors/index.js\";\n\nexport declare namespace ContractInteractions {\n export interface Options {\n environment?: core.Supplier<environments.OumlaSdkApiEnvironment | string>;\n /** Specify a custom URL to connect the client to. */\n baseUrl?: core.Supplier<string>;\n token?: core.Supplier<core.BearerToken | undefined>;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey: core.Supplier<string>;\n /** Additional headers to include in requests. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n\n export interface RequestOptions {\n /** The maximum time to wait for a response in seconds. */\n timeoutInSeconds?: number;\n /** The number of times to retry the request. Defaults to 2. */\n maxRetries?: number;\n /** A hook to abort the request. */\n abortSignal?: AbortSignal;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey?: string;\n /** Additional query string parameters to include in the request. */\n queryParams?: Record<string, unknown>;\n /** Additional headers to include in the request. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n}\n\n/**\n * Smart contract interaction operations\n */\nexport class ContractInteractions {\n protected readonly _options: ContractInteractions.Options;\n\n constructor(_options: ContractInteractions.Options) {\n this._options = _options;\n }\n\n /**\n * Get ABI functions for a deployed contract\n *\n * @param {OumlaSdkApi.GetDeployedContractAbiRequestNetwork} network - Network\n * @param {string} contractAddress - Contract address\n * @param {ContractInteractions.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.ForbiddenError}\n * @throws {@link OumlaSdkApi.NotFoundError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n *\n * @example\n * await client.contractInteractions.getDeployedContractAbi(\"tBTC\", \"contractAddress\")\n */\n public getDeployedContractAbi(\n network: OumlaSdkApi.GetDeployedContractAbiRequestNetwork,\n contractAddress: string,\n requestOptions?: ContractInteractions.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.ContractAbiResponse> {\n return core.HttpResponsePromise.fromPromise(\n this.__getDeployedContractAbi(network, contractAddress, requestOptions),\n );\n }\n\n private async __getDeployedContractAbi(\n network: OumlaSdkApi.GetDeployedContractAbiRequestNetwork,\n contractAddress: string,\n requestOptions?: ContractInteractions.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.ContractAbiResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/contract-interactions/network/${encodeURIComponent(network)}/contract-address/${encodeURIComponent(contractAddress)}/functions`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.ContractAbiResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 403:\n throw new OumlaSdkApi.ForbiddenError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 404:\n throw new OumlaSdkApi.NotFoundError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/contract-interactions/network/{network}/contract-address/{contractAddress}/functions.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Call a read-only contract function\n *\n * @param {OumlaSdkApi.ReadCallFunctionRequestNetwork} network - Network\n * @param {string} contractAddress - Contract address\n * @param {OumlaSdkApi.ReadCallFunctionRequest} request\n * @param {ContractInteractions.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.NotFoundError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n *\n * @example\n * await client.contractInteractions.readCallFunction(\"tBTC\", \"contractAddress\", {\n * abiFunction: {\n * \"key\": \"value\"\n * }\n * })\n */\n public readCallFunction(\n network: OumlaSdkApi.ReadCallFunctionRequestNetwork,\n contractAddress: string,\n request: OumlaSdkApi.ReadCallFunctionRequest,\n requestOptions?: ContractInteractions.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.ReadCallFunctionResponse> {\n return core.HttpResponsePromise.fromPromise(\n this.__readCallFunction(network, contractAddress, request, requestOptions),\n );\n }\n\n private async __readCallFunction(\n network: OumlaSdkApi.ReadCallFunctionRequestNetwork,\n contractAddress: string,\n request: OumlaSdkApi.ReadCallFunctionRequest,\n requestOptions?: ContractInteractions.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.ReadCallFunctionResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/contract-interactions/network/${encodeURIComponent(network)}/contract-address/${encodeURIComponent(contractAddress)}/functions/read`,\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.ReadCallFunctionResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 404:\n throw new OumlaSdkApi.NotFoundError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling POST /api/v1/contract-interactions/network/{network}/contract-address/{contractAddress}/functions/read.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Call a write contract function (transaction)\n *\n * @param {OumlaSdkApi.WriteCallFunctionRequestNetwork} network - Network\n * @param {string} contractAddress - Contract address\n * @param {OumlaSdkApi.WriteCallFunctionRequest} request\n * @param {ContractInteractions.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.ForbiddenError}\n * @throws {@link OumlaSdkApi.NotFoundError}\n * @throws {@link OumlaSdkApi.ConflictError}\n * @throws {@link OumlaSdkApi.UnprocessableEntityError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n * @throws {@link OumlaSdkApi.BadGatewayError}\n * @throws {@link OumlaSdkApi.ServiceUnavailableError}\n * @throws {@link OumlaSdkApi.GatewayTimeoutError}\n *\n * @example\n * await client.contractInteractions.writeCallFunction(\"tBTC\", \"contractAddress\", {\n * addressId: \"addressId\",\n * clientShare: \"clientShare\",\n * abiFunction: {\n * \"key\": \"value\"\n * }\n * })\n */\n public writeCallFunction(\n network: OumlaSdkApi.WriteCallFunctionRequestNetwork,\n contractAddress: string,\n request: OumlaSdkApi.WriteCallFunctionRequest,\n requestOptions?: ContractInteractions.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.WriteCallFunctionResponse> {\n return core.HttpResponsePromise.fromPromise(\n this.__writeCallFunction(network, contractAddress, request, requestOptions),\n );\n }\n\n private async __writeCallFunction(\n network: OumlaSdkApi.WriteCallFunctionRequestNetwork,\n contractAddress: string,\n request: OumlaSdkApi.WriteCallFunctionRequest,\n requestOptions?: ContractInteractions.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.WriteCallFunctionResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/contract-interactions/network/${encodeURIComponent(network)}/contract-address/${encodeURIComponent(contractAddress)}/functions/write`,\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return {\n data: _response.body as OumlaSdkApi.WriteCallFunctionResponse,\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 403:\n throw new OumlaSdkApi.ForbiddenError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 404:\n throw new OumlaSdkApi.NotFoundError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 409:\n throw new OumlaSdkApi.ConflictError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 422:\n throw new OumlaSdkApi.UnprocessableEntityError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 502:\n throw new OumlaSdkApi.BadGatewayError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 503:\n throw new OumlaSdkApi.ServiceUnavailableError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 504:\n throw new OumlaSdkApi.GatewayTimeoutError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling POST /api/v1/contract-interactions/network/{network}/contract-address/{contractAddress}/functions/write.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n /**\n * Get transaction receipt by network and transaction ID\n *\n * @param {OumlaSdkApi.GetTransactionReceiptRequestNetwork} network - Network\n * @param {string} txId - Transaction ID\n * @param {ContractInteractions.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.ForbiddenError}\n * @throws {@link OumlaSdkApi.NotFoundError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n *\n * @example\n * await client.contractInteractions.getTransactionReceipt(\"tBTC\", \"txId\")\n */\n public getTransactionReceipt(\n network: OumlaSdkApi.GetTransactionReceiptRequestNetwork,\n txId: string,\n requestOptions?: ContractInteractions.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.TransactionReceiptResponse> {\n return core.HttpResponsePromise.fromPromise(this.__getTransactionReceipt(network, txId, requestOptions));\n }\n\n private async __getTransactionReceipt(\n network: OumlaSdkApi.GetTransactionReceiptRequestNetwork,\n txId: string,\n requestOptions?: ContractInteractions.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.TransactionReceiptResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n `api/v1/contract-interactions/network/${encodeURIComponent(network)}/tx/${encodeURIComponent(txId)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return {\n data: _response.body as OumlaSdkApi.TransactionReceiptResponse,\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 403:\n throw new OumlaSdkApi.ForbiddenError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 404:\n throw new OumlaSdkApi.NotFoundError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\n \"Timeout exceeded when calling GET /api/v1/contract-interactions/network/{network}/tx/{txId}.\",\n );\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport * as environments from \"../../../../environments.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as OumlaSdkApi from \"../../../index.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../core/headers.js\";\nimport * as errors from \"../../../../errors/index.js\";\n\nexport declare namespace Withdrawals {\n export interface Options {\n environment?: core.Supplier<environments.OumlaSdkApiEnvironment | string>;\n /** Specify a custom URL to connect the client to. */\n baseUrl?: core.Supplier<string>;\n token?: core.Supplier<core.BearerToken | undefined>;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey: core.Supplier<string>;\n /** Additional headers to include in requests. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n\n export interface RequestOptions {\n /** The maximum time to wait for a response in seconds. */\n timeoutInSeconds?: number;\n /** The number of times to retry the request. Defaults to 2. */\n maxRetries?: number;\n /** A hook to abort the request. */\n abortSignal?: AbortSignal;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey?: string;\n /** Additional query string parameters to include in the request. */\n queryParams?: Record<string, unknown>;\n /** Additional headers to include in the request. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n}\n\n/**\n * Withdrawal operations\n */\nexport class Withdrawals {\n protected readonly _options: Withdrawals.Options;\n\n constructor(_options: Withdrawals.Options) {\n this._options = _options;\n }\n\n /**\n * Create a withdrawal transaction\n *\n * @param {OumlaSdkApi.CreateWithdrawRequest} request\n * @param {Withdrawals.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link OumlaSdkApi.BadRequestError}\n * @throws {@link OumlaSdkApi.UnauthorizedError}\n * @throws {@link OumlaSdkApi.ForbiddenError}\n * @throws {@link OumlaSdkApi.NotFoundError}\n * @throws {@link OumlaSdkApi.ConflictError}\n * @throws {@link OumlaSdkApi.UnprocessableEntityError}\n * @throws {@link OumlaSdkApi.InternalServerError}\n * @throws {@link OumlaSdkApi.BadGatewayError}\n * @throws {@link OumlaSdkApi.ServiceUnavailableError}\n * @throws {@link OumlaSdkApi.GatewayTimeoutError}\n *\n * @example\n * await client.withdrawals.createWithdraw({\n * to: \"to\",\n * amount: \"amount\",\n * from: [\"from\"],\n * network: \"tBTC\",\n * clientShare: \"clientShare\"\n * })\n */\n public createWithdraw(\n request: OumlaSdkApi.CreateWithdrawRequest,\n requestOptions?: Withdrawals.RequestOptions,\n ): core.HttpResponsePromise<OumlaSdkApi.WithdrawResponse> {\n return core.HttpResponsePromise.fromPromise(this.__createWithdraw(request, requestOptions));\n }\n\n private async __createWithdraw(\n request: OumlaSdkApi.CreateWithdrawRequest,\n requestOptions?: Withdrawals.RequestOptions,\n ): Promise<core.WithRawResponse<OumlaSdkApi.WithdrawResponse>> {\n let _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({\n Authorization: await this._getAuthorizationHeader(),\n \"x-sdk-version\": requestOptions?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": requestOptions?.apiKey ?? this._options?.apiKey,\n }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.OumlaSdkApiEnvironment.Mainnet,\n \"api/v1/withdraw\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n });\n if (_response.ok) {\n return { data: _response.body as OumlaSdkApi.WithdrawResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (_response.error.statusCode) {\n case 400:\n throw new OumlaSdkApi.BadRequestError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 401:\n throw new OumlaSdkApi.UnauthorizedError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 403:\n throw new OumlaSdkApi.ForbiddenError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 404:\n throw new OumlaSdkApi.NotFoundError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 409:\n throw new OumlaSdkApi.ConflictError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 422:\n throw new OumlaSdkApi.UnprocessableEntityError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 500:\n throw new OumlaSdkApi.InternalServerError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 502:\n throw new OumlaSdkApi.BadGatewayError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 503:\n throw new OumlaSdkApi.ServiceUnavailableError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n case 504:\n throw new OumlaSdkApi.GatewayTimeoutError(\n _response.error.body as OumlaSdkApi.ErrorResponse,\n _response.rawResponse,\n );\n default:\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n switch (_response.error.reason) {\n case \"non-json\":\n throw new errors.OumlaSdkApiError({\n statusCode: _response.error.statusCode,\n body: _response.error.rawBody,\n rawResponse: _response.rawResponse,\n });\n case \"timeout\":\n throw new errors.OumlaSdkApiTimeoutError(\"Timeout exceeded when calling POST /api/v1/withdraw.\");\n case \"unknown\":\n throw new errors.OumlaSdkApiError({\n message: _response.error.errorMessage,\n rawResponse: _response.rawResponse,\n });\n }\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport * as environments from \"./environments.js\";\nimport * as core from \"./core/index.js\";\nimport { mergeHeaders } from \"./core/headers.js\";\nimport { Profiles } from \"./api/resources/profiles/client/Client.js\";\nimport { Wallets } from \"./api/resources/wallets/client/Client.js\";\nimport { Addresses } from \"./api/resources/addresses/client/Client.js\";\nimport { Transactions } from \"./api/resources/transactions/client/Client.js\";\nimport { Portfolio } from \"./api/resources/portfolio/client/Client.js\";\nimport { Temporal } from \"./api/resources/temporal/client/Client.js\";\nimport { Tokenization } from \"./api/resources/tokenization/client/Client.js\";\nimport { ContractTemplates } from \"./api/resources/contractTemplates/client/Client.js\";\nimport { DeployedContracts } from \"./api/resources/deployedContracts/client/Client.js\";\nimport { ContractInteractions } from \"./api/resources/contractInteractions/client/Client.js\";\nimport { Withdrawals } from \"./api/resources/withdrawals/client/Client.js\";\n\nexport declare namespace OumlaSdkApiClient {\n export interface Options {\n environment?: core.Supplier<environments.OumlaSdkApiEnvironment | string>;\n /** Specify a custom URL to connect the client to. */\n baseUrl?: core.Supplier<string>;\n token?: core.Supplier<core.BearerToken | undefined>;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey: core.Supplier<string>;\n /** Additional headers to include in requests. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n\n export interface RequestOptions {\n /** The maximum time to wait for a response in seconds. */\n timeoutInSeconds?: number;\n /** The number of times to retry the request. Defaults to 2. */\n maxRetries?: number;\n /** A hook to abort the request. */\n abortSignal?: AbortSignal;\n /** Override the x-sdk-version header */\n sdkVersion?: \"1.0.0\";\n /** Override the x-api-key header */\n apiKey?: string;\n /** Additional query string parameters to include in the request. */\n queryParams?: Record<string, unknown>;\n /** Additional headers to include in the request. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n }\n}\n\nexport class OumlaSdkApiClient {\n protected readonly _options: OumlaSdkApiClient.Options;\n protected _profiles: Profiles | undefined;\n protected _wallets: Wallets | undefined;\n protected _addresses: Addresses | undefined;\n protected _transactions: Transactions | undefined;\n protected _portfolio: Portfolio | undefined;\n protected _temporal: Temporal | undefined;\n protected _tokenization: Tokenization | undefined;\n protected _contractTemplates: ContractTemplates | undefined;\n protected _deployedContracts: DeployedContracts | undefined;\n protected _contractInteractions: ContractInteractions | undefined;\n protected _withdrawals: Withdrawals | undefined;\n\n constructor(_options: OumlaSdkApiClient.Options) {\n this._options = {\n ..._options,\n headers: mergeHeaders(\n {\n \"x-sdk-version\": _options?.sdkVersion ?? \"1.0.0\",\n \"x-api-key\": _options?.apiKey,\n \"X-Fern-Language\": \"JavaScript\",\n \"X-Fern-Runtime\": core.RUNTIME.type,\n \"X-Fern-Runtime-Version\": core.RUNTIME.version,\n },\n _options?.headers,\n ),\n };\n }\n\n public get profiles(): Profiles {\n return (this._profiles ??= new Profiles(this._options));\n }\n\n public get wallets(): Wallets {\n return (this._wallets ??= new Wallets(this._options));\n }\n\n public get addresses(): Addresses {\n return (this._addresses ??= new Addresses(this._options));\n }\n\n public get transactions(): Transactions {\n return (this._transactions ??= new Transactions(this._options));\n }\n\n public get portfolio(): Portfolio {\n return (this._portfolio ??= new Portfolio(this._options));\n }\n\n public get temporal(): Temporal {\n return (this._temporal ??= new Temporal(this._options));\n }\n\n public get tokenization(): Tokenization {\n return (this._tokenization ??= new Tokenization(this._options));\n }\n\n public get contractTemplates(): ContractTemplates {\n return (this._contractTemplates ??= new ContractTemplates(this._options));\n }\n\n public get deployedContracts(): DeployedContracts {\n return (this._deployedContracts ??= new DeployedContracts(this._options));\n }\n\n public get contractInteractions(): ContractInteractions {\n return (this._contractInteractions ??= new ContractInteractions(this._options));\n }\n\n public get withdrawals(): Withdrawals {\n return (this._withdrawals ??= new Withdrawals(this._options));\n }\n}\n"]}