Skip to content
This repository was archived by the owner on Dec 10, 2020. It is now read-only.

Commit 71b1891

Browse files
committed
typescript: transition browser/ to ts
1 parent 99e9efa commit 71b1891

File tree

6 files changed

+96
-103
lines changed

6 files changed

+96
-103
lines changed

browser/index.js

Lines changed: 0 additions & 75 deletions
This file was deleted.

browser/index.ts

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
import Common from 'ethereumjs-common'
2+
const level = require('level')
3+
4+
// Blockchain
5+
export * from '../lib/blockchain/chain'
6+
7+
// Peer
8+
export * from '../lib/net/peer/peer'
9+
export * from '../lib/net/peer/libp2ppeer'
10+
export * from './libp2pnode'
11+
12+
// Peer Pool
13+
export * from '../lib/net/peerpool'
14+
15+
// Protocol
16+
export * from '../lib/net/protocol/protocol'
17+
export * from '../lib/net/protocol/ethprotocol'
18+
export * from '../lib/net/protocol/lesprotocol'
19+
export * from '../lib/net/protocol/flowcontrol'
20+
21+
// Server
22+
export * from '../lib/net/server/server'
23+
export * from '../lib/net/server/libp2pserver'
24+
25+
// Node
26+
export * from '../lib/node'
27+
28+
// Service
29+
export * from '../lib/service/service'
30+
export * from '../lib/service/fastethereumservice'
31+
export * from '../lib/service/lightethereumservice'
32+
33+
// Synchronizer
34+
export * from '../lib/sync/sync'
35+
export * from '../lib/sync/fastsync'
36+
export * from '../lib/sync/lightsync'
37+
38+
// Utilities
39+
export * from '../lib/util'
40+
41+
// Logging
42+
export * from './logging'
43+
import { getLogger } from './logging'
44+
45+
export function createNode(args: any) {
46+
const logger = getLogger({ loglevel: args.loglevel })
47+
const options = {
48+
common: new Common(args.network || 'mainnet'),
49+
servers: [new exports.Libp2pServer({ multiaddrs: [], ...args })],
50+
syncmode: args.syncmode || 'fast',
51+
db: level(args.db || 'ethereumjs'),
52+
logger: logger,
53+
}
54+
return new exports.Node(options)
55+
}
56+
57+
export function run(args: any) {
58+
const node = createNode(args)
59+
const logger = node.logger
60+
logger.info('Initializing Ethereumjs client...')
61+
logger.info(`Connecting to network: ${node.common.chainName()}`)
62+
node.on('error', (err: any) => logger.error(err))
63+
node.on('listening', (details: any) => {
64+
logger.info(`Listener up transport=${details.transport} url=${details.url}`)
65+
})
66+
node.on('synchronized', () => {
67+
logger.info('Synchronized')
68+
})
69+
node.open().then(() => {
70+
logger.info('Synchronizing blockchain...')
71+
node.start()
72+
})
73+
return node
74+
}

browser/libp2pnode.js renamed to browser/libp2pnode.ts

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,25 @@
1-
'use strict'
2-
31
/**
42
* Libp2p Bundle
53
* @memberof module:net/peer
64
*/
75

8-
const WS = require('libp2p-websockets')
9-
const Bootstrap = require('libp2p-bootstrap')
10-
const Multiplex = require('libp2p-mplex')
11-
const SECIO = require('libp2p-secio')
6+
import LibP2pWebsockets from 'libp2p-websockets'
7+
import LibP2pBootstrap from 'libp2p-bootstrap'
8+
import mplex from 'libp2p-mplex'
9+
import secio from 'libp2p-secio'
10+
1211
const libp2p = require('libp2p')
1312
const promisify = require('util-promisify')
1413

15-
class Libp2pNode extends libp2p {
16-
constructor(options) {
14+
export class Libp2pNode extends libp2p {
15+
constructor(options: any) {
1716
super({
1817
peerInfo: options.peerInfo,
1918
modules: {
20-
transport: [WS],
21-
streamMuxer: [Multiplex],
22-
connEncryption: [SECIO],
23-
peerDiscovery: [Bootstrap],
19+
transport: [LibP2pWebsockets],
20+
streamMuxer: [mplex],
21+
connEncryption: [secio],
22+
peerDiscovery: [LibP2pBootstrap],
2423
},
2524
config: {
2625
peerDiscovery: {
@@ -43,5 +42,3 @@ class Libp2pNode extends libp2p {
4342
this.asyncDialProtocol = promisify(this.dialProtocol.bind(this))
4443
}
4544
}
46-
47-
module.exports = Libp2pNode

browser/logging.js

Lines changed: 0 additions & 13 deletions
This file was deleted.

browser/logging.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
const pino = require('pino')
2+
3+
export function getLogger(options = { loglevel: 'info' }) {
4+
return pino({
5+
level: options.loglevel,
6+
base: null,
7+
})
8+
}
9+
10+
export const defaultLogger = getLogger({ loglevel: 'debug' })

tsconfig.browser.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"extends": "@ethereumjs/config-typescript/tsconfig.browser.json",
3-
"include": ["browser/index.js"],
3+
"include": ["browser/index.ts"],
44
"exclude": ["lib/index.js"],
55
"compilerOptions": {
66
"outDir": "dist.browser",

0 commit comments

Comments
 (0)