UNPKG

hashdit-snap-security

Version:

The HashDit Security Snap provides transaction warnings when interacting with risky contracts.

53 lines (45 loc) 1.35 kB
export async function isDestinationVerified(contractAddress: any, chainNumber: any, apiKey: any) { // Input validation if (!contractAddress || !chainNumber || !apiKey) { console.error('Missing required parameter for contract verification'); return true; } const requestBody = { chainId: chainNumber, address: contractAddress, }; try { const response = await fetch('https://service.hashdit.io/v2/hashdit/address-classify', { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-API-KEY': apiKey, }, body: JSON.stringify(requestBody), }); if (!response.ok) { console.error(`API Error: ${response.status} ${response.statusText}`); return null; } const resp = await response.json(); // Validate response structure if (resp.status !== 'ok' || !resp.data || !resp.data.details) { console.error('Invalid API response structure'); return null; } //console.log('address-classify', JSON.stringify(resp, null, 2)); // Only check verification status if it's a contract if (resp.data.address_type === 'Contract') { if (resp.data.details.is_verified === true) { return 'verified'; } else { return 'unverified'; } } // For non-contract addresses, return true return 'EOA'; } catch (error) { console.error('Fetch error:', error); return null; } }