/*
* 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 { SDKValidationError } from "./errors/sdkvalidationerror.js";
import {
SigningPayload,
SigningPayload$inboundSchema,
SigningPayload$Outbound,
SigningPayload$outboundSchema,
} from "./signingpayload.js";
/**
* ConstructionTransactionResponse is returned by `/construction/payloads`. It contains an unsigned transaction blob (that is usually needed to construct the a network transaction from a collection of signatures) and an array of payloads that must be signed by the caller.
*/
export type ConstructionPayloadsResponse = {
unsignedTransaction: string;
payloads: Array<SigningPayload>;
};
/** @internal */
export const ConstructionPayloadsResponse$inboundSchema: z.ZodType<
ConstructionPayloadsResponse,
z.ZodTypeDef,
unknown
> = z.object({
unsigned_transaction: z.string(),
payloads: z.array(SigningPayload$inboundSchema),
}).transform((v) => {
return remap$(v, {
"unsigned_transaction": "unsignedTransaction",
});
});
/** @internal */
export type ConstructionPayloadsResponse$Outbound = {
unsigned_transaction: string;
payloads: Array<SigningPayload$Outbound>;
};
/** @internal */
export const ConstructionPayloadsResponse$outboundSchema: z.ZodType<
ConstructionPayloadsResponse$Outbound,
z.ZodTypeDef,
ConstructionPayloadsResponse
> = z.object({
unsignedTransaction: z.string(),
payloads: z.array(SigningPayload$outboundSchema),
}).transform((v) => {
return remap$(v, {
unsignedTransaction: "unsigned_transaction",
});
});
/**
* @internal
* @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
*/
export namespace ConstructionPayloadsResponse$ {
/** @deprecated use `ConstructionPayloadsResponse$inboundSchema` instead. */
export const inboundSchema = ConstructionPayloadsResponse$inboundSchema;
/** @deprecated use `ConstructionPayloadsResponse$outboundSchema` instead. */
export const outboundSchema = ConstructionPayloadsResponse$outboundSchema;
/** @deprecated use `ConstructionPayloadsResponse$Outbound` instead. */
export type Outbound = ConstructionPayloadsResponse$Outbound;
}
export function constructionPayloadsResponseToJSON(
constructionPayloadsResponse: ConstructionPayloadsResponse,
): string {
return JSON.stringify(
ConstructionPayloadsResponse$outboundSchema.parse(
constructionPayloadsResponse,
),
);
}
export function constructionPayloadsResponseFromJSON(
jsonString: string,
): SafeParseResult<ConstructionPayloadsResponse, SDKValidationError> {
return safeParse(
jsonString,
(x) => ConstructionPayloadsResponse$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'ConstructionPayloadsResponse' from JSON`,
);
}