Skip to content

Commit d0764af

Browse files
committed
fix get_event_result
1 parent f1239a8 commit d0764af

File tree

1 file changed

+24
-4
lines changed

1 file changed

+24
-4
lines changed

tronapi/main.py

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
"""
1717

1818
from eth_account.datastructures import AttributeDict
19+
from urllib.parse import urlencode
1920
from eth_utils import (
2021
apply_to_return_value,
2122
to_hex,
@@ -203,12 +204,15 @@ def get_event_result(self, **kwargs):
203204
"""
204205

205206
# Check the most necessary parameters
206-
contract_address = kwargs.setdefault('contract_address', self.default_address.hex)
207-
event_name = kwargs.setdefault('event_name', 'Notify')
208207
since_timestamp = kwargs.setdefault('since_timestamp', 0)
208+
event_name = kwargs.setdefault('event_name', 'Notify')
209209
block_number = kwargs.setdefault('block_number', '')
210210
size = kwargs.setdefault('size', 20)
211211
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)
212216

213217
if not self.isAddress(contract_address):
214218
raise InvalidTronError('Invalid contract address provided')
@@ -239,8 +243,24 @@ def get_event_result(self, **kwargs):
239243
route_params.append(block_number)
240244

241245
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')
244264

245265
def get_event_transaction_id(self, tx_id):
246266
"""Will return all events within a transactionID.

0 commit comments

Comments
 (0)