diff --git a/src/__snapshots__/getBridgeUiConfig.unit.test.ts.snap b/src/__snapshots__/getBridgeUiConfig.unit.test.ts.snap index 0df85c27b..aec93c72e 100644 --- a/src/__snapshots__/getBridgeUiConfig.unit.test.ts.snap +++ b/src/__snapshots__/getBridgeUiConfig.unit.test.ts.snap @@ -22,7 +22,7 @@ exports[`successfully generates bridge UI config from deployment transaction 1`] "l2Contracts": { "customGateway": "0xB59dD42cC815FdA12B8b40A410164D49Fd2E96Fc", "multicall": "0x73465577E9FD7Cd585E4270F23A9eBa99B92b6eD", - "proxyAdmin": "0x7618B3d4d8C71132BfCd33fDD98424a060F37470", + "proxyAdmin": "0xA811e68582E043680D915a38Cc11005Ef1F0A509", "router": "0xFb4ea97964A04D0Dd367Bd69ffF03e66dfDB55b8", "standardGateway": "0x6b6f76e5D2A2C8Ee2cc2964ccaAFf570835B003a", "weth": "0x7b79995e5f793A07Bc00c21412e50Ecae098E7f9", diff --git a/src/getBridgeUiConfig.ts b/src/getBridgeUiConfig.ts index a23a61df3..a7b18ff51 100644 --- a/src/getBridgeUiConfig.ts +++ b/src/getBridgeUiConfig.ts @@ -111,7 +111,7 @@ export async function getBridgeUiConfig({ l2Contracts: { customGateway: tokenBridgeContracts.parentChainContracts.customGateway, multicall: tokenBridgeContracts.parentChainContracts.multicall, - proxyAdmin: tokenBridgeContracts.orbitChainContracts.proxyAdmin, + proxyAdmin: coreContracts.adminProxy, router: tokenBridgeContracts.parentChainContracts.router, standardGateway: tokenBridgeContracts.parentChainContracts.standardGateway, weth: tokenBridgeContracts.parentChainContracts.weth, diff --git a/src/getBridgeUiConfig.unit.test.ts b/src/getBridgeUiConfig.unit.test.ts index 0faf78454..c413ceb06 100644 --- a/src/getBridgeUiConfig.unit.test.ts +++ b/src/getBridgeUiConfig.unit.test.ts @@ -20,4 +20,18 @@ it('successfully generates bridge UI config from deployment transaction', async }); expect(bridgeUiConfig).toMatchSnapshot(); + + // l2Contracts describes the PARENT chain; l3Contracts describes the orbit chain. + // A regression here means l2Contracts.proxyAdmin was populated from the orbit + // chain's proxyAdmin instead of the parent chain's (see coreContracts.adminProxy). + expect(bridgeUiConfig.tokenBridgeContracts.l2Contracts.proxyAdmin).not.toBe( + bridgeUiConfig.tokenBridgeContracts.l3Contracts.proxyAdmin, + ); + + // Confirm the parent-chain proxyAdmin is an address with real bytecode ON THE PARENT CHAIN. + const parentChainCode = await sepoliaClient.getBytecode({ + address: bridgeUiConfig.tokenBridgeContracts.l2Contracts.proxyAdmin as `0x${string}`, + }); + expect(parentChainCode).toBeDefined(); + expect(parentChainCode!.length).toBeGreaterThan(2); // more than just "0x" });