diff --git a/packages/evm/contracts/adapters/DendrETH/DendrETHAdapter.sol b/packages/evm/contracts/adapters/DendrETH/DendrETHAdapter.sol index 5a44c80a..ca687b44 100644 --- a/packages/evm/contracts/adapters/DendrETH/DendrETHAdapter.sol +++ b/packages/evm/contracts/adapters/DendrETH/DendrETHAdapter.sol @@ -82,6 +82,8 @@ contract DendrETHAdapter is BlockHashAdapter { ) external { ILightClient lightClient = ILightClient(DENDRETH); + lightClient.light_client_update(update); + bytes32 finalizedHeaderRoot = lightClient.finalizedHeaderRoot(); if (!SSZ.verifySlot(_slot, _slotProof, finalizedHeaderRoot)) { @@ -96,8 +98,6 @@ contract DendrETHAdapter is BlockHashAdapter { revert InvalidBlockHashProof(); } - lightClient.light_client_update(update); - _storeHash(SOURCE_CHAIN_ID, _blockNumber, _blockHash); } } diff --git a/packages/evm/tasks/deploy/dendreth.ts b/packages/evm/tasks/deploy/dendreth.ts index 9cd32cef..de9114f5 100644 --- a/packages/evm/tasks/deploy/dendreth.ts +++ b/packages/evm/tasks/deploy/dendreth.ts @@ -6,12 +6,13 @@ import { verify } from "." task("deploy:DendrETH") .addParam("lightclient", "address of the the light client contract", undefined, types.string) + .addParam("sourcechainid", "source chain ID", undefined, types.int) .addFlag("verify", "whether to verify the contract on Etherscan") .setAction(async function (taskArguments: TaskArguments, hre) { console.log("Deploying DendrETH adapter...") const signers: SignerWithAddress[] = await hre.ethers.getSigners() const DendrETHAdapter = await hre.ethers.getContractFactory("DendrETHAdapter") - const constructorArguments = [taskArguments.lightclient] as const + const constructorArguments = [taskArguments.sourcechainid, taskArguments.lightclient] as const const dendrethAdapter = await DendrETHAdapter.connect(signers[0]).deploy(...constructorArguments) await dendrethAdapter.deployed() console.log("DendrETH adapter deployed to:", dendrethAdapter.address)