diff --git a/lib/coins/dollar.js b/lib/coins/dollar.js new file mode 100644 index 0000000..5895033 --- /dev/null +++ b/lib/coins/dollar.js @@ -0,0 +1,24 @@ +const CoinHelper = require('./coin'); +const iban = require('iban'); +const countriesSepa = require('./countriesSepa'); + +function addressValidator(network, address) { + const countrySepa = countriesSepa.find((countrySepa) => address.startsWith(countrySepa.iban)); + + return address && iban.isValid(address) && countrySepa && address.indexOf(' ') === -1; +} + +class DollarHelper extends CoinHelper { + getURIPrefix() { + return 'dollar'; + } + + validAddress(address) { + return addressValidator(this.opts.network, address); + } +} + +DollarHelper.code = 'USD'; +DollarHelper.decimals = 2; + +module.exports = DollarHelper; diff --git a/lib/coins/index.js b/lib/coins/index.js index f480edd..3bf688c 100644 --- a/lib/coins/index.js +++ b/lib/coins/index.js @@ -10,6 +10,7 @@ const ZcashHelper = require('./zcash'); const XrpHelper = require('./xrp'); const PolygonHelper = require('./polygon'); const TokenHelper = require('./tokens/token'); +const DollarHelper = require('./dollar'); module.exports = { EUR: EuroHelper, @@ -44,4 +45,5 @@ module.exports = { USDT: TokenHelper.getToken('TRX', 'USDT'), USDC: TokenHelper.getToken('TRX', 'USDC'), }, + USD: DollarHelper, };