public void ParseFromBlockain_GenesisBlockchain_TrueParseAmount() { //Arrange EccService.GenerateKey(out var privateKey, out var publicKey); var keyPair = new KeyPair() { PrivateKey = privateKey, PublicKey = publicKey }; var genesisBlock = Genesis.GenerateGenesisBlock(keyPair); var blockchain = new SmartShares.Blockchain() { blocks = new Dictionary <byte[], Block>() { { genesisBlock.Hash, genesisBlock } } }; //Act var amount = CoinPocketManager.ParseFromBlockain(blockchain, keyPair.PublicKey); var recipientHash = BlockchainUtil.ToAddress(keyPair.PublicKey); //Assert Assert.IsTrue(genesisBlock.Transaction.OutEntries[0].RecipientHash.SequenceEqual(recipientHash)); Assert.AreEqual(amount, 10); }
public static ulong ParseFromBlockain(SmartShares.Blockchain data, byte[] publicKey) { foreach (var variable in data.blocks) { foreach (var outEntry in variable.Value.Transaction.OutEntries) { if (outEntry.RecipientHash.SequenceEqual(BlockchainUtil.ToAddress(publicKey))) { return(outEntry.Value); } } } return(0); }