/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
import * as z from "zod";
import { safeParse } from "../lib/schemas.js";
import { Result as SafeParseResult } from "../types/fp.js";
import { SDKValidationError } from "./errors/sdkvalidationerror.js";
/**
* OperationStatus is utilized to indicate which Operation status are considered successful.
*/
export type OperationStatus = {
/**
* The status is the network-specific status of the operation.
*/
status: string;
/**
* An Operation is considered successful if the Operation.Amount should affect the Operation.Account. Some blockchains (like Bitcoin) only include successful operations in blocks but other blockchains (like Ethereum) include unsuccessful operations that incur a fee. To reconcile the computed balance from the stream of Operations, it is critical to understand which Operation.Status indicate an Operation is successful and should affect an Account.
*/
successful: boolean;
};
/** @internal */
export const OperationStatus$inboundSchema: z.ZodType<
OperationStatus,
z.ZodTypeDef,
unknown
> = z.object({
status: z.string(),
successful: z.boolean(),
});
/** @internal */
export type OperationStatus$Outbound = {
status: string;
successful: boolean;
};
/** @internal */
export const OperationStatus$outboundSchema: z.ZodType<
OperationStatus$Outbound,
z.ZodTypeDef,
OperationStatus
> = z.object({
status: z.string(),
successful: z.boolean(),
});
/**
* @internal
* @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
*/
export namespace OperationStatus$ {
/** @deprecated use `OperationStatus$inboundSchema` instead. */
export const inboundSchema = OperationStatus$inboundSchema;
/** @deprecated use `OperationStatus$outboundSchema` instead. */
export const outboundSchema = OperationStatus$outboundSchema;
/** @deprecated use `OperationStatus$Outbound` instead. */
export type Outbound = OperationStatus$Outbound;
}
export function operationStatusToJSON(
operationStatus: OperationStatus,
): string {
return JSON.stringify(OperationStatus$outboundSchema.parse(operationStatus));
}
export function operationStatusFromJSON(
jsonString: string,
): SafeParseResult<OperationStatus, SDKValidationError> {
return safeParse(
jsonString,
(x) => OperationStatus$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'OperationStatus' from JSON`,
);
}