UNPKG

@metamask/ocap-kernel

Version:
56 lines 1.81 kB
import { tuple, literal, array, string, record, union } from "@metamask/superstruct"; import { UnsafeJsonStruct } from "@metamask/utils"; import { VatDeliveryResultStruct } from "./shared.mjs"; import { CapDataStruct, MessageStruct, VatOneResolutionStruct } from "../../types.mjs"; const MessageDeliveryStruct = tuple([ literal('message'), string(), MessageStruct, ]); const NotifyDeliveryStruct = tuple([ literal('notify'), array(VatOneResolutionStruct), ]); const DropExportsDeliveryStruct = tuple([ literal('dropExports'), array(string()), ]); const RetireExportsDeliveryStruct = tuple([ literal('retireExports'), array(string()), ]); const RetireImportsDeliveryStruct = tuple([ literal('retireImports'), array(string()), ]); const ChangeVatOptionsDeliveryStruct = tuple([ literal('changeVatOptions'), record(string(), UnsafeJsonStruct), ]); const StartVatDeliveryStruct = tuple([literal('startVat'), CapDataStruct]); const StopVatDeliveryStruct = tuple([literal('stopVat'), CapDataStruct]); const BringOutYourDeadDeliveryStruct = tuple([literal('bringOutYourDead')]); const VatDeliveryParamsStruct = union([ MessageDeliveryStruct, NotifyDeliveryStruct, DropExportsDeliveryStruct, RetireExportsDeliveryStruct, RetireImportsDeliveryStruct, ChangeVatOptionsDeliveryStruct, StartVatDeliveryStruct, StopVatDeliveryStruct, BringOutYourDeadDeliveryStruct, ]); export const deliverSpec = { method: 'deliver', params: VatDeliveryParamsStruct, result: VatDeliveryResultStruct, }; export const deliverHandler = { ...deliverSpec, hooks: { handleDelivery: true }, implementation: async ({ handleDelivery }, params) => { return await handleDelivery(params); }, }; //# sourceMappingURL=deliver.mjs.map