1.0.3 • Published 2 years ago
lightning-address-validator v1.0.3
Lightning Address Validator
Utility package to validate lightning addresses, following the LUD16 specs.
Installation
Run:
yarn add lightning-address-validator
or
npm install lightning-address-validator
API
isValidLightningAddress
isValidLightningAddress(lightningAddress: string, options: Object) => boolean
Verifies 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 usernamemaxLength
minLength
customValidation
: 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
@domain
INVALID_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