UNPKG

@metamask/ocap-kernel

Version:
1 lines 2.05 kB
{"version":3,"file":"types.mjs","sourceRoot":"","sources":["../../src/services/types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n VatDeliveryObject,\n VatOneResolution,\n SwingSetCapData,\n LiveSlotsOptions,\n MeterControl,\n} from '@agoric/swingset-liveslots';\nimport type { CapData } from '@endo/marshal';\n\nexport type SyscallResult = SwingSetCapData | string | string[] | null;\nexport type DispatchFn = (vdo: VatDeliveryObject) => Promise<void>;\nexport type LiveSlots = {\n dispatch: DispatchFn;\n};\n\nexport type Syscall = {\n send: (\n target: string,\n methargs: CapData<string>,\n result?: string,\n ) => SyscallResult;\n subscribe: (vpid: string) => SyscallResult;\n resolve: (resolutions: VatOneResolution[]) => SyscallResult;\n exit: (isFailure: boolean, info: CapData<string>) => SyscallResult;\n dropImports: (vrefs: string[]) => SyscallResult;\n retireImports: (vrefs: string[]) => SyscallResult;\n retireExports: (vrefs: string[]) => SyscallResult;\n abandonExports: (vrefs: string[]) => SyscallResult;\n callNow: (_target: string, method: string, args: unknown[]) => SyscallResult;\n vatstoreGet: (key: string) => string | undefined;\n vatstoreGetNextKey: (priorKey: string) => string | undefined;\n vatstoreSet: (key: string, value: string) => void;\n vatstoreDelete: (key: string) => void;\n};\n\nexport type GCTools = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n WeakRef: WeakRefConstructor;\n // eslint-disable-next-line @typescript-eslint/naming-convention\n FinalizationRegistry: FinalizationRegistryConstructor;\n waitUntilQuiescent: () => Promise<void>;\n gcAndFinalize: () => Promise<void>;\n meterControl: MeterControl;\n};\n\nexport type MakeLiveSlotsFn = (\n syscall: Syscall,\n forVatId: string,\n vatPowers: Record<string, unknown>,\n liveSlotsOptions: LiveSlotsOptions,\n gcTools: GCTools,\n liveSlotsConsole?: Pick<Console, 'debug' | 'log' | 'info' | 'warn' | 'error'>,\n buildVatNamespace?: unknown,\n) => LiveSlots;\n"]}