packages feed

web3-polkadot-1.0.0.0: tests/Network/Polkadot/Test/AccountSpec.hs

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes       #-}

-- |
-- Module      :  Network.Polkadot.Test.AccountSpec
-- Copyright   :  Aleksandr Krupenkin 2016-2021
-- License     :  Apache-2.0
--
-- Maintainer  :  mail@akru.me
-- Stability   :  experimental
-- Portability :  unportable
--
--

module Network.Polkadot.Test.AccountSpec where

import           Data.ByteArray.HexString.TH (hex)
import           Test.Hspec

import           Network.Polkadot.Account
import           Network.Polkadot.Crypto

spec :: Spec
spec = parallel $ do
    let alice :: Ecdsa
        Right alice = from_seed [hex|0x8beef718111d62174809fc2b332c14471f6038404c5cee7b33ac2573ba60ed06|]
    let bob :: Ed25519
        Right bob = from_seed [hex|0xbd4e72a17a76b43ab59e7733cd0818d47c2e0ebcf88bfc5fb0192c8ee520c7d1|]

    describe "Public" $ do
        it "Ecdsa" $
            show (public alice) `shouldBe` "(2,0xc96289d7426111e7ec5cbb90d7d201ab0b3d7ab17166826ae4ff27cb0c6d3f23)"
        it "Ed25519" $
            show (public bob) `shouldBe` "0x8a016b9a1ca3709974ed7b1e1c79d6ed0f795899d212edc189cdb31318fec607"

    describe "Ss58Codec" $ do
        it "Ecdsa" $
            to_ss58check (into_account $ multi_signer alice)
                `shouldBe` "5EWfGfxVbLK2upe3Zfcqo9ZtALArwLgxkwcZaT3gMujmmFxU"
        it "Ed25519" $
            to_ss58check (into_account $ multi_signer bob)
                `shouldBe` "5FBetQhjRiJMfqqMU3f4cz8ho4majAPLzuZSdmxwxPtQTZ8V"