lightning-address-validator
v1.0.3
Published
Utility functions to validate a lightning address
Maintainers
Readme
Lightning Address Validator
Utility package to validate lightning addresses, following the LUD16 specs.
Installation
Run:
yarn add lightning-address-validatoror
npm install lightning-address-validatorAPI
isValidLightningAddress
isValidLightningAddress(lightningAddress: string, options: Object) => booleanVerifies that the lightning address follows the correct formatting, (ie: username@domain), according to the LUD16 specs and some user defined options. Returns true is the lightning address is valid or throws a LightningAddressValidationError otherwise (see Errors for more details).
options:
username: validation options for the usernamemaxLengthminLengthcustomValidation: used to pass custom validation logic for the username
domain: validation options for the domainblacklist: array of domains that are not acceptedwhitelist: array of domains that are acceptedcustomValidation: used to pass custom validation logic for the domain
isValidService
isValidService(lightningAddress: string): Promise<boolean>Checks that the Lightning Address service running at the domain is ready to accept requests. Do so by completing the second step of LUD06, and checking that ther LN_SERVICE response is valid.
Errors
The LightningAddressValidationError can have one of four types:
INVALID_FORMAT: when the lightning address format is notusername@domainINVALID_USERNAME: when the lightning address fails the username validation (eg.: character not ina-z0-9-_.)INVALID_DOMAIN: when the lightning address fails the domain validation (eg.: badly formatted domain, blacklisted, etc.)INVALID_SERVICE: when the query to the lightning address service fails or returns an invalid response.
Running tests
Run:
yarn test
Improvements
The package can be improved in the following ways:
- Add validation for onion lightning addresses
- Write more extensive tests
