1
1
'use strict' ; Object . defineProperty ( exports , "__esModule" , { value : true } ) ; exports . Event = undefined ; var _DataCollector = require ( '../lib/DataCollector' ) ;
2
+ var _config = require ( '../lib/config' ) ; var _config2 = _interopRequireDefault ( _config ) ; function _interopRequireDefault ( obj ) { return obj && obj . __esModule ? obj : { default : obj } ; }
3
+ const { remascAddress, bridgeAddress } = _config2 . default ;
2
4
class Event extends _DataCollector . DataCollectorItem {
3
5
constructor ( collection , key , parent ) {
4
- const sortable = { timestamp : - 1 } ;
5
- super ( collection , key , parent , { sortable } ) ;
6
+ // const sortable = { timestamp: -1 }
7
+ super ( collection , key , parent ) ;
6
8
this . publicActions = {
7
9
8
10
getEvent : async params => {
9
11
try {
10
- const _id = params . _id ;
12
+ const { _id } = params ;
11
13
let data = await this . getOne ( { _id } ) ;
12
14
if ( ! data ) throw new Error ( `Event ${ _id } does not exist` ) ;
13
15
const address = data . data . address ;
@@ -19,8 +21,42 @@ class Event extends _DataCollector.DataCollectorItem {
19
21
} ,
20
22
21
23
getEventsByAddress : async params => {
22
- const address = params . address ;
23
- if ( address ) return this . getPageData ( { address } , params ) ;
24
+ const { address, signatures, contract } = params ;
25
+ if ( address ) {
26
+ let query = { args : address
27
+
28
+ // search by events signatures
29
+ } ; if ( Array . isArray ( signatures ) ) {
30
+ // skip remasc & bridge events
31
+ if ( address !== remascAddress && address !== bridgeAddress ) {
32
+ query . signature = { $in : signatures } ;
33
+ }
34
+ }
35
+
36
+ if ( contract ) query . address = contract ;
37
+
38
+ let res = await this . getPageData ( query , params ) ;
39
+ if ( res . data ) {
40
+ let addresses = new Set ( res . data . map ( d => d . address ) ) ;
41
+ addresses = [ ...addresses . values ( ) ] ;
42
+ let addrData = await this . parent . Address . find ( { address : { $in : addresses } } ) ;
43
+ let { data } = addrData ;
44
+ if ( data ) {
45
+ res . data = res . data . map ( d => {
46
+ d . _addressData = data . find ( a => a . address === d . address ) ;
47
+ return d ;
48
+ } ) ;
49
+ }
50
+ }
51
+ return res ;
52
+ }
53
+ } ,
54
+
55
+ getAllEventsByAddress : async params => {
56
+ const { address } = params ;
57
+ if ( address ) {
58
+ return this . getPageData ( { $or : [ { address } , { args : address } ] } , params ) ;
59
+ }
24
60
} } ;
25
61
26
62
} } exports . Event = Event ; exports . default =
0 commit comments