public IActionResult MineBlock() { var lastBlock = _blockchain.LastBlock; var lastProof = lastBlock.Proof; var proof = _blockchain.ProofOfWork(lastProof); _blockchain.AddNewTransaction("0", "unique", 1); _blockchain.CreateBlock(proof); return(Ok(_blockchain.LastBlock)); }
public Block Mine(string identifier) { Block lastBlock = Blockchain.GetLastBlock(); Int64 proofOfWork = Blockchain.GetProofOfWork(lastBlock.ProofOfWork); Blockchain.AddNewTransaction(new byte[0], Util.Hash.HashString(identifier), 1); return(Blockchain.AddNewBlock(proofOfWork, Util.Hash.HashBlock(lastBlock))); }
public Transaction Post([FromBody][Required] TransactionPost transaction) { if (ModelState.IsValid) { return(Blockchain.AddNewTransaction(Util.Hash.HashString(transaction.Sender), Util.Hash.HashString(transaction.Recipient), transaction.Amount)); } else { throw new HttpResponseException(HttpStatusCode.BadRequest); } }
public void SendTokens(int amount, byte[] recipient) { Transaction transaction = new Transaction(PublicKey, recipient, amount, HashFactory); transaction.SignTransaction(Signer); try { Blockchain.AddNewTransaction(transaction); NumberOfTokens -= amount; } catch (ArgumentException) { NumberOfTokens += amount; } }