/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
import * as z from "zod";
import { remap as remap$ } from "../lib/primitives.js";
import { safeParse } from "../lib/schemas.js";
import { Result as SafeParseResult } from "../types/fp.js";
import {
Amount,
Amount$inboundSchema,
Amount$Outbound,
Amount$outboundSchema,
} from "./amount.js";
import { SDKValidationError } from "./errors/sdkvalidationerror.js";
export type ConstructionMetadataResponseMetadata = {};
/**
* The ConstructionMetadataResponse returns network-specific metadata used for transaction construction. Optionally, the implementer can return the suggested fee associated with the transaction being constructed. The caller may use this info to adjust the intent of the transaction or to create a transaction with a different account that can pay the suggested fee. Suggested fee is an array in case fee payment must occur in multiple currencies.
*/
export type ConstructionMetadataResponse = {
metadata: ConstructionMetadataResponseMetadata;
suggestedFee?: Array<Amount> | undefined;
};
/** @internal */
export const ConstructionMetadataResponseMetadata$inboundSchema: z.ZodType<
ConstructionMetadataResponseMetadata,
z.ZodTypeDef,
unknown
> = z.object({});
/** @internal */
export type ConstructionMetadataResponseMetadata$Outbound = {};
/** @internal */
export const ConstructionMetadataResponseMetadata$outboundSchema: z.ZodType<
ConstructionMetadataResponseMetadata$Outbound,
z.ZodTypeDef,
ConstructionMetadataResponseMetadata
> = z.object({});
/**
* @internal
* @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
*/
export namespace ConstructionMetadataResponseMetadata$ {
/** @deprecated use `ConstructionMetadataResponseMetadata$inboundSchema` instead. */
export const inboundSchema =
ConstructionMetadataResponseMetadata$inboundSchema;
/** @deprecated use `ConstructionMetadataResponseMetadata$outboundSchema` instead. */
export const outboundSchema =
ConstructionMetadataResponseMetadata$outboundSchema;
/** @deprecated use `ConstructionMetadataResponseMetadata$Outbound` instead. */
export type Outbound = ConstructionMetadataResponseMetadata$Outbound;
}
export function constructionMetadataResponseMetadataToJSON(
constructionMetadataResponseMetadata: ConstructionMetadataResponseMetadata,
): string {
return JSON.stringify(
ConstructionMetadataResponseMetadata$outboundSchema.parse(
constructionMetadataResponseMetadata,
),
);
}
export function constructionMetadataResponseMetadataFromJSON(
jsonString: string,
): SafeParseResult<ConstructionMetadataResponseMetadata, SDKValidationError> {
return safeParse(
jsonString,
(x) =>
ConstructionMetadataResponseMetadata$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'ConstructionMetadataResponseMetadata' from JSON`,
);
}
/** @internal */
export const ConstructionMetadataResponse$inboundSchema: z.ZodType<
ConstructionMetadataResponse,
z.ZodTypeDef,
unknown
> = z.object({
metadata: z.lazy(() => ConstructionMetadataResponseMetadata$inboundSchema),
suggested_fee: z.array(Amount$inboundSchema).optional(),
}).transform((v) => {
return remap$(v, {
"suggested_fee": "suggestedFee",
});
});
/** @internal */
export type ConstructionMetadataResponse$Outbound = {
metadata: ConstructionMetadataResponseMetadata$Outbound;
suggested_fee?: Array<Amount$Outbound> | undefined;
};
/** @internal */
export const ConstructionMetadataResponse$outboundSchema: z.ZodType<
ConstructionMetadataResponse$Outbound,
z.ZodTypeDef,
ConstructionMetadataResponse
> = z.object({
metadata: z.lazy(() => ConstructionMetadataResponseMetadata$outboundSchema),
suggestedFee: z.array(Amount$outboundSchema).optional(),
}).transform((v) => {
return remap$(v, {
suggestedFee: "suggested_fee",
});
});
/**
* @internal
* @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
*/
export namespace ConstructionMetadataResponse$ {
/** @deprecated use `ConstructionMetadataResponse$inboundSchema` instead. */
export const inboundSchema = ConstructionMetadataResponse$inboundSchema;
/** @deprecated use `ConstructionMetadataResponse$outboundSchema` instead. */
export const outboundSchema = ConstructionMetadataResponse$outboundSchema;
/** @deprecated use `ConstructionMetadataResponse$Outbound` instead. */
export type Outbound = ConstructionMetadataResponse$Outbound;
}
export function constructionMetadataResponseToJSON(
constructionMetadataResponse: ConstructionMetadataResponse,
): string {
return JSON.stringify(
ConstructionMetadataResponse$outboundSchema.parse(
constructionMetadataResponse,
),
);
}
export function constructionMetadataResponseFromJSON(
jsonString: string,
): SafeParseResult<ConstructionMetadataResponse, SDKValidationError> {
return safeParse(
jsonString,
(x) => ConstructionMetadataResponse$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'ConstructionMetadataResponse' from JSON`,
);
}