using Managing.Infrastructure.Evm.Models; using Managing.Infrastructure.Evm.Models.Privy; namespace Managing.Infrastructure.Evm.Abstractions; public interface IPrivyService { Task CreateWalletAsync(string chainType = "ethereum"); Task SendTransactionAsync(string walletId, string recipientAddress, long value, string caip2 = "eip155:84532"); /// /// Signs a message using the embedded wallet /// /// The ID of the wallet to use for signing /// The message to sign /// The signing method to use (e.g., "personal_sign", "eth_sign") /// The signature response Task SignMessageAsync(string embeddedWallet, string message, string method = "personal_sign"); /// /// Signs typed data (EIP-712) using the embedded wallet /// /// The ID of the wallet to use for signing /// The typed data to sign (must be a valid JSON string conforming to EIP-712) /// The CAIP-2 chain identifier /// The signature Task SignTypedDataAsync(string walletId, string typedData, string caip2 = "eip155:84532"); /// /// Gets information about a user, including their linked wallet accounts and delegation status /// /// The Privy DID of the user (format: did:privy:XXXXX) /// User information including wallets and delegation status Task GetUserWalletsAsync(string userDid); /// /// Generates an authorization signature for a request to the Privy API /// /// The full URL for the request /// The request body /// The HTTP method to use for the request (defaults to POST) /// The generated signature string GenerateAuthorizationSignature(string url, object body, string httpMethod = "POST"); }