tellor-io/disputable-values-monitor

issue running DVM to monitor pulsechain

Closed this issue · 12 comments

Hi we are having some issue monitoring the pulsechain, below is the message we are getting from the logs

Could not find contract info for chain_id 941

but the other chain seems to be working as we can see some data from the dashboard. kindly advice if we miss something upon installing the said service.

Thanks in advance.

Hi we are having some issue monitoring the pulsechain, below is the message we are getting from the logs

Could not find contract info for chain_id 941

but the other chain seems to be working as we can see some data from the dashboard. kindly advice if we miss something upon installing the said service.

Thanks in advance.

Thanks for reaching out. We'll take a look and get back to you!

What will help us reproduce and debug the problem is if you post the commit hash of the version that you're using, output from the console log, and/or output from running pip freeze in the environment that you're working in.

@Trick03 please also include your endpoints.yaml :)

Apologies for not giving enough information, kindly see below details for the queries

  • Commit hash = 8f5397f

  • pip freeze / poetry show =

`aiohttp               3.8.3     Async http client/server framework (asyncio)
aiosignal             1.2.0     aiosignal: a list of registered asynchronous callbacks
async-timeout         4.0.2     Timeout context manager for asyncio programs
attrs                 22.1.0    Classes Without Boilerplate
base58                2.1.1     Base58 and Base58Check implementation.
bitarray              2.6.0     efficient arrays of booleans -- C extension
black                 22.12.0   The uncompromising code formatter.
certifi               2022.9.24 Python package for providing Mozilla's CA Bundle.
cfgv                  3.3.1     Validate configuration and produce human readable error messages.
chained-accounts      0.0.1     A thin framework to help applications and users manage multiple ethereum accounts on multiple chains.
charset-normalizer    2.1.1     The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet.
clamfig               0.1.3     Serialization/Deserialization for dataclasses
click                 8.1.3     Composable command line interface toolkit
cytoolz               0.12.0    Cython implementation of Toolz: High performance functional utilities
distlib               0.3.6     Distribution utilities
eth-abi               2.2.0     eth_abi: Python utilities for working with Ethereum ABI definitions, especially encoding and decoding
eth-account           0.5.9     eth-account: Sign Ethereum transactions and messages with local private keys
eth-hash              0.5.0     eth-hash: The Ethereum hashing function, keccak256, sometimes (erroneously) called sha3
eth-keyfile           0.5.1     A library for handling the encrypted keyfiles used to store ethereum private keys.
eth-keys              0.3.4     Common API for Ethereum key operations.
eth-retry             0.1.13    Provides a decorator that automatically catches known transient exceptions that are common in the Ethereum/EVM ecosystem and reattempts to evaluate your decorated function
eth-rlp               0.2.1     eth-rlp: RLP definitions for common Ethereum objects in Python
eth-typing            2.3.0     eth-typing: Common type annotations for ethereum python packages
eth-utils             1.9.5     Common utility functions for ethereum codebases.
exceptiongroup        1.1.0     Backport of PEP 654 (exception groups)
filelock              3.9.0     A platform independent file lock.
frozenlist            1.3.1     A list-like structure which implements collections.abc.MutableSequence
hexbytes              0.3.0     hexbytes: Python `bytes` subclass that decodes hex, with a readable console output
identify              2.5.18    File identification library for Python
idna                  3.4       Internationalized Domain Names in Applications (IDNA)
iniconfig             2.0.0     brain-dead simple config-ini parsing
ipfshttpclient        0.8.0a2   Python IPFS HTTP CLIENT library
jsonschema            3.2.0     An implementation of JSON Schema validation for Python
lru-dict              1.1.8     An Dict like LRU container.
multiaddr             0.0.9     Python implementation of jbenet's multiaddr
multicall             0.7.0     aggregate results from multiple ethereum contract calls
multidict             6.0.2     multidict implementation
mypy                  0.942     Optional static typing for Python
mypy-extensions       1.0.0     Type system extensions for programs checked with the mypy type checker.
netaddr               0.8.0     A network address manipulation library for Python
nodeenv               1.7.0     Node.js virtual environment builder
numpy                 1.24.2    Fundamental package for array computing in Python
packaging             23.0      Core utilities for Python packages
pandas                1.5.3     Powerful data structures for data analysis, time series, and statistics
parsimonious          0.8.1     (Soon to be) the fastest pure-Python PEG parser I could muster
pathspec              0.11.0    Utility library for gitignore style pattern matching of file paths.
platformdirs          3.0.0     A small Python package for determining appropriate platform-specific dirs, e.g. a "user data dir".
pluggy                1.0.0     plugin and hook calling mechanisms for python
pre-commit            2.21.0    A framework for managing and maintaining multi-language pre-commit hooks.
protobuf              3.20.3    Protocol Buffers
pycryptodome          3.15.0    Cryptographic library for Python
pydantic              1.10.5    Data validation and settings management using python type hints
pyjwt                 2.6.0     JSON Web Token implementation in Python
pyrsistent            0.19.2    Persistent/Functional/Immutable data structures
pytest                7.2.1     pytest: simple powerful testing with Python
pytest-asyncio        0.19.0    Pytest support for asyncio
python-dateutil       2.8.2     Extensions to the standard Python datetime module
python-dotenv         0.21.0    Read key-value pairs from a .env file and set them as environment variables
pytz                  2022.7.1  World timezone definitions, modern and historical
pyyaml                6.0       YAML parser and emitter for Python
requests              2.28.1    Python HTTP for Humans.
rlp                   2.0.1     A package for Recursive Length Prefix encoding and decoding
setuptools            67.4.0    Easily download, build, install, upgrade, and uninstall Python packages
simple-term-menu      1.5.2     A Python package which creates simple interactive menus on the command line.
six                   1.16.0    Python 2 and 3 compatibility utilities
tabulate              0.8.10    Pretty-print tabular data
telliot-core          0.2.0     Telliot is a Python framework for interacting with the decentralized TellorX network.
telliot-feeds         0.1.6     Tools for interacting with Tellor Protocol smart contracts.
tomli                 2.0.1     A lil' TOML parser
toolz                 0.12.0    List processing tools and functional utilities
twilio                7.16.4    Twilio API client and TwiML generator
types-python-dateutil 2.8.19.8  Typing stubs for python-dateutil
typing-extensions     4.4.0     Backported and Experimental Type Hints for Python 3.7+
urllib3               1.26.12   HTTP library with thread-safe connection pooling, file post, and more.
varint                1.0.2     Simple python varint implementation
virtualenv            20.19.0   Virtual Python Environment builder
web3                  5.28.0    Web3.py
websockets            9.1       An implementation of the WebSocket Protocol (RFC 6455 & 7692)
yarl                  1.8.1     Yet another URL library
`  
  • endpoints.yml =
`type: EndpointList
endpoints:
- type: RPCEndpoint
  chain_id: 1
  network: mainnet
  provider: Infura
  url: wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}
  explorer: https://etherscan.io
- type: RPCEndpoint
  chain_id: 3
  network: ropsten
  provider: Infura
  url: wss://ropsten.infura.io/ws/v3/{INFURA_API_KEY}
  explorer: https://ropsten.etherscan.io
- type: RPCEndpoint
  chain_id: 4
  network: rinkeby
  provider: Infura
  url: wss://rinkeby.infura.io/ws/v3/{INFURA_API_KEY}
  explorer: https://rinkeby.etherscan.io
- type: RPCEndpoint
  chain_id: 5
  network: goerli
  provider: Infura
  url: wss://goerli.infura.io/ws/v3/{INFURA_API_KEY}
  explorer: https://goerli.etherscan.io
- type: RPCEndpoint
  chain_id: 137
  network: mainnet
  provider: Matic
  url: https://rpc-mainnet.matic.network
  explorer: https://polygonscan.com/
- type: RPCEndpoint
  chain_id: 122
  network: mainnet
  provider: Fuse
  url: https://rpc.fuse.io
  explorer: https://explorer.fuse.io
- type: RPCEndpoint
  chain_id: 80001
  network: mumbai
  provider: Matic
  url: https://rpc-mumbai.maticvigil.com
  explorer: https://mumbai.polygonscan.com/
- type: RPCEndpoint
  chain_id: 69
  network: infura
  provider: optimism-kovan
  url: https://optimism-kovan.infura.io/v3/{INFURA_API_KEY}
  explorer: https://kovan-optimistic.etherscan.io
- type: RPCEndpoint
  chain_id: 1666600000
  network: Harmony
  provider: Harmony
  url: https://api.harmony.one
  explorer: https://explorer.harmony.one/
- type: RPCEndpoint
  chain_id: 1666700000
  network: Harmony Testnet
  provider: Harmony
  url: https://api.s0.b.hmny.io
  explorer: https://explorer.pops.one/
- type: RPCEndpoint
  chain_id: 421611
  network: Arbitrum Rinkeby
  provider: Infura
  url: https://arbitrum-rinkeby.infura.io/v3/{INFURA_API_KEY}
  explorer: https://rinkeby-explorer.arbitrum.io/#/
- type: RPCEndpoint
  chain_id: 941
  network: Pulsechain Testnet
  provider: Pulsechain
  url: https://rpc.v2b.testnet.pulsechain.com
  explorer: https://scan.v2b.testnet.pulsechain.com
- type: RPCEndpoint
  chain_id: 42161
  network: Arbitrum One
  provider: Infura
  url: https://arbitrum-mainnet.infura.io/v3/{INFURA_API_KEY}
  explorer: https://arbiscan.io
- type: RPCEndpoint
  chain_id: 10200
  network: Chiado testnet
  provider: blockscout
  url: https://rpc.chiadochain.net
  explorer: https://blockscout.chiadochain.net/
- type: RPCEndpoint
  chain_id: 100
  network: gnosis
  provider: ankr
  url: https://rpc.ankr.com/gnosis
  explorer: https://gnosisscan.io
`

Please let me know if you need more details.

Thanks

@Trick03 Thank you!! For context, the DVM reads tellor contract addresses from telliot-core/src/telliot_core/data/contract_directory.json. I looked up pulsechain (chain 941) in the version of telliot-core you have as a dependency, and I found your redeployment (If I understand correctly, you have redeployed tellor360 to pulsechain) has not been added to the contract_directory.json. Can you make a PR in telliot-core to add your new deployment addresses under the tellor360 keys? Please let me know if you need any help :))

For reference: https://github.com/tellor-io/telliot-core/blob/v0.2.0/src/telliot_core/data/contract_directory.json

Hi @tallywiesenberg, is it possible to use the old service tellorflex instead, this also includes the reporter using tellorflex. please advise on the possibilities.
Thanks

Hi @tallywiesenberg, is it possible to use the old service tellorflex instead, this also includes the reporter using tellorflex. please advise on the possibilities. Thanks

Hey @Trick03 , have you currently deployed the tellor 360 contract suite? Because what's listed is that you have the tellor flex ones deployed (can verify by searching for 941 on this page). If you've actually deployed the 360 ones, then there's the bug, and the simple fix will be to move those contract addresses to tellor360-oracle and tellor360-autopay instead.

If you have the flex ones deployed, then the bug is in the disputable values monitor code, as it's only watching contracts labeled "tellor360-oracle". When get_events is called, get_contract_info is called within, and logs the message you were getting (Could not find contract info for chain_id) because there is no tellor360-oracle contract address listed for chain id 941. See here.

Let us know, we're happy to help get this fixed and working for you!

cc @tallywiesenberg

Kudos to @oraclown , and @Trick03 I've reinstated to the DVM monitoring for the tellorflex contracts, including the deployment on pulsechain at 0xB0A15Da1538D0968A32858273E64fcd0F9869283.

Hi @tallywiesenberg and @oraclown thanks for the response, I'm just a bit confuse right now should I still need to change the get_events flag from this file I tested it by changing the flag and it does not show the error anymore however it does not catch the submit value I did on the contract stated above.
please advice the next steps for this.

Appreciate the great help.

Hi @tallywiesenberg and @oraclown thanks for the response, I'm just a bit confuse right now should I still need to change the get_events flag from this file I tested it by changing the flag and it does not show the error anymore however it does not catch the submit value I did on the contract stated above. please advice the next steps for this.

Appreciate the great help.

Hi @Trick03 , try pulling from the branch dvm-main and please let me know your outcome, this branch reads both the tellor360-oracle contracts and the tellorflex-oracle contracts. It's also the new main branch of the repo, just a heads up :)

Also, let me know if you'd like assistance deploying the newest version of the tellorflex contract to pulsechain!

to kind of clarify the confusion all , tellor360 is the token contract on mainnet / goerli. But you guys have a version of tellorFelx that is older than the current version running on all the networks (post-tellor360 launch). Definitely relaunch, and you should be good, but in the meantime we made a small change for the DVM to work on your current version

Hi, thanks for all the support I got the trigger to alert the SMS now, we can close now this issue. moving forward please advice if the said branch dvm-main will be merge to main for our future reference.