Skip to content

Commit ca7f735

Browse files
paulbalajiclaude
andauthored
feat(infra): restrict keyfunder sweeping to allowlist of chains (#7914)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
1 parent d40caf5 commit ca7f735

2 files changed

Lines changed: 32 additions & 1 deletion

File tree

typescript/infra/config/docker.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ export const mainnetDockerTags: MainnetDockerTags = {
3232
validatorRC: 'a52b9e6-20260122-173915',
3333
scraper: '80f3635-20260123-103819',
3434
// monorepo services
35-
keyFunder: 'a52b9e6-20260122-173924',
35+
keyFunder: 'f7e18fc-20260127-184855',
3636
kathy: '74d999b-20260108-145131',
3737
checkWarpDeploy: '74d999b-20260108-145131',
3838
// standalone services

typescript/infra/scripts/funding/fund-keys-from-deployer.ts

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,28 @@ const DEFAULT_SWEEP_ADDRESS = '0x478be6076f31E9666123B9721D0B6631baD944AF';
5959
const DEFAULT_TARGET_MULTIPLIER = 1.5; // Leave 1.5x threshold after sweep
6060
const DEFAULT_TRIGGER_MULTIPLIER = 2.0; // Sweep when balance > 2x threshold
6161

62+
// Chains to sweep excess funds from (EVM only)
63+
const CHAINS_TO_SWEEP: ChainName[] = [
64+
'arbitrum',
65+
'avalanche',
66+
'base',
67+
'blast',
68+
'bsc',
69+
'celo',
70+
'ethereum',
71+
'fraxtal',
72+
'hyperevm',
73+
'ink',
74+
'linea',
75+
'lisk',
76+
'mitosis',
77+
'optimism',
78+
'polygon',
79+
'soneium',
80+
'superseed',
81+
'unichain',
82+
];
83+
6284
const nativeBridges = {
6385
scrollsepolia: {
6486
l1ETHGateway: '0x8A54A2347Da2562917304141ab67324615e9866d',
@@ -668,6 +690,15 @@ class ContextFunder {
668690
// To avoid churning txs, only sweep when balance > triggerMultiplier * threshold,
669691
// and leave targetMultiplier * threshold after sweep.
670692
private async attemptToSweepExcessFunds(chain: ChainName): Promise<void> {
693+
// Skip if chain is not in the sweep allowlist
694+
if (!CHAINS_TO_SWEEP.includes(chain)) {
695+
logger.debug(
696+
{ chain },
697+
'Chain not in CHAINS_TO_SWEEP allowlist, skipping sweep',
698+
);
699+
return;
700+
}
701+
671702
// Skip if the chain isn't in production yet i.e. if the validator set size is still 1
672703
if (defaultMultisigConfigs[chain].validators.length === 1) {
673704
logger.debug(

0 commit comments

Comments
 (0)