From 2b10b47161ffd0a78f9f873bc6181b9544dc07a3 Mon Sep 17 00:00:00 2001 From: -f Date: Thu, 30 Nov 2023 12:26:20 -0500 Subject: [PATCH 1/2] rm agent start blocks --- typescript/cli/src/deploy/core.ts | 29 +++++-------------- typescript/infra/src/deployment/deploy.ts | 20 ++++++++----- typescript/sdk/src/consts/agentStartBlocks.ts | 26 ----------------- typescript/sdk/src/index.ts | 1 - 4 files changed, 21 insertions(+), 55 deletions(-) delete mode 100644 typescript/sdk/src/consts/agentStartBlocks.ts diff --git a/typescript/cli/src/deploy/core.ts b/typescript/cli/src/deploy/core.ts index 6f0255e6e6..b58a946901 100644 --- a/typescript/cli/src/deploy/core.ts +++ b/typescript/cli/src/deploy/core.ts @@ -8,9 +8,9 @@ import { DeployedIsm, GasOracleContractType, HookType, - HyperlaneAddresses, HyperlaneAddressesMap, HyperlaneContractsMap, + HyperlaneCore, HyperlaneCoreDeployer, HyperlaneDeploymentArtifacts, HyperlaneIsmFactory, @@ -21,7 +21,6 @@ import { MultiProvider, MultisigConfig, RoutingIsmConfig, - agentStartBlocks, buildAgentConfig, buildAggregationIsmConfigs, defaultMultisigConfigs, @@ -472,33 +471,21 @@ async function writeAgentConfig( chains: ChainName[], multiProvider: MultiProvider, ) { - // TODO: share with rust/config/* - const startBlocks: ChainMap = { ...agentStartBlocks }; - + const startBlocks: ChainMap = {}; for (const chain of chains) { - if (startBlocks[chain]) continue; - startBlocks[chain] = await multiProvider - .getProvider(chain) - .getBlockNumber(); + const core = HyperlaneCore.fromAddressesMap(artifacts, multiProvider); + const mailbox = core.getContracts(chain).mailbox; + startBlocks[chain] = (await mailbox.deployedBlock()).toNumber(); } - - const mergedAddressesMap: HyperlaneAddressesMap = objMerge( + const mergedAddressesMap = objMerge( sdkContractAddressesMap, artifacts, - ); - const filteredAddressesMap = objFilter( - mergedAddressesMap, - (chain, v): v is HyperlaneAddresses => - chains.includes(chain) && - !!v.mailbox && - !!v.interchainGasPaymaster && - !!v.validatorAnnounce, ) as ChainMap; const agentConfig = buildAgentConfig( - Object.keys(filteredAddressesMap), + Object.keys(mergedAddressesMap), multiProvider, - filteredAddressesMap, + mergedAddressesMap, startBlocks, ); writeJson(filePath, agentConfig); diff --git a/typescript/infra/src/deployment/deploy.ts b/typescript/infra/src/deployment/deploy.ts index 89b846876d..3de8269dcc 100644 --- a/typescript/infra/src/deployment/deploy.ts +++ b/typescript/infra/src/deployment/deploy.ts @@ -2,6 +2,7 @@ import { ChainMap, ChainName, HyperlaneAddresses, + HyperlaneCore, HyperlaneDeployer, HyperlaneDeploymentArtifacts, MultiProvider, @@ -126,14 +127,19 @@ export async function writeAgentConfig( } catch (e) { console.error('Failed to load cached addresses'); } - // Write agent config indexing from the deployed or latest block numbers. - // For non-net-new deployments, these changes will need to be - // reverted manually. - const startBlocks = await promiseObjAll( - objMap(addresses, (chain, _) => - multiProvider.getProvider(chain).getBlockNumber(), - ), + + const core = HyperlaneCore.fromAddressesMap(addresses, multiProvider); + // Write agent config indexing from the deployed Mailbox which stores the block number at deployment + const startBlocksBigNumber = await promiseObjAll( + objMap(addresses, (chain, _) => { + const mailbox = core.getContracts(chain).mailbox; + return mailbox.deployedBlock(); + }), + ); + const startBlocks = objMap(startBlocksBigNumber, (_, blockNumber) => + blockNumber.toNumber(), ); + const agentConfig = buildAgentConfig( multiProvider.getKnownChainNames(), multiProvider, diff --git a/typescript/sdk/src/consts/agentStartBlocks.ts b/typescript/sdk/src/consts/agentStartBlocks.ts deleted file mode 100644 index 3fe6c9c5c4..0000000000 --- a/typescript/sdk/src/consts/agentStartBlocks.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { ChainMap } from '../types'; - -// TODO this was previously in hyp-deploy, but ideally should be integrated -// into the ChainMetadata type and de-duped with agent consts -export const agentStartBlocks: ChainMap = { - // --------------- Mainnets --------------------- - celo: 16884144, - ethereum: 16271503, - avalanche: 24145479, - polygon: 37313389, - bsc: 25063295, - arbitrum: 49073182, - optimism: 55698988, - moonbeam: 2595747, - gnosis: 25900000, - // --------------- Testnets --------------------- - alfajores: 14863532, - fuji: 16330615, - mumbai: 29390033, - bsctestnet: 25001629, - goerli: 8039005, - sepolia: 3082913, - moonbasealpha: 3310405, - optimismgoerli: 3055263, - arbitrumgoerli: 1941997, -}; diff --git a/typescript/sdk/src/index.ts b/typescript/sdk/src/index.ts index 07af361d28..f12ce8e06f 100644 --- a/typescript/sdk/src/index.ts +++ b/typescript/sdk/src/index.ts @@ -6,7 +6,6 @@ export { BaseSealevelAdapter, MultiProtocolApp, } from './app/MultiProtocolApp'; -export { agentStartBlocks } from './consts/agentStartBlocks'; export { chainIdToMetadata, chainMetadata, From 325e11f58d7f45a198b9e0ee849261db62acb6f0 Mon Sep 17 00:00:00 2001 From: -f Date: Thu, 30 Nov 2023 12:37:30 -0500 Subject: [PATCH 2/2] add changeset --- .changeset/tall-shirts-accept.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .changeset/tall-shirts-accept.md diff --git a/.changeset/tall-shirts-accept.md b/.changeset/tall-shirts-accept.md new file mode 100644 index 0000000000..7725991645 --- /dev/null +++ b/.changeset/tall-shirts-accept.md @@ -0,0 +1,7 @@ +--- +'@hyperlane-xyz/infra': patch +'@hyperlane-xyz/cli': patch +'@hyperlane-xyz/sdk': patch +--- + +Removing agentStartBlocks and using mailbox.deployedBlock() instead