wallet-address-validator icon indicating copy to clipboard operation
wallet-address-validator copied to clipboard

Looks like the library is not differentiating testnet from mainnet mostly

Open vzelenko opened this issue 3 years ago • 0 comments

Example Code:

const WAValidator = require('wallet-address-validator');

const addresses = [
    '1KFzzGtDdnq5hrwxXGjwVnKzRbvf8WVxck',          // BTC mainnet
    'bc1qphj4muhdgs7q2rkmryvkj8jxz6ne8v26w4nu07',  // BTC mainnet
    'tb1qcha20vge9qvzt65u8u63597nr380vzrv45u7sd',  // BTC testnet
    '0xed8afcf23326fc69d7365b2773ace45c634bf199',  // ETH mainnet
    '0x12e117cdef30a4072158df55a302384779e0692a',  // ETH testnet
];

addresses.forEach(addr => {
    console.log('CHECKING ' + addr);
    let status = WAValidator.validate(addr, 'BTC') ? 'OK' : 'XX';
    console.log("     BTC [mainnet] => ", status);
    status = WAValidator.validate(addr, 'BTC', 'testnet') ? 'OK' : 'XX';
    console.log("     BTC [testnet] => ", status);
    status = WAValidator.validate(addr, 'ETH') ? 'OK' : 'XX';
    console.log("     ETH [mainnet] => ", status);
    status = WAValidator.validate(addr, 'ETH', 'testnet') ? 'OK' : 'XX';
    console.log("     ETH [testnet] => ", status);
});

Resulting Output:

➜  [DIRNAME] git:(develop) ✗ node script/test-btc-address.js
CHECKING 1KFzzGtDdnq5hrwxXGjwVnKzRbvf8WVxck
     BTC [mainnet] =>  OK
     BTC [testnet] =>  XX
     ETH [mainnet] =>  XX
     ETH [testnet] =>  XX
CHECKING bc1qphj4muhdgs7q2rkmryvkj8jxz6ne8v26w4nu07
     BTC [mainnet] =>  OK
     BTC [testnet] =>  OK       ---  wrong
     ETH [mainnet] =>  XX
     ETH [testnet] =>  XX
CHECKING tb1qcha20vge9qvzt65u8u63597nr380vzrv45u7sd
     BTC [mainnet] =>  OK       ---  wrong
     BTC [testnet] =>  OK
     ETH [mainnet] =>  XX
     ETH [testnet] =>  XX
CHECKING 0xed8afcf23326fc69d7365b2773ace45c634bf199
     BTC [mainnet] =>  XX
     BTC [testnet] =>  XX
     ETH [mainnet] =>  OK
     ETH [testnet] =>  OK       ---  wrong
CHECKING 0x12e117cdef30a4072158df55a302384779e0692a
     BTC [mainnet] =>  XX
     BTC [testnet] =>  XX
     ETH [mainnet] =>  OK       ---  wrong
     ETH [testnet] =>  OK
➜  [DIRNAME] git:(develop) ✗ 

vzelenko avatar Nov 17 '21 20:11 vzelenko