Total Complexity | 3 |
Complexity/F | 0 |
Lines of Code | 42 |
Function Count | 0 |
Duplicated Lines | 0 |
Ratio | 0 % |
Changes | 0 |
1 | import fs from 'fs' |
||
2 | import { Data } from '../models' |
||
3 | |||
4 | const removeChannelChaincode = (str: string): string => { |
||
5 | const pattern = |
||
6 | process.env.CHANNEL_NAME + '\u0000' + |
||
7 | process.env.CHAINCODE + '\u0000' |
||
8 | if (str.startsWith(pattern)) { |
||
9 | return str.replace(pattern, '') |
||
10 | } |
||
11 | return str |
||
12 | } |
||
13 | |||
14 | const writeFile = (list: string[]) => { |
||
15 | const fileName = `wallets-${ Date.now() }.txt` |
||
16 | const writer = fs.createWriteStream(fileName, |
||
17 | { flags: 'a' }) |
||
18 | |||
19 | for (let wallet of list) { |
||
20 | writer.write(wallet + '\n') |
||
21 | } |
||
22 | writer.end() |
||
23 | |||
24 | return fileName |
||
25 | } |
||
26 | |||
27 | export default async (db: any) => { |
||
28 | const wallets: string[] = [] |
||
29 | |||
30 | await new Promise(resolve => { |
||
31 | db.createReadStream().on('data', (data: Data) => { |
||
32 | if (data.value.includes('wallet_address')) { |
||
33 | wallets.push(removeChannelChaincode(data.key)) |
||
34 | } |
||
35 | }).on('end', () => { |
||
36 | resolve() |
||
37 | }) |
||
38 | }) |
||
39 | |||
40 | return writeFile(wallets) |
||
41 | } |
||
42 |