deftnerd/cryptoaddressvalidator

Laravel validator for various cryptocurrency address formats

v1.0.7 2017-04-21 14:54 UTC

This package is not auto-updated.

Last update: 2024-04-13 23:51:42 UTC


README

Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads

Adds a Laravel validator for various cryptocurrency address formats.

Currently adds a onion and bitcoin validator. Planning to add the following soon:

  • Dash addresses
  • Dogecoin addresses
  • Ethereum addresses (only very basic)
  • Litecoin addresses
  • Monero addresses

Also planning to create the following validators under another project

  • GPG pubkey
  • GPG signed data
  • Generic Base38 Validator
  • Generic Base32 Validator
  • Generic Hex validator
  • vinkla/laravel-hashids validator
  • CC validator (Luhn digit check algorithm)

Install

Via Composer

$ composer require DeftNerd/CryptoAddressValidator

Add the following to the providers array in your config/app.php file

DeftNerd\CryptoAddressValidator\CryptoAddressServiceProvider::class

Usage

Test any onion address to see if it follows the format

Base32, 16 characters, ends in '.onion'

Validator::make(['test' => 'facebookcorewwwi.onion'], ['test' => 'onion'])->passes(); //true

Validator::make(['test' => 'notarealonionaddress.onion'], ['test' => 'onion'])->passes(); //false

Validator::make(['test' => 'facebook.com'], ['test' => 'onion'])->passes(); //false

Test a Bitcoin address to see if it's valid.

Checks for proper Base58 encoding, tests the checksum, verifies the network prefix byte is one of (mainnet regular, mainnet p2sh, testnet regular, testnet p2sh)

Validator::make(['test' => '1HB5XMLmzFVj8ALj6mfBsbifRoD4miY36v'], ['test' => 'bitcoin'])->passes(); // true (Bitcoin address)

Validator::make(['test' => 'n2eMqTT929pb1RDNuqEnxdaLau1rxy3efi'], ['test' => 'bitcoin'])->passes(); // true (Bitcoin Testnet address)

Validator::make(['test' => 'jsd8j8jksdjf9sj98'], ['test' => 'bitcoin'])->passes(); // false (random characters)

Validator::make(['test' => 'LQ3B36Yv2rBTxdgAdYpU2UcEZsaNwXeATk'], ['test' => 'bitcoin'])->passes(); // false (Litecoin address)

Security

If you discover any security related issues, please email adam@deftnerd.com instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.