|
16 | 16 | """ |
17 | 17 |
|
18 | 18 | from eth_account.datastructures import AttributeDict |
| 19 | +from urllib.parse import urlencode |
19 | 20 | from eth_utils import ( |
20 | 21 | apply_to_return_value, |
21 | 22 | to_hex, |
@@ -203,12 +204,15 @@ def get_event_result(self, **kwargs): |
203 | 204 | """ |
204 | 205 |
|
205 | 206 | # Check the most necessary parameters |
206 | | - contract_address = kwargs.setdefault('contract_address', self.default_address.hex) |
207 | | - event_name = kwargs.setdefault('event_name', 'Notify') |
208 | 207 | since_timestamp = kwargs.setdefault('since_timestamp', 0) |
| 208 | + event_name = kwargs.setdefault('event_name', 'Notify') |
209 | 209 | block_number = kwargs.setdefault('block_number', '') |
210 | 210 | size = kwargs.setdefault('size', 20) |
211 | 211 | page = kwargs.setdefault('page', 1) |
| 212 | + only_confirmed = kwargs.setdefault('only_confirmed', None) |
| 213 | + only_unconfirmed = kwargs.setdefault('only_unconfirmed', None) |
| 214 | + previous_last = kwargs.setdefault('previous_last_event_fingerprint', None) |
| 215 | + contract_address = kwargs.setdefault('contract_address', self.default_address.hex) |
212 | 216 |
|
213 | 217 | if not self.isAddress(contract_address): |
214 | 218 | raise InvalidTronError('Invalid contract address provided') |
@@ -239,8 +243,24 @@ def get_event_result(self, **kwargs): |
239 | 243 | route_params.append(block_number) |
240 | 244 |
|
241 | 245 | route = '/'.join(route_params) |
242 | | - return self.manager.request("/event/contract/{0}?since={1}&size={2}&page={3}" |
243 | | - .format(route, since_timestamp, size, page), method='get') |
| 246 | + |
| 247 | + qs = { |
| 248 | + 'since': since_timestamp, |
| 249 | + 'page': page, |
| 250 | + 'size': size |
| 251 | + } |
| 252 | + |
| 253 | + if only_confirmed is not None: |
| 254 | + qs.update({'onlyConfirmed': only_confirmed}) |
| 255 | + |
| 256 | + if only_unconfirmed is not None and not only_confirmed: |
| 257 | + qs.update({'onlyUnconfirmed': only_unconfirmed}) |
| 258 | + |
| 259 | + if previous_last is not None: |
| 260 | + qs.update({'previousLastEventFingerprint': previous_last}) |
| 261 | + |
| 262 | + return self.manager.request("/event/contract/{0}?{1}" |
| 263 | + .format(route, urlencode(qs)), method='get') |
244 | 264 |
|
245 | 265 | def get_event_transaction_id(self, tx_id): |
246 | 266 | """Will return all events within a transactionID. |
|
0 commit comments