Compare commits
No commits in common. "4edd789a40f486a971ff3b33f319439784e420ae" and "9cfed00380baa1f7a67e7a648f4d25742a431325" have entirely different histories.
4edd789a40
...
9cfed00380
3 changed files with 142 additions and 9 deletions
|
@ -40,7 +40,6 @@ import ZcashHaskell.Types
|
||||||
, DecodedNote(..)
|
, DecodedNote(..)
|
||||||
, RawData(..)
|
, RawData(..)
|
||||||
, RawTxResponse(..)
|
, RawTxResponse(..)
|
||||||
, SaplingInternalReceiver
|
|
||||||
, SaplingReceiver
|
, SaplingReceiver
|
||||||
, SaplingSpendingKey(..)
|
, SaplingSpendingKey(..)
|
||||||
, Seed(..)
|
, Seed(..)
|
||||||
|
@ -94,6 +93,7 @@ instance FromJSON RawTxResponse where
|
||||||
a <- o' .: "actions"
|
a <- o' .: "actions"
|
||||||
pure $ RawTxResponse i h (getShieldedOutputs h) a ht c b
|
pure $ RawTxResponse i h (getShieldedOutputs h) a ht c b
|
||||||
|
|
||||||
|
--
|
||||||
-- | Attempts to obtain a sapling SpendingKey using a HDSeed
|
-- | Attempts to obtain a sapling SpendingKey using a HDSeed
|
||||||
genSaplingSpendingKey :: Seed -> Maybe SaplingSpendingKey
|
genSaplingSpendingKey :: Seed -> Maybe SaplingSpendingKey
|
||||||
genSaplingSpendingKey seed = do
|
genSaplingSpendingKey seed = do
|
||||||
|
@ -103,6 +103,7 @@ genSaplingSpendingKey seed = do
|
||||||
where
|
where
|
||||||
res = withPureBorshVarBuffer (rustWrapperSaplingSpendingkey seed)
|
res = withPureBorshVarBuffer (rustWrapperSaplingSpendingkey seed)
|
||||||
|
|
||||||
|
--
|
||||||
-- | Attempts to generate a sapling Payment Address using an ExtendedSpendingKey and a Diversifier Index
|
-- | Attempts to generate a sapling Payment Address using an ExtendedSpendingKey and a Diversifier Index
|
||||||
genSaplingPaymentAddress :: SaplingSpendingKey -> Int -> Maybe SaplingReceiver
|
genSaplingPaymentAddress :: SaplingSpendingKey -> Int -> Maybe SaplingReceiver
|
||||||
genSaplingPaymentAddress extspk i =
|
genSaplingPaymentAddress extspk i =
|
||||||
|
@ -113,7 +114,3 @@ genSaplingPaymentAddress extspk i =
|
||||||
res =
|
res =
|
||||||
withPureBorshVarBuffer
|
withPureBorshVarBuffer
|
||||||
(rustWrapperSaplingPaymentAddress extspk (fromIntegral i))
|
(rustWrapperSaplingPaymentAddress extspk (fromIntegral i))
|
||||||
|
|
||||||
-- | Generate an internal Sapling address
|
|
||||||
genSaplingInternalAddress :: SaplingSpendingKey -> Maybe SaplingInternalReceiver
|
|
||||||
genSaplingInternalAddress sk = undefined
|
|
||||||
|
|
|
@ -54,9 +54,6 @@ type OrchardSpendingKey = BS.ByteString
|
||||||
-- | A Sapling receiver
|
-- | A Sapling receiver
|
||||||
type SaplingReceiver = BS.ByteString
|
type SaplingReceiver = BS.ByteString
|
||||||
|
|
||||||
-- | A Sapling internal receiver
|
|
||||||
type SaplingInternalReceiver = BS.ByteString
|
|
||||||
|
|
||||||
-- | An Orchard receiver
|
-- | An Orchard receiver
|
||||||
type OrchardReceiver = BS.ByteString
|
type OrchardReceiver = BS.ByteString
|
||||||
|
|
||||||
|
|
141
test/Spec.hs
141
test/Spec.hs
|
@ -578,17 +578,156 @@ main = do
|
||||||
---print $ show xtpubk
|
---print $ show xtpubk
|
||||||
xtpubk `shouldBe` testpbk
|
xtpubk `shouldBe` testpbk
|
||||||
describe "Sapling SpendingKey test" $ do
|
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
|
it "Generate Sapling spending key" $ do
|
||||||
p <- generateWalletSeedPhrase
|
p <- generateWalletSeedPhrase
|
||||||
let s = getWalletSeed p
|
let s = getWalletSeed p
|
||||||
genSaplingSpendingKey <$> s `shouldNotBe` Nothing
|
genSaplingSpendingKey <$> s `shouldNotBe` Nothing
|
||||||
describe "Sapling Payment Address generation test" $ do
|
describe "Sapling Payment Address generation test" $ do
|
||||||
it "Call genSaplingPaymentAddress" $ 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
|
p <- generateWalletSeedPhrase
|
||||||
let s = getWalletSeed p
|
let s = getWalletSeed p
|
||||||
genSaplingPaymentAddress (fromMaybe "" s) 0 `shouldNotBe` Nothing
|
genSaplingPaymentAddress (fromMaybe "" s) 0 `shouldNotBe` Nothing
|
||||||
prop "Sapling receivers are valid" $
|
prop "Sapling receivers are valid" $
|
||||||
forAll genSapArgs $ \i -> prop_SaplingReceiver i
|
forAll genSapArgs $ \(i) -> prop_SaplingReceiver i
|
||||||
|
|
||||||
-- | Properties
|
-- | Properties
|
||||||
prop_PhraseLength :: Int -> Property
|
prop_PhraseLength :: Int -> Property
|
||||||
|
|
Loading…
Reference in a new issue