0.5.12 • Published 3 years ago
crypto-address-validator-ts v0.5.12
crypto-address-validator-ts
Simple wallet address validator for validating Bitcoin and other altcoins addresses in Typescript can be used in for example an Angular project.
Forked from christsim/multicoin-address-validator.
Which is forked from ryanralph/altcoin-address.
Installation
NPM
npm install crypto-address-validator-tsAPI
validate (address [, currency = 'bitcoin', networkType = 'prod'])
Parameters
- address - Wallet address to validate.
- currency - Currency name or symbol, e.g.
'bitcoin'(default),'litecoin'or'LTC' - options - Use
{ networkType: 'prod' }(default) to enforce standard address,{ networkType: 'testnet' }to enforce testnet address and'{ networkType: 'both' }'to enforce nothing.
Returns true if the address (string) is a valid wallet address for the crypto currency specified, see below for supported currencies.
Supported crypto currencies
- 0x/zrx
'0x'or'zrx' - 1inch Network/1inch
'1inch Network'or'1inch'only erc-20 validation no bep-20, xdai or avalanche c-chain - Aave Coin/aave
'Aave Coin'or'aave' - Aavegotchi/ghst
'Aavegotchi'or'ghst' - Amp/amp
'Amp'or'amp' - Aragon/ant
'Aragon'or'ant' - Alpha Finance Lab/alpha
'Alpha Finance Lab'or'alpha'only erc-20 validation no bep-20 - Audius/audio
'Audius'or'audio' - Augur/rep
'Augur'or'rep' - AugurV2/repv2
'AugurV2'or'repv2' - AuroraCoin/aur
'AuroraCoin'or'aur' - Axie Infinity/axs
'Axie Infinity'or'axs' - Baby Ripple/babyxrp
'Baby Ripple'or'babyxrp' - Badger DAO/badger
'Badger DAO'or'badger' - Balancer/bal
'Balancer'or'bal' - Bancor/bnt
'Bancor'or'bnt' - Band Protocol/band
'Band Protocol'or'band'only erc-20 validation no bep-20, xdai or fantom - Bankex/bkx
'Bankex'or'bkx' - Basic Attention Token/bat
'Basic Attention Token'or'bat' - BeaverCoin/bvc
'BeaverCoin'or'bvc' - Binance Coin Mainnet/bnb
'Binance Coin Mainnet'or'bnb' - BioCoin/bio
'BioCoin'or'bio' - Bitcoin/btc
'Bitcoin'or'btc' - Bitcoin SV/bsv
'Bitcoin SV'or'bsv' - BitcoinCash/bch
'BitcoinCash'or'bch' - BitcoinGold/btg
'BitcoinGold'or'btg' - BitcoinPrivate/btcp
'BitcoinPrivate'or'btcp' - BitcoinZ/btcz
'BitcoinZ'or'btcz' - BlockTrade/btt
'BlockTrade'or'btt' - Bluzelle/blz
'Bluzelle'or'blz' - BTU Protocol/btu
'BTU Protocol'or'btu' - bZx Protocol/bzrx
'bZx Protocol'or'bzrx' - Callisto/clo
'Callisto'or'clo' - Cardano/ada
'Cardano'or'ada' - Cartesi/ctsi
'Cartesi'or'ctsi'only erc-20 validation no bep-20, polygon or avalanche c-chain - Celsius/cel
'Celsius'or'cel' - Chiliz/chz
'Chiliz'or'chz'only erc-20 validation no bep-20 - Chainlink/link
'Chainlink'or'link' - Civic/cvc
'Civic'or'cvc' - Compound/comp
'Compound'or'comp' - Cream Finance/cream
'Cream Finance'or'cream'only erc-20 validation no bep-20, xdai or fantom - Cred/lba
'Cred'or'lba' - Crypto.com Coin/cro
'Crypto.com Coin'or'cro' - Curve DAO Token/crv
'Curve DAO Token'or'crv' - CUSD/cusd
'CUSD'or'cusd' - Dash/dash
'Dash'or'dash' - Decentraland/mana
'Decentraland'or'mana' - Decred/dcr
'Decred'or'dcr' - Dent/dent
'Dent'or'dent' - DigiByte/dgb
'DigiByte'or'dgb' - District0x/dnt
'District0x'or'dnt' - DogeCoin/doge
'DogeCoin'or'doge', - dYdX/dydx
'dYdX'or'dydx' - EasyFi/ez
'EasyFi'or'ez' - Efinity Token/efi
'Efinity Token'or'efi' - Enjin Coin/enj
'Enjin Coin'or'enj' - Enzyme/mln
'Enzyme'or'mln' - EOS/eos
'EOS'or'eos' - Ethereum/eth
'Ethereum'or'eth' - EthereumClassic/etc
'EthereumClassic'or'etc' - Ethereum Name Service/ens
'Ethereum Name Service'or'ens' - Ethernity Chain/ern
'Ethernity Chain'or'ern' - EtherZero/etz
'EtherZero'or'etz' - Expanse/exp
'Expanse'or'exp' - e-Radix/exrd
'e-Radix'or'exrd' - Fantom/ftt
'Fantom'or'ftm' - FirmaChain/fct
'FirmaChain'or'fct' - FreiCoin/frc
'FreiCoin'or'frc' - FTX Token/ftt
'FTX Token'or'ftt' - FUNToken/fun
'FreiCoin'or'fun' - GameCredits/game
'GameCredits'or'game' - GarliCoin/grlc
'GarliCoin'or'grlc' - Gnosis/gno
'Gnosis'or'gno' - Golem/glm
'Gods Unchained'or'gods' - Golem/glm
'Golem'or'glm' - Golem (GNT)/gnt
'Golem (GNT)'or'gnt' - HedgeTrade/hedg
'HedgeTrade'or'hedg' - Hegic/hegic
'Hegic'or'hegic' - Holo/hot
'Holo'or'hot'only erc-20 validation no xdai - Hush/hush
'Hush'or'hush' - HyperSpace/xsc
'HyperSpace'or'xsc' - ICON/icx
'ICON'or'icx' - iExec RLC/rlc
'iExec RLC'or'rlc' - Immutable X/imx
'Immutable X'or'imx' - Illuvium/ilv
'Illuvium'or'ilv' - Injective Protocol/inj
'Injective Protocol'or'inj' - IOTA/miota
'IOTA'or'miota' - Komodo/kmd
'Komodo'or'kmd' - KeeperDAO/rook
'KeeperDAO'or'rook' - Kyber Network Crystal v2/knc
'Kyber Network Crystal v2'or'knc' - LBRY Credits/lbc
'LBRY Credits'or'lbc' - UNUS SED LEO/leo
'UNUS SED LEO'or'leo' - Lisk/lsk
'Lisk'or'lsk' - LiteCoin/ltc
'LiteCoin'or'ltc' - Loopring/lrc
'Loopring'or'lrc' - Loom Network/loom
'Loom Network'or'loom' - Maker/mkr
'Maker'or'mkr' - Marlin/pond
'Marlin'or'pond' - Matchpool/gup
'Matchpool'or'gup' - Matic/matic
'Matic'or'matic' - MegaCoin/mec
'MegaCoin'or'mec' - Melon/mln
'Melon'or'mln' - Metal/mtl
'Metal'or'mtl' - Mirror Protocol/mir
'Mirror Protocol'or'mir'only erc-20 validation no bep-20 or terra - MonaCoin/mona
'MonaCoin'or'mona' - Monero/xmr
'Monero'or'xmr' - Multi-collateral DAI/dai
'Multi-collateral DAI'or'dai' - MyNeighborAlice/alice
'MyNeighborAlice'or'alice'only erc-20 validation no bep-20 - NameCoin/nmc
'NameCoin'or'nmc' - Nano/nano
'Nano'or'nano' - Nem/xem
'Nem'or'xem' - Neo/neo
'Neo'or'neo' - NeoGas/gas
'NeoGas'or'gas' - Numeraire/nmr
'Numeraire'or'nmr' - Ocean Protocol/ocean
'Ocean Protocol'or'ocean' - Odyssey/ocn
'Odyssey'or'ocn' - OKB/okb
'OKB'or'okb' - OmiseGO/omg
'OmiseGO'or'omg' - Orchid/oxt
'Orchid'or'oxt' - Origin Protocol/ogn
'Origin Protocol'or'ogn' - Orion Protocol/orn
'Orion Protocol'or'orn' - Paxos/pax
'Paxos'or'pax' - PeerCoin/ppc
'PeerCoin'or'ppc' - Perpetual Protocol/perp
'PeerCoin'or'perp' - Phala Network/pha
'Phala Network'or'pha' - PIVX/pivx
'PIVX'or'pivx' - Polkadot/dot
'Polkadot'or'dot' - Polymath/poly
'Polymath'or'poly' - PrimeCoin/xpm
'PrimeCoin'or'xpm' - ProtoShares/pts
'ProtoShares'or'pts' - Pundi X/pundix
'Pundi X'or'pundix' - Qtum/qtum
'Qtum'or'qtum' - Quant/qnt
'Quant'or'qnt' - Quantstamp/qsp
'Quantstamp'or'qsp' - Quantum Resistant Ledger/qrl
'Quantum Resistant Ledger'or'qrl' - RaiBlocks/xrb
'RaiBlocks'or'xrb' - Raiden Network Token/rdn
'Raiden Network Token'or'rdn' - Rarible/rari
'Rarible'or'rari' - Reef/reef
'Reef'or'reef' - Reserve Rights/rsr
'Reserve Rights'or'rsr' - Ripio Credit Network/rcn
'Ripio Credit Network'or'rcn' - Ripple/xrp
'Ripple'or'xrp' - Salt/salt
'Salt'or'salt' - Selfkey/key
'Selfkey'or'key' - Serum/srm
'Serum'or'srm' - Serve/serv
'Serve'or'serv' - SHIBA INU/shib
'SHIBA INU'or'shib' - Siacoin/sc
'Siacoin'or'sc' - SingularityNET/agix
'SingularityNET'or'agix' - SKALE Network/skl
'SKALE Network'or'skl' - SnowGem/sng
'SnowGem'or'sng' - SolarCoin/slr
'SolarCoin'or'slr' - SOLVE/solve
'SOLVE'or'solve' - Spendcoin/spnd
'Spendcoin'or'spnd' - Status/snt
'Status'or'snt' - Stellar/xlm
'Stellar'or'xlm' - Storj/storj
'Storj'or'storj' - Storm/storm
'Storm'or'storm' - StormX/stmx
'StormX'or'stmx' - Streamr/data
'Streamr'or'data' - SushiSwap/sushi
'SushiSwap'or'sushi', - SuperFarm/super
'SuperFarm'or'super'only erc-20 validation no bep-20 or polygon - SuperRare/rare
'SuperRare'or'rare' - Swarm City/swt
'Swarm City'or'swt' - Swipe/sxp
'Swipe'or'sxp' - Synthetix Network/snx
'Synthetix Network'or'snx' - Tap/xtp
'Tap'or'xtp' - TEMCO/temco
'TEMCO'or'temco' - Tellor/trb
'Tellor'or'trb' - TenX/pay
'TenX'or'pay' - Tether/usdt
'Tether'or'usdt' - Terra Virtua Kolect/tvk
'Terra Virtua Kolect'or'tvk' - Tezos/xtz
'Tezos'or'xtz' - The Graph/grt
'The Graph'or'grt' - The Sandbox/sand
'The Sandbox'or'sand' - Tornado Cash/torn
'Tornado Cash'or'torn' - Tron/trx
'Tron'or'trx' - TrueUSD/tusd
'TrueUSD'or'tusd' - Ultra/uos
'Ultra'or'uos' - Uniswap Coin/uni
'Uniswap Coin'or'uni' - Universal Market Access/uma
'Universal Market Access'or'uma' - USD Coin/usdc
'USD Coin'or'usdc' - VeChain/vet
'VeChain'or'vet' - VertCoin/vtc
'VertCoin'or'vtc' - Verasity/vra
'Verasity'or'vra' - Viberate/vib
'Viberate'or'vib' - VIDT Datalink/vidt
'VIDT Datalink'or'vidt' - VoteCoin/vot
'VoteCoin'or'vot' - Waves/waves
'Waves'or'waves' - Wings/wings
'Wings'or'wings' - Wrapped Nexus Mutual/wnxm
'Wrapped Nexus Mutual'or'wnxm' - ZCash/zec
'ZCash'or'zec' - Yearn.finance/yfi
'yearn.finance'or'yfi' - Yield Guild Games/ygg
'Yield Guild Games'or'ygg' - ZClassic/zcl
'ZClassic'or'zcl' - ZenCash/zen
'ZenCash'or'zen'
Usage example
Angular directive
import {Directive, Input} from '@angular/core';
import {AbstractControl, NG_VALIDATORS, ValidationErrors, Validator} from '@angular/forms';
import { validate } from 'crypto-address-validator-ts';
@Directive({
selector: '[ccyCode]',
providers: [{provide: NG_VALIDATORS, useExisting: CryptoAddressValidationDirective, multi: true}]
})
export class CryptoAddressValidationDirective implements Validator {
//For example BTC
@Input() public ccyCode: string;
public validate(field: AbstractControl): ValidationErrors | null {
if (!validate(field.value, this.ccyCode, null)) {
return {messageCode: 'Invalid bitcoin address'};
}
return null;
}
}HTML
<input id="address"
[ccyCode]="currency">