Skip to main content

    Usage Examples

    Matching Error Selectors

    import { AbiError } from 'tevm'
    
    const insufficientBalance = new AbiError({
      type: "error",
      name: "InsufficientBalance",
      inputs: [
        { type: "uint256", name: "balance" },
        { type: "uint256", name: "required" }
      ]
    })
    
    try {
      await contract.call()
    } catch (error) {
      const errorSelector = error.data.slice(0, 10)
      if (errorSelector === insufficientBalance.getSelector()) {
        // Decode error parameters
        const params = insufficientBalance.decodeParams(error.data)
        console.log(`Balance: ${params[0]}, Required: ${params[1]}`)
      }
    }
    

    See Also