diff --git a/core/cardano-addresses.cabal b/core/cardano-addresses.cabal index 26e3c2f26..8680c5c8c 100644 --- a/core/cardano-addresses.cabal +++ b/core/cardano-addresses.cabal @@ -112,6 +112,7 @@ test-suite unit , bytestring , cardano-addresses , cardano-crypto + , cryptonite , containers , hspec , hspec-golden >=0.1.0.3 && <0.2 diff --git a/core/test/Cardano/Address/Style/ShelleySpec.hs b/core/test/Cardano/Address/Style/ShelleySpec.hs index acfb53005..fbaa72b6f 100644 --- a/core/test/Cardano/Address/Style/ShelleySpec.hs +++ b/core/test/Cardano/Address/Style/ShelleySpec.hs @@ -84,6 +84,10 @@ import Codec.Binary.Encoding ( AbstractEncoding (..), encode, fromBase16 ) import Control.Monad ( (<=<) ) +import Crypto.Hash + ( hashWith ) +import Crypto.Hash.Algorithms + ( SHA3_256 (SHA3_256) ) import Data.Aeson ( ToJSON, Value (..) ) import Data.ByteArray @@ -127,6 +131,7 @@ import qualified Cardano.Address.Style.Shelley as Shelley import qualified Cardano.Codec.Bech32.Prefixes as CIP5 import qualified Data.Aeson.Encode.Pretty as Aeson import qualified Data.ByteArray as BA +import qualified Data.ByteArray.Encoding as BAE import qualified Data.ByteString as BS import qualified Data.ByteString.Lazy as BL import qualified Data.Char as Char @@ -1017,10 +1022,10 @@ testVectors mnemonic = describe (show $ T.unpack <$> mnemonic) $ do let vec = TestVector {..} let inspectVec = InspectVector {..} it "should generate correct addresses" $ do - goldenTextLazy ("addresses_" <> T.intercalate "_" mnemonic) + goldenTextLazy ("addresses_" <> shortHex (T.intercalate "_" mnemonic)) (pShowOpt defaultOutputOptionsNoColor vec) it "should inspect correctly" $ do - goldenByteStringLazy ("inspects" <> T.intercalate "_" mnemonic) $ + goldenByteStringLazy ("inspects_" <> shortHex (T.intercalate "_" mnemonic)) $ goldenEncodeJSON $ toInspect <$> inspectVec where getPaymentAddr addrKPrv net = bech32 $ paymentAddress net (PaymentFromExtendedKey (toXPub <$> addrKPrv)) @@ -1031,6 +1036,13 @@ testVectors mnemonic = describe (show $ T.unpack <$> mnemonic) $ do toInspect = fromMaybe (String "couldn't inspect") . (Shelley.inspectAddress Nothing <=< fromBech32) +-- | Make a short name for a mnemonic by hashing it and taking the first 8 characters +shortHex :: Text -> Text +shortHex = T.take 8 . T.decodeUtf8 . BAE.convertToBase BAE.Base16 . hashByteString . T.encodeUtf8 + where + hashByteString :: ByteString -> ByteString + hashByteString = BA.convert . hashWith SHA3_256 + getExtendedKeyAddr :: Shelley depth XPrv -> Address getExtendedKeyAddr = unsafeMkAddress . xprvToBytes . getKey diff --git a/core/test/golden/addresses_draft_ability_female_child_jump_maid_roof_hurt_below_live_topple_paper_exclude_ordinary_coach_churn_sunset_emerge_blame_ketchup_much/golden b/core/test/golden/addresses_0d256c78/golden similarity index 100% rename from core/test/golden/addresses_draft_ability_female_child_jump_maid_roof_hurt_below_live_topple_paper_exclude_ordinary_coach_churn_sunset_emerge_blame_ketchup_much/golden rename to core/test/golden/addresses_0d256c78/golden diff --git a/core/test/golden/addresses_test_child_burst_immense_armed_parrot_company_walk_dog/golden b/core/test/golden/addresses_15e10657/golden similarity index 100% rename from core/test/golden/addresses_test_child_burst_immense_armed_parrot_company_walk_dog/golden rename to core/test/golden/addresses_15e10657/golden diff --git a/core/test/golden/addresses_art_forum_devote_street_sure_rather_head_chuckle_guard_poverty_release_quote_oak_craft_enemy/golden b/core/test/golden/addresses_341c2604/golden similarity index 100% rename from core/test/golden/addresses_art_forum_devote_street_sure_rather_head_chuckle_guard_poverty_release_quote_oak_craft_enemy/golden rename to core/test/golden/addresses_341c2604/golden diff --git a/core/test/golden/addresses_test_walk_nut_penalty_hip_pave_soap_entry_language_right_filter_choice/golden b/core/test/golden/addresses_5574d91d/golden similarity index 100% rename from core/test/golden/addresses_test_walk_nut_penalty_hip_pave_soap_entry_language_right_filter_choice/golden rename to core/test/golden/addresses_5574d91d/golden diff --git a/core/test/golden/addresses_excess_behave_track_soul_table_wear_ocean_cash_stay_nature_item_turtle_palm_soccer_lunch_horror_start_stumble_month_panic_right_must_lock_dress/golden b/core/test/golden/addresses_775fd04c/golden similarity index 100% rename from core/test/golden/addresses_excess_behave_track_soul_table_wear_ocean_cash_stay_nature_item_turtle_palm_soccer_lunch_horror_start_stumble_month_panic_right_must_lock_dress/golden rename to core/test/golden/addresses_775fd04c/golden diff --git a/core/test/golden/addresses_churn_shaft_spoon_second_erode_useless_thrive_burst_group_seed_element_sign_scrub_buffalo_jelly_grace_neck_useless/golden b/core/test/golden/addresses_f30c9813/golden similarity index 100% rename from core/test/golden/addresses_churn_shaft_spoon_second_erode_useless_thrive_burst_group_seed_element_sign_scrub_buffalo_jelly_grace_neck_useless/golden rename to core/test/golden/addresses_f30c9813/golden diff --git a/core/test/golden/inspectsdraft_ability_female_child_jump_maid_roof_hurt_below_live_topple_paper_exclude_ordinary_coach_churn_sunset_emerge_blame_ketchup_much/golden b/core/test/golden/inspects_0d256c78/golden similarity index 100% rename from core/test/golden/inspectsdraft_ability_female_child_jump_maid_roof_hurt_below_live_topple_paper_exclude_ordinary_coach_churn_sunset_emerge_blame_ketchup_much/golden rename to core/test/golden/inspects_0d256c78/golden diff --git a/core/test/golden/inspectstest_child_burst_immense_armed_parrot_company_walk_dog/golden b/core/test/golden/inspects_15e10657/golden similarity index 100% rename from core/test/golden/inspectstest_child_burst_immense_armed_parrot_company_walk_dog/golden rename to core/test/golden/inspects_15e10657/golden diff --git a/core/test/golden/inspectsart_forum_devote_street_sure_rather_head_chuckle_guard_poverty_release_quote_oak_craft_enemy/golden b/core/test/golden/inspects_341c2604/golden similarity index 100% rename from core/test/golden/inspectsart_forum_devote_street_sure_rather_head_chuckle_guard_poverty_release_quote_oak_craft_enemy/golden rename to core/test/golden/inspects_341c2604/golden diff --git a/core/test/golden/inspectstest_walk_nut_penalty_hip_pave_soap_entry_language_right_filter_choice/golden b/core/test/golden/inspects_5574d91d/golden similarity index 100% rename from core/test/golden/inspectstest_walk_nut_penalty_hip_pave_soap_entry_language_right_filter_choice/golden rename to core/test/golden/inspects_5574d91d/golden diff --git a/core/test/golden/inspectsexcess_behave_track_soul_table_wear_ocean_cash_stay_nature_item_turtle_palm_soccer_lunch_horror_start_stumble_month_panic_right_must_lock_dress/golden b/core/test/golden/inspects_775fd04c/golden similarity index 100% rename from core/test/golden/inspectsexcess_behave_track_soul_table_wear_ocean_cash_stay_nature_item_turtle_palm_soccer_lunch_horror_start_stumble_month_panic_right_must_lock_dress/golden rename to core/test/golden/inspects_775fd04c/golden diff --git a/core/test/golden/inspectschurn_shaft_spoon_second_erode_useless_thrive_burst_group_seed_element_sign_scrub_buffalo_jelly_grace_neck_useless/golden b/core/test/golden/inspects_f30c9813/golden similarity index 100% rename from core/test/golden/inspectschurn_shaft_spoon_second_erode_useless_thrive_burst_group_seed_element_sign_scrub_buffalo_jelly_grace_neck_useless/golden rename to core/test/golden/inspects_f30c9813/golden