@fairmint/canton-node-sdk
Version:
Canton Node SDK
194 lines • 8.77 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.GetTransactionTreeByIdParamsSchema = exports.GetUpdateByIdParamsSchema = exports.GetTransactionByIdParamsSchema = exports.GetUpdateByOffsetParamsSchema = exports.GetTransactionByOffsetParamsSchema = exports.GetUpdateTreesParamsSchema = exports.GetUpdatesParamsSchema = exports.GetTransactionTreeByOffsetParamsSchema = exports.TransactionFormatSchema = exports.TransactionShapeSchema = exports.OperationEventFormatSchema = exports.FiltersForAnyPartySchema = exports.CumulativeFilterSchema = exports.IdentifierFilterSchema = void 0;
const zod_1 = require("zod");
const base_1 = require("./base");
// Filter content schemas matching AsyncAPI spec
const InterfaceFilterContentSchema = zod_1.z.object({
interfaceId: zod_1.z.string(),
includeInterfaceView: zod_1.z.boolean(),
includeCreatedEventBlob: zod_1.z.boolean(),
});
const TemplateFilterContentSchema = zod_1.z.object({
templateId: zod_1.z.string(),
includeCreatedEventBlob: zod_1.z.boolean(),
});
const WildcardFilterContentSchema = zod_1.z.object({
includeCreatedEventBlob: zod_1.z.boolean(),
});
// Identifier filter schema - matches AsyncAPI spec with 'value' wrapper
exports.IdentifierFilterSchema = zod_1.z.union([
zod_1.z.object({ Empty: zod_1.z.object({}) }),
zod_1.z.object({
InterfaceFilter: zod_1.z.object({
value: InterfaceFilterContentSchema,
}),
}),
zod_1.z.object({
TemplateFilter: zod_1.z.object({
value: TemplateFilterContentSchema,
}),
}),
zod_1.z.object({
WildcardFilter: zod_1.z.object({
value: WildcardFilterContentSchema,
}),
}),
]);
/** Schema for cumulative filter configuration. Defines filters that accumulate across multiple operations. */
exports.CumulativeFilterSchema = zod_1.z.object({
identifierFilter: exports.IdentifierFilterSchema,
});
/**
* Schema for filters that apply to any party. Defines cumulative filters that can be applied regardless of specific
* party.
*/
exports.FiltersForAnyPartySchema = zod_1.z
.object({
cumulative: zod_1.z.array(exports.CumulativeFilterSchema),
})
.optional();
/**
* Schema for event format configuration in operations. Defines how events are filtered and formatted in request
* parameters.
*/
exports.OperationEventFormatSchema = zod_1.z.object({
filtersByParty: zod_1.z.record(zod_1.z.string(), zod_1.z.object({
cumulative: zod_1.z.array(exports.CumulativeFilterSchema),
})),
filtersForAnyParty: exports.FiltersForAnyPartySchema,
verbose: zod_1.z.boolean().optional(),
});
/** Schema for transaction shape configuration. Defines the level of detail provided in transaction responses. */
exports.TransactionShapeSchema = zod_1.z.union([
/**
* AcsDelta: The transaction shape that is sufficient to maintain an accurate ACS view. This translates to create and
* archive events. The field witness_parties in events are populated as stakeholders, transaction filter will apply
* accordingly.
*/
zod_1.z.literal('TRANSACTION_SHAPE_ACS_DELTA'),
/**
* LedgerEffects: The transaction shape that allows maintaining an ACS and also conveys detailed information about all
* exercises. This translates to create, consuming exercise and non-consuming exercise. The field witness_parties in
* events are populated as cumulative informees, transaction filter will apply accordingly.
*/
zod_1.z.literal('TRANSACTION_SHAPE_LEDGER_EFFECTS'),
]);
/** Schema for transaction format configuration. Defines the event format and transaction shape for ledger operations. */
exports.TransactionFormatSchema = zod_1.z.object({
eventFormat: exports.OperationEventFormatSchema,
transactionShape: exports.TransactionShapeSchema,
});
exports.GetTransactionTreeByOffsetParamsSchema = zod_1.z.object({
/** Offset in the ledger to fetch the transaction tree from. */
offset: base_1.NonEmptyStringSchema,
/** Parties to include in the query (optional). */
parties: zod_1.z.array(zod_1.z.string()).optional(),
});
/** Schema for get updates parameters. Defines parameters for retrieving flat updates from the ledger. */
exports.GetUpdatesParamsSchema = zod_1.z.object({
/** Beginning of the requested ledger section (non-negative integer). */
beginExclusive: zod_1.z.number(),
/** End of the requested ledger section (optional). */
endInclusive: zod_1.z.number().optional(),
/** Maximum number of elements to return (optional). */
limit: zod_1.z.number().optional(),
/** Timeout to complete and send result if no new elements are received (optional). */
streamIdleTimeoutMs: zod_1.z.number().optional(),
/** Update format for the request. */
updateFormat: zod_1.z.object({
includeTransactions: zod_1.z
.object({
eventFormat: exports.OperationEventFormatSchema,
transactionShape: exports.TransactionShapeSchema,
})
.optional(),
includeReassignments: zod_1.z
.object({
filtersByParty: zod_1.z.record(zod_1.z.string(), zod_1.z.object({
cumulative: zod_1.z.array(exports.CumulativeFilterSchema),
})),
filtersForAnyParty: exports.FiltersForAnyPartySchema,
verbose: zod_1.z.boolean().optional(),
})
.optional(),
includeTopologyEvents: zod_1.z
.object({
includeParticipantAuthorizationEvents: zod_1.z
.object({
parties: zod_1.z.array(zod_1.z.string()).optional(),
})
.optional(),
})
.optional(),
}),
});
/**
* Schema for get update trees parameters. Defines parameters for retrieving update trees from the ledger. Same as
* GetUpdatesParams but for tree structures.
*/
exports.GetUpdateTreesParamsSchema = exports.GetUpdatesParamsSchema;
/**
* Schema for get transaction by offset parameters. Defines parameters for retrieving a specific transaction by its
* offset.
*/
exports.GetTransactionByOffsetParamsSchema = zod_1.z.object({
/** Offset of the transaction being looked up. */
offset: zod_1.z.number(),
/** Transaction format for the request. */
transactionFormat: exports.TransactionFormatSchema,
});
/** Schema for get update by offset parameters. Defines parameters for retrieving a specific update by its offset. */
exports.GetUpdateByOffsetParamsSchema = zod_1.z.object({
/** Offset of the update being looked up. */
offset: zod_1.z.number(),
/** Update format for the request. */
updateFormat: zod_1.z.object({
includeTransactions: zod_1.z
.object({
eventFormat: exports.OperationEventFormatSchema,
transactionShape: exports.TransactionShapeSchema,
})
.optional(),
includeReassignments: zod_1.z
.object({
filtersByParty: zod_1.z.record(zod_1.z.string(), zod_1.z.object({
cumulative: zod_1.z.array(exports.CumulativeFilterSchema),
})),
filtersForAnyParty: exports.FiltersForAnyPartySchema,
verbose: zod_1.z.boolean().optional(),
})
.optional(),
includeTopologyEvents: zod_1.z
.object({
includeParticipantAuthorizationEvents: zod_1.z
.object({
parties: zod_1.z.array(zod_1.z.string()).optional(),
})
.optional(),
})
.optional(),
}),
});
/** Schema for get transaction by id parameters. Defines parameters for retrieving a specific transaction by its ID. */
exports.GetTransactionByIdParamsSchema = zod_1.z.object({
/** ID of the transaction to fetch. */
updateId: zod_1.z.string(),
/** Transaction format for the request. */
transactionFormat: exports.TransactionFormatSchema,
});
/** Schema for get update by id parameters. Defines parameters for retrieving a specific update by its ID. */
exports.GetUpdateByIdParamsSchema = zod_1.z.object({
/** ID of the update to fetch. */
updateId: zod_1.z.string(),
/** Parties requesting the update (optional). */
requestingParties: zod_1.z.array(zod_1.z.string()).optional(),
});
/** Schema for get transaction tree by id parameters. Defines parameters for retrieving a transaction tree by its ID. */
exports.GetTransactionTreeByIdParamsSchema = zod_1.z.object({
/** Update ID to fetch the transaction tree for. */
updateId: base_1.NonEmptyStringSchema,
/** Parties to include in the query (optional). */
parties: zod_1.z.array(zod_1.z.string()).optional(),
});
//# sourceMappingURL=updates.js.map