Conversation
Add 16 yearn-controlled multisigs on mainnet/base/katana to the safe monitor, routed to a new YEARN_MS telegram destination. Filter pending txs against a per-safe allow-list of known bot/EOA proposers so only "unexpected" proposers alert — cuts noise ~70% on current pending state. Also splits safe/main.py: static config (addresses, proposers, chain/api maps) moved into safe/addresses.py to keep main.py focused on logic. Adds Katana (katana-main) plumbing to safe_apis, safe_address_network_prefix, and the safe_network_to_chain_id alias map. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
YEARN_MStelegram destination. Source: engn33r/multisigs.csv. Other chains (Polygon, Arbitrum, Optimism, Fantom) intentionally excluded for now.YEARN_EXPECTED_PROPOSERS) so only unexpected proposers raise an alert. Allow-list discovered from the last ~50 executed txs per safe (≥20% share & ≥5 occurrences). On current pending state this filters ~70% (89/127).safe/main.py483 → 276 lines by moving static config (addresses, proposers, chain/api maps, proxy-upgrade selectors) intosafe/addresses.py.katana-main) tosafe_apis,safe_address_network_prefix, andsafe_network_to_chain_idalias map.Telegram routing uses the standard
TELEGRAM_CHAT_ID_YEARN_MSsecret (a group chat, not a forum topic) — set the secret in repo settings once the group id is known.Notes / follow-ups
0x80c9aC86...not yet in the allow-list. Easy to extend after live alerts land.Test plan
TELEGRAM_CHAT_ID_YEARN_MSrepo secret to the yearn_ms group chat idmultisig-checker.ymlworkflow run (safe/main.py) succeeds end-to-endsafe_apis["katana-main"]resolves a 200 from Safe (will be silent if 404)YEARN_EXPECTED_PROPOSERSwith any obviously-recurring "unexpected" proposers🤖 Generated with Claude Code