1
1
import { ChainInfo , LoggerFn , getContractInstance , getContractAddress , runOnEvms , contracts , getUniversalAddress } from "../../../helpers" ;
2
2
import { ethers } from "ethers" ;
3
3
import { TokenRouter } from "../../../contract-bindings" ;
4
- import { circle } from "@wormhole-foundation/sdk-base" ;
4
+ import { circle , toChain } from "@wormhole-foundation/sdk-base" ;
5
5
6
6
runOnEvms ( "cross-registration-token-router" , async ( chain : ChainInfo , signer : ethers . Signer , log : LoggerFn ) => {
7
7
const tokenRouterAddress = getContractAddress ( "TokenRouterProxy" , chain . chainId ) ;
8
8
const tokenRouter = ( await getContractInstance ( "TokenRouter" , tokenRouterAddress , chain ) ) as TokenRouter ;
9
9
const deployedTokenRouters = contracts [ 'TokenRouterProxy' ] . filter ( ( router ) => router . chainId !== chain . chainId ) ;
10
10
11
11
for ( const router of deployedTokenRouters ) {
12
- const circleDomain = circle . toCircleChainId ( chain . network , router . chainId ) ;
12
+ const circleDomain = circle . toCircleChainId ( chain . network , toChain ( router . chainId ) ) ;
13
13
const endpoint = {
14
14
router : getUniversalAddress ( router . address ) ,
15
15
mintRecipient : getUniversalAddress ( router . address )
16
16
} ;
17
17
18
-
19
- // check if is already registered
20
-
21
18
if ( router . chainId === 0 )
22
19
throw new Error ( 'Invalid chainId when register new router endpoint' ) ;
23
20
24
21
if ( Number ( router . address ) === 0 )
25
22
throw new Error ( `Invalid router address for chainId ${ router . chainId } ` ) ;
26
23
27
- const isAlreadyRegistered =
24
+ const currentMintRecipient = await tokenRouter . getMintRecipient ( router . chainId ) ;
25
+ if ( Number ( currentMintRecipient ) !== 0 ) {
26
+ log ( `Router endpoint already registered for chainId ${ router . chainId } ` ) ;
27
+ continue ;
28
+ }
28
29
29
30
await tokenRouter . addRouterEndpoint ( router . chainId , endpoint , circleDomain ) ;
30
31
log ( `Router endpoint added for chainId ${ router . chainId } ` ) ;
31
32
}
32
33
} ) ;
33
-
34
- function isRouterEndpointRegistered ( router : TokenRouter , chainId : number , endpoint : { router : string ; mintRecipient : string } ) {
35
- const mintRecipient = await tokenRouter . getMintRecipient ( router . chainId , endpoint ) ;
36
- return Number ( mintRecipient ) !== 0 ;
37
- }
0 commit comments