Implement address comparison and validation #87
1 changed files with 13 additions and 11 deletions
|
@ -1,3 +1,5 @@
|
|||
{-# LANGUAGE OverloadedStrings #-}
|
||||
|
||||
-- Copyright 2022-2024 Vergara Technologies LLC
|
||||
--
|
||||
-- This file is part of Zcash-Haskell.
|
||||
|
@ -172,27 +174,27 @@ decodeTransparentAddress taddress = do
|
|||
-- | Encode an Exchange Addresss into HRF from TransparentReceiver
|
||||
encodeExchangeAddress :: ZcashNet -> TransparentReceiver -> Maybe T.Text
|
||||
encodeExchangeAddress net tr = do
|
||||
case (tr_type tr) of
|
||||
case tr_type tr of
|
||||
P2PKH -> do
|
||||
case net of
|
||||
MainNet -> do
|
||||
let vhash = encodeBech32m (BC.pack "tex") (toBytes (tr_bytes tr))
|
||||
let vhash = encodeBech32m "tex" (toBytes (tr_bytes tr))
|
||||
Just vhash
|
||||
TestNet -> do
|
||||
let vhash = encodeBech32m (BC.pack "textest") (toBytes (tr_bytes tr))
|
||||
let vhash = encodeBech32m "textest" (toBytes (tr_bytes tr))
|
||||
Just vhash
|
||||
_ -> Nothing
|
||||
_any -> Nothing
|
||||
|
||||
-- | Decode an Exchange Address into a ExchangeAddress
|
||||
decodeExchangeAddress :: T.Text -> Maybe ExchangeAddress
|
||||
decodeExchangeAddress :: BS.ByteString -> Maybe ExchangeAddress
|
||||
decodeExchangeAddress ex = do
|
||||
if (T.length ex) > 1
|
||||
if BS.length ex > 1
|
||||
then do
|
||||
let rawd = decodeBech32 (E.encodeUtf8 ex)
|
||||
let tMain = BS.unpack (BC.pack "tex")
|
||||
let tTest = BS.unpack (BC.pack "textest")
|
||||
let tFail = BS.unpack (BC.pack "fail")
|
||||
let hr = BS.unpack (hrp rawd)
|
||||
let rawd = decodeBech32 ex
|
||||
let tMain = "tex"
|
||||
let tTest = "textest"
|
||||
let tFail = "fail"
|
||||
let hr = hrp rawd
|
||||
if hr /= tFail
|
||||
then do
|
||||
let transparentReceiver = bytes rawd
|
||||
|
|
Loading…
Reference in a new issue