UNPKG

viem

Version:

TypeScript Interface for Ethereum

56 lines 2.3 kB
import type { AddSubAccountParameters, AddSubAccountReturnType } from '../experimental/erc7895/actions/addSubAccount.js'; import type { SiweMessage } from '../utils/siwe/types.js'; import type { Hex } from './misc.js'; import type { ResolvedRegister } from './register.js'; import type { Prettify, RequiredBy } from './utils.js'; export type CapabilitiesSchema = ResolvedRegister['CapabilitiesSchema']; export type DefaultCapabilitiesSchema = { connect: { Request: { unstable_addSubAccount?: { account: AddSubAccountParameters; } | undefined; unstable_signInWithEthereum?: RequiredBy<Partial<SiweMessage>, 'chainId' | 'nonce'> | undefined; }; ReturnType: { unstable_signInWithEthereum?: { message: string; signature: Hex; } | undefined; unstable_subAccounts?: readonly AddSubAccountReturnType[] | undefined; }; }; getCapabilities: { ReturnType: { atomic?: { status: 'supported' | 'ready' | 'unsupported'; } | undefined; unstable_addSubAccount?: { keyTypes: ('address' | 'p256' | 'webcrypto-p256' | 'webauthn-p256')[]; supported: boolean; } | undefined; paymasterService?: { supported: boolean; } | undefined; }; }; sendCalls: { Request: { paymasterService?: { context?: Record<string, any> | undefined; optional?: boolean | undefined; url: string; } | undefined; }; }; }; export type Capabilities<capabilities extends Record<string, any> = {}> = { [key: string]: any; } & capabilities; export type ChainIdToCapabilities<capabilities extends Capabilities = Capabilities, id extends string | number = Hex> = { [chainId in id]: capabilities; }; export type ExtractCapabilities<method extends string, key extends 'Request' | 'ReturnType'> = Prettify<method extends keyof CapabilitiesSchema ? CapabilitiesSchema[method] extends { [k in key]: infer value extends Record<string, any>; } ? Capabilities<value> : Capabilities : Capabilities>; //# sourceMappingURL=capabilities.d.ts.map