chore: add more multisigs (#3974)

### Description

Add multisig owners for linea, mode and blast. Expected violations are
mailbox,proxyadmin, and ism violations (since the routing ism expected
owner is now different)

---------

Co-authored-by: Yorke Rhodes <yorke@hyperlane.xyz>
pull/4022/head
Nam Chu Hoai 4 months ago committed by GitHub
parent b758a5949c
commit c6ba381e44
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 3
      typescript/infra/config/environments/mainnet3/owners.ts
  2. 18
      typescript/infra/scripts/check-deploy.ts
  3. 3
      typescript/infra/src/govern/HyperlaneAppGovernor.ts
  4. 2
      typescript/sdk/src/core/HyperlaneCoreChecker.ts

@ -39,6 +39,9 @@ export const safes: ChainMap<Address | undefined> = {
polygonzkevm: '0x1610f578D4d77Fc4ae7ce2DD9AA0b98A5Cd0a9b2',
// injective: 'inj1632x8j35kenryam3mkrsez064sqg2y2fr0frzt',
// solana: 'EzppBFV2taxWw8kEjxNYvby6q7W1biJEqwP3iC7YgRe3',
blast: '0xaCD1865B262C89Fb0b50dcc8fB095330ae8F35b5',
linea: '0xaCD1865B262C89Fb0b50dcc8fB095330ae8F35b5',
mode: '0xaCD1865B262C89Fb0b50dcc8fB095330ae8F35b5',
};
export const DEPLOYER = '0xa7ECcdb9Be08178f896c26b7BbD8C3D4E844d9Ba';

@ -14,6 +14,7 @@ import {
} from '@hyperlane-xyz/sdk';
import { Contexts } from '../config/contexts.js';
import { DEPLOYER } from '../config/environments/mainnet3/owners.js';
import { getWarpConfig } from '../config/warp.js';
import { HyperlaneAppGovernor } from '../src/govern/HyperlaneAppGovernor.js';
import { HyperlaneCoreGovernor } from '../src/govern/HyperlaneCoreGovernor.js';
@ -35,13 +36,16 @@ import { getHelloWorldApp } from './helloworld/utils.js';
function getArgs() {
return withChain(withModuleAndFork(withContext(getRootArgs())))
.boolean('asdeployer')
.default('asdeployer', false)
.boolean('govern')
.default('govern', false)
.alias('g', 'govern').argv;
}
async function check() {
const { fork, govern, module, environment, context, chain } = await getArgs();
const { fork, govern, module, environment, context, chain, asdeployer } =
await getArgs();
const envConfig = getEnvironmentConfig(environment);
let multiProvider = await envConfig.getMultiProvider();
@ -54,11 +58,13 @@ async function check() {
[fork]: { blocks: { confirmations: 0 } },
});
const owner = await resolveOrDeployAccountOwner(
multiProvider,
fork,
envConfig.core[fork].owner,
);
const owner = asdeployer
? DEPLOYER
: await resolveOrDeployAccountOwner(
multiProvider,
fork,
envConfig.core[fork].owner,
);
const signer = await impersonateAccount(owner, 1e18);
multiProvider.setSigner(fork, signer);

@ -62,7 +62,6 @@ export abstract class HyperlaneAppGovernor<
async govern(confirm = true, chain?: ChainName) {
if (this.checker.violations.length === 0) return;
// 1. Produce calls from checker violations.
await this.mapViolationsToCalls();
@ -93,7 +92,6 @@ export abstract class HyperlaneAppGovernor<
calls.map((c) =>
console.log(`> > ${c.description} (to: ${c.to} data: ${c.data})`),
);
if (!requestConfirmation) return true;
const { value: confirmed } = await prompts({
@ -102,6 +100,7 @@ export abstract class HyperlaneAppGovernor<
message: 'Can you confirm?',
initial: false,
});
return !!confirmed;
}
return false;

@ -39,7 +39,6 @@ export class HyperlaneCoreChecker extends HyperlaneAppChecker<
return;
}
await this.checkDomainOwnership(chain);
await this.checkProxiedContracts(chain);
await this.checkMailbox(chain);
await this.checkBytecodes(chain);
@ -47,6 +46,7 @@ export class HyperlaneCoreChecker extends HyperlaneAppChecker<
if (config.upgrade) {
await this.checkUpgrade(chain, config.upgrade);
}
await this.checkDomainOwnership(chain);
}
async checkDomainOwnership(chain: ChainName): Promise<void> {

Loading…
Cancel
Save