working-state
QiTao Weng 3 years ago
parent 025bc58869
commit 5ae20e945f

@ -11,33 +11,33 @@ import { collect, uuid_v4 } from "@extollo/util"
* Utility wrapper class for a block in the chain.
*/
export class Block implements BlockResourceItem {
firebaseID: string;
seqID: number;
uuid: string;
transactions: BlockTransaction[];
timestamp: number;
lastBlockHash: string;
lastBlockUUID: string;
proof: string;
firebaseID: string
seqID: number
uuid: string
transactions: BlockTransaction[]
timestamp: number
lastBlockHash: string
lastBlockUUID: string
proof: string
get config(): Config {
return Application.getApplication().make(Config)
}
constructor(rec: BlockResourceItem) {
this.firebaseID = rec.firebaseID;
this.firebaseID = rec.firebaseID
this.seqID = rec.seqID
this.uuid = rec.uuid
this.transactions = rec.transactions
this.lastBlockHash = rec.lastBlockHash
this.lastBlockUUID = rec.lastBlockUUID
this.proof = rec.proof;
this.timestamp = rec.timestamp;
this.proof = rec.proof
this.timestamp = rec.timestamp
}
/** Returns true if this is the genesis block. */
async isGenesis() {
// first block will be guaranteed uuid 0000
if (this.uuid !== '0000') {
return false;
return false
}
const proof = this.proof
const publicKey = this.config.get("app.gpg.key.public")

@ -11,7 +11,7 @@ export type RTDBRef = 'peers' | 'transaction' | 'block'
*/
@Singleton()
export class FirebaseUnit extends Unit {
protected _firebase = firebase;
protected _firebase = firebase
@Inject()
protected readonly logging!: Logging

@ -38,7 +38,7 @@ export class Transaction extends Unit {
armoredSignature: transaction2.validationSignature // parse detached signature
})
})
return await (result1.signatures[0].verified) && await (result2.signatures[0].verified);
return await (result1.signatures[0].verified) && await (result2.signatures[0].verified)
}
public async up() {
@ -58,14 +58,14 @@ export class Transaction extends Unit {
// and remove the two matching items
transactions = transactions.whereNotIn("combinedHash", [transaction1.combinedHash, transaction2.combinedHash])
// insert grouped items into groupedTransactions
groupedTransactions.push([transaction1, transaction2]);
groupedTransactions.push([transaction1, transaction2])
}
})
})
for (const group of groupedTransactions) {
await this.blockchain.submitTransactions(group);
await this.firebase.ref("transaction").child(group[0].firebaseID).remove();
await this.firebase.ref("transaction").child(group[1].firebaseID).remove();
await this.blockchain.submitTransactions(group)
await this.firebase.ref("transaction").child(group[0].firebaseID).remove()
await this.firebase.ref("transaction").child(group[1].firebaseID).remove()
}
})
}

Loading…
Cancel
Save