viem
Version:
56 lines • 2.3 kB
TypeScript
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