diff --git a/src/app/rtdb/BlockResource.ts b/src/app/rtdb/BlockResource.ts index 9d8cf18..e7ad719 100644 --- a/src/app/rtdb/BlockResource.ts +++ b/src/app/rtdb/BlockResource.ts @@ -45,6 +45,7 @@ export interface BlockResourceItem extends FirebaseResourceItem { transactions: BlockTransaction[]; lastBlockHash: string; lastBlockUUID: string; + proof: string; } @Injectable() diff --git a/src/app/units/Blockchain.ts b/src/app/units/Blockchain.ts index 2033bfd..1ac831c 100644 --- a/src/app/units/Blockchain.ts +++ b/src/app/units/Blockchain.ts @@ -4,7 +4,7 @@ import {FirebaseUnit} from "./FirebaseUnit" import {BlockResource, BlockResourceItem, BlockTransaction} from "../rtdb/BlockResource" import {TransactionResourceItem} from "../rtdb/TransactionResource" import * as crypto from "crypto" -import {collect} from "@extollo/util"; +import {collect, uuid_v4} from "@extollo/util" export class Block implements BlockResourceItem { firebaseID: string; @@ -16,6 +16,7 @@ export class Block implements BlockResourceItem { transactions: BlockTransaction[]; lastBlockHash: string; lastBlockUUID: string; + proof: string; constructor(rec: BlockResourceItem) { this.firebaseID = rec.firebaseID; @@ -27,6 +28,7 @@ export class Block implements BlockResourceItem { this.transactions = rec.transactions this.lastBlockHash = rec.lastBlockHash this.lastBlockUUID = rec.lastBlockUUID + this.proof = rec.proof; } hash() { @@ -95,8 +97,10 @@ export class Blockchain extends Unit { } - public async submitBlock(afterBlock: Block, proofToken: string) { - + public async submitBlock(block: BlockResourceItem, afterBlock: Block, proofToken: string) { + const newBlock = new Block(block) + newBlock.lastBlockHash = afterBlock.hash() + newBlock.lastBlockUUID = afterBlock.uuid } public async submitTransactions(group: [TransactionResourceItem, TransactionResourceItem]) {