Skip to content

Instantly share code, notes, and snippets.

@araa47
Last active September 16, 2020 12:43
Show Gist options
  • Save araa47/0fc551db4c2fa7cb5c4253ff09969685 to your computer and use it in GitHub Desktop.
Save araa47/0fc551db4c2fa7cb5c4253ff09969685 to your computer and use it in GitHub Desktop.

Web3 py request

# savings = web3 contract 
filter = savings.events.Deposit.createFilter(fromBlock=10871949)
deposit_events = filter.get_all_entries()

or

filt = w3.eth.filter({'fromBlock':10871949, 'address': '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48' })
event = filt.get_all_entries()

Error


filter = savings_archive.events.Deposit.createFilter(fromBlock=10871949)

filter.get_all_entries()

---------------------------------------------------------------------------
JSONDecodeError                           Traceback (most recent call last)
~/.cache/pypoetry/virtualenvs/delphi-api-JJaKRbNF-py3.8/lib/python3.8/site-packages/web3/_utils/encoding.py in json_decode(self, json_str)
    219         try:
--> 220             decoded = json.loads(json_str)
    221             return decoded

/usr/lib/python3.8/json/__init__.py in loads(s, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)
    356             parse_constant is None and object_pairs_hook is None and not kw):
--> 357         return _default_decoder.decode(s)
    358     if cls is None:

/usr/lib/python3.8/json/decoder.py in decode(self, s, _w)
    336         """
--> 337         obj, end = self.raw_decode(s, idx=_w(s, 0).end())
    338         end = _w(s, end).end()

/usr/lib/python3.8/json/decoder.py in raw_decode(self, s, idx)
    354         except StopIteration as err:
--> 355             raise JSONDecodeError("Expecting value", s, err.value) from None
    356         return obj, end

JSONDecodeError: Expecting value: line 1 column 1 (char 0)

During handling of the above exception, another exception occurred:

JSONDecodeError                           Traceback (most recent call last)
<ipython-input-35-a40c30f1c965> in <module>
----> 1 filter = savings_archive.events.Deposit.createFilter(fromBlock=10871949)
      2 filter.get_all_entries()

~/.cache/pypoetry/virtualenvs/delphi-api-JJaKRbNF-py3.8/lib/python3.8/site-packages/eth_utils/decorators.py in _wrapper(*args, **kwargs)
     18                 return self.method(obj, *args, **kwargs)
     19             else:
---> 20                 return self.method(objtype, *args, **kwargs)
     21 
     22         return _wrapper

~/.cache/pypoetry/virtualenvs/delphi-api-JJaKRbNF-py3.8/lib/python3.8/site-packages/web3/contract.py in createFilter(self, argument_filters, fromBlock, toBlock, address, topics)
   1225             filter_builder.args[arg].match_single(value)
   1226 
-> 1227         log_filter = filter_builder.deploy(self.web3)
   1228         log_filter.log_entry_formatter = get_event_data(self.web3.codec, self._get_event_abi())
   1229         log_filter.builder = filter_builder

~/.cache/pypoetry/virtualenvs/delphi-api-JJaKRbNF-py3.8/lib/python3.8/site-packages/web3/_utils/events.py in deploy(self, w3)
    406         self._immutable = True
    407 
--> 408         log_filter = cast("LogFilter", w3.eth.filter(self.filter_params))
    409         log_filter.filter_params = self.filter_params
    410         log_filter.set_data_filters(self.data_argument_values)

~/.cache/pypoetry/virtualenvs/delphi-api-JJaKRbNF-py3.8/lib/python3.8/site-packages/web3/eth.py in filter(self, filter_params, filter_id)
    477                 )
    478         elif isinstance(filter_params, dict):
--> 479             _filter_id = self.web3.manager.request_blocking(
    480                 RPC.eth_newFilter,
    481                 [filter_params],

~/.cache/pypoetry/virtualenvs/delphi-api-JJaKRbNF-py3.8/lib/python3.8/site-packages/web3/manager.py in request_blocking(self, method, params, error_formatters)
    147         Make a synchronous request using the provider
    148         """
--> 149         response = self._make_request(method, params)
    150 
    151         if "error" in response:

~/.cache/pypoetry/virtualenvs/delphi-api-JJaKRbNF-py3.8/lib/python3.8/site-packages/web3/manager.py in _make_request(self, method, params)
    126             self.middleware_onion)
    127         self.logger.debug("Making request. Method: %s", method)
--> 128         return request_func(method, params)
    129 
    130     async def _coro_make_request(

~/.cache/pypoetry/virtualenvs/delphi-api-JJaKRbNF-py3.8/lib/python3.8/site-packages/cytoolz/functoolz.pyx in cytoolz.functoolz.curry.__call__()

~/.cache/pypoetry/virtualenvs/delphi-api-JJaKRbNF-py3.8/lib/python3.8/site-packages/web3/middleware/formatting.py in apply_formatters(method, params, make_request, request_formatters, result_formatters, error_formatters)
     72         formatter = request_formatters[method]
     73         formatted_params = formatter(params)
---> 74         response = make_request(method, formatted_params)
     75     else:
     76         response = make_request(method, params)

~/.cache/pypoetry/virtualenvs/delphi-api-JJaKRbNF-py3.8/lib/python3.8/site-packages/web3/middleware/gas_price_strategy.py in middleware(method, params)
     32                     transaction = assoc(transaction, 'gasPrice', generated_gas_price)
     33                     return make_request(method, [transaction])
---> 34         return make_request(method, params)
     35     return middleware

~/.cache/pypoetry/virtualenvs/delphi-api-JJaKRbNF-py3.8/lib/python3.8/site-packages/cytoolz/functoolz.pyx in cytoolz.functoolz.curry.__call__()

~/.cache/pypoetry/virtualenvs/delphi-api-JJaKRbNF-py3.8/lib/python3.8/site-packages/web3/middleware/formatting.py in apply_formatters(method, params, make_request, request_formatters, result_formatters, error_formatters)
     72         formatter = request_formatters[method]
     73         formatted_params = formatter(params)
---> 74         response = make_request(method, formatted_params)
     75     else:
     76         response = make_request(method, params)

~/.cache/pypoetry/virtualenvs/delphi-api-JJaKRbNF-py3.8/lib/python3.8/site-packages/web3/middleware/attrdict.py in middleware(method, params)
     31     """
     32     def middleware(method: RPCEndpoint, params: Any) -> RPCResponse:
---> 33         response = make_request(method, params)
     34 
     35         if 'result' in response:

~/.cache/pypoetry/virtualenvs/delphi-api-JJaKRbNF-py3.8/lib/python3.8/site-packages/cytoolz/functoolz.pyx in cytoolz.functoolz.curry.__call__()

~/.cache/pypoetry/virtualenvs/delphi-api-JJaKRbNF-py3.8/lib/python3.8/site-packages/web3/middleware/formatting.py in apply_formatters(method, params, make_request, request_formatters, result_formatters, error_formatters)
     72         formatter = request_formatters[method]
     73         formatted_params = formatter(params)
---> 74         response = make_request(method, formatted_params)
     75     else:
     76         response = make_request(method, params)

~/.cache/pypoetry/virtualenvs/delphi-api-JJaKRbNF-py3.8/lib/python3.8/site-packages/web3/middleware/normalize_errors.py in middleware(method, params)
     23 ) -> Callable[[RPCEndpoint, Any], RPCResponse]:
     24     def middleware(method: RPCEndpoint, params: Any) -> RPCResponse:
---> 25         result = make_request(method, params)
     26 
     27         # As of v1.8, Geth returns errors when you request a

~/.cache/pypoetry/virtualenvs/delphi-api-JJaKRbNF-py3.8/lib/python3.8/site-packages/cytoolz/functoolz.pyx in cytoolz.functoolz.curry.__call__()

~/.cache/pypoetry/virtualenvs/delphi-api-JJaKRbNF-py3.8/lib/python3.8/site-packages/web3/middleware/formatting.py in apply_formatters(method, params, make_request, request_formatters, result_formatters, error_formatters)
     74         response = make_request(method, formatted_params)
     75     else:
---> 76         response = make_request(method, params)
     77 
     78     if "result" in response and method in result_formatters:

~/.cache/pypoetry/virtualenvs/delphi-api-JJaKRbNF-py3.8/lib/python3.8/site-packages/cytoolz/functoolz.pyx in cytoolz.functoolz.curry.__call__()

~/.cache/pypoetry/virtualenvs/delphi-api-JJaKRbNF-py3.8/lib/python3.8/site-packages/web3/middleware/formatting.py in apply_formatters(method, params, make_request, request_formatters, result_formatters, error_formatters)
     72         formatter = request_formatters[method]
     73         formatted_params = formatter(params)
---> 74         response = make_request(method, formatted_params)
     75     else:
     76         response = make_request(method, params)

~/.cache/pypoetry/virtualenvs/delphi-api-JJaKRbNF-py3.8/lib/python3.8/site-packages/web3/middleware/exception_retry_request.py in middleware(method, params)
    103             for i in range(retries):
    104                 try:
--> 105                     return make_request(method, params)
    106                 # https://github.com/python/mypy/issues/5349
    107                 except errors:  # type: ignore

~/.cache/pypoetry/virtualenvs/delphi-api-JJaKRbNF-py3.8/lib/python3.8/site-packages/web3/providers/rpc.py in make_request(self, method, params)
     95             **self.get_request_kwargs()
     96         )
---> 97         response = self.decode_rpc_response(raw_response)
     98         self.logger.debug("Getting response HTTP. URI: %s, "
     99                           "Method: %s, Response: %s",

~/.cache/pypoetry/virtualenvs/delphi-api-JJaKRbNF-py3.8/lib/python3.8/site-packages/web3/providers/base.py in decode_rpc_response(self, raw_response)
     87     def decode_rpc_response(self, raw_response: bytes) -> RPCResponse:
     88         text_response = to_text(raw_response)
---> 89         return cast(RPCResponse, FriendlyJsonSerde().json_decode(text_response))
     90 
     91     def encode_rpc_request(self, method: RPCEndpoint, params: Any) -> bytes:

~/.cache/pypoetry/virtualenvs/delphi-api-JJaKRbNF-py3.8/lib/python3.8/site-packages/web3/_utils/encoding.py in json_decode(self, json_str)
    224             # Calling code may rely on catching JSONDecodeError to recognize bad json
    225             # so we have to re-raise the same type.
--> 226             raise json.decoder.JSONDecodeError(err_msg, exc.doc, exc.pos)
    227 
    228     def json_encode(self, obj: Dict[Any, Any],

JSONDecodeError: Could not decode '' because of Expecting value: line 1 column 1 (char 0).: line 1 column 1 (char 0)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment