skale-admin icon indicating copy to clipboard operation
skale-admin copied to clipboard

2.2.1 admin is incompatible with new contracts

Open yatsunastya opened this issue 1 year ago • 0 comments

Describe the bug If there are nodes with old admin version (2.5.4) and nodes with new admin version (2.6.0-beta.0), we can't run node rotation or create schain because nodes with old admin won't send broadcast transaction. The reason is in new parameter (rotation_id) for broadcast transaction which is added to the new versions of admin and contracts. So in such case nodes with old admin try to send broadcast 3 times and fail (Tx broadcast failed after 3 retries).

Versions: old admin - 2.5.4 new admin - 2.6.0-beta.0 skale-manager - 1.10.0-beta.0

To Reproduce Steps to reproduce the behavior: There are nodes with old and new admin

  1. Start node rotation procedure or create schain
  2. DKG starts
  3. Go to skale-admin logs on node with old admin
  4. See error :arrow_down:
[2024-01-26 12:25:11,853 INFO][27261][thundering-rotanev][T_0] - skale.transactions.tools:46 - Dry run tx: broadcast, sender: 0x6D1e4710A0e55c1c4f96B921b091434687558257, wallet: RedisWalletAdapter, value: 0, 
[2024-01-26 12:25:11,949 ERROR][27261][thundering-rotanev][T_0] - skale.transactions.tools:62 - Dry run for method failed with error
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/skale/transactions/tools.py", line 59, in make_dry_run_call
    estimated_gas = estimate_gas(skale.web3, method, opts)
  File "/usr/local/lib/python3.9/site-packages/skale/transactions/tools.py", line 74, in estimate_gas
    estimated_gas = method.estimate_gas(
  File "/usr/local/lib/python3.9/site-packages/web3/contract/contract.py", line 496, in estimate_gas
    return estimate_gas_for_function(
  File "/usr/local/lib/python3.9/site-packages/web3/contract/utils.py", line 203, in estimate_gas_for_function
    return w3.eth.estimate_gas(estimate_transaction, block_identifier)
  File "/usr/local/lib/python3.9/site-packages/web3/eth/eth.py", line 292, in estimate_gas
    return self._estimate_gas(transaction, block_identifier)
  File "/usr/local/lib/python3.9/site-packages/web3/module.py", line 68, in caller
    result = w3.manager.request_blocking(
  File "/usr/local/lib/python3.9/site-packages/web3/manager.py", line 232, in request_blocking
    return self.formatted_response(
  File "/usr/local/lib/python3.9/site-packages/web3/manager.py", line 197, in formatted_response
    apply_error_formatters(error_formatters, response)
  File "/usr/local/lib/python3.9/site-packages/web3/manager.py", line 73, in apply_error_formatters
    formatted_resp = pipe(response, error_formatters)
  File "cytoolz/functoolz.pyx", line 680, in cytoolz.functoolz.pipe
  File "cytoolz/functoolz.pyx", line 655, in cytoolz.functoolz.c_pipe
  File "/usr/local/lib/python3.9/site-packages/web3/_utils/method_formatters.py", line 786, in raise_contract_logic_error_on_revert
    raise ContractLogicError("execution reverted", data=data)
web3.exceptions.ContractLogicError: execution reverted
[2024-01-26 12:25:11,950 ERROR][27261][thundering-rotanev][T_0] - skale.transactions.tools:181 - Tx attempt 2/3 failed
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/skale/transactions/tools.py", line 178, in run_tx_with_retry
    tx_res = transaction(*args, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/skale/contracts/base_contract.py", line 128, in wrapper
    tx_res.raise_for_status()
  File "/usr/local/lib/python3.9/site-packages/skale/transactions/result.py", line 68, in raise_for_status
    raise RevertError(self.dry_run_result['error'])
skale.transactions.exceptions.RevertError: execution reverted ```

yatsunastya avatar Jan 26 '24 13:01 yatsunastya