ApeWorX / ape-safe

Safe (Wallet) account plugin for the Ape Framework
https://www.apeworx.io/
Apache License 2.0
14 stars 8 forks source link

`ape safe pending approve` fails if transaction is fully confirmed before executing #35

Closed fubuloubu closed 8 months ago

fubuloubu commented 8 months ago

Environment information

$ ape --version
0.7.9

$ ape plugins list
Installed Plugins
  alchemy      0.7.1
  arbitrum     0.7.2
  etherscan    0.7.1
  foundry      0.7.3
  infura       0.7.1
  ledger       0.7.0
  optimism     0.7.2
  safe         0.7.0b1
  tokens       0.7.1

What went wrong?

$ ape safe pending approve X --network ethereum:mainnet --safe mine
SignableMessage(version="E", header="thereum Signed Message:
32", body="0xc878....cf40")

Sign:  [y/N]: y
Enter passphrase to unlock 'hot' []: 
Leave 'hot' unlocked? [y/N]: y
SUCCESS: Signatures added to transaction 'X' using accounts '0x....'.
Submit transaction 'X' [y/N]: y
0. cold
1. hot
Or 'TEST::account_idx', where `account_idx` is in [0..{len_test_accounts}]

Select a submitter: dev
Traceback (most recent call last):
  File "bin/ape", line 8, in <module>
    sys.exit(cli())
             ^^^^^
  File "site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "ape/_cli.py", line 79, in invoke
    return super().invoke(ctx)
           ^^^^^^^^^^^^^^^^^^^
  File "site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "ape/cli/commands.py", line 96, in invoke
    return self._invoke(ctx, provider=provider)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "ape/cli/commands.py", line 133, in _invoke
    return ctx.invoke(self.callback or (lambda: None), **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "site-packages/click/decorators.py", line 92, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "site-packages/ape_safe/_cli/pending.py", line 219, in approve
    txn.confirmations = {**txn.confirmations, **signatures_added}
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: 'list' object is not a mapping

How can it be fixed?

Fill this in if you have ideas on how the bug could be fixed.

linear[bot] commented 8 months ago

APE-1685 `ape safe pending approve` fails if transaction is fully confirmed before executing

fubuloubu commented 8 months ago

May have mislabelled this bug, just seems to be that there is typing issues in handling that line of code