diff options
author | joe <joe@jerkface.net> | 2014-04-21 22:15:36 -0400 |
---|---|---|
committer | joe <joe@jerkface.net> | 2014-04-21 22:15:36 -0400 |
commit | 821fdb47cab64c91f956ad1ca6d5489961459e69 (patch) | |
tree | 68cfc9ad2dd760e2e02d7b826ff99f56a1e8d375 | |
parent | bbb38d5e54664ced895a6e4dcfcc289f2a9afef4 (diff) |
top level signatures for CryptoCoins
-rw-r--r-- | CryptoCoins.hs | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/CryptoCoins.hs b/CryptoCoins.hs index 8ae092d..f417036 100644 --- a/CryptoCoins.hs +++ b/CryptoCoins.hs | |||
@@ -16,6 +16,7 @@ data CoinNetwork = CoinNetwork | |||
16 | -- For forks of bitcoin, grep sources for PUBKEY_ADDRESS | 16 | -- For forks of bitcoin, grep sources for PUBKEY_ADDRESS |
17 | -- That value + 0x80 will be the private_byte_id. | 17 | -- That value + 0x80 will be the private_byte_id. |
18 | -- information source: https://raw.github.com/zamgo/PHPCoinAddress/master/README.md | 18 | -- information source: https://raw.github.com/zamgo/PHPCoinAddress/master/README.md |
19 | coin_networks :: [CoinNetwork] | ||
19 | coin_networks = | 20 | coin_networks = |
20 | [ CoinNetwork "bitcoin" 0x00 0x80 "https://github.com/bitcoin/bitcoin" | 21 | [ CoinNetwork "bitcoin" 0x00 0x80 "https://github.com/bitcoin/bitcoin" |
21 | , CoinNetwork "litecoin" 0x30 0xB0 "https://github.com/litecoin-project/litecoin" | 22 | , CoinNetwork "litecoin" 0x30 0xB0 "https://github.com/litecoin-project/litecoin" |
@@ -43,6 +44,7 @@ coin_networks = | |||
43 | -- ixcoin - - https://github.com/ixcoin/ixcoin | 44 | -- ixcoin - - https://github.com/ixcoin/ixcoin |
44 | -- royalcoin - - http://sourceforge.net/projects/royalcoin/ | 45 | -- royalcoin - - http://sourceforge.net/projects/royalcoin/ |
45 | 46 | ||
47 | lookupNetwork :: Eq a => (CoinNetwork -> a) -> a -> Maybe CoinNetwork | ||
46 | lookupNetwork f b = listToMaybe $ filter (\n->f n==b) coin_networks | 48 | lookupNetwork f b = listToMaybe $ filter (\n->f n==b) coin_networks |
47 | 49 | ||
48 | nameFromSecretByte :: Word8 -> String | 50 | nameFromSecretByte :: Word8 -> String |
@@ -54,11 +56,13 @@ nameFromSecretByte b = maybe (defaultName b) network_name (lookupNetwork private | |||
54 | where pad0 [c] = '0':c:[] | 56 | where pad0 [c] = '0':c:[] |
55 | pad0 cs = take 2 cs | 57 | pad0 cs = take 2 cs |
56 | 58 | ||
59 | publicByteFromName :: String -> Word8 | ||
57 | publicByteFromName n = maybe (secretByteFromName n - 0x80) | 60 | publicByteFromName n = maybe (secretByteFromName n - 0x80) |
58 | -- exceptions to the above: bbqcoin, bytecoin | 61 | -- exceptions to the above: bbqcoin, bytecoin |
59 | public_byte_id | 62 | public_byte_id |
60 | (lookupNetwork network_name n) | 63 | (lookupNetwork network_name n) |
61 | 64 | ||
65 | secretByteFromName :: String -> Word8 | ||
62 | secretByteFromName n = maybe (defaultID n) private_byte_id (lookupNetwork network_name n) | 66 | secretByteFromName n = maybe (defaultID n) private_byte_id (lookupNetwork network_name n) |
63 | where | 67 | where |
64 | defaultID ('?':'c':'o':'i':'n':'?':(readHex->((x,_):_))) | 68 | defaultID ('?':'c':'o':'i':'n':'?':(readHex->((x,_):_))) |