From 08a82c20b8f870c8982110f6ac04c77912732eca Mon Sep 17 00:00:00 2001 From: mlibre Date: Fri, 24 May 2024 21:54:06 +0330 Subject: [PATCH] --- dist/library/block.js | 12 +++-- dist/library/block.js.map | 2 +- dist/library/database.js | 8 ++-- dist/library/database.js.map | 2 +- dist/library/main.js | 4 +- dist/library/main.js.map | 2 +- dist/test/blockchain.test.js | 76 +++++++++++++++++++------------- dist/test/blockchain.test.js.map | 2 +- src/global.d.ts | 21 +++++---- 9 files changed, 75 insertions(+), 54 deletions(-) diff --git a/dist/library/block.js b/dist/library/block.js index 69e7d54..bd9b671 100644 --- a/dist/library/block.js +++ b/dist/library/block.js @@ -6,13 +6,13 @@ export function verifyBlock(currentBlock, previousBlock) { if (currentBlock.hash !== computeHash(blockWithoutHash)) { throw new Error("Invalid block hash"); } - if (blockWithoutHash.chainName !== previousBlock.chainName) { + if (currentBlock.chainName !== previousBlock.chainName) { throw new Error("Invalid chain name"); } - if (blockWithoutHash.index !== previousBlock.index + 1) { + if (currentBlock.index !== previousBlock.index + 1) { throw new Error("Invalid index"); } - if (previousBlock.hash !== currentBlock.previousHash) { + if (currentBlock.previousHash !== previousBlock.hash) { throw new Error("Invalid previous hash"); } if (currentBlock.timestamp < previousBlock.timestamp) { @@ -28,6 +28,12 @@ export function verifyGenesisBlock(block) { if (block.hash !== computeHash(blockWithoutHash)) { throw new Error("Invalid block hash"); } + if (block.index !== 0) { + throw new Error("Invalid index"); + } + if (block.previousHash !== "") { + throw new Error("Invalid previous hash"); + } } export function blockify(data) { return JSON.parse(JSON.stringify(data)); diff --git a/dist/library/block.js.map b/dist/library/block.js.map index 2d08101..f382f58 100644 --- a/dist/library/block.js.map +++ b/dist/library/block.js.map @@ -1 +1 @@ -{"version":3,"file":"block.js","sourceRoot":"","sources":["../../src/library/block.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAC;AACvB,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,UAAU,WAAW,CAAG,YAAuB,EAAE,aAAwB;IAE9E,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAE,YAAY,EAAE,CAAE,MAAM,CAAE,CAAE,CAAC;IAC5D,IAAK,YAAY,CAAC,IAAI,KAAK,WAAW,CAAE,gBAAgB,CAAE,EAC1D,CAAC;QACA,MAAM,IAAI,KAAK,CAAE,oBAAoB,CAAE,CAAC;IACzC,CAAC;IACD,IAAK,gBAAgB,CAAC,SAAS,KAAK,aAAa,CAAC,SAAS,EAC3D,CAAC;QACA,MAAM,IAAI,KAAK,CAAE,oBAAoB,CAAE,CAAC;IACzC,CAAC;IACD,IAAK,gBAAgB,CAAC,KAAK,KAAK,aAAa,CAAC,KAAK,GAAG,CAAC,EACvD,CAAC;QACA,MAAM,IAAI,KAAK,CAAE,eAAe,CAAE,CAAC;IACpC,CAAC;IACD,IAAK,aAAa,CAAC,IAAI,KAAK,YAAY,CAAC,YAAY,EACrD,CAAC;QACA,MAAM,IAAI,KAAK,CAAE,uBAAuB,CAAE,CAAC;IAC5C,CAAC;IAED,IAAK,YAAY,CAAC,SAAS,GAAG,aAAa,CAAC,SAAS,EACrD,CAAC;QACA,MAAM,IAAI,KAAK,CAAE,+DAA+D,CAAE,CAAC;IACpF,CAAC;IACD,KAAM,MAAM,WAAW,IAAI,YAAY,CAAC,YAAY,EACpD,CAAC;QACA,MAAM,mBAAmB,GAAG,IAAI,WAAW,CAAE,WAAW,CAAE,CAAC;QAC3D,mBAAmB,CAAC,QAAQ,EAAE,CAAC;IAChC,CAAC;AACF,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAG,KAAgB;IAEpD,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAE,KAAK,EAAE,CAAE,MAAM,CAAE,CAAE,CAAC;IACrD,IAAK,KAAK,CAAC,IAAI,KAAK,WAAW,CAAE,gBAAgB,CAAE,EACnD,CAAC;QACA,MAAM,IAAI,KAAK,CAAE,oBAAoB,CAAE,CAAC;IACzC,CAAC;AACF,CAAC;AAED,MAAM,UAAU,QAAQ,CAAG,IAAe;IAEzC,OAAO,IAAI,CAAC,KAAK,CAAE,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,CAAE,CAAC;AAC7C,CAAC"} \ No newline at end of file +{"version":3,"file":"block.js","sourceRoot":"","sources":["../../src/library/block.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAC;AACvB,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,UAAU,WAAW,CAAG,YAAuB,EAAE,aAAwB;IAE9E,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAE,YAAY,EAAE,CAAE,MAAM,CAAE,CAAE,CAAC;IAC5D,IAAK,YAAY,CAAC,IAAI,KAAK,WAAW,CAAE,gBAAgB,CAAE,EAC1D,CAAC;QACA,MAAM,IAAI,KAAK,CAAE,oBAAoB,CAAE,CAAC;IACzC,CAAC;IACD,IAAK,YAAY,CAAC,SAAS,KAAK,aAAa,CAAC,SAAS,EACvD,CAAC;QACA,MAAM,IAAI,KAAK,CAAE,oBAAoB,CAAE,CAAC;IACzC,CAAC;IACD,IAAK,YAAY,CAAC,KAAK,KAAK,aAAa,CAAC,KAAK,GAAG,CAAC,EACnD,CAAC;QACA,MAAM,IAAI,KAAK,CAAE,eAAe,CAAE,CAAC;IACpC,CAAC;IACD,IAAK,YAAY,CAAC,YAAY,KAAK,aAAa,CAAC,IAAI,EACrD,CAAC;QACA,MAAM,IAAI,KAAK,CAAE,uBAAuB,CAAE,CAAC;IAC5C,CAAC;IACD,IAAK,YAAY,CAAC,SAAS,GAAG,aAAa,CAAC,SAAS,EACrD,CAAC;QACA,MAAM,IAAI,KAAK,CAAE,+DAA+D,CAAE,CAAC;IACpF,CAAC;IACD,KAAM,MAAM,WAAW,IAAI,YAAY,CAAC,YAAY,EACpD,CAAC;QACA,MAAM,mBAAmB,GAAG,IAAI,WAAW,CAAE,WAAW,CAAE,CAAC;QAC3D,mBAAmB,CAAC,QAAQ,EAAE,CAAC;IAChC,CAAC;AACF,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAG,KAAgB;IAEpD,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAE,KAAK,EAAE,CAAE,MAAM,CAAE,CAAE,CAAC;IACrD,IAAK,KAAK,CAAC,IAAI,KAAK,WAAW,CAAE,gBAAgB,CAAE,EACnD,CAAC;QACA,MAAM,IAAI,KAAK,CAAE,oBAAoB,CAAE,CAAC;IACzC,CAAC;IACD,IAAK,KAAK,CAAC,KAAK,KAAK,CAAC,EACtB,CAAC;QACA,MAAM,IAAI,KAAK,CAAE,eAAe,CAAE,CAAC;IACpC,CAAC;IACD,IAAK,KAAK,CAAC,YAAY,KAAK,EAAE,EAC9B,CAAC;QACA,MAAM,IAAI,KAAK,CAAE,uBAAuB,CAAE,CAAC;IAC5C,CAAC;AACF,CAAC;AAED,MAAM,UAAU,QAAQ,CAAG,IAAe;IAEzC,OAAO,IAAI,CAAC,KAAK,CAAE,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,CAAE,CAAC;AAC7C,CAAC"} \ No newline at end of file diff --git a/dist/library/database.js b/dist/library/database.js index 396b02e..96df9c1 100644 --- a/dist/library/database.js +++ b/dist/library/database.js @@ -16,10 +16,9 @@ export default class GitDatabase { console.log("Git repository cleaned ", cleanOutput); } commit(blockNumber) { - const addOutput = execSync("git add --all", { cwd: this.repoPath }).toString(); - console.log("Git repository added files ", addOutput); try { - execSync(`git commit -m "${blockNumber}"`, { cwd: this.repoPath }).toString(); + execSync("git add --all", { cwd: this.repoPath }); + execSync(`git commit -m "${blockNumber}"`, { cwd: this.repoPath }); } catch (error) { if (isErrorWithStds(error)) { @@ -34,8 +33,7 @@ export default class GitDatabase { } } reset() { - const resetOutput = execSync("git reset --hard", { cwd: this.repoPath }).toString(); - console.log("Git repository reset", resetOutput); + execSync("git reset --hard", { cwd: this.repoPath }); } } //# sourceMappingURL=database.js.map \ No newline at end of file diff --git a/dist/library/database.js.map b/dist/library/database.js.map index 90dbe22..e021fbc 100644 --- a/dist/library/database.js.map +++ b/dist/library/database.js.map @@ -1 +1 @@ -{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/library/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,WAAW;IAE/B,QAAQ,CAAS;IAEjB,YAAc,QAAgB;QAE7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC;IAED,SAAS;QAER,YAAY,CAAE,IAAI,CAAC,QAAQ,CAAE,CAAC;QAC9B,MAAM,UAAU,GAAW,QAAQ,CAAE,YAAY,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QACtF,OAAO,CAAC,GAAG,CAAE,6BAA6B,EAAE,UAAU,CAAE,CAAC;QAEzD,QAAQ,CAAE,kBAAkB,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QAEjE,MAAM,WAAW,GAAW,QAAQ,CAAE,oBAAoB,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC/F,OAAO,CAAC,GAAG,CAAE,yBAAyB,EAAE,WAAW,CAAE,CAAC;IACvD,CAAC;IAED,MAAM,CAAG,WAA4B;QAEpC,MAAM,SAAS,GAAW,QAAQ,CAAE,eAAe,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QACxF,OAAO,CAAC,GAAG,CAAE,6BAA6B,EAAE,SAAS,CAAE,CAAC;QAExD,IACA,CAAC;YACA,QAAQ,CAAE,kBAAkB,WAAW,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QAChF,CAAC;QACD,OAAQ,KAAc,EACtB,CAAC;YACA,IAAK,eAAe,CAAE,KAAK,CAAE,EAC7B,CAAC;gBACA,OAAO,CAAC,KAAK,CAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAE,CAAC;gBACzC,IAAK,KAAK,CAAC,MAAM,KAAK,CAAC,EACvB,CAAC;oBACA,MAAM,KAAK,CAAC;gBACb,CAAC;YACF,CAAC;iBAED,CAAC;gBACA,MAAM,IAAI,KAAK,CAAE,mCAAmC,KAAK,EAAE,CAAE,CAAC;YAC/D,CAAC;QACF,CAAC;IACF,CAAC;IAED,KAAK;QAEJ,MAAM,WAAW,GAAW,QAAQ,CAAE,kBAAkB,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC7F,OAAO,CAAC,GAAG,CAAE,sBAAsB,EAAE,WAAW,CAAE,CAAC;IACpD,CAAC;CACD"} \ No newline at end of file +{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/library/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,WAAW;IAE/B,QAAQ,CAAS;IAEjB,YAAc,QAAgB;QAE7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC;IAED,SAAS;QAER,YAAY,CAAE,IAAI,CAAC,QAAQ,CAAE,CAAC;QAC9B,MAAM,UAAU,GAAW,QAAQ,CAAE,YAAY,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QACtF,OAAO,CAAC,GAAG,CAAE,6BAA6B,EAAE,UAAU,CAAE,CAAC;QAEzD,QAAQ,CAAE,kBAAkB,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QAEjE,MAAM,WAAW,GAAW,QAAQ,CAAE,oBAAoB,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC/F,OAAO,CAAC,GAAG,CAAE,yBAAyB,EAAE,WAAW,CAAE,CAAC;IACvD,CAAC;IAED,MAAM,CAAG,WAA4B;QAEpC,IACA,CAAC;YACA,QAAQ,CAAE,eAAe,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YACnD,QAAQ,CAAE,kBAAkB,WAAW,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACrE,CAAC;QACD,OAAQ,KAAc,EACtB,CAAC;YACA,IAAK,eAAe,CAAE,KAAK,CAAE,EAC7B,CAAC;gBACA,OAAO,CAAC,KAAK,CAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAE,CAAC;gBACzC,IAAK,KAAK,CAAC,MAAM,KAAK,CAAC,EACvB,CAAC;oBACA,MAAM,KAAK,CAAC;gBACb,CAAC;YACF,CAAC;iBAED,CAAC;gBACA,MAAM,IAAI,KAAK,CAAE,mCAAmC,KAAK,EAAE,CAAE,CAAC;YAC/D,CAAC;QACF,CAAC;IACF,CAAC;IAED,KAAK;QAEJ,QAAQ,CAAE,kBAAkB,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvD,CAAC;CACD"} \ No newline at end of file diff --git a/dist/library/main.js b/dist/library/main.js index 16448bd..df31bef 100644 --- a/dist/library/main.js +++ b/dist/library/main.js @@ -28,11 +28,11 @@ export default class Blockchain { this.transactionPool = []; this.transactionPoolSize = 100; if (this.chain.length === 0) { - this.#minGenesisBlock(); + this.#mineGenesisBlock(); } this.consensus.setValues(this.chain.latestBlock); } - #minGenesisBlock() { + #mineGenesisBlock() { const self = this; try { self.db.reset(); diff --git a/dist/library/main.js.map b/dist/library/main.js.map index c7fb3a4..081c274 100644 --- a/dist/library/main.js.map +++ b/dist/library/main.js.map @@ -1 +1 @@ -{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/library/main.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/library/main.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/test/blockchain.test.js b/dist/test/blockchain.test.js index c849728..271ad8c 100644 --- a/dist/test/blockchain.test.js +++ b/dist/test/blockchain.test.js @@ -3,41 +3,28 @@ import Wallet from "../library/wallet.js"; import Transaction from "../library/transaction.js"; import POWConsensus from "../library/pow-consensus.js"; import fs from "fs"; -import { describe, it, expect, beforeAll, afterAll } from "vitest"; +import { describe, test, expect, beforeAll, afterAll } from "vitest"; const TEST_DB_PATH = `${import.meta.dirname}/test-db`; -// Utility function to clean the test database directory -function cleanTestDB() { - if (fs.existsSync(TEST_DB_PATH)) { - fs.rmSync(TEST_DB_PATH, { recursive: true }); - } -} -const minerKeys = Wallet.generateKeyPair(); -function initializeBlockchain() { - const consensus = new POWConsensus(); - return new Blockchain({ - dbPath: TEST_DB_PATH, - nodes: { - list: ["http://127.0.0.1:3001"], - hostUrl: "http://127.0.0.1:3000" - }, - chainName: "test-chain", - minerPublicKey: minerKeys.publicKey, - consensus - }); -} describe("Blockchain Test Suite", () => { + let blockchain; + let senderKeys; + let receiverKeys; + let minerKeys; beforeAll(() => { cleanTestDB(); - }, 1000); + minerKeys = Wallet.generateKeyPair(); + blockchain = initializeBlockchain(minerKeys.publicKey); // miner: 100 + senderKeys = Wallet.generateKeyPair(); + receiverKeys = Wallet.generateKeyPair(); + }); afterAll(() => { cleanTestDB(); - }, 1000); - it("serial test", () => { - const blockchain = initializeBlockchain(); // miner: 100 - const senderKeys = Wallet.generateKeyPair(); - const receiverKeys = Wallet.generateKeyPair(); + }); + test("mining first block", () => { const newBlock = blockchain.mineNewBlock(); // miner: 200 expect(newBlock.index).toBe(1); + }); + test("Sending a transaction from miner to sender and mining a new block", () => { const transaction1 = new Transaction({ from: minerKeys.publicKey, to: senderKeys.publicKey, @@ -50,6 +37,8 @@ describe("Blockchain Test Suite", () => { blockchain.addTransaction(transaction1.data); const blockWithTransaction1 = blockchain.mineNewBlock(); // miner: 250, miner receives his own trx fee expect(blockWithTransaction1.transactions.length).toBe(2); // including coinbase transaction + }); + test("Sending a transaction from sender to receiver and mining a new block", () => { const transaction2 = new Transaction({ from: senderKeys.publicKey, to: receiverKeys.publicKey, @@ -62,15 +51,20 @@ describe("Blockchain Test Suite", () => { blockchain.addTransaction(transaction2.data); const blockWithTransaction2 = blockchain.mineNewBlock(); // miner: 351 expect(blockWithTransaction2.transactions.length).toBe(2); // including coinbase transaction + }); + test("Validating the final state of the blockchain", () => { const finalStateValid = blockchain.chain.validateChain(); expect(finalStateValid).toBe(true); + }); + test("Validating wallet balances after transactions", () => { const senderWalletBalance = blockchain.wallet.getBalance(senderKeys.publicKey); const receiverWalletBalance = blockchain.wallet.getBalance(receiverKeys.publicKey); const minerWalletBalance = blockchain.wallet.getBalance(minerKeys.publicKey); expect(senderWalletBalance).toBe(24); // 50 - 25 - 1 (fee) expect(receiverWalletBalance).toBe(25); // received 25 - expect(minerWalletBalance).toBe(351); // 200 (initial) + 50 + 1 + 1 + 100 (mining rewards) - // Edge case: transaction with insufficient funds + expect(minerWalletBalance).toBe(351); // 100 + 100 + 50 + 1 + 100 + }); + test("Handling transaction with insufficient funds", () => { const transaction3 = new Transaction({ from: senderKeys.publicKey, to: receiverKeys.publicKey, @@ -91,7 +85,8 @@ describe("Blockchain Test Suite", () => { throw e; } } - // Edge case: duplicate transaction number + }); + test("Handling duplicate transaction number", () => { const transaction4 = new Transaction({ from: senderKeys.publicKey, to: receiverKeys.publicKey, @@ -112,7 +107,8 @@ describe("Blockchain Test Suite", () => { throw e; } } - // Edge case: invalid signature + }); + test("Handling invalid signature", () => { const transaction5 = new Transaction({ from: senderKeys.publicKey, to: receiverKeys.publicKey, @@ -134,4 +130,22 @@ describe("Blockchain Test Suite", () => { } }); }); +function cleanTestDB() { + if (fs.existsSync(TEST_DB_PATH)) { + fs.rmSync(TEST_DB_PATH, { recursive: true }); + } +} +function initializeBlockchain(minerKeysPublicKey) { + const consensus = new POWConsensus(); + return new Blockchain({ + dbPath: TEST_DB_PATH, + nodes: { + list: ["http://127.0.0.1:3001"], + hostUrl: "http://127.0.0.1:3000" + }, + chainName: "test-chain", + minerPublicKey: minerKeysPublicKey, + consensus + }); +} //# sourceMappingURL=blockchain.test.js.map \ No newline at end of file diff --git a/dist/test/blockchain.test.js.map b/dist/test/blockchain.test.js.map index be0c88a..8bb8dff 100644 --- a/dist/test/blockchain.test.js.map +++ b/dist/test/blockchain.test.js.map @@ -1 +1 @@ -{"version":3,"file":"blockchain.test.js","sourceRoot":"","sources":["../../src/test/blockchain.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"blockchain.test.js","sourceRoot":"","sources":["../../src/test/blockchain.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/global.d.ts b/src/global.d.ts index 1b4e93a..09169a9 100644 --- a/src/global.d.ts +++ b/src/global.d.ts @@ -1,22 +1,25 @@ interface BlockchainConstructorParams { - dbPath: string; + readonly dbPath: string; nodes: { list: string[]; hostUrl: string; }; - chainName: string; - minerPublicKey: string; - consensus: Consensus; + readonly chainName: string; + readonly minerPublicKey: string; + readonly consensus: Consensus; } interface WalletData { blockNumber: number; - list: Record; + list: Record; +} + +interface WalletBalance +{ + balance: number; + transaction_number: number; } interface BlockData @@ -54,7 +57,7 @@ interface KeyPair privateKey: string; } -interface ErrorWithStdsOutErr +interface ErrorWithStdsOutErr extends Error { stderr: string; stdout: string;