11
11
const mongoose = require ( 'mongoose' ) ,
12
12
config = require ( './config' ) ,
13
13
models = require ( './models' ) ,
14
+ RMQBlockModel = require ( 'middleware-common-components/models/rmq/eth/blockModel' ) ,
15
+ RMQTxModel = require ( 'middleware-common-components/models/rmq/eth/txModel' ) ,
14
16
MasterNodeService = require ( 'middleware-common-components/services/blockProcessor/MasterNodeService' ) ,
15
17
Promise = require ( 'bluebird' ) ,
16
18
_ = require ( 'lodash' ) ,
17
19
providerService = require ( './services/providerService' ) ,
18
-
19
20
AmqpService = require ( 'middleware_common_infrastructure/AmqpService' ) ,
20
21
InfrastructureInfo = require ( 'middleware_common_infrastructure/InfrastructureInfo' ) ,
21
22
InfrastructureService = require ( 'middleware_common_infrastructure/InfrastructureService' ) ,
@@ -79,7 +80,7 @@ const init = async () => {
79
80
const masterNodeService = new MasterNodeService ( channel , config . rabbit . serviceName ) ;
80
81
await masterNodeService . start ( ) ;
81
82
82
- providerService . events . on ( 'provider_set' , providerURI => {
83
+ providerService . on ( 'provider_set' , providerURI => {
83
84
let providerIndex = _ . findIndex ( config . web3 . providers , providerURI ) ;
84
85
if ( providerIndex !== - 1 )
85
86
channel . publish ( 'internal' , `${ config . rabbit . serviceName } _current_provider.set` , new Buffer ( JSON . stringify ( { index : providerIndex } ) ) ) ;
@@ -96,52 +97,56 @@ const init = async () => {
96
97
97
98
let blockEventCallback = async block => {
98
99
log . info ( `${ block . hash } (${ block . number } ) added to cache.` ) ;
99
- await channel . publish ( 'events' , `${ config . rabbit . serviceName } _block` , new Buffer ( JSON . stringify ( { block : block . number } ) ) ) ;
100
+
101
+ const blockModel = new RMQBlockModel ( { block : block . number } ) ;
102
+
103
+ await channel . publish ( 'events' , `${ config . rabbit . serviceName } _block` , new Buffer ( blockModel . toString ( ) ) ) ;
100
104
const filteredTxs = await filterTxsByAccountService ( block . transactions ) ;
101
105
102
106
for ( let item of filteredTxs )
103
- for ( let tx of item . txs )
104
- await channel . publish ( 'events' , `${ config . rabbit . serviceName } _transaction.${ item . address } ` , new Buffer ( JSON . stringify ( tx ) ) ) ;
107
+ for ( let tx of item . txs ) {
108
+
109
+ const txModel = new RMQTxModel ( tx ) ;
110
+ await channel . publish ( 'events' , `${ config . rabbit . serviceName } _transaction.${ item . address } ` , new Buffer ( txModel . toString ( ) ) ) ;
111
+ }
105
112
} ;
106
113
let txEventCallback = async tx => {
107
114
const filteredTxs = await filterTxsByAccountService ( [ tx ] ) ;
108
115
for ( let item of filteredTxs )
109
116
for ( let tx of item . txs ) {
110
- tx = _ . omit ( tx , [ 'blockHash' , 'transactionIndex' ] ) ;
111
117
tx . blockNumber = - 1 ;
112
- await channel . publish ( 'events' , `${ config . rabbit . serviceName } _transaction.${ item . address } ` , new Buffer ( JSON . stringify ( tx ) ) ) ;
118
+ const txModel = new RMQTxModel ( tx ) ;
119
+ await channel . publish ( 'events' , `${ config . rabbit . serviceName } _transaction.${ item . address } ` , new Buffer ( txModel . toString ( ) ) ) ;
113
120
}
114
121
} ;
115
122
116
- syncCacheService . events . on ( 'block' , blockEventCallback ) ;
123
+ syncCacheService . on ( 'block' , blockEventCallback ) ;
117
124
118
125
let endBlock = await syncCacheService . start ( ) ;
119
126
120
127
await new Promise ( ( res ) => {
121
128
if ( config . sync . shadow )
122
129
return res ( ) ;
123
130
124
- syncCacheService . events . on ( 'end' , ( ) => {
131
+ syncCacheService . on ( 'end' , ( ) => {
125
132
log . info ( `cached the whole blockchain up to block: ${ endBlock } ` ) ;
126
133
res ( ) ;
127
134
} ) ;
128
135
} ) ;
129
136
130
137
let blockWatchingService = new BlockWatchingService ( endBlock ) ;
131
138
132
- blockWatchingService . events . on ( 'block' , blockEventCallback ) ;
133
- blockWatchingService . events . on ( 'tx' , txEventCallback ) ;
139
+ blockWatchingService . on ( 'block' , blockEventCallback ) ;
140
+ blockWatchingService . on ( 'tx' , txEventCallback ) ;
134
141
135
- // await blockWatchingService.startSync();
142
+ await blockWatchingService . startSync ( ) ;
136
143
} ;
137
144
138
145
139
- /*
140
- process.on('unhandledRejection', (reason, promise) => {//todo remove
141
- console.log('Unhandled Rejection at:', reason.stack || reason)
142
- process.exit(0)
143
- })
144
- */
146
+ providerService . on ( 'connection_error' , err => {
147
+ log . error ( err ) ;
148
+ process . exit ( 1 ) ;
149
+ } ) ;
145
150
146
151
module . exports = init ( ) . catch ( err => {
147
152
log . error ( err ) ;
0 commit comments