safe-global / safe-transaction-service

Keeps track of transactions sent via Safe contacts and confirmed transactions. It also keeps track of Ether and ERC20 token transfers to Safe contracts.
MIT License
190 stars 262 forks source link

Some endpoints fail to return data for non-standard proxies #2223

Open auryn-macmillan opened 3 days ago

auryn-macmillan commented 3 days ago

Describe the bug When creating a safe with a non-standard proxy (created via something other than the safe proxy factory), some of the safe transaction services return errors for that safe. This renders the safe unusable in applications like the safe web wallet.

To Reproduce Steps to reproduce the behavior:

  1. Deploy any old proxy contract and point it to one of the safe mastercopies
  2. Query that safe in the safe transaction service
  3. Try to load it in the safe web wallet

Here's one I baked earlier.

Expected behavior The safe should behave like other safes, except where the proxy changes the default behaviour.

Additional context For context, the proxy here is intended to give some account irrevocable module-like access to control the safe. This was a rushed implementation for the sake of testing, so there's a reasonable chance that the proxy I tested with is simply broken.

Uxio0 commented 3 days ago

Hi @auryn-macmillan . This is expected. We need to check Proxy Singleton implementation to know the version of the Safe. We expect that to be on slot 0.

We will work on supporting more proxies, but as a quick fix, you can put the Singleton address in the slot 0 of your custom proxy, and it should work.