UNPKG

@metamask/eip-5792-middleware

Version:

Implements the JSON-RPC methods for sending multiple calls from the user's wallet, and checking their status, as referenced in EIP-5792

36 lines 1.43 kB
import { array, boolean, nonempty, object, optional, record, string, tuple, type } from "@metamask/superstruct"; import { HexChecksumAddressStruct, StrictHexStruct } from "@metamask/utils"; // /** Structs **/ // Even though these aren't actually typescript types, these structs essentially represent // runtime types, so we keep them in this file. export const GetCallsStatusStruct = tuple([StrictHexStruct]); export const GetCapabilitiesStruct = tuple([ HexChecksumAddressStruct, optional(array(StrictHexStruct)), ]); const RequiredAssetStruct = type({ address: nonempty(HexChecksumAddressStruct), amount: nonempty(StrictHexStruct), standard: nonempty(string()), }); export const CapabilitiesStruct = record(string(), type({ optional: optional(boolean()), requiredAssets: optional(array(RequiredAssetStruct)), })); export const SendCallsStruct = tuple([ object({ version: nonempty(string()), id: optional(StrictHexStruct), from: optional(HexChecksumAddressStruct), chainId: StrictHexStruct, atomicRequired: boolean(), calls: array(object({ to: optional(HexChecksumAddressStruct), data: optional(StrictHexStruct), value: optional(StrictHexStruct), capabilities: optional(CapabilitiesStruct), })), capabilities: optional(CapabilitiesStruct), }), ]); //# sourceMappingURL=types.mjs.map