@metamask/ocap-kernel
Version:
OCap kernel core components
59 lines • 2.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.deliverHandler = exports.deliverSpec = void 0;
const superstruct_1 = require("@metamask/superstruct");
const utils_1 = require("@metamask/utils");
const shared_ts_1 = require("./shared.cjs");
const types_ts_1 = require("../../types.cjs");
const MessageDeliveryStruct = (0, superstruct_1.tuple)([
(0, superstruct_1.literal)('message'),
(0, superstruct_1.string)(),
types_ts_1.MessageStruct,
]);
const NotifyDeliveryStruct = (0, superstruct_1.tuple)([
(0, superstruct_1.literal)('notify'),
(0, superstruct_1.array)(types_ts_1.VatOneResolutionStruct),
]);
const DropExportsDeliveryStruct = (0, superstruct_1.tuple)([
(0, superstruct_1.literal)('dropExports'),
(0, superstruct_1.array)((0, superstruct_1.string)()),
]);
const RetireExportsDeliveryStruct = (0, superstruct_1.tuple)([
(0, superstruct_1.literal)('retireExports'),
(0, superstruct_1.array)((0, superstruct_1.string)()),
]);
const RetireImportsDeliveryStruct = (0, superstruct_1.tuple)([
(0, superstruct_1.literal)('retireImports'),
(0, superstruct_1.array)((0, superstruct_1.string)()),
]);
const ChangeVatOptionsDeliveryStruct = (0, superstruct_1.tuple)([
(0, superstruct_1.literal)('changeVatOptions'),
(0, superstruct_1.record)((0, superstruct_1.string)(), utils_1.UnsafeJsonStruct),
]);
const StartVatDeliveryStruct = (0, superstruct_1.tuple)([(0, superstruct_1.literal)('startVat'), types_ts_1.CapDataStruct]);
const StopVatDeliveryStruct = (0, superstruct_1.tuple)([(0, superstruct_1.literal)('stopVat'), types_ts_1.CapDataStruct]);
const BringOutYourDeadDeliveryStruct = (0, superstruct_1.tuple)([(0, superstruct_1.literal)('bringOutYourDead')]);
const VatDeliveryParamsStruct = (0, superstruct_1.union)([
MessageDeliveryStruct,
NotifyDeliveryStruct,
DropExportsDeliveryStruct,
RetireExportsDeliveryStruct,
RetireImportsDeliveryStruct,
ChangeVatOptionsDeliveryStruct,
StartVatDeliveryStruct,
StopVatDeliveryStruct,
BringOutYourDeadDeliveryStruct,
]);
exports.deliverSpec = {
method: 'deliver',
params: VatDeliveryParamsStruct,
result: shared_ts_1.VatDeliveryResultStruct,
};
exports.deliverHandler = {
...exports.deliverSpec,
hooks: { handleDelivery: true },
implementation: async ({ handleDelivery }, params) => {
return await handleDelivery(params);
},
};
//# sourceMappingURL=deliver.cjs.map