Esempio n. 1
0
 public Blockchain(IProofHandler proofHandler, IBlockchainNetworkClient client)
 {
     Chain = new List <Block>();
     _tx   = new List <Transaction>();
     CreateBlock("1", 100);
     _proofHandler = proofHandler;
     _client       = client;
     Nodes         = new List <string>();
 }
Esempio n. 2
0
        public void Initialize()
        {
            var proofMock = new Mock <IProofHandler>();

            proofMock.Setup(x => x.GetProofOfWork(It.IsAny <int>())).Returns(1);
            proofMock.Setup(x => x.ValidateProof(It.IsAny <int>(), It.IsAny <int>())).Returns(true);
            _proofHandler = proofMock.Object;
            var netClient = new Mock <IBlockchainNetworkClient>();
            var chain     = new Business.Blockchain(_proofHandler, _client);

            chain.MineBlock();
            var msg = new HttpResponseMessage
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new StringContent(JsonConvert.SerializeObject(chain.Chain))
            };

            netClient.Setup(x => x.GetNodeChain(It.IsAny <string>()))
            .Returns(Task.FromResult(msg));

            _client = netClient.Object;
        }