/ethereum-address-validator

Validate ethereum address in php

Primary LanguagePHPMozilla Public License 2.0MPL-2.0

Ethereum Address Validator

(c) by Andrzej Budzanowski kontakt@andrzej.budzanowski.pl

Maintainability Test Coverage Build Status

License

MPL-2.0

Brief

Class that verifies if Ethereum address is properly formatted and - optionaly - properly checksummed according to EIP-55.

Installation

Use composer:

composer require psychob/ethereum-address-validator

Usage

<?php
    use \PsychoB\Ethereum\AddressValidator;
    
    // Addresses that have good format and checksum are considered valid
    AddressValidator::isValid('0xA477941c7AAD6536f175ef123bf9eeD6F82A4c85') === AddressValidator::ADDRESS_VALID;
    
    // Also addresses that are all uppercase or all lowercase are considered valid (no checksum check performed)
    AddressValidator::isValid('0xA477941C7AAD6536F175EF123BF9EED6F82A4C85') === AddressValidator::ADDRESS_VALID;
    AddressValidator::isValid('0xa477941c7aad6536f175ef123bf9eed6f82a4c85') === AddressValidator::ADDRESS_VALID;
    
    // Addresses that have good format but incorrect checksum
    AddressValidator::isValid('0xA477941c7aaD6536f175ef123bf9eeD6F82A4c85') === AddressValidator::ADDRESS_CHECKSUM_INVALID;
    
    // Address without proper format return
    AddressValidator::isValid('invalid address') === AddressValidator::ADDRESS_INVALID;
    
    // To get canonical (properly checksummed) addres, use:
    AddressValidator::getCanonicalAddress('0xA477941C7AAD6536F175EF123BF9EED6F82A4C85') === '0xA477941c7AAD6536f175ef123bf9eeD6F82A4c85'