deftnerd / cryptoaddressvalidator
Laravel validator for various cryptocurrency address formats
Requires
- php: ~5.6|~7.0
- illuminate/support: ~5.1
- stephenhill/base58: ^1.1
Requires (Dev)
- phpunit/phpunit: ~4.0||~5.0||~6.0
- squizlabs/php_codesniffer: ^2.3
This package is not auto-updated.
Last update: 2024-11-10 02:19:46 UTC
README
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.