Home/Docs/Components/Smart-contract-scanner

Smart Contract Scanner

A comprehensive smart contract analysis tool for security scanning, function exploration, and code verification.

Smart Contract Scanner

Installation

Run the following command to add the Smart Contract Scanner component to your project:

npx w3-kit@latest add smart-contract-scanner

This will:

  • Create the component in your components/ui directory
  • Add all necessary dependencies to your package.json
  • Set up required configuration files
  • Add contract scanning utilities to your project

Error Handling

The Smart Contract Scanner component provides comprehensive error handling through the onError callback and the ContractError enum.

Error Types

  • INVALID_ADDRESS: The provided address doesn't match the Ethereum address format
  • NOT_FOUND: The contract address doesn't exist on the blockchain
  • NOT_VERIFIED: The contract exists but isn't verified
  • NETWORK_ERROR: Connection issues with the blockchain provider
  • SCAN_FAILED: General scanning failure
  • RATE_LIMIT: API rate limit exceeded
  • TIMEOUT: Request timeout
  • UNKNOWN: Unspecified error

Example Error Handler

// Example error handler with different responses per error type
const handleContractError = (error: ContractError) => {
  switch(error) {
    case ContractError.INVALID_ADDRESS:
      showNotification("Please enter a valid Ethereum address");
      break;
    case ContractError.NOT_FOUND:
      showNotification("Contract not found on this network");
      break;
    case ContractError.NOT_VERIFIED:
      showNotification("This contract is not verified", "warning");
      break;
    case ContractError.NETWORK_ERROR:
      showNotification("Network connection error. Please try again", "error");
      break;
    case ContractError.RATE_LIMIT:
      showNotification("Too many requests. Please wait and try again", "error");
      break;
    default:
      showNotification("An error occurred while scanning the contract", "error");
  }
};