diff --git a/src/currencies.js b/src/currencies.js index 5a12f0e3..a15324a7 100644 --- a/src/currencies.js +++ b/src/currencies.js @@ -208,10 +208,21 @@ var CURRENCIES = [{ },{ name: 'raiblocks', symbol: 'xrb', - validator: NANOValidator, + validator: NANOValidator +},{ + name: 'tokenpay', + symbol: 'tpay', + addressTypes: {prod: ['41', '7e'], testnet: ['7f', 'c4']}, + validator: BTCValidator +},{ + name: 'verge', + symbol: 'xvg', + addressTypes: {prod: ['1e', '33'], testnet: ['6f', 'c4']}, + validator: BTCValidator }]; + module.exports = { getByNameOrSymbol: function (currencyNameOrSymbol) { var nameOrSymbol = currencyNameOrSymbol.toLowerCase(); diff --git a/test/wallet_address_validator.js b/test/wallet_address_validator.js index 808c8de5..d982f33a 100644 --- a/test/wallet_address_validator.js +++ b/test/wallet_address_validator.js @@ -382,6 +382,18 @@ describe('WAValidator.validate()', function () { valid('xrb_1q79ahdr36uqn38p5tp5sqwkn73rnpj1k8obtuetdbjcx37d5gahhd1u9cuh', 'nano'); valid('nano_1q79ahdr36uqn38p5tp5sqwkn73rnpj1k8obtuetdbjcx37d5gahhd1u9cuh', 'nano'); }); + + it('should return true for correct tokenpay addresses', function () { + valid('TTU9AFbvNcUfyUC3JLcXGKnMncsPJzViyj', 'tokenpay'); + valid('TYpb6GJDjchpi3GfwZfcLHA2jfWP6kXEMC', 'TPAY'); + valid('tC3qX5M25NJhUnhJpcFHaxLkQJjyHGBzqf', 'tokenpay', 'testnet'); + valid('tNLYDkCLm1kpCM7RZbUFFnvWL6t4NvQ5pD', 'TPAY', 'testnet'); + }); + + it('should return true for correct verge addresses', function () { + valid('DSePg1kfKC1Pr8FCf52tM7K6Mrg5CB29xT', 'verge'); + valid('D7JLwcCtZRyJzEuCnhocc1gDCXqoWb5KL1', 'XVG'); + }); }); describe('invalid results', function () { @@ -595,5 +607,19 @@ describe('WAValidator.validate()', function () { invalid('xrb_1111111112111111111111111111111111111111111111111111hifc8npp', 'nano'); invalid('nano_111111111111111111111111111111111111111111111111111hifc8npp', 'nano'); }); + + it('should return false for incorrect tokenpay addresses', function () { + commonTests('tokenpay'); + invalid('TTU9AFbvNcUfyUC3JLcXGKnMncsPJzViyk', 'tokenpay'); + invalid('TYpb6GJDjchpi3GfwZfcLHA2jfWP6kXEMd', 'TPAY'); + invalid('tC3qX5M25NJhUnhJpcFHaxLkQJjyHGBzqv', 'tokenpay', 'testnet'); + invalid('tNLYDkCLm1kpCM7RZbUFFnvWL6t4NvQ5p4', 'TPAY', 'testnet'); + }); + + it('should return false for incorrect verge addresses', function () { + commonTests('verge'); + invalid('DSePg1kfKC1Pr8FCf52tM7K6Mrg5CB29xs', 'verge'); + invalid('D7JLwcCtZRyJzEuCnhocc1gDCXqoWb5KL5', 'XVG'); + }); }); });