1

We have Gnosis Safes on multiple chains, including those not directly hosted by gnosis-safe.io. I'm investigating the ability and feasibility of running our own TXS services for these chains (as well as the single CFG/CGW), with the goal of having our own hosted interface for easy chain switching, and also where we only care about our own Safes.

I was able to work through setting up the first TXS service, but noticed that by default, it scans the entire blockchain, pulling in all transactions from all Safes it finds. Of course, this causes the TXS container to be several gigs in size once it catches up.

I've taken a look through the TXS repo and still a little confused on how it identifies Safes to index. Is it just _process_decoded_element() for the ProxyCreation and/or SafeSetup events? If so, would it be enough to simply inject logic here that safe_address should match a list of Safes we care about, or is there likely to be other considerations?

...or am I going about this the completely wrong way altogether?

1 Answer 1

2

I've taken a look through the TXS repo and still a little confused on how it identifies Safes to index. Is it just _process_decoded_element() for the ProxyCreation and/or SafeSetup events? If so, would it be enough to simply inject logic here that safe_address should match a list of Safes we care about, or is there likely to be other considerations?

You can do it that way. You can add that requirement when processing SafeSetup event, as if that event is not processed the Safe will not be indexed. You need to go to tx_processor.py and change this line:

if function_name == "setup" and contract_address != NULL_ADDRESS:

to something like:

if function_name == "setup" and contract_address in RELEVANT_ADDRESSES:

Remember to always use checksummed addresses

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.