Skip to content

Commit c44cd16

Browse files
more strict tsconfig and associated cleanup
1 parent 01e1526 commit c44cd16

File tree

20 files changed

+2086
-784
lines changed

20 files changed

+2086
-784
lines changed

package-lock.json

Lines changed: 2025 additions & 713 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/decorators/Loggify.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,8 @@ export function LoggifyClass<T extends { new (...args: any[]): {} }>(
2222

2323
export function LoggifyMethod(className: string) {
2424
return function(
25-
target: any,
26-
propertyKey: string,
2725
descriptor: TypedPropertyDescriptor<Function>
2826
) {
29-
let prop = propertyKey;
3027
if (descriptor.value != undefined) {
3128
descriptor.value = LoggifyFunction(descriptor.value, className);
3229
}

src/models/block.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Schema, Query, Document, Model, model, DocumentQuery } from 'mongoose';
1+
import { Schema, Document, model, DocumentQuery } from 'mongoose';
22
import { CoinModel } from './coin';
33
import { TransactionModel } from './transaction';
44
import { CallbackType } from '../types/Callback';
@@ -171,7 +171,7 @@ BlockSchema.statics.addBlock = function(
171171
BlockSchema.statics.getPoolInfo = function(coinbase: string) {
172172
//TODO need to make this actually parse the coinbase input and map to miner strings
173173
// also should go somewhere else
174-
return 'miningPool';
174+
return coinbase;
175175
};
176176

177177
BlockSchema.statics.getLocalTip = function(params: ChainNetwork) {

src/models/coin.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Schema, Query, Document, Model, model, DocumentQuery } from "mongoose";
1+
import { Schema, Document, model, DocumentQuery } from "mongoose";
22
import { TransformableModel } from "../types/TransformableModel";
33
import { LoggifyObject } from "../decorators/Loggify";
44

src/models/transaction.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
1-
import { Schema, Query, Document, Model, model, DocumentQuery } from "mongoose";
1+
import { Schema, Document, model, DocumentQuery } from "mongoose";
22
import { CoinModel, CoinQuery, ICoinModel } from "./coin";
33
import { WalletAddressModel } from "./walletAddress";
4-
import { AddBlockParams } from "./block";
54
import { BitcoinTransactionType } from "../types/Transaction";
65
import { partition } from "../utils/partition";
7-
import { WalletModel, IWalletModel, WalletQuery } from "./wallet";
86
import { ObjectID } from "bson";
97
import { TransformOptions } from "../types/TransformOptions";
108
import { ChainNetwork } from "../types/ChainNetwork";

src/models/wallet.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Schema, Query, Document, Model, model, DocumentQuery } from "mongoose";
1+
import { Schema, Document, model, DocumentQuery } from "mongoose";
22
import { TransformOptions } from "../types/TransformOptions";
33
import { WalletAddressModel } from "../models/walletAddress";
44
import { ChainNetwork } from "../types/ChainNetwork";

src/models/walletAddress.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Schema, Query, Document, Model, model, DocumentQuery } from "mongoose";
1+
import { Schema, Document, model, DocumentQuery } from "mongoose";
22
import { CoinModel, ICoinModel } from "./coin";
33
import { TransformOptions } from "../types/TransformOptions";
44
import { partition } from "../utils/partition";

src/providers/chain-state/erc20/erc20.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,4 @@
11
const abi = require('./erc20abi');
2-
const Web3 = require('web3-eth');
3-
const config = require('../../../config');
4-
const mongoose = require('mongoose');
5-
const Wallet = mongoose.model('Wallet');
6-
const Storage = require('../../../services/storage');
7-
const WalletAddress = mongoose.model('WalletAddress');
82

93
import { CSP } from "../../../types/namespaces/ChainStateProvider";
104
import { ETHStateProvider } from "../eth/eth";

src/providers/chain-state/eth/eth.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
1-
import ConfigType from '../../../types/Config';
21
import Config from '../../../config';
32
import { WalletAddressModel } from '../../../models/walletAddress';
4-
import { WalletModel } from '../../../models/wallet';
5-
import { Storage } from '../../../services/storage';
63
import { CSP } from '../../../types/namespaces/ChainStateProvider';
74
import { InternalStateProvider } from '../internal/internal';
85
import { Schema } from 'mongoose';
@@ -53,14 +50,14 @@ export class ETHStateProvider extends InternalStateProvider
5350
stream.send(JSON.stringify(transactions));
5451
}
5552

56-
async getWalletAddresses(network: string, walletId: Schema.Types.ObjectId) {
53+
async getWalletAddresses(walletId: Schema.Types.ObjectId) {
5754
let query = { wallet: walletId };
5855
return WalletAddressModel.find(query);
5956
}
6057

6158
async getWalletBalance(params: CSP.GetWalletBalanceParams) {
6259
const { network } = params;
63-
let addresses = await this.getWalletAddresses(network, params.wallet._id);
60+
let addresses = await this.getWalletAddresses(params.wallet._id);
6461
let addressBalancePromises = addresses.map(({ address }) =>
6562
this.getBalanceForAddress({ chain: this.chain, network, address })
6663
);

src/providers/chain-state/internal/internal.ts

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
import { Response } from 'express';
22
import { CoinModel, CoinQuery } from '../../../models/coin';
33
import { BlockModel, BlockQuery } from '../../../models/block';
4-
import { IWallet, IWalletModel } from '../../../models/wallet';
4+
import { IWalletModel } from '../../../models/wallet';
55
import { WalletModel } from '../../../models/wallet';
66
import { WalletAddressModel } from '../../../models/walletAddress';
77
import { CSP } from '../../../types/namespaces/ChainStateProvider';
88
import { Storage } from '../../../services/storage';
99
import { RPC } from '../../../rpc';
1010
import { LoggifyClass } from '../../../decorators/Loggify';
11-
import logger from '../../../logger';
1211
import config from '../../../config';
1312

1413
import {
@@ -19,24 +18,12 @@ import {
1918
const JSONStream = require('JSONStream');
2019
const ListTransactionsStream = require('./transforms');
2120

22-
type StreamWalletTransactionsArgs = {
23-
startBlock: number;
24-
endBlock: number;
25-
startDate: Date;
26-
endDate: Date;
27-
};
28-
29-
type StreamAddressUtxosArgs = {
30-
unspent: boolean;
31-
};
32-
3321
type StreamWalletUtxoArgs = { includeSpent: 'true' | undefined };
3422
type StreamWalletUtxoParams = {
3523
wallet: IWalletModel;
3624
args: Partial<StreamWalletUtxoArgs>;
3725
stream: Response;
3826
};
39-
type GetBlockArgs = { limit: null | number };
4027

4128
@LoggifyClass
4229
export class InternalStateProvider implements CSP.IChainStateService {
@@ -191,7 +178,7 @@ export class InternalStateProvider implements CSP.IChainStateService {
191178
}
192179

193180
streamWalletAddresses(params: CSP.StreamWalletAddressesParams) {
194-
let { network, walletId, stream } = params;
181+
let { walletId, stream } = params;
195182
let query = { wallet: walletId };
196183
Storage.apiStreamingFind(WalletAddressModel, query, stream);
197184
}

src/routes/address.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ router.get('/:address/balance', async function(req, res) {
2323
network,
2424
address
2525
});
26-
res.send((result && result[0]) || { balance: 0 });
26+
return res.send((result && result[0]) || { balance: 0 });
2727
} catch (err) {
2828
return res.status(500).send(err);
2929
}

src/routes/block.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Request, Response, Router } from "express";
1+
import { Request, Response } from "express";
22
import { ChainStateProvider } from "../providers/chain-state";
33
const router = require("express").Router({ mergeParams: true });
44

@@ -15,7 +15,7 @@ router.get("/", async function(req: Request, res: Response) {
1515
if (!block) {
1616
return res.status(404).send("block not found");
1717
}
18-
res.json(block);
18+
return res.json(block);
1919
} catch (err) {
2020
return res.status(500).send(err);
2121
}
@@ -28,7 +28,7 @@ router.get("/:blockId", async function(req: Request, res: Response) {
2828
if (!block) {
2929
return res.status(404).send("block not found");
3030
}
31-
res.json(block);
31+
return res.json(block);
3232
} catch (err) {
3333
return res.status(500).send(err);
3434
}

src/routes/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ app.use('/api/:chain/:network', (req: Request, resp: Response, next: any) => {
5454
`This node is not configured for the network ${network} on chain ${chain}`
5555
);
5656
}
57-
next();
57+
return next();
5858
});
5959

6060
app.use('/api/:chain/:network', bootstrap());

src/routes/tx.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Request, Response, Router } from 'express';
1+
import { Router } from 'express';
22
import { CSP } from '../types/namespaces/ChainStateProvider';
33
import { ChainStateProvider } from '../providers/chain-state';
44
import logger from '../logger';
@@ -23,7 +23,7 @@ router.get('/', function(req, res) {
2323
if (req.query.blockHash) {
2424
payload.args.blockHash = req.query.blockHash;
2525
}
26-
ChainStateProvider.streamTransactions(payload);
26+
return ChainStateProvider.streamTransactions(payload);
2727
});
2828

2929
router.get('/:txId', function(req, res) {
@@ -33,7 +33,7 @@ router.get('/:txId', function(req, res) {
3333
}
3434
chain = chain.toUpperCase();
3535
network = network.toLowerCase();
36-
ChainStateProvider.streamTransaction({ chain, network, txId, stream: res });
36+
return ChainStateProvider.streamTransaction({ chain, network, txId, stream: res });
3737
});
3838

3939
router.post('/send', async function(req, res) {
@@ -47,7 +47,7 @@ router.post('/send', async function(req, res) {
4747
network,
4848
rawTx
4949
});
50-
res.send({ txid });
50+
return res.send({ txid });
5151
} catch (err) {
5252
logger.error(err);
5353
return res.status(500).send(err);

src/routes/wallet.ts

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { Request, Response, Router } from 'express';
2-
import { CSP } from '../types/namespaces/ChainStateProvider';
32
import { ChainNetwork } from '../types/ChainNetwork';
43
import { IWalletModel } from '../models/wallet';
54
import { RequestHandler } from 'express-serve-static-core';
@@ -61,7 +60,7 @@ const authenticate: RequestHandler = async (
6160
if (!validRequestSignature) {
6261
return res.status(401).send(new Error('Authentication failed'));
6362
}
64-
next();
63+
return next();
6564
} catch (e) {
6665
return res.status(401).send(new Error('Authentication failed'));
6766
}
@@ -88,9 +87,9 @@ router.post('/', async function(req, res) {
8887
pubKey,
8988
path
9089
});
91-
res.send(result);
90+
return res.send(result);
9291
} catch (err) {
93-
res.status(500).send(err);
92+
return res.status(500).send(err);
9493
}
9594
});
9695

@@ -100,7 +99,7 @@ router.get('/:pubKey', authenticate, async function(
10099
) {
101100
try {
102101
let wallet = req.wallet;
103-
res.send(wallet);
102+
return res.send(wallet);
104103
} catch (err) {
105104
return res.status(500).send(err);
106105
}
@@ -115,7 +114,7 @@ router.get('/:pubKey/addresses', authenticate, async function(req, res) {
115114
walletId: pubKey,
116115
stream: res
117116
};
118-
ChainStateProvider.streamWalletAddresses(payload);
117+
return ChainStateProvider.streamWalletAddresses(payload);
119118
} catch (err) {
120119
return res.status(500).send(err);
121120
}
@@ -149,7 +148,7 @@ router.get(
149148
async (req: AuthenticatedRequest, res) => {
150149
let { chain, network } = req.params;
151150
try {
152-
await ChainStateProvider.streamWalletTransactions({
151+
return await ChainStateProvider.streamWalletTransactions({
153152
chain,
154153
network,
155154
wallet: req.wallet!,
@@ -173,7 +172,7 @@ router.get(
173172
network,
174173
wallet: req.wallet!
175174
});
176-
res.send((result && result[0]) || { balance: 0 });
175+
return res.send((result && result[0]) || { balance: 0 });
177176
} catch (err) {
178177
return res.status(500).json(err);
179178
}
@@ -186,7 +185,7 @@ router.get(
186185
async (req: AuthenticatedRequest, res) => {
187186
let { chain, network } = req.params;
188187
try {
189-
ChainStateProvider.streamWalletUtxos({
188+
return ChainStateProvider.streamWalletUtxos({
190189
chain,
191190
network,
192191
wallet: req.wallet!,

src/rpc.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ export class RPC {
2727
},
2828
json: true
2929
},
30-
function(err, res, body) {
30+
function(err, res) {
31+
const {body} = res;
3132
if (err) {
3233
return callback(err);
3334
}

src/server.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { P2pService } from './services/p2p';
22
import { Storage } from './services/storage';
33
import { Worker } from './services/worker';
4-
import { CallbackType } from './types/Callback';
54
import logger from './logger';
65
import config from './config';
76

src/services/p2p.ts

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,12 @@ export class P2pService extends EventEmitter {
107107
});
108108

109109
this.pool.on('peertx', (peer, message) => {
110+
logger.debug('peer tx received', {
111+
peer,
112+
chain: this.chain,
113+
network: this.network,
114+
message
115+
});
110116
if (
111117
!this.invCache[this.bitcoreP2p.Inventory.TYPE.TX].includes(
112118
message.transaction.hash
@@ -123,6 +129,12 @@ export class P2pService extends EventEmitter {
123129
});
124130

125131
this.pool.on('peerblock', (peer, message) => {
132+
logger.debug('peer block received', {
133+
peer,
134+
chain: this.chain,
135+
network: this.network,
136+
message
137+
});
126138
if (
127139
!this.invCache[this.bitcoreP2p.Inventory.TYPE.BLOCK].includes(
128140
message.block.hash
@@ -142,6 +154,12 @@ export class P2pService extends EventEmitter {
142154
});
143155

144156
this.pool.on('peerheaders', (peer, message) => {
157+
logger.debug('peerheaders message received', {
158+
peer,
159+
chain: this.chain,
160+
network: this.network,
161+
message
162+
});
145163
this.emit('headers', message.headers);
146164
});
147165

@@ -232,17 +250,19 @@ export class P2pService extends EventEmitter {
232250
},
233251
function(cb: CallbackType) {
234252
let lastLog = 0;
235-
async.eachOfSeries(
253+
async.eachSeries(
236254
self.headersQueue,
237255
function(
238256
header: BlockHeaderObj,
239-
headerIndex: number,
240257
cb: CallbackType
241258
) {
242259
self.getBlock(header.hash, function(
243260
err: any,
244261
block: BitcoinBlockType
245262
) {
263+
if (err) {
264+
return cb(err);
265+
}
246266
logger.debug('Block received', block.hash);
247267
self.processBlock(block, function(err: any) {
248268
blockCounter++;

src/services/storage.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
import mongoose = require("mongoose");
2-
import { CallbackType } from "../types/Callback";
32
import { Response } from "express";
4-
import { Model, Query, Document } from "mongoose";
53
import { TransformableModel } from "../types/TransformableModel";
64
import logger from '../logger';
75
import config from '../config';
@@ -44,7 +42,7 @@ export class StorageService {
4442

4543
stop() {}
4644

47-
apiStreamingFind<T extends Document>(
45+
apiStreamingFind(
4846
model: TransformableModel<any>,
4947
query: any,
5048
res: Response

0 commit comments

Comments
 (0)