77 MultiProvider ,
88 OwnableConfig ,
99 WarpRouteDeployConfig ,
10+ WarpRouteDeployConfigMailboxRequired ,
1011} from '@hyperlane-xyz/sdk' ;
1112import { assert , objMap , promiseObjAll } from '@hyperlane-xyz/utils' ;
1213
@@ -266,12 +267,10 @@ export const sandboxStrategyConfigGetterMap: Record<
266267/**
267268 * Retrieves the Warp configuration for the specified Warp route ID by fetching it from the FileSystemRegistry and GithubRegistry
268269 */
269- async function getConfigFromMergedRegistry (
270- _routerConfig : ChainMap < RouterConfigWithoutOwner > ,
271- _abacusWorksEnvOwnerConfig : ChainMap < OwnableConfig > ,
270+ export async function getWarpDeployConfigFromMergedRegistry (
272271 warpRouteId : string ,
273272 registryUris : string [ ] ,
274- ) : Promise < ChainMap < HypTokenRouterConfig > > {
273+ ) : Promise < WarpRouteDeployConfigMailboxRequired > {
275274 const registry = getRegistry ( {
276275 registryUris,
277276 enableProxy : true ,
@@ -289,7 +288,7 @@ async function getConfigFromMergedRegistry(
289288 */
290289export async function getWarpConfigMapFromMergedRegistry (
291290 registryUris : string [ ] ,
292- ) : Promise < Record < string , ChainMap < HypTokenRouterConfig > > > {
291+ ) : Promise < Record < string , WarpRouteDeployConfigMailboxRequired > > {
293292 const registry = getRegistry ( {
294293 registryUris,
295294 enableProxy : true ,
@@ -317,7 +316,7 @@ export async function getWarpConfigMapFromMergedRegistry(
317316async function populateWarpRouteMailboxAddresses (
318317 warpRoute : WarpRouteDeployConfig ,
319318 registry : IRegistry ,
320- ) : Promise < ChainMap < HypTokenRouterConfig > > {
319+ ) : Promise < WarpRouteDeployConfigMailboxRequired > {
321320 const mailboxPromises = objMap ( warpRoute , async ( chainName , config ) => {
322321 const mailbox =
323322 config . mailbox || ( await registry . getChainAddresses ( chainName ) ) ?. mailbox ;
@@ -339,7 +338,28 @@ export async function getWarpConfig(
339338 warpRouteId : string ,
340339 registryUris = [ DEFAULT_REGISTRY_URI ] ,
341340 forceRegistryConfig = false ,
341+ getterInputs ?: WarpConfigGetterInputs ,
342342) : Promise < ChainMap < HypTokenRouterConfig > > {
343+ const { abacusWorksEnvOwnerConfig, routerConfigWithoutOwner } =
344+ getterInputs ?? ( await getWarpConfigGetterInputs ( multiProvider , envConfig ) ) ;
345+ return getWarpConfigWithGetterInputs (
346+ warpRouteId ,
347+ routerConfigWithoutOwner ,
348+ abacusWorksEnvOwnerConfig ,
349+ registryUris ,
350+ forceRegistryConfig ,
351+ ) ;
352+ }
353+
354+ export interface WarpConfigGetterInputs {
355+ abacusWorksEnvOwnerConfig : ChainMap < OwnableConfig > ;
356+ routerConfigWithoutOwner : ChainMap < RouterConfigWithoutOwner > ;
357+ }
358+
359+ export async function getWarpConfigGetterInputs (
360+ multiProvider : MultiProvider ,
361+ envConfig : EnvironmentConfig ,
362+ ) : Promise < WarpConfigGetterInputs > {
343363 const routerConfig = await getRouterConfigsForAllVms (
344364 envConfig ,
345365 multiProvider ,
@@ -362,6 +382,19 @@ export async function getWarpConfig(
362382 } ;
363383 } ) ;
364384
385+ return {
386+ abacusWorksEnvOwnerConfig,
387+ routerConfigWithoutOwner,
388+ } ;
389+ }
390+
391+ async function getWarpConfigWithGetterInputs (
392+ warpRouteId : string ,
393+ routerConfigWithoutOwner : ChainMap < RouterConfigWithoutOwner > ,
394+ abacusWorksEnvOwnerConfig : ChainMap < OwnableConfig > ,
395+ registryUris = [ DEFAULT_REGISTRY_URI ] ,
396+ forceRegistryConfig = false ,
397+ ) : Promise < ChainMap < HypTokenRouterConfig > > {
365398 const warpConfigGetter = warpConfigGetterMap [ warpRouteId ] ;
366399 if ( warpConfigGetter && ! forceRegistryConfig ) {
367400 return warpConfigGetter (
@@ -371,10 +404,5 @@ export async function getWarpConfig(
371404 ) ;
372405 }
373406
374- return getConfigFromMergedRegistry (
375- routerConfigWithoutOwner ,
376- abacusWorksEnvOwnerConfig ,
377- warpRouteId ,
378- registryUris ,
379- ) ;
407+ return getWarpDeployConfigFromMergedRegistry ( warpRouteId , registryUris ) ;
380408}
0 commit comments