safe-global / safe-infrastructure

One `docker-compose.yml` file to rule them all
MIT License
56 stars 92 forks source link

Issues with Safe Indexation on Arianee Supernet (Following Issue #124) #131

Closed 0xWhiteleaf closed 5 months ago

0xWhiteleaf commented 7 months ago

This issue is a continuation of the discussion from Issue #124.

I am encountering an issue with the indexation process of Safe on the Arianee Supernet. Despite following the deployment and setup procedures, the creation of a Safe gets stuck at the "Indexation" stage. Below is a detailed account of the steps I've taken and the observations made.

Steps to Reproduce

So the creation of a Safe remains stuck on the "Indexation" step, with the indexer seemingly not detecting events, despite transactions for creating a Proxy for a Safe executing correctly on-chain. Any insights or suggestions for resolving this issue would be greatly appreciated. If there are further details or logs that could assist in troubleshooting, please let me know.

Furthermore, Arianee is willing to pay for support if necessary to resolve this issue. We are committed to finding a solution and are open to any available support options. Thanks a lot!

leopaul36 commented 6 months ago

Hey @0xWhiteleaf, for what it's worth I found myself in a similar situation as you described.

Eventually what I missed was setting up Proxy factories and Safe master copies for my custom chain. After adding these, the indexing started working properly.

Hope this helps :+1:

0xWhiteleaf commented 5 months ago

Hey @leopaul36 It did the job! Thanks a lot for this 👍

I'm adding something else also, if you use a custom Layer 2 with a custom token as gas token, you'll also need to patch the configuration.js file inside the cgw-web in order to avoid an error when you land on your Safe dashboard (allow the Safe Client Gateway to resolve your native token price). It's located here inside the container: dist/config/entities/configuration.js You'll need to add a key to the balances.providers.safe.prices.chains property, like what we did for Arianee:

...
prices: {
            baseUri: process.env.PRICES_PROVIDER_API_BASE_URI ||
                'https://api.coingecko.com/api/v3',
            apiKey: process.env.PRICES_PROVIDER_API_KEY,
            ...
            chains: {
                1: { nativeCoin: 'ethereum', chainName: 'ethereum' },
                10: { nativeCoin: 'ethereum', chainName: 'optimistic-ethereum' },
                100: { nativeCoin: 'xdai', chainName: 'xdai' },
                1101: { nativeCoin: 'ethereum', chainName: 'polygon-zkevm' },
                11155111: { nativeCoin: 'ethereum', chainName: 'ethereum' },
                1313161554: { nativeCoin: 'ethereum', chainName: 'aurora' },
                137: { nativeCoin: 'matic-network', chainName: 'polygon-pos' },
                324: { nativeCoin: 'ethereum', chainName: 'zksync' },
                42161: { nativeCoin: 'ethereum', chainName: 'arbitrum-one' },
                42220: { nativeCoin: 'celo', chainName: 'celo' },
                43114: { nativeCoin: 'avalanche-2', chainName: 'avalanche' },
                5: { nativeCoin: 'ethereum', chainName: 'ethereum' },
                56: { nativeCoin: 'binancecoin', chainName: 'binance-smart-chain' },
                8453: { nativeCoin: 'ethereum', chainName: 'base' },
                84531: { nativeCoin: 'ethereum', chainName: 'base' },
                11891: { nativeCoin: 'arianee', chainName: 'arianee' }, <-- This is the key
            },
        },
...

PS: You native coin needs to be listed on CoinGecko

Hope this helps next adventurers