@taprsvp/types
Version:
TypeScript types and interfaces for the Transaction Authorization Protocol (TAP)
346 lines • 21.7 kB
JavaScript
"use strict";
/**
* @fileoverview TAP Message Validation using Zod v4
*
* This module provides Zod schema definitions for validating TAP (Transaction Authorization Protocol) messages.
* It ensures type safety and runtime validation of all TAP message types.
*
* @see {@link https://github.com/colinhacks/zod | Zod Documentation}
* @see {@link https://github.com/TransactionAuthorizationProtocol/TAIPs | TAP Specifications}
* @version 1.0.0
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.validateCancelMessage = exports.validateRejectMessage = exports.validateSettleMessage = exports.validateConnectMessage = exports.validateAuthorizeMessage = exports.validatePaymentMessage = exports.validateTransferMessage = exports.TAPMessageSchema = exports.RevertMessageSchema = exports.CancelMessageSchema = exports.RejectMessageSchema = exports.SettleMessageSchema = exports.ConnectMessageSchema = exports.AuthorizeMessageSchema = exports.PaymentMessageSchema = exports.TransferMessageSchema = exports.RevertSchema = exports.CancelSchema = exports.RejectSchema = exports.SettleSchema = exports.ConnectSchema = exports.TransactionConstraintsSchema = exports.AuthorizeSchema = exports.PaymentSchema = exports.TransferSchema = exports.DIDCommReplySchema = exports.DIDCommMessageSchema = exports.AgentSchema = exports.PartySchema = exports.OrganizationSchema = exports.PersonSchema = exports.ParticipantSchema = exports.TapMessageObjectSchema = exports.JsonLdObjectSchema = exports.AssetSchema = exports.CategoryPurposeCodeSchema = exports.PurposeCodeSchema = exports.CurrencyCodeSchema = exports.AmountSchema = exports.SettlementAddressSchema = exports.PayToURISchema = exports.CAIP19Schema = exports.CAIP10Schema = exports.CAIP2Schema = exports.UUIDSchema = exports.ISO8601DateTimeSchema = exports.TAPTypeSchema = exports.TAPContextSchema = exports.IRISchema = exports.DIDSchema = void 0;
exports.validateTransactionConstraints = exports.validateRevertMessage = void 0;
exports.validateTAPMessage = validateTAPMessage;
exports.parseTAPMessage = parseTAPMessage;
exports.isTAPMessage = isTAPMessage;
const zod_1 = require("zod");
// ============================================================================
// FUNDAMENTAL VALIDATORS
// ============================================================================
/** Decentralized Identifier (DID) validator */
exports.DIDSchema = zod_1.z.string().regex(/^did:[a-z0-9]+:[a-zA-Z0-9._%-]+$/);
/** Internationalized Resource Identifier (IRI) validator */
exports.IRISchema = zod_1.z.string().regex(/^[a-zA-Z][a-zA-Z0-9+.-]*:.+$/);
/** TAP Context URI validator */
exports.TAPContextSchema = zod_1.z.literal("https://tap.rsvp/schema/1.0");
/** TAP Type URI validator */
exports.TAPTypeSchema = zod_1.z.string().regex(/^https:\/\/tap\.rsvp\/schema\/1\.0#[A-Za-z]+$/);
/** ISO 8601 DateTime validator */
exports.ISO8601DateTimeSchema = zod_1.z.string().datetime();
/** UUID v4 validator */
exports.UUIDSchema = zod_1.z.string().uuid();
/** CAIP-2 Chain ID validator (namespace:reference) */
exports.CAIP2Schema = zod_1.z.string().regex(/^[a-z0-9]+:[a-zA-Z0-9._%-]+$/);
/** CAIP-10 Account Address validator (chain_id:account_address) */
exports.CAIP10Schema = zod_1.z.string().regex(/^[a-z0-9]+:[a-zA-Z0-9._%-]+:[a-zA-Z0-9._%-]+$/);
/** CAIP-19 Asset ID validator (chain_id/token_namespace:token_reference) */
exports.CAIP19Schema = zod_1.z.string().regex(/^[a-z0-9]+:[a-zA-Z0-9._%-]+\/[a-z0-9]+:[a-zA-Z0-9._%-]+$/);
/** PayTo URI validator for traditional banking */
exports.PayToURISchema = zod_1.z.string().regex(/^payto:\/\/[a-zA-Z0-9._%-]+\/[a-zA-Z0-9._%-]+/);
/** Settlement Address (union of CAIP-10 and PayTo URI) */
exports.SettlementAddressSchema = zod_1.z.union([exports.CAIP10Schema, exports.PayToURISchema]);
/** Amount as decimal string validator */
exports.AmountSchema = zod_1.z.string().regex(/^\d+(\.\d+)?$/);
/** Valid ISO 4217 Currency Codes - extracted from currencies.ts */
const VALID_CURRENCY_CODES = [
"AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "AUD", "AWG", "AZN", "BAM", "BBD", "BDT", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BRL", "BSD", "BTN", "BWP", "BYN", "BZD", "CAD", "CDF", "CHF", "CLP", "CNY", "COP", "CRC", "CUP", "CVE", "CZK", "DJF", "DKK", "DOP", "DZD", "EGP", "ERN", "ETB", "EUR", "FJD", "FKP", "GBP", "GEL", "GHS", "GIP", "GMD", "GNF", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "ILS", "INR", "IQD", "IRR", "ISK", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MRU", "MUR", "MVR", "MWK", "MXN", "MYR", "MZN", "NAD", "NGN", "NIO", "NOK", "NPR", "NZD", "OMR", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", "SEK", "SGD", "SHP", "SLL", "SOS", "SRD", "SSP", "STN", "SVC", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TWD", "TZS", "UAH", "UGX", "USD", "UYU", "UZS", "VES", "VND", "VUV", "WST", "XAF", "XCD", "XOF", "XPF", "YER", "ZAR", "ZMW", "ZWL"
];
/** Valid ISO 20022 Purpose Codes - extracted from purpose_codes.ts */
const VALID_PURPOSE_CODES = [
"ACCT", "ADCS", "ADMG", "ADVA", "AEMP", "AGRT", "AIRB", "ALLW", "ALMY", "AMEX", "ANNI", "ANTS", "AREN", "AUCO", "BBSC", "BCDM", "BCFG", "BECH", "BENE", "BEXP", "BFWD", "BKDF", "BKFE", "BKFM", "BKIP", "BKPP", "BLDM", "BNET", "BOCE", "BOND", "BONU", "BUSB", "CABD", "CAEQ", "CAFI", "CASH", "CBCR", "CBFF", "CBFR", "CBLK", "CBTV", "CCHD", "CCIR", "CCPC", "CCPM", "CCRD", "CCSM", "CDBL", "CDCB", "CDCD", "CDCS", "CDDP", "CDEP", "CDOC", "CDQC", "CFDI", "CFEE", "CGDD", "CHAR", "CLPR", "CMDT", "COLL", "COMC", "COMM", "COMP", "COMT", "CORT", "COST", "CPEN", "CPKC", "CPYR", "CRDS", "CRPR", "CRSP", "CRTL", "CSDB", "CSLP", "CVCF", "DBCR", "DBTC", "DCRD", "DEBT", "DEPD", "DEPT", "DERI", "DICL", "DIVD", "DMEQ", "DNTS", "DSMT", "DVPM", "ECPG", "ECPR", "ECPU", "EDUC", "EFTC", "EFTD", "ELEC", "ENRG", "EPAY", "EQPT", "EQTS", "EQUS", "ESTX", "ETUP", "EXPT", "EXTD", "FACT", "FAND", "FCOL", "FCPM", "FEES", "FERB", "FIXI", "FLCR", "FNET", "FORW", "FREX", "FUTR", "FWBC", "FWCC", "FWLV", "FWSB", "FWSC", "FXNT", "GAFA", "GAHO", "GAMB", "GASB", "GDDS", "GDSV", "GFRP", "GIFT", "GOVI", "GOVT", "GSCB", "GSTX", "GVEA", "GVEB", "GVEC", "GVED", "GWLT", "HEDG", "HLRP", "HLST", "HLTC", "HLTI", "HREC", "HSPC", "HSTX", "ICCP", "ICRF", "IDCP", "IHRP", "INPC", "INPR", "INSC", "INSM", "INSU", "INTC", "INTE", "INTP", "INTX", "INVS", "IPAY", "IPCA", "IPDO", "IPEA", "IPEC", "IPEW", "IPPS", "IPRT", "IPUW", "IVPT", "LBIN", "LBRI", "LCOL", "LFEE", "LICF", "LIFI", "LIMA", "LMEQ", "LMFI", "LMRK", "LOAN", "LOAR", "LOTT", "LREB", "LREV", "LSFL", "LTCF", "MAFC", "MARF", "MARG", "MBSB", "MBSC", "MCDM", "MCFG", "MDCS", "MGCC", "MGSC", "MOMA", "MSVC", "MTUP", "NETT", "NITX", "NOWS", "NWCH", "NWCM", "OCCC", "OCDM", "OCFG", "OFEE", "OPBC", "OPCC", "OPSB", "OPSC", "OPTN", "OTCD", "OTHR", "OTLC", "PADD", "PAYR", "PCOM", "PDEP", "PEFC", "PENO", "PENS", "PHON", "PLDS", "PLRF", "POPE", "PPTI", "PRCP", "PRME", "PTSP", "PTXP", "RAPI", "RCKE", "RCPT", "RDTX", "REBT", "REFU", "RELG", "RENT", "REOD", "REPO", "RETL", "RHBS", "RIMB", "RINP", "RLWY", "RMCO", "ROYA", "RPBC", "RPCC", "RPNT", "RPSB", "RPSC", "RRBN", "RRCT", "RRTP", "RVPM", "RVPO", "SALA", "SASW", "SAVG", "SBSC", "SCIE", "SCIR", "SCRP", "SCVE", "SECU", "SEPI", "SERV", "SHBC", "SHCC", "SHSL", "SLEB", "SLOA", "SLPI", "SPLT", "SPSP", "SSBE", "STDY", "SUBS", "SUPP", "SWBC", "SWCC", "SWFP", "SWPP", "SWPT", "SWRS", "SWSB", "SWSC", "SWUF", "TAXR", "TAXS", "TBAN", "TBAS", "TBBC", "TBCC", "TBIL", "TCSC", "TELI", "TLRF", "TLRR", "TMPG", "TPRI", "TPRP", "TRAD", "TRCP", "TREA", "TRFD", "TRNC", "TRPT", "TRVC", "UBIL", "UNIT", "VATX", "VIEW", "VOST", "WEBI", "WHLD", "WTER", "ZABA"
];
/** Valid ISO 20022 Category Purpose Codes - extracted from purpose_codes.ts */
const VALID_CATEGORY_PURPOSE_CODES = [
"BONU", "CASH", "CGWV", "CIPC", "CONC", "CORT", "CTDF", "DCRD", "DIVI", "DVPM", "EPAY", "FCDT", "FCIN", "FCOL", "GOVT", "HEDG", "ICCP", "IDCP", "INTC", "INTE", "LBOX", "LOAN", "OTHR", "PENS", "RPRE", "RRCT", "RVPM", "SALA", "SAVG", "SECU", "SSBE", "SUPP", "SWEP", "TAXS", "TOPG", "TRAD", "TREA", "VATX"
];
/** ISO 4217 Currency Code validator */
exports.CurrencyCodeSchema = zod_1.z.enum(VALID_CURRENCY_CODES);
/** ISO 20022 Purpose Code validator */
exports.PurposeCodeSchema = zod_1.z.enum(VALID_PURPOSE_CODES);
/** ISO 20022 Category Purpose Code validator */
exports.CategoryPurposeCodeSchema = zod_1.z.enum(VALID_CATEGORY_PURPOSE_CODES);
/** Asset ID (union of CAIP-19 and ISO 4217 currency code) */
exports.AssetSchema = zod_1.z.union([exports.CAIP19Schema, exports.CurrencyCodeSchema]);
// ============================================================================
// JSON-LD BASE VALIDATORS
// ============================================================================
/** Base JSON-LD object validator */
exports.JsonLdObjectSchema = zod_1.z.object({
"@context": zod_1.z.union([exports.IRISchema, zod_1.z.record(zod_1.z.string(), zod_1.z.string())]).optional(),
"@type": zod_1.z.string()
});
/** TAP Message Object base validator */
exports.TapMessageObjectSchema = exports.JsonLdObjectSchema.merge(zod_1.z.object({
"@context": zod_1.z.union([exports.TAPContextSchema, zod_1.z.record(zod_1.z.string(), exports.IRISchema)]),
"@type": zod_1.z.string()
}));
// ============================================================================
// PARTICIPANT VALIDATORS
// ============================================================================
/** Base Participant validator */
exports.ParticipantSchema = zod_1.z.object({
"@id": exports.DIDSchema,
"@type": zod_1.z.string().optional(),
name: zod_1.z.string(),
email: zod_1.z.string().email().optional(),
phone: zod_1.z.string().optional(),
url: zod_1.z.string().url().optional()
});
/** Natural Person validator */
exports.PersonSchema = exports.ParticipantSchema.merge(zod_1.z.object({
"@type": zod_1.z.literal("https://schema.org/Person").optional(),
givenName: zod_1.z.string().optional(),
familyName: zod_1.z.string().optional(),
additionalName: zod_1.z.string().optional(),
birthDate: zod_1.z.string().optional(),
nationality: zod_1.z.string().optional()
}));
/** Organization validator */
exports.OrganizationSchema = exports.ParticipantSchema.merge(zod_1.z.object({
"@type": zod_1.z.literal("https://schema.org/Organization").optional(),
legalName: zod_1.z.string().optional(),
taxID: zod_1.z.string().optional(),
leiCode: zod_1.z.string().optional(),
address: zod_1.z.object({
streetAddress: zod_1.z.string().optional(),
addressLocality: zod_1.z.string().optional(),
addressRegion: zod_1.z.string().optional(),
postalCode: zod_1.z.string().optional(),
addressCountry: zod_1.z.string().optional()
}).optional()
}));
/** Party (Person or Organization) validator */
exports.PartySchema = zod_1.z.union([exports.PersonSchema, exports.OrganizationSchema]);
/** Agent validator */
exports.AgentSchema = exports.OrganizationSchema.partial().merge(zod_1.z.object({
"@id": exports.DIDSchema,
for: exports.DIDSchema,
role: zod_1.z.string().optional(),
policies: zod_1.z.array(zod_1.z.record(zod_1.z.string(), zod_1.z.unknown())).optional()
}));
// ============================================================================
// DIDCOMM MESSAGE VALIDATORS
// ============================================================================
/** DIDComm Message base validator */
exports.DIDCommMessageSchema = zod_1.z.object({
id: exports.UUIDSchema,
type: exports.TAPTypeSchema,
from: exports.DIDSchema,
to: zod_1.z.array(exports.DIDSchema),
created_time: zod_1.z.number(),
expires_time: zod_1.z.number().optional(),
body: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown())
});
/** DIDComm Reply base validator */
exports.DIDCommReplySchema = exports.DIDCommMessageSchema.merge(zod_1.z.object({
thid: exports.UUIDSchema
}));
// ============================================================================
// TAP MESSAGE VALIDATORS
// ============================================================================
/** Transfer message body validator */
exports.TransferSchema = exports.TapMessageObjectSchema.merge(zod_1.z.object({
"@type": zod_1.z.literal("Transfer"),
asset: exports.CAIP19Schema,
amount: exports.AmountSchema,
originator: exports.PartySchema,
beneficiary: exports.PartySchema,
agents: zod_1.z.array(exports.AgentSchema),
settlementAddress: exports.SettlementAddressSchema.optional(),
purposeCode: exports.PurposeCodeSchema.optional(),
reference: zod_1.z.string().optional()
}));
/** Payment message body validator */
exports.PaymentSchema = exports.TapMessageObjectSchema.merge(zod_1.z.object({
"@type": zod_1.z.literal("Payment"),
amount: exports.AmountSchema,
asset: exports.AssetSchema.optional(),
currency: exports.CurrencyCodeSchema.optional(),
payer: exports.PartySchema,
payee: exports.PartySchema,
agents: zod_1.z.array(exports.AgentSchema),
settlementAddress: exports.SettlementAddressSchema.optional(),
purposeCode: exports.PurposeCodeSchema.optional(),
reference: zod_1.z.string().optional(),
invoiceId: zod_1.z.string().optional()
})).refine(data => data.asset || data.currency, {
message: "Either asset or currency must be provided"
});
/** Authorization message body validator */
exports.AuthorizeSchema = exports.TapMessageObjectSchema.merge(zod_1.z.object({
"@type": zod_1.z.literal("Authorize"),
decision: zod_1.z.enum(["approve", "deny"]),
reason: zod_1.z.string().optional(),
conditions: zod_1.z.array(zod_1.z.record(zod_1.z.string(), zod_1.z.unknown())).optional()
}));
/** Transaction Constraints validator */
exports.TransactionConstraintsSchema = zod_1.z.object({
purposes: zod_1.z.array(exports.PurposeCodeSchema).optional(),
categoryPurposes: zod_1.z.array(exports.CategoryPurposeCodeSchema).optional(),
limits: zod_1.z.object({
per_transaction: exports.AmountSchema.optional(),
per_day: exports.AmountSchema.optional(),
per_week: exports.AmountSchema.optional(),
per_month: exports.AmountSchema.optional(),
per_year: exports.AmountSchema.optional(),
currency: exports.CurrencyCodeSchema
}).optional(),
allowedBeneficiaries: zod_1.z.array(exports.PartySchema).optional(),
allowedSettlementAddresses: zod_1.z.array(exports.CAIP10Schema).optional(),
allowedAssets: zod_1.z.array(exports.CAIP19Schema).optional()
});
/** Connect message body validator */
exports.ConnectSchema = exports.TapMessageObjectSchema.merge(zod_1.z.object({
"@type": zod_1.z.literal("Connect"),
requester: exports.PartySchema,
principal: exports.PartySchema,
agents: zod_1.z.array(exports.AgentSchema),
constraints: exports.TransactionConstraintsSchema,
expiry: exports.ISO8601DateTimeSchema.optional(),
agreement: zod_1.z.string().url().optional()
}));
/** Settle message body validator */
exports.SettleSchema = exports.TapMessageObjectSchema.merge(zod_1.z.object({
"@type": zod_1.z.literal("Settle"),
txHash: zod_1.z.string(),
blockHash: zod_1.z.string().optional(),
blockNumber: zod_1.z.number().optional(),
transactionIndex: zod_1.z.number().optional(),
gasUsed: zod_1.z.string().optional(),
effectiveGasPrice: zod_1.z.string().optional()
}));
/** Reject message body validator */
exports.RejectSchema = exports.TapMessageObjectSchema.merge(zod_1.z.object({
"@type": zod_1.z.literal("Reject"),
reason: zod_1.z.string(),
code: zod_1.z.string().optional()
}));
/** Cancel message body validator */
exports.CancelSchema = exports.TapMessageObjectSchema.merge(zod_1.z.object({
"@type": zod_1.z.literal("Cancel"),
reason: zod_1.z.string().optional()
}));
/** Revert message body validator */
exports.RevertSchema = exports.TapMessageObjectSchema.merge(zod_1.z.object({
"@type": zod_1.z.literal("Revert"),
reason: zod_1.z.string(),
txHash: zod_1.z.string().optional()
}));
// ============================================================================
// DIDCOMM WRAPPED MESSAGE VALIDATORS
// ============================================================================
/** Transfer DIDComm message validator */
exports.TransferMessageSchema = exports.DIDCommMessageSchema.merge(zod_1.z.object({
type: zod_1.z.literal("https://tap.rsvp/schema/1.0#Transfer"),
body: exports.TransferSchema
}));
/** Payment DIDComm message validator */
exports.PaymentMessageSchema = exports.DIDCommMessageSchema.merge(zod_1.z.object({
type: zod_1.z.literal("https://tap.rsvp/schema/1.0#Payment"),
body: exports.PaymentSchema
}));
/** Authorization DIDComm reply validator */
exports.AuthorizeMessageSchema = exports.DIDCommReplySchema.merge(zod_1.z.object({
type: zod_1.z.literal("https://tap.rsvp/schema/1.0#Authorize"),
body: exports.AuthorizeSchema
}));
/** Connect DIDComm message validator */
exports.ConnectMessageSchema = exports.DIDCommMessageSchema.merge(zod_1.z.object({
type: zod_1.z.literal("https://tap.rsvp/schema/1.0#Connect"),
body: exports.ConnectSchema
}));
/** Settle DIDComm reply validator */
exports.SettleMessageSchema = exports.DIDCommReplySchema.merge(zod_1.z.object({
type: zod_1.z.literal("https://tap.rsvp/schema/1.0#Settle"),
body: exports.SettleSchema
}));
/** Reject DIDComm reply validator */
exports.RejectMessageSchema = exports.DIDCommReplySchema.merge(zod_1.z.object({
type: zod_1.z.literal("https://tap.rsvp/schema/1.0#Reject"),
body: exports.RejectSchema
}));
/** Cancel DIDComm reply validator */
exports.CancelMessageSchema = exports.DIDCommReplySchema.merge(zod_1.z.object({
type: zod_1.z.literal("https://tap.rsvp/schema/1.0#Cancel"),
body: exports.CancelSchema
}));
/** Revert DIDComm reply validator */
exports.RevertMessageSchema = exports.DIDCommReplySchema.merge(zod_1.z.object({
type: zod_1.z.literal("https://tap.rsvp/schema/1.0#Revert"),
body: exports.RevertSchema
}));
// ============================================================================
// UNION VALIDATOR FOR ALL TAP MESSAGES
// ============================================================================
/** All TAP Message types validator */
exports.TAPMessageSchema = zod_1.z.discriminatedUnion("type", [
exports.TransferMessageSchema,
exports.PaymentMessageSchema,
exports.AuthorizeMessageSchema,
exports.ConnectMessageSchema,
exports.SettleMessageSchema,
exports.RejectMessageSchema,
exports.CancelMessageSchema,
exports.RevertMessageSchema
]);
// ============================================================================
// VALIDATION FUNCTIONS
// ============================================================================
/**
* Validates a TAP message against the appropriate schema
* @param message - The message to validate
* @returns Validation result with parsed data or error details
*/
function validateTAPMessage(message) {
return exports.TAPMessageSchema.safeParse(message);
}
/**
* Validates and parses a TAP message, throwing on validation failure
* @param message - The message to validate
* @returns Parsed and validated message
* @throws ZodError if validation fails
*/
function parseTAPMessage(message) {
return exports.TAPMessageSchema.parse(message);
}
/**
* Type guard to check if an object is a valid TAP message
* @param message - The message to check
* @returns True if the message is a valid TAP message
*/
function isTAPMessage(message) {
return exports.TAPMessageSchema.safeParse(message).success;
}
// ============================================================================
// SPECIFIC MESSAGE TYPE VALIDATORS
// ============================================================================
/** Validates Transfer messages */
const validateTransferMessage = (message) => exports.TransferMessageSchema.safeParse(message);
exports.validateTransferMessage = validateTransferMessage;
/** Validates Payment messages */
const validatePaymentMessage = (message) => exports.PaymentMessageSchema.safeParse(message);
exports.validatePaymentMessage = validatePaymentMessage;
/** Validates Authorization messages */
const validateAuthorizeMessage = (message) => exports.AuthorizeMessageSchema.safeParse(message);
exports.validateAuthorizeMessage = validateAuthorizeMessage;
/** Validates Connect messages */
const validateConnectMessage = (message) => exports.ConnectMessageSchema.safeParse(message);
exports.validateConnectMessage = validateConnectMessage;
/** Validates Settlement messages */
const validateSettleMessage = (message) => exports.SettleMessageSchema.safeParse(message);
exports.validateSettleMessage = validateSettleMessage;
/** Validates Reject messages */
const validateRejectMessage = (message) => exports.RejectMessageSchema.safeParse(message);
exports.validateRejectMessage = validateRejectMessage;
/** Validates Cancel messages */
const validateCancelMessage = (message) => exports.CancelMessageSchema.safeParse(message);
exports.validateCancelMessage = validateCancelMessage;
/** Validates Revert messages */
const validateRevertMessage = (message) => exports.RevertMessageSchema.safeParse(message);
exports.validateRevertMessage = validateRevertMessage;
/** Validates Transaction Constraints */
const validateTransactionConstraints = (constraints) => exports.TransactionConstraintsSchema.safeParse(constraints);
exports.validateTransactionConstraints = validateTransactionConstraints;
//# sourceMappingURL=validator.js.map