@coinsmart/wallet-validator
v1.0.0
Published
## The problem
Downloads
6
Readme
Wallet-validator
The problem
There are hundreds of npm libraries that try to validate wallet addresses only by the coin/token name making it impossible to cover them all. A fork adds 3 new tokens and the problem is still there.
This solution
Rather than validating coins or tokens by name, we try to do it by chain name whenever it is possible. This way we can cover all tokens on a specific chain and the library is easier to maintain.
It is also better to specify a chain name for validation rather than a coin name, this way you can be sure that the network you are using matches the input address.
You can check https://coinmarketcap.com/ to know the chain of a token.
Usage
import { validate } from 'wallet-validator'
validate('0xa00354276d2fC74ee91e37D085d35748613f4748', 'ETH') // true
validate('14GwrqiECaY7iizoHdscCVF2j14tYn7eKE9Fbvn7PHdTABkf', 'Polkadot') // true
validate('5GrpknVvGGrGH3EFuURXeMrWHvbpj3VfER1oX5jFtuGbfzCE', 'Polkadot') // true
validate('CpjsLDC1JFyrhm3ftC9Gs4QoyrkHKhZKtK7YqGTRFtTafgp', 'Polkadot') // true
validate('12QeMLzSrB8XH8FvEzPMVoRxVAzTr5XM2y', 'btc') // true
Troubleshooting
Unable to validate Polkadot/Kusama addresses on React native:
See https://polkadot.js.org/docs/usage/FAQ#under-my-babel-build-i-have-a-bigint-to-number-conversion-error for more information. If you are on React Native, one solution is to patch package babel config. See: https://github.com/polkadot-js/common/issues/1321#issuecomment-1000194727TypeError: (0 , util_1.isHex) is not a function
: If you're using CRA, You need to install react-app-rewired and add this to yourconfig-overrides.js
file:config.module.rules.push({ test: /\.cjs$/, include: /node_modules/, type: 'javascript/auto' })
Tests
npm t
to run the tests.