public void ShouldGenerateMasterWalletFromPurposeAndPath(string path)
        {
            TestHDWalletEd25519 hdWallet = new TestHDWalletEd25519(ReferenceSeed);
            CardanoSampleWallet wallet   = hdWallet.GetWalletFromPath <CardanoSampleWallet>(path);

            Assert.AreEqual(ReferencePrivateKey, wallet.PrivateKey.ToHexString());
            Assert.AreEqual(ReferencePubKey, $"00{wallet.PublicKey.ToHexString()}");
        }
        public void ShouldGenerateInternalFromMnemonic(int accountIndex, int walletIndex, string expectedPrivateKey, string expectedPublicKey)
        {
            IHDWallet <CardanoSampleWallet> hdWallet = new CardanoHDWalletEd25519(mnemonic, string.Empty);
            CardanoSampleWallet             wallet   = hdWallet.GetAccount((uint)accountIndex).GetInternalWallet((uint)walletIndex);

            string pubKey  = $"00{wallet.PublicKey.ToHexString()}";
            string privKey = wallet.PrivateKey.ToHexString();

            Assert.AreEqual(expectedPrivateKey, privKey);
            Assert.AreEqual(expectedPublicKey, pubKey);
        }
        public void ShouldGenerateFromMnemonic()
        {
            CardanoHDWalletEd25519 hdWallet = new CardanoHDWalletEd25519(mnemonic, string.Empty);

            Assert.AreEqual(ReferenceSeed, hdWallet.BIP39Seed);

            // m/1852'/1815'
            CardanoSampleWallet wallet = hdWallet.GetCoinTypeWallet();

            Assert.AreEqual(ReferencePrivateKey, wallet.PrivateKey.ToHexString());
            Assert.AreEqual(ReferencePubKey, $"00{wallet.PublicKey.ToHexString()}");
        }