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
193 stars 266 forks source link

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

Closed auryn-macmillan closed 4 weeks ago

auryn-macmillan commented 1 month 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 1 month 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.

Uxio0 commented 4 weeks ago

@auryn-macmillan we added support for EIP-1167 and EIP-1967, but I see your proxy is still not working. The code is also not verified in Etherscan. What Proxy did you deploy?