diff --git a/src/ZcashHaskell/Sapling.hs b/src/ZcashHaskell/Sapling.hs index 5db9f06..0a25661 100644 --- a/src/ZcashHaskell/Sapling.hs +++ b/src/ZcashHaskell/Sapling.hs @@ -40,6 +40,7 @@ import ZcashHaskell.Types , DecodedNote(..) , RawData(..) , RawTxResponse(..) + , SaplingInternalReceiver , SaplingReceiver , SaplingSpendingKey(..) , Seed(..) @@ -93,7 +94,6 @@ instance FromJSON RawTxResponse where a <- o' .: "actions" pure $ RawTxResponse i h (getShieldedOutputs h) a ht c b --- -- | Attempts to obtain a sapling SpendingKey using a HDSeed genSaplingSpendingKey :: Seed -> Maybe SaplingSpendingKey genSaplingSpendingKey seed = do @@ -103,7 +103,6 @@ genSaplingSpendingKey seed = do where res = withPureBorshVarBuffer (rustWrapperSaplingSpendingkey seed) --- -- | Attempts to generate a sapling Payment Address using an ExtendedSpendingKey and a Diversifier Index genSaplingPaymentAddress :: SaplingSpendingKey -> Int -> Maybe SaplingReceiver genSaplingPaymentAddress extspk i = @@ -114,3 +113,7 @@ genSaplingPaymentAddress extspk i = res = withPureBorshVarBuffer (rustWrapperSaplingPaymentAddress extspk (fromIntegral i)) + +-- | Generate an internal Sapling address +genSaplingInternalAddress :: SaplingSpendingKey -> Maybe SaplingInternalReceiver +genSaplingInternalAddress sk = undefined diff --git a/src/ZcashHaskell/Types.hs b/src/ZcashHaskell/Types.hs index 41e41e8..7c14558 100644 --- a/src/ZcashHaskell/Types.hs +++ b/src/ZcashHaskell/Types.hs @@ -54,6 +54,9 @@ type OrchardSpendingKey = BS.ByteString -- | A Sapling receiver type SaplingReceiver = BS.ByteString +-- | A Sapling internal receiver +type SaplingInternalReceiver = BS.ByteString + -- | An Orchard receiver type OrchardReceiver = BS.ByteString diff --git a/test/Spec.hs b/test/Spec.hs index b7a38ff..e6d6bc2 100644 --- a/test/Spec.hs +++ b/test/Spec.hs @@ -578,156 +578,17 @@ main = do ---print $ show xtpubk xtpubk `shouldBe` testpbk describe "Sapling SpendingKey test" $ do - let hdseed = - BS.pack $ - [ 206 - , 61 - , 120 - , 38 - , 206 - , 40 - , 201 - , 62 - , 83 - , 175 - , 151 - , 131 - , 218 - , 141 - , 206 - , 254 - , 28 - , 244 - , 172 - , 213 - , 128 - , 248 - , 156 - , 45 - , 204 - , 44 - , 169 - , 3 - , 162 - , 188 - , 16 - , 173 - , 192 - , 164 - , 96 - , 148 - , 91 - , 52 - , 244 - , 83 - , 149 - , 169 - , 82 - , 196 - , 199 - , 53 - , 177 - , 170 - , 1 - , 6 - , 0 - , 120 - , 170 - , 2 - , 238 - , 219 - , 241 - , 243 - , 172 - , 178 - , 104 - , 81 - , 159 - , 144 - ] - --xit "Call function with parameters" $ do - --let msg = genSaplingSpendingKey (word8ArrayToByteString hdseed) - --let msgArr = BS.unpack msg - --if (length msgArr) == 169 - --then True - --else False it "Generate Sapling spending key" $ do p <- generateWalletSeedPhrase let s = getWalletSeed p genSaplingSpendingKey <$> s `shouldNotBe` Nothing describe "Sapling Payment Address generation test" $ do it "Call genSaplingPaymentAddress" $ do - let hdseed1 = - [ 206 - , 61 - , 120 - , 38 - , 206 - , 40 - , 201 - , 62 - , 83 - , 175 - , 151 - , 131 - , 218 - , 141 - , 206 - , 254 - , 28 - , 244 - , 172 - , 213 - , 128 - , 248 - , 156 - , 45 - , 204 - , 44 - , 169 - , 3 - , 162 - , 188 - , 16 - , 173 - , 192 - , 164 - , 96 - , 148 - , 91 - , 52 - , 244 - , 83 - , 149 - , 169 - , 82 - , 196 - , 199 - , 53 - , 177 - , 170 - , 1 - , 6 - , 0 - , 120 - , 170 - , 2 - , 238 - , 219 - , 241 - , 243 - , 172 - , 178 - , 104 - , 81 - , 159 - , 144 - ] :: [Word8] p <- generateWalletSeedPhrase let s = getWalletSeed p genSaplingPaymentAddress (fromMaybe "" s) 0 `shouldNotBe` Nothing prop "Sapling receivers are valid" $ - forAll genSapArgs $ \(i) -> prop_SaplingReceiver i + forAll genSapArgs $ \i -> prop_SaplingReceiver i -- | Properties prop_PhraseLength :: Int -> Property