### Description
- Support checking proxyAdmin owners for non AW proxy admins
- Stop assuming all proxyAdmins will be owned by AW
- This change was motivated by the need to have our checker tooling
check Renzo Wapr routes, where Renzo owns the proxy routers
### Drive-by changes
- Clean up the interface for `ProxyAdminViolation`
### Testing
Manual
// config does not define an expected ProxyAdmin address, this means that checkOwnership will not be able to check the ownership of the ProxyAdmin contract
// as it is not explicitly defined in the config. We therefore check the ownership of the ProxyAdmin contract here.
@ -181,6 +202,14 @@ export abstract class HyperlaneAppChecker<
returnbytecode.substring(0,bytecode.length-90);
}
privategetOwner(
owner: Address,
contractName: string,
ownableOverrides?: Record<string,Address>,
):Address{
returnownableOverrides?.[contractName]??owner;
}
// This method checks whether the bytecode of a contract matches the expected bytecode. It forces the deployer to explicitly acknowledge a change in bytecode. The violations can be remediated by updating the expected bytecode hash.
asynccheckBytecode(
chain: ChainName,
@ -229,7 +258,7 @@ export abstract class HyperlaneAppChecker<