Skip to content

Commit

Permalink
Merge pull request #1 from dArkjON/master
Browse files Browse the repository at this point in the history
Add BTDX, BTX, BSD & MEC
  • Loading branch information
ivanlemeshev authored Aug 28, 2018
2 parents 9938af5 + 111474c commit 2114c21
Show file tree
Hide file tree
Showing 6 changed files with 180 additions and 1 deletion.
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,14 @@ func main() {
- [x] Auroracoin/AUR, `'auroracoin'` or `'AUR'`
- [x] BeaverCoin/BVC, `'beavercoin'` or `'BVC'`
- [x] Biocoin/BIO, `'biocoin'` or `'BIO'`
- [x] Bitcloud/BTDX, `'bitcloud'` or `'BTDX'`
- [x] Bitcoin/BTC, `'bitcoin'` or `'BTC'`
- [x] BitcoinCash/BCH, `'bitcoincash'` or `'BCH'`
- [x] BitcoinGold/BTG, `'bitcoingold'` or `'BTG'`
- [ ] BitcoinPrivate/BTCP, `'bitcoinprivate'` or `'BTCP'`
- [ ] BitcoinZ/BTCZ, `'bitcoinz'` or `'BTCZ'`
- [x] Bitcore/BTX, `'bitcore'` or `'BTX'`
- [x] Bitsend/BSD, `'bitsend'` or `'BSD'`
- [x] Callisto/CLO, `'callisto'` or `'CLO'`
- [x] Dash, `'dash'` or `'DASH'`
- [ ] Decred/DCR, `'decred'` or `'DCR'`
Expand All @@ -56,7 +59,7 @@ func main() {
- [ ] Hush/HUSH, `'hush'` or `'HUSH'`
- [ ] Komodo/KMD, `'komodo'` or `'KMD'`
- [x] Litecoin/LTC, `'litecoin'` or `'LTC'`
- [ ] Megacoin/MEC, `'megacoin'` or `'MEC'`
- [x] Megacoin/MEC, `'megacoin'` or `'MEC'`
- [ ] Namecoin/NMC, `'namecoin'` or `'NMC'`
- [ ] NEO/NEO, `'NEO'` or `'NEO'`
- [ ] NeoGas/GAS, `'neogas'` or `'GAS'`
Expand Down
34 changes: 34 additions & 0 deletions bitcloud_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package crptwav

import "testing"

func TestIsValidBitcloud(t *testing.T) {
tt := []struct {
currency string
address string
network string
}{
{address: "B5xbPCtDHBksZwDsgSssnmuSx6ydNLBQEG", currency: "bitcloud", network: "prod"},
{address: "BTiVBSbBZ2AkvMt8nZ3WZ9Vpb4qEPDtDGz", currency: "bitcloud", network: "prod"},
{address: "BDt8xFZo2Y8XMzpqQRWrtci3v3MU9ijVmh", currency: "bitcloud", network: "prod"},
{address: "BTMTdv3KQ73h3jkBCCRGH9yMwAC1bDF2Vc", currency: "BTDX", network: "prod"},
{address: "B6mVF3ijTvAqu3U1KX1xuF8CkeqMUqGeDf", currency: "BTDX", network: "prod"},
{address: "B7Dhb12dBdJhRkGEDNKcjSau8h1e6bEw7o", currency: "BTDX", network: "prod"},
}
for _, tc := range tt {
switch tc.network {
case NetworkProd:
if !IsValidProdAddress(tc.address, tc.currency) {
t.Errorf("Address %s should be valid %s %s address", tc.address, tc.currency, tc.network)
}
case NetworkTest:
if !IsValidTestnetAddress(tc.address, tc.currency) {
t.Errorf("Address %s should be valid %s %s address", tc.address, tc.currency, tc.network)
}
default:
if !IsValidAddress(tc.address, tc.currency) {
t.Errorf("Address %s should be valid %s %s address", tc.address, tc.currency, tc.network)
}
}
}
}
33 changes: 33 additions & 0 deletions bitcore_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package crptwav

import "testing"

func TestIsValidBitcore(t *testing.T) {
tt := []struct {
currency string
address string
network string
}{
{address: "2Wt3K47XEAANg9vMSWPmLSgfDFzBVNdS3T", currency: "bitcore", network: "prod"},
{address: "2Yr4uUHsunFATv75RSvbbxS2YDpU6iCu9E", currency: "bitcore", network: "prod"},
{address: "mx8qEXzx9Aeog4c4WbhM3eKMp3Uoh89UA4", currency: "bitcore", network: "testnet"},
{address: "mkHJdVjP3yZuz9ZK8kwJ16kxUC94iLSoWp", currency: "BTX", network: "testnet"},
{address: "2Vkxa2FHBdhnhBTVEGdKQgiDvCbY9iCBqc", currency: "BTX", network: "prod"},
}
for _, tc := range tt {
switch tc.network {
case NetworkProd:
if !IsValidProdAddress(tc.address, tc.currency) {
t.Errorf("Address %s should be valid %s %s address", tc.address, tc.currency, tc.network)
}
case NetworkTest:
if !IsValidTestnetAddress(tc.address, tc.currency) {
t.Errorf("Address %s should be valid %s %s address", tc.address, tc.currency, tc.network)
}
default:
if !IsValidAddress(tc.address, tc.currency) {
t.Errorf("Address %s should be valid %s %s address", tc.address, tc.currency, tc.network)
}
}
}
}
34 changes: 34 additions & 0 deletions bitsend_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package crptwav

import "testing"

func TestIsValidBitsend(t *testing.T) {
tt := []struct {
currency string
address string
network string
}{
{address: "i5m5mDHP8amxzPnqqKbk9Fh4xuRUpC77KU", currency: "bitsend", network: "prod"},
{address: "i8VWuqDJEmQVG7ybxr7LrYN8QXB59ed1vg", currency: "bitsend", network: "prod"},
{address: "i9JSd3SQmurL8z7YaWi7nZfGkow1pfN3Gt", currency: "bitsend", network: "prod"},
{address: "iDcDWJ8QywriMGkMaDs5PqxrbrBjvr9rWj", currency: "BSD", network: "prod"},
{address: "iSmk3ZcRAzM3NF2xB6xP8U58HCwpVnsJDY", currency: "BSD", network: "prod"},
{address: "iSk6evb7HsRJmStTWeRiAMVDM1yNoGSEFd", currency: "BSD", network: "prod"},
}
for _, tc := range tt {
switch tc.network {
case NetworkProd:
if !IsValidProdAddress(tc.address, tc.currency) {
t.Errorf("Address %s should be valid %s %s address", tc.address, tc.currency, tc.network)
}
case NetworkTest:
if !IsValidTestnetAddress(tc.address, tc.currency) {
t.Errorf("Address %s should be valid %s %s address", tc.address, tc.currency, tc.network)
}
default:
if !IsValidAddress(tc.address, tc.currency) {
t.Errorf("Address %s should be valid %s %s address", tc.address, tc.currency, tc.network)
}
}
}
}
41 changes: 41 additions & 0 deletions currencies.go
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,47 @@ var currencies = []currency{
},
validator: isValidBitcoinAddress,
},
currency{
params: currencyParams{
name: "bitcore",
symbol: "btx",
addressTypes: addressTypes{
prod: []string{"03", "7D"},
testnet: []string{"6f", "c4"},
},
},
validator: isValidBitcoinAddress,
},
currency{
params: currencyParams{
name: "bitsend",
symbol: "bsd",
addressTypes: addressTypes{
prod: []string{"66", "05"},
},
},
validator: isValidBitcoinAddress,
},
currency{
params: currencyParams{
name: "bitcloud",
symbol: "btdx",
addressTypes: addressTypes{
prod: []string{"19", "05"},
},
},
validator: isValidBitcoinAddress,
},
currency{
params: currencyParams{
name: "megacoin",
symbol: "mec",
addressTypes: addressTypes{
prod: []string{"32", "05"},
},
},
validator: isValidBitcoinAddress,
},
currency{
params: currencyParams{
name: "ethereum",
Expand Down
34 changes: 34 additions & 0 deletions megacoin_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package crptwav

import "testing"

func TestIsValidMegacoin(t *testing.T) {
tt := []struct {
currency string
address string
network string
}{
{address: "MMGut25spuzpNZuWjXnmZaSW8Ym4QaeNEx", currency: "megacoin", network: "prod"},
{address: "MRCEC5KG7dDwiDhnR4CkbZFBnQW3DnkE9P", currency: "megacoin", network: "prod"},
{address: "MH17hNLVPbcDjUAppyV385zAwYXCNSNuBj", currency: "megacoin", network: "prod"},
{address: "M9P8kjJRAA1XyWMC5wm1UAEZD2BMBxLWvH", currency: "MEC", network: "prod"},
{address: "MSLs5yKxFzsBjyxUWqftx2mcBsDPXibeTE", currency: "MEC", network: "prod"},
{address: "MEhNXKErNV1zMzA9dApxuGBzGs7tqWJRQr", currency: "MEC", network: "prod"},
}
for _, tc := range tt {
switch tc.network {
case NetworkProd:
if !IsValidProdAddress(tc.address, tc.currency) {
t.Errorf("Address %s should be valid %s %s address", tc.address, tc.currency, tc.network)
}
case NetworkTest:
if !IsValidTestnetAddress(tc.address, tc.currency) {
t.Errorf("Address %s should be valid %s %s address", tc.address, tc.currency, tc.network)
}
default:
if !IsValidAddress(tc.address, tc.currency) {
t.Errorf("Address %s should be valid %s %s address", tc.address, tc.currency, tc.network)
}
}
}
}

0 comments on commit 2114c21

Please sign in to comment.