export type HexString = `0x${string}`; export interface EcdsaSignature { Ecdsa: HexString; } export interface Address20MultiAddress { Address20: number[]; } export type ChainType = 'Mainnet-Frequency' | 'Paseo-Testnet-Frequency' | 'Dev'; export interface AddressWrapper { ethereumAddress: HexString; unifiedAddress: HexString; unifiedAddressSS58: string; } export interface EthereumKeyPair { privateKey: HexString; publicKey: HexString; address: AddressWrapper; mnemonic: string; } export interface PaginatedUpsertSignaturePayloadV2 { type: 'PaginatedUpsertSignaturePayloadV2'; schemaId: number; pageId: number; targetHash: number; expiration: number; payload: HexString; } export interface PaginatedDeleteSignaturePayloadV2 { type: 'PaginatedDeleteSignaturePayloadV2'; schemaId: number; pageId: number; targetHash: number; expiration: number; } export interface AddItemizedAction { actionType: 'Add'; data: HexString; index: 0; } export interface DeleteItemizedAction { actionType: 'Delete'; data: '0x'; index: number; } export type ItemizedAction = AddItemizedAction | DeleteItemizedAction; export interface ItemizedSignaturePayloadV2 { type: 'ItemizedSignaturePayloadV2'; schemaId: number; targetHash: number; expiration: number; actions: ItemizedAction[]; } export interface PasskeyPublicKey { type: 'PasskeyPublicKey'; publicKey: HexString; } export interface ClaimHandlePayload { type: 'ClaimHandlePayload'; handle: string; expiration: number; } export interface AddKeyData { type: 'AddKeyData'; msaId: string; expiration: number; newPublicKey: HexString; } export interface AuthorizedKeyData { type: 'AuthorizedKeyData'; msaId: string; expiration: number; authorizedPublicKey: HexString; } export interface AddProvider { type: 'AddProvider'; authorizedMsaId: string; intentIds: number[]; expiration: number; } export interface RecoveryCommitmentPayload { type: 'RecoveryCommitmentPayload'; recoveryCommitment: HexString; expiration: number; } export interface SiwfSignedRequestPayload { type: 'SiwfSignedRequestPayload'; callback: string; permissions: number[]; userIdentifierAdminUrl?: string; } export interface SiwfLoginRequestPayload { type: 'SiwfLoginRequestPayload'; message: string; } export type SupportedPayload = PaginatedUpsertSignaturePayloadV2 | PaginatedDeleteSignaturePayloadV2 | ItemizedSignaturePayloadV2 | PasskeyPublicKey | ClaimHandlePayload | AddKeyData | AuthorizedKeyData | AddProvider | RecoveryCommitmentPayload | SiwfSignedRequestPayload | SiwfLoginRequestPayload; export type NormalizedSupportedPayload = Omit; export interface EipDomainPayload { name: string; version: string; chainId: HexString; verifyingContract: HexString; } export type SupportedPayloadTypes = SupportedPayload['type']; export type SignatureType = 'EIP-712' | 'EIP-191';