Add signature for internal Sapling address #28
3 changed files with 9 additions and 142 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
141
test/Spec.hs
141
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
|
||||
|
|
Loading…
Reference in a new issue