From e4c9c7df58f33fc7c1c1379be8d57a0d2b16b99f Mon Sep 17 00:00:00 2001
From: Paul Balaji <10051819+paulbalaji@users.noreply.github.com>
Date: Thu, 23 Jan 2025 14:14:41 +0000
Subject: [PATCH 1/6] feat(infra): fetch registry on warp monitor startup
(#5246)
### Description
feat: fetch registry on warp monitor startup
can describe pod to get the registry commit that a monitor was deployed
with
```
kubectl describe pod hyperlane-warp-route-brett-base-zeronetwork-0 | grep REGISTRY
REGISTRY_COMMIT: v6.19.1
```
### Drive-by changes
- add the entrypoint in monorepo Dockerfile to fetch registry at startup
- opens the path for removing the registry fetching from the image build
entirely, once other monorepo users (e.g. keyfunder/kathy) specify their
own registry commit to run with
- get mailbox addresses from regular registry chain addresses instead of
via warp route configs
### Related issues
resolves https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/5174
resolves https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/5257
### Backward compatibility
### Testing
- spun up a BRETT/base-zeronetwork warp monitor
```sh
kubectl logs hyperlane-warp-route-brett-base-zeronetwork-0
Updating Hyperlane registry to commit: v6.19.1
From https://github.com/hyperlane-xyz/hyperlane-registry
* tag v6.19.1 -> FETCH_HEAD
Previous HEAD position was 80023dd feat: Add OP extension and Trumpchain warp route (#507)
HEAD is now at e87c85f Version Packages (#508)
bigint: Failed to load bindings, pure JS will be used (try npm run rebuild?)
{"level":30,"time":1737556333704,"pid":29,"module":"warp-balance-monitor","labels":{"chain_name":"zeronetwork","token_address":"0xf7F253769c36CC7e1B01988CFf3aE198dea2c172","token_name":"Brett","wallet_address":"0xf7F253769c36CC7e1B01988CFf3aE198dea2c172","token_standard":"EvmHypSynthetic","warp_route_id":"BRETT/base-zeronetwork","related_chain_names":"base"},"balance":1e-18,"msg":"Wallet balance updated for token"}
...
etc
```
confirmed it's validating the given commit exists
---
Dockerfile | 7 +++
docker-entrypoint.sh | 18 ++++++++
.../helm/warp-routes/templates/_helpers.tpl | 10 +++--
typescript/infra/helm/warp-routes/values.yaml | 1 +
.../warp-routes/deploy-warp-monitor.ts | 45 ++++++++++++++++---
.../warp-routes/generate-warp-config.ts | 11 ++---
.../monitor/monitor-warp-route-balances.ts | 18 +++-----
typescript/infra/scripts/warp-routes/utils.ts | 2 +-
typescript/infra/src/agents/index.ts | 6 ---
typescript/infra/src/warp/helm.ts | 12 ++---
10 files changed, 91 insertions(+), 39 deletions(-)
create mode 100644 docker-entrypoint.sh
diff --git a/Dockerfile b/Dockerfile
index 6f8e3939d4..111a9093c4 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -30,9 +30,16 @@ COPY solidity ./solidity
RUN yarn build
+# Baked-in registry version
+# keep for back-compat until we update all usage of the monorepo image (e.g. key-funder)
ENV REGISTRY_URI="/hyperlane-registry"
ARG REGISTRY_COMMIT="main"
RUN git clone https://github.com/hyperlane-xyz/hyperlane-registry.git "$REGISTRY_URI" \
&& cd "$REGISTRY_URI" \
&& git fetch origin "$REGISTRY_COMMIT" \
&& git checkout "$REGISTRY_COMMIT"
+
+# Add entrypoint script that allows overriding the registry commit
+COPY docker-entrypoint.sh /usr/local/bin/
+RUN chmod +x /usr/local/bin/docker-entrypoint.sh
+ENTRYPOINT ["docker-entrypoint.sh"]
diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh
new file mode 100644
index 0000000000..719396d5bd
--- /dev/null
+++ b/docker-entrypoint.sh
@@ -0,0 +1,18 @@
+#!/bin/sh
+set -e
+
+# Set default registry URI, same as Dockerfile
+REGISTRY_URI="/hyperlane-registry"
+
+# Only update registry if REGISTRY_COMMIT is set
+if [ -n "$REGISTRY_COMMIT" ]; then
+ echo "Updating Hyperlane registry to commit: ${REGISTRY_COMMIT}"
+ OLDPWD=$(pwd)
+ cd "$REGISTRY_URI"
+ git fetch origin "$REGISTRY_COMMIT"
+ git checkout "$REGISTRY_COMMIT"
+ cd "$OLDPWD"
+fi
+
+# Execute the main container command
+exec "$@"
diff --git a/typescript/infra/helm/warp-routes/templates/_helpers.tpl b/typescript/infra/helm/warp-routes/templates/_helpers.tpl
index 2a9424b0a9..d96f267e05 100644
--- a/typescript/infra/helm/warp-routes/templates/_helpers.tpl
+++ b/typescript/infra/helm/warp-routes/templates/_helpers.tpl
@@ -68,12 +68,14 @@ The warp-routes container
image: {{ .Values.image.repository }}:{{ .Values.image.tag }}
imagePullPolicy: IfNotPresent
env:
- - name: LOG_FORMAT
- value: json
- command:
+ - name: LOG_FORMAT
+ value: json
+ - name: REGISTRY_COMMIT
+ value: {{ .Values.hyperlane.registryCommit }}
+ args:
- ./node_modules/.bin/tsx
- ./typescript/infra/scripts/warp-routes/monitor/monitor-warp-route-balances.ts
- - -v
+ - -v
- "30000"
- --warpRouteId
- {{ .Values.warpRouteId }}
diff --git a/typescript/infra/helm/warp-routes/values.yaml b/typescript/infra/helm/warp-routes/values.yaml
index a7a09d817a..69d2be36d5 100644
--- a/typescript/infra/helm/warp-routes/values.yaml
+++ b/typescript/infra/helm/warp-routes/values.yaml
@@ -5,6 +5,7 @@ hyperlane:
runEnv: mainnet3
context: hyperlane
chains: []
+ registryCommit:
nameOverride: ''
fullnameOverride: ''
externalSecrets:
diff --git a/typescript/infra/scripts/warp-routes/deploy-warp-monitor.ts b/typescript/infra/scripts/warp-routes/deploy-warp-monitor.ts
index 8ede7cdda5..d58af0eac6 100644
--- a/typescript/infra/scripts/warp-routes/deploy-warp-monitor.ts
+++ b/typescript/infra/scripts/warp-routes/deploy-warp-monitor.ts
@@ -1,7 +1,16 @@
-import { checkbox } from '@inquirer/prompts';
+import { input } from '@inquirer/prompts';
+import chalk from 'chalk';
+import { execSync } from 'child_process';
+
+import {
+ LogFormat,
+ LogLevel,
+ configureRootLogger,
+ rootLogger,
+} from '@hyperlane-xyz/utils';
import { Contexts } from '../../config/contexts.js';
-import { WarpRouteIds } from '../../config/environments/mainnet3/warp/warpIds.js';
+import { getRegistry } from '../../config/registry.js';
import { HelmCommand } from '../../src/utils/helm.js';
import { WarpRouteMonitorHelmManager } from '../../src/warp/helm.js';
import {
@@ -13,7 +22,26 @@ import {
} from '../agent-utils.js';
import { getEnvironmentConfig } from '../core-utils.js';
+async function validateRegistryCommit(commit: string) {
+ const registry = getRegistry();
+ const registryUri = registry.getUri();
+
+ try {
+ rootLogger.info(
+ chalk.grey.italic(`Attempting to fetch registry commit ${commit}...`),
+ );
+ execSync(`cd ${registryUri} && git fetch origin ${commit}`, {
+ stdio: 'inherit',
+ });
+ rootLogger.info(chalk.grey.italic('Fetch completed successfully.'));
+ } catch (_) {
+ rootLogger.error(chalk.red(`Unable to fetch registry commit ${commit}.`));
+ process.exit(1);
+ }
+}
+
async function main() {
+ configureRootLogger(LogFormat.Pretty, LogLevel.Info);
const { environment, warpRouteId } = await withWarpRouteId(getArgs()).argv;
let warpRouteIds;
@@ -23,6 +51,12 @@ async function main() {
warpRouteIds = await getWarpRouteIdsInteractive();
}
+ const registryCommit = await input({
+ message:
+ 'Enter the registry version to use (can be a commit, branch or tag):',
+ });
+ await validateRegistryCommit(registryCommit);
+
await assertCorrectKubeContext(getEnvironmentConfig(environment));
const agentConfig = getAgentConfig(Contexts.Hyperlane, environment);
@@ -31,6 +65,7 @@ async function main() {
warpRouteId,
environment,
agentConfig.environmentChainNames,
+ registryCommit,
);
await helmManager.runHelmCommand(HelmCommand.InstallOrUpgrade);
};
@@ -42,11 +77,11 @@ async function main() {
);
for (const id of warpRouteIds) {
- console.log(`Deploying Warp Monitor for Warp Route ID: ${id}`);
+ rootLogger.info(`Deploying Warp Monitor for Warp Route ID: ${id}`);
await deployWarpMonitor(id);
}
}
main()
- .then(() => console.log('Deploy successful!'))
- .catch(console.error);
+ .then(() => rootLogger.info('Deploy successful!'))
+ .catch(rootLogger.error);
diff --git a/typescript/infra/scripts/warp-routes/generate-warp-config.ts b/typescript/infra/scripts/warp-routes/generate-warp-config.ts
index 47a39c16d8..2445ca5fc2 100644
--- a/typescript/infra/scripts/warp-routes/generate-warp-config.ts
+++ b/typescript/infra/scripts/warp-routes/generate-warp-config.ts
@@ -1,6 +1,7 @@
import { stringify as yamlStringify } from 'yaml';
import { WarpRouteDeployConfigSchema } from '@hyperlane-xyz/sdk';
+import { rootLogger } from '@hyperlane-xyz/utils';
import { getWarpConfig } from '../../config/warp.js';
import { writeYamlAtPath } from '../../src/utils/utils.js';
@@ -23,17 +24,17 @@ async function main() {
const parsed = WarpRouteDeployConfigSchema.safeParse(warpConfig);
if (!parsed.success) {
- console.dir(parsed.error.format(), { depth: null });
+ rootLogger.error(parsed.error.format());
return;
}
- console.log('Warp config:');
- console.log(yamlStringify(parsed.data, null, 2));
+ rootLogger.info('Warp config:');
+ rootLogger.info(yamlStringify(parsed.data, null, 2));
if (outFile) {
- console.log(`Writing config to ${outFile}`);
+ rootLogger.info(`Writing config to ${outFile}`);
writeYamlAtPath(outFile, parsed.data);
}
}
-main().catch((err) => console.error('Error:', err));
+main().catch((err) => rootLogger.error('Error:', err));
diff --git a/typescript/infra/scripts/warp-routes/monitor/monitor-warp-route-balances.ts b/typescript/infra/scripts/warp-routes/monitor/monitor-warp-route-balances.ts
index c04ed7418c..f2c971b2ed 100644
--- a/typescript/infra/scripts/warp-routes/monitor/monitor-warp-route-balances.ts
+++ b/typescript/infra/scripts/warp-routes/monitor/monitor-warp-route-balances.ts
@@ -9,7 +9,6 @@ import {
EvmHypXERC20LockboxAdapter,
IHypXERC20Adapter,
MultiProtocolProvider,
- RouterConfig,
SealevelHypTokenAdapter,
Token,
TokenStandard,
@@ -18,10 +17,7 @@ import {
import { ProtocolType, objMap, objMerge, sleep } from '@hyperlane-xyz/utils';
import { getWarpCoreConfig } from '../../../config/registry.js';
-import {
- DeployEnvironment,
- getRouterConfigsForAllVms,
-} from '../../../src/config/environment.js';
+import { DeployEnvironment } from '../../../src/config/environment.js';
import { fetchGCPSecret } from '../../../src/utils/gcloud.js';
import { startMetricsServer } from '../../../src/utils/metrics.js';
import {
@@ -59,16 +55,12 @@ async function main() {
const envConfig = getEnvironmentConfig(environment);
const registry = await envConfig.getRegistry();
const chainMetadata = await registry.getMetadata();
+ const chainAddresses = await registry.getAddresses();
// The Sealevel warp adapters require the Mailbox address, so we
- // get router configs (that include the Mailbox address) for all chains
- // and merge them with the chain metadata.
- const routerConfig = await getRouterConfigsForAllVms(
- envConfig,
- await envConfig.getMultiProvider(),
- );
- const mailboxes = objMap(routerConfig, (_chain, config: RouterConfig) => ({
- mailbox: config.mailbox,
+ // get mailboxes for all chains and merge them with the chain metadata.
+ const mailboxes = objMap(chainAddresses, (_, { mailbox }) => ({
+ mailbox,
}));
const multiProtocolProvider = new MultiProtocolProvider(
objMerge(chainMetadata, mailboxes),
diff --git a/typescript/infra/scripts/warp-routes/utils.ts b/typescript/infra/scripts/warp-routes/utils.ts
index 2e0fdc40b9..1c843c4fc5 100644
--- a/typescript/infra/scripts/warp-routes/utils.ts
+++ b/typescript/infra/scripts/warp-routes/utils.ts
@@ -19,7 +19,7 @@ export async function getRouterConfig() {
).argv;
const envConfig = getEnvironmentConfig(environment);
- let multiProvider = await envConfig.getMultiProvider(
+ const multiProvider = await envConfig.getMultiProvider(
context,
Role.Deployer,
true,
diff --git a/typescript/infra/src/agents/index.ts b/typescript/infra/src/agents/index.ts
index 24fccbac07..cd1b1b206d 100644
--- a/typescript/infra/src/agents/index.ts
+++ b/typescript/infra/src/agents/index.ts
@@ -1,4 +1,3 @@
-import fs from 'fs';
import { join } from 'path';
import {
@@ -49,11 +48,6 @@ const HELM_CHART_PATH = join(
'/../../rust/main/helm/hyperlane-agent/',
);
-if (!fs.existsSync(HELM_CHART_PATH + 'Chart.yaml'))
- console.warn(
- `Could not find helm chart at ${HELM_CHART_PATH}; the relative path may have changed.`,
- );
-
export abstract class AgentHelmManager extends HelmManager {
abstract readonly role: AgentRole;
readonly helmChartPath: string = HELM_CHART_PATH;
diff --git a/typescript/infra/src/warp/helm.ts b/typescript/infra/src/warp/helm.ts
index 76f55b426b..1ccfa8aa3e 100644
--- a/typescript/infra/src/warp/helm.ts
+++ b/typescript/infra/src/warp/helm.ts
@@ -1,7 +1,7 @@
import { confirm } from '@inquirer/prompts';
import path from 'path';
-import { difference } from '@hyperlane-xyz/utils';
+import { difference, rootLogger } from '@hyperlane-xyz/utils';
import { WarpRouteIds } from '../../config/environments/mainnet3/warp/warpIds.js';
import { DeployEnvironment } from '../../src/config/environment.js';
@@ -20,6 +20,7 @@ export class WarpRouteMonitorHelmManager extends HelmManager {
readonly warpRouteId: string,
readonly runEnv: DeployEnvironment,
readonly environmentChainNames: string[],
+ readonly registryCommit: string,
) {
super();
}
@@ -28,13 +29,14 @@ export class WarpRouteMonitorHelmManager extends HelmManager {
return {
image: {
repository: 'gcr.io/abacus-labs-dev/hyperlane-monorepo',
- tag: '3738b85-20250122-164718',
+ tag: '49992bf-20250122-142014',
},
warpRouteId: this.warpRouteId,
fullnameOverride: this.helmReleaseName,
environment: this.runEnv,
hyperlane: {
chains: this.environmentChainNames,
+ registryCommit: this.registryCommit,
},
};
}
@@ -90,7 +92,7 @@ export class WarpRouteMonitorHelmManager extends HelmManager {
new Set(allExpectedHelmReleaseNames),
);
for (const helmRelease of unknownHelmReleases) {
- console.log(
+ rootLogger.warn(
`Unknown Warp Monitor Helm Release: ${helmRelease} (possibly a release from a stale Warp Route ID).`,
);
const uninstall = await confirm({
@@ -98,10 +100,10 @@ export class WarpRouteMonitorHelmManager extends HelmManager {
"Would you like to uninstall this Helm Release? Make extra sure it shouldn't exist!",
});
if (uninstall) {
- console.log(`Uninstalling Helm Release: ${helmRelease}`);
+ rootLogger.info(`Uninstalling Helm Release: ${helmRelease}`);
await removeHelmRelease(helmRelease, namespace);
} else {
- console.log(`Skipping uninstall of Helm Release: ${helmRelease}`);
+ rootLogger.info(`Skipping uninstall of Helm Release: ${helmRelease}`);
}
}
}
From 754c1c96938e6625e813958436a4eb6649476357 Mon Sep 17 00:00:00 2001
From: Nam Chu Hoai
Date: Thu, 23 Jan 2025 10:51:50 -0500
Subject: [PATCH 2/6] feat: Add Superseed warp route config (#5122)
### Description
Includes the warp route config for SuperSeed FiatToken warp routes
### Drive-by changes
- Add dummy soon owner
- Indicate errors during warp config parsing
---
.../getEthereumSuperseedWarpConfig.ts | 65 +++++++++++++++++++
.../environments/mainnet3/warp/warpIds.ts | 2 +
typescript/infra/config/warp.ts | 6 ++
.../warp-routes/generate-warp-config.ts | 4 +-
typescript/infra/src/config/warp.ts | 5 +-
5 files changed, 78 insertions(+), 4 deletions(-)
create mode 100644 typescript/infra/config/environments/mainnet3/warp/configGetters/getEthereumSuperseedWarpConfig.ts
diff --git a/typescript/infra/config/environments/mainnet3/warp/configGetters/getEthereumSuperseedWarpConfig.ts b/typescript/infra/config/environments/mainnet3/warp/configGetters/getEthereumSuperseedWarpConfig.ts
new file mode 100644
index 0000000000..e6ea73782d
--- /dev/null
+++ b/typescript/infra/config/environments/mainnet3/warp/configGetters/getEthereumSuperseedWarpConfig.ts
@@ -0,0 +1,65 @@
+import { ethers } from 'ethers';
+
+import { ChainMap, HypTokenRouterConfig, TokenType } from '@hyperlane-xyz/sdk';
+
+import {
+ RouterConfigWithoutOwner,
+ tokens,
+} from '../../../../../src/config/warp.js';
+
+const owners = {
+ ethereum: '0xa7eccdb9be08178f896c26b7bbd8c3d4e844d9ba',
+ superseed: '0xa7eccdb9be08178f896c26b7bbd8c3d4e844d9ba',
+};
+
+const ISM_CONFIG = ethers.constants.AddressZero; // Default ISM
+
+export const getEthereumSuperseedCBBTCWarpConfig = async (
+ routerConfig: ChainMap,
+): Promise> => {
+ const ethereum: HypTokenRouterConfig = {
+ ...routerConfig.ethereum,
+ owner: owners.ethereum,
+ type: TokenType.collateral,
+ token: tokens.ethereum.cbBTC,
+ interchainSecurityModule: ISM_CONFIG,
+ };
+
+ const superseed: HypTokenRouterConfig = {
+ ...routerConfig.superseed,
+ owner: owners.superseed,
+ type: TokenType.collateralFiat,
+ token: '0x6f36dbd829de9b7e077db8a35b480d4329ceb331',
+ interchainSecurityModule: ISM_CONFIG,
+ };
+
+ return {
+ ethereum,
+ superseed,
+ };
+};
+
+export const getEthereumSuperseedUSDCWarpConfig = async (
+ routerConfig: ChainMap,
+): Promise> => {
+ const ethereum: HypTokenRouterConfig = {
+ ...routerConfig.ethereum,
+ owner: owners.ethereum,
+ type: TokenType.collateral,
+ token: tokens.ethereum.USDC,
+ interchainSecurityModule: ISM_CONFIG,
+ };
+
+ const superseed: HypTokenRouterConfig = {
+ ...routerConfig.superseed,
+ owner: owners.superseed,
+ type: TokenType.collateralFiat,
+ token: '0xc316c8252b5f2176d0135ebb0999e99296998f2e',
+ interchainSecurityModule: ISM_CONFIG,
+ };
+
+ return {
+ ethereum,
+ superseed,
+ };
+};
diff --git a/typescript/infra/config/environments/mainnet3/warp/warpIds.ts b/typescript/infra/config/environments/mainnet3/warp/warpIds.ts
index 3e8ea485e5..39bbf41de0 100644
--- a/typescript/infra/config/environments/mainnet3/warp/warpIds.ts
+++ b/typescript/infra/config/environments/mainnet3/warp/warpIds.ts
@@ -47,6 +47,8 @@ export enum WarpRouteIds {
ArbitrumBaseBlastBscEthereumGnosisLiskMantleModeOptimismPolygonScrollZeroNetworkZoraMainnet = 'ETH/arbitrum-base-blast-bsc-ethereum-gnosis-lisk-mantle-mode-optimism-polygon-scroll-zeronetwork-zoramainnet',
AppchainBaseUSDC = 'USDC/appchain-base',
BobaBsquaredSwellUBTC = 'UBTC/boba-bsquared-swell',
+ EthereumSuperseedCBBTC = 'CBBTC/ethereum-superseed',
+ EthereumSuperseedUSDC = 'USDC/ethereum-superseed',
EthereumFormUSDT = 'USDT/ethereum-form',
EthereumFormUSDC = 'USDC/ethereum-form',
EthereumSuperseedUSDT = 'USDT/ethereum-superseed',
diff --git a/typescript/infra/config/warp.ts b/typescript/infra/config/warp.ts
index 6374d05ae7..6a9e5499e7 100644
--- a/typescript/infra/config/warp.ts
+++ b/typescript/infra/config/warp.ts
@@ -50,6 +50,10 @@ import { getEthereumInevmUSDTWarpConfig } from './environments/mainnet3/warp/con
import { getEthereumInkUSDCConfig } from './environments/mainnet3/warp/configGetters/getEthereumInkUSDCWarpConfig.js';
import { getEthereumSeiFastUSDWarpConfig } from './environments/mainnet3/warp/configGetters/getEthereumSeiFastUSDWarpConfig.js';
import { getEthereumSeiPumpBTCWarpConfig } from './environments/mainnet3/warp/configGetters/getEthereumSeiPumpBTCWarpConfig.js';
+import {
+ getEthereumSuperseedCBBTCWarpConfig,
+ getEthereumSuperseedUSDCWarpConfig,
+} from './environments/mainnet3/warp/configGetters/getEthereumSuperseedWarpConfig.js';
import { getEthereumVictionETHWarpConfig } from './environments/mainnet3/warp/configGetters/getEthereumVictionETHWarpConfig.js';
import { getEthereumVictionUSDCWarpConfig } from './environments/mainnet3/warp/configGetters/getEthereumVictionUSDCWarpConfig.js';
import { getEthereumVictionUSDTWarpConfig } from './environments/mainnet3/warp/configGetters/getEthereumVictionUSDTWarpConfig.js';
@@ -115,6 +119,8 @@ export const warpConfigGetterMap: Record = {
[WarpRouteIds.AppchainBaseUSDC]: getAppChainBaseUSDCWarpConfig,
[WarpRouteIds.BobaBsquaredSwellUBTC]: getBobaBsquaredSwellUBTCWarpConfig,
[WarpRouteIds.EthereumZircuitRe7LRT]: getEthereumZircuitRe7LRTWarpConfig,
+ [WarpRouteIds.EthereumSuperseedCBBTC]: getEthereumSuperseedCBBTCWarpConfig,
+ [WarpRouteIds.EthereumSuperseedUSDC]: getEthereumSuperseedUSDCWarpConfig,
[WarpRouteIds.EthereumFormUSDT]: getEthereumFormUSDTWarpConfig,
[WarpRouteIds.EthereumFormUSDC]: getEthereumFormUSDCWarpConfig,
[WarpRouteIds.EthereumSuperseedUSDT]: getEthereumSuperseedUSDTConfig,
diff --git a/typescript/infra/scripts/warp-routes/generate-warp-config.ts b/typescript/infra/scripts/warp-routes/generate-warp-config.ts
index 2445ca5fc2..c482f1e86b 100644
--- a/typescript/infra/scripts/warp-routes/generate-warp-config.ts
+++ b/typescript/infra/scripts/warp-routes/generate-warp-config.ts
@@ -24,7 +24,9 @@ async function main() {
const parsed = WarpRouteDeployConfigSchema.safeParse(warpConfig);
if (!parsed.success) {
- rootLogger.error(parsed.error.format());
+ rootLogger.error('Error parsing warp config:');
+ console.dir(warpConfig, { depth: null });
+ console.dir(parsed.error.format(), { depth: null });
return;
}
diff --git a/typescript/infra/src/config/warp.ts b/typescript/infra/src/config/warp.ts
index 0954bb71af..c91c7e13d1 100644
--- a/typescript/infra/src/config/warp.ts
+++ b/typescript/infra/src/config/warp.ts
@@ -1,8 +1,7 @@
-import { ChainMap, OwnableConfig, RouterConfig } from '@hyperlane-xyz/sdk';
-import { Address } from '@hyperlane-xyz/utils';
+import { OwnableConfig, RouterConfig } from '@hyperlane-xyz/sdk';
// Common collateral tokens to be used by warp route deployments.
-export const tokens: ChainMap> = {
+export const tokens = {
ethereum: {
amphrETH: '0x5fD13359Ba15A84B76f7F87568309040176167cd',
apxETH: '0x9ba021b0a9b958b5e75ce9f6dff97c7ee52cb3e6',
From 9048e2b3f41fbc8e73887d77bfb83cc7bb229922 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Thu, 23 Jan 2025 10:43:16 -0600
Subject: [PATCH 3/6] Version Packages (#5195)
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.
# Releases
## @hyperlane-xyz/core@5.10.0
### Minor Changes
- db8c09011: Add ZKSync support and restructure build artifacts:
- Add ZKSync compilation support
- Restructure typechain directory location to core-utils/typechain
- Add ZKSync-specific artifact generation and exports
- Update build process to handle both standard and ZKSync artifacts
- Add new exports for ZKSync build artifacts and contract types
### Patch Changes
- 11cf66c5e: Export empty zksync buildArtifact to satisfy package.json
exports
- @hyperlane-xyz/utils@8.3.0
## @hyperlane-xyz/cli@8.3.0
### Minor Changes
- 228f7c3d1: Fix issue where warp deploy artifacts did not include
correct symbols.
### Patch Changes
- Updated dependencies [7546c0181]
- Updated dependencies [49856fbb9]
- @hyperlane-xyz/sdk@8.3.0
- @hyperlane-xyz/utils@8.3.0
## @hyperlane-xyz/sdk@8.3.0
### Minor Changes
- 7546c0181: Deploy to trumpchain.
- 49856fbb9: Deploy to flametestnet, sonicblaze. Remove support for
sonictestnet.
### Patch Changes
- Updated dependencies [db8c09011]
- Updated dependencies [11cf66c5e]
- @hyperlane-xyz/core@5.10.0
- @hyperlane-xyz/utils@8.3.0
## @hyperlane-xyz/widgets@8.3.0
### Minor Changes
- 25df8a35f: Refresh Icon and Tooltip class Name
### Patch Changes
- Updated dependencies [7546c0181]
- Updated dependencies [49856fbb9]
- @hyperlane-xyz/sdk@8.3.0
- @hyperlane-xyz/utils@8.3.0
## @hyperlane-xyz/helloworld@8.3.0
### Patch Changes
- Updated dependencies [db8c09011]
- Updated dependencies [7546c0181]
- Updated dependencies [11cf66c5e]
- Updated dependencies [49856fbb9]
- @hyperlane-xyz/core@5.10.0
- @hyperlane-xyz/sdk@8.3.0
## @hyperlane-xyz/utils@8.3.0
## @hyperlane-xyz/infra@8.3.0
### Minor Changes
- fed42c325: updated zero ETH warp route config getter
- 31c89a3c1: Add support for Artela config
### Patch Changes
- Updated dependencies [7546c0181]
- Updated dependencies [49856fbb9]
- @hyperlane-xyz/sdk@8.3.0
- @hyperlane-xyz/helloworld@8.3.0
- @hyperlane-xyz/utils@8.3.0
## @hyperlane-xyz/ccip-server@8.3.0
## @hyperlane-xyz/github-proxy@8.3.0
---------
Co-authored-by: github-actions[bot]
---
.changeset/chatty-starfishes-double.md | 11 ---------
.changeset/many-llamas-count.md | 5 ----
.changeset/nervous-dragons-applaud.md | 5 ----
.changeset/proud-waves-camp.md | 5 ----
.changeset/quick-walls-deny.md | 5 ----
.changeset/tender-feet-sit.md | 5 ----
.changeset/thirty-apricots-eat.md | 5 ----
.changeset/weak-dingos-thank.md | 5 ----
solidity/CHANGELOG.md | 17 +++++++++++++
solidity/contracts/PackageVersioned.sol | 2 +-
solidity/package.json | 4 ++--
typescript/ccip-server/CHANGELOG.md | 2 ++
typescript/ccip-server/package.json | 2 +-
typescript/cli/CHANGELOG.md | 13 ++++++++++
typescript/cli/package.json | 6 ++---
typescript/cli/src/version.ts | 2 +-
typescript/github-proxy/CHANGELOG.md | 2 ++
typescript/github-proxy/package.json | 2 +-
typescript/helloworld/CHANGELOG.md | 11 +++++++++
typescript/helloworld/package.json | 6 ++---
typescript/infra/CHANGELOG.md | 15 ++++++++++++
typescript/infra/package.json | 8 +++----
typescript/sdk/CHANGELOG.md | 14 +++++++++++
typescript/sdk/package.json | 6 ++---
typescript/utils/CHANGELOG.md | 2 ++
typescript/utils/package.json | 2 +-
typescript/widgets/CHANGELOG.md | 13 ++++++++++
typescript/widgets/package.json | 6 ++---
yarn.lock | 32 ++++++++++++-------------
29 files changed, 128 insertions(+), 85 deletions(-)
delete mode 100644 .changeset/chatty-starfishes-double.md
delete mode 100644 .changeset/many-llamas-count.md
delete mode 100644 .changeset/nervous-dragons-applaud.md
delete mode 100644 .changeset/proud-waves-camp.md
delete mode 100644 .changeset/quick-walls-deny.md
delete mode 100644 .changeset/tender-feet-sit.md
delete mode 100644 .changeset/thirty-apricots-eat.md
delete mode 100644 .changeset/weak-dingos-thank.md
diff --git a/.changeset/chatty-starfishes-double.md b/.changeset/chatty-starfishes-double.md
deleted file mode 100644
index 2e51bb44da..0000000000
--- a/.changeset/chatty-starfishes-double.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-'@hyperlane-xyz/core': minor
----
-
-Add ZKSync support and restructure build artifacts:
-
-- Add ZKSync compilation support
-- Restructure typechain directory location to core-utils/typechain
-- Add ZKSync-specific artifact generation and exports
-- Update build process to handle both standard and ZKSync artifacts
-- Add new exports for ZKSync build artifacts and contract types
diff --git a/.changeset/many-llamas-count.md b/.changeset/many-llamas-count.md
deleted file mode 100644
index 1353d335d1..0000000000
--- a/.changeset/many-llamas-count.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@hyperlane-xyz/infra': minor
----
-
-updated zero ETH warp route config getter
diff --git a/.changeset/nervous-dragons-applaud.md b/.changeset/nervous-dragons-applaud.md
deleted file mode 100644
index 64b5115fd2..0000000000
--- a/.changeset/nervous-dragons-applaud.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@hyperlane-xyz/widgets': minor
----
-
-Refresh Icon and Tooltip class Name
diff --git a/.changeset/proud-waves-camp.md b/.changeset/proud-waves-camp.md
deleted file mode 100644
index a7cab11392..0000000000
--- a/.changeset/proud-waves-camp.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@hyperlane-xyz/cli': minor
----
-
-Fix issue where warp deploy artifacts did not include correct symbols.
diff --git a/.changeset/quick-walls-deny.md b/.changeset/quick-walls-deny.md
deleted file mode 100644
index accf9d3383..0000000000
--- a/.changeset/quick-walls-deny.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@hyperlane-xyz/sdk': minor
----
-
-Deploy to trumpchain.
diff --git a/.changeset/tender-feet-sit.md b/.changeset/tender-feet-sit.md
deleted file mode 100644
index 27829be010..0000000000
--- a/.changeset/tender-feet-sit.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@hyperlane-xyz/core': patch
----
-
-Export empty zksync buildArtifact to satisfy package.json exports
diff --git a/.changeset/thirty-apricots-eat.md b/.changeset/thirty-apricots-eat.md
deleted file mode 100644
index 2d48e803cc..0000000000
--- a/.changeset/thirty-apricots-eat.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@hyperlane-xyz/infra': minor
----
-
-Add support for Artela config
diff --git a/.changeset/weak-dingos-thank.md b/.changeset/weak-dingos-thank.md
deleted file mode 100644
index ab230544bd..0000000000
--- a/.changeset/weak-dingos-thank.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@hyperlane-xyz/sdk': minor
----
-
-Deploy to flametestnet, sonicblaze. Remove support for sonictestnet.
diff --git a/solidity/CHANGELOG.md b/solidity/CHANGELOG.md
index 6c62444946..4ae0dc5371 100644
--- a/solidity/CHANGELOG.md
+++ b/solidity/CHANGELOG.md
@@ -1,5 +1,22 @@
# @hyperlane-xyz/core
+## 5.10.0
+
+### Minor Changes
+
+- db8c09011: Add ZKSync support and restructure build artifacts:
+
+ - Add ZKSync compilation support
+ - Restructure typechain directory location to core-utils/typechain
+ - Add ZKSync-specific artifact generation and exports
+ - Update build process to handle both standard and ZKSync artifacts
+ - Add new exports for ZKSync build artifacts and contract types
+
+### Patch Changes
+
+- 11cf66c5e: Export empty zksync buildArtifact to satisfy package.json exports
+ - @hyperlane-xyz/utils@8.3.0
+
## 5.9.2
### Patch Changes
diff --git a/solidity/contracts/PackageVersioned.sol b/solidity/contracts/PackageVersioned.sol
index 9125a85e57..6c5fb707b4 100644
--- a/solidity/contracts/PackageVersioned.sol
+++ b/solidity/contracts/PackageVersioned.sol
@@ -7,5 +7,5 @@ pragma solidity >=0.6.11;
**/
abstract contract PackageVersioned {
// GENERATED CODE - DO NOT EDIT
- string public constant PACKAGE_VERSION = "5.9.2";
+ string public constant PACKAGE_VERSION = "5.10.0";
}
diff --git a/solidity/package.json b/solidity/package.json
index 57d80eaa81..d40dfbe23d 100644
--- a/solidity/package.json
+++ b/solidity/package.json
@@ -1,11 +1,11 @@
{
"name": "@hyperlane-xyz/core",
"description": "Core solidity contracts for Hyperlane",
- "version": "5.9.2",
+ "version": "5.10.0",
"dependencies": {
"@arbitrum/nitro-contracts": "^1.2.1",
"@eth-optimism/contracts": "^0.6.0",
- "@hyperlane-xyz/utils": "8.2.0",
+ "@hyperlane-xyz/utils": "8.3.0",
"@layerzerolabs/lz-evm-oapp-v2": "2.0.2",
"@openzeppelin/contracts": "^4.9.3",
"@openzeppelin/contracts-upgradeable": "^4.9.3",
diff --git a/typescript/ccip-server/CHANGELOG.md b/typescript/ccip-server/CHANGELOG.md
index cc7e66f9fc..0ebc68820a 100644
--- a/typescript/ccip-server/CHANGELOG.md
+++ b/typescript/ccip-server/CHANGELOG.md
@@ -1,5 +1,7 @@
# @hyperlane-xyz/ccip-server
+## 8.3.0
+
## 8.2.0
## 8.1.0
diff --git a/typescript/ccip-server/package.json b/typescript/ccip-server/package.json
index 696d522892..eb365fe11f 100644
--- a/typescript/ccip-server/package.json
+++ b/typescript/ccip-server/package.json
@@ -1,6 +1,6 @@
{
"name": "@hyperlane-xyz/ccip-server",
- "version": "8.2.0",
+ "version": "8.3.0",
"description": "CCIP server",
"typings": "dist/index.d.ts",
"typedocMain": "src/index.ts",
diff --git a/typescript/cli/CHANGELOG.md b/typescript/cli/CHANGELOG.md
index d2ca5e2242..770b48ee69 100644
--- a/typescript/cli/CHANGELOG.md
+++ b/typescript/cli/CHANGELOG.md
@@ -1,5 +1,18 @@
# @hyperlane-xyz/cli
+## 8.3.0
+
+### Minor Changes
+
+- 228f7c3d1: Fix issue where warp deploy artifacts did not include correct symbols.
+
+### Patch Changes
+
+- Updated dependencies [7546c0181]
+- Updated dependencies [49856fbb9]
+ - @hyperlane-xyz/sdk@8.3.0
+ - @hyperlane-xyz/utils@8.3.0
+
## 8.2.0
### Minor Changes
diff --git a/typescript/cli/package.json b/typescript/cli/package.json
index 1c9b87d5c6..8d27e3b2fb 100644
--- a/typescript/cli/package.json
+++ b/typescript/cli/package.json
@@ -1,13 +1,13 @@
{
"name": "@hyperlane-xyz/cli",
- "version": "8.2.0",
+ "version": "8.3.0",
"description": "A command-line utility for common Hyperlane operations",
"dependencies": {
"@aws-sdk/client-kms": "^3.577.0",
"@aws-sdk/client-s3": "^3.577.0",
"@hyperlane-xyz/registry": "6.18.0",
- "@hyperlane-xyz/sdk": "8.2.0",
- "@hyperlane-xyz/utils": "8.2.0",
+ "@hyperlane-xyz/sdk": "8.3.0",
+ "@hyperlane-xyz/utils": "8.3.0",
"@inquirer/core": "9.0.10",
"@inquirer/figures": "1.0.5",
"@inquirer/prompts": "3.3.2",
diff --git a/typescript/cli/src/version.ts b/typescript/cli/src/version.ts
index 047e32b00a..29ec3c951a 100644
--- a/typescript/cli/src/version.ts
+++ b/typescript/cli/src/version.ts
@@ -1 +1 @@
-export const VERSION = '8.2.0';
+export const VERSION = '8.3.0';
diff --git a/typescript/github-proxy/CHANGELOG.md b/typescript/github-proxy/CHANGELOG.md
index 541c2f54f7..f8301f73b1 100644
--- a/typescript/github-proxy/CHANGELOG.md
+++ b/typescript/github-proxy/CHANGELOG.md
@@ -1,5 +1,7 @@
# @hyperlane-xyz/github-proxy
+## 8.3.0
+
## 8.2.0
## 8.1.0
diff --git a/typescript/github-proxy/package.json b/typescript/github-proxy/package.json
index f729b28c4c..b3b2884f18 100644
--- a/typescript/github-proxy/package.json
+++ b/typescript/github-proxy/package.json
@@ -1,7 +1,7 @@
{
"name": "@hyperlane-xyz/github-proxy",
"description": "Github proxy that adds the API key to requests",
- "version": "8.2.0",
+ "version": "8.3.0",
"private": true,
"scripts": {
"deploy": "wrangler deploy",
diff --git a/typescript/helloworld/CHANGELOG.md b/typescript/helloworld/CHANGELOG.md
index b062c87d2f..9ff643af30 100644
--- a/typescript/helloworld/CHANGELOG.md
+++ b/typescript/helloworld/CHANGELOG.md
@@ -1,5 +1,16 @@
# @hyperlane-xyz/helloworld
+## 8.3.0
+
+### Patch Changes
+
+- Updated dependencies [db8c09011]
+- Updated dependencies [7546c0181]
+- Updated dependencies [11cf66c5e]
+- Updated dependencies [49856fbb9]
+ - @hyperlane-xyz/core@5.10.0
+ - @hyperlane-xyz/sdk@8.3.0
+
## 8.2.0
### Patch Changes
diff --git a/typescript/helloworld/package.json b/typescript/helloworld/package.json
index f3863608a0..7725a94bab 100644
--- a/typescript/helloworld/package.json
+++ b/typescript/helloworld/package.json
@@ -1,11 +1,11 @@
{
"name": "@hyperlane-xyz/helloworld",
"description": "A basic skeleton of an Hyperlane app",
- "version": "8.2.0",
+ "version": "8.3.0",
"dependencies": {
- "@hyperlane-xyz/core": "5.9.2",
+ "@hyperlane-xyz/core": "5.10.0",
"@hyperlane-xyz/registry": "6.18.0",
- "@hyperlane-xyz/sdk": "8.2.0",
+ "@hyperlane-xyz/sdk": "8.3.0",
"@openzeppelin/contracts-upgradeable": "^4.9.3",
"ethers": "^5.7.2"
},
diff --git a/typescript/infra/CHANGELOG.md b/typescript/infra/CHANGELOG.md
index a7810b698b..694d8750e1 100644
--- a/typescript/infra/CHANGELOG.md
+++ b/typescript/infra/CHANGELOG.md
@@ -1,5 +1,20 @@
# @hyperlane-xyz/infra
+## 8.3.0
+
+### Minor Changes
+
+- fed42c325: updated zero ETH warp route config getter
+- 31c89a3c1: Add support for Artela config
+
+### Patch Changes
+
+- Updated dependencies [7546c0181]
+- Updated dependencies [49856fbb9]
+ - @hyperlane-xyz/sdk@8.3.0
+ - @hyperlane-xyz/helloworld@8.3.0
+ - @hyperlane-xyz/utils@8.3.0
+
## 8.2.0
### Minor Changes
diff --git a/typescript/infra/package.json b/typescript/infra/package.json
index e48a843230..eec556fd90 100644
--- a/typescript/infra/package.json
+++ b/typescript/infra/package.json
@@ -1,7 +1,7 @@
{
"name": "@hyperlane-xyz/infra",
"description": "Infrastructure utilities for the Hyperlane Network",
- "version": "8.2.0",
+ "version": "8.3.0",
"dependencies": {
"@arbitrum/sdk": "^4.0.0",
"@aws-sdk/client-iam": "^3.74.0",
@@ -13,10 +13,10 @@
"@ethersproject/hardware-wallets": "^5.7.0",
"@ethersproject/providers": "*",
"@google-cloud/secret-manager": "^5.5.0",
- "@hyperlane-xyz/helloworld": "8.2.0",
+ "@hyperlane-xyz/helloworld": "8.3.0",
"@hyperlane-xyz/registry": "6.18.0",
- "@hyperlane-xyz/sdk": "8.2.0",
- "@hyperlane-xyz/utils": "8.2.0",
+ "@hyperlane-xyz/sdk": "8.3.0",
+ "@hyperlane-xyz/utils": "8.3.0",
"@inquirer/prompts": "3.3.2",
"@nomiclabs/hardhat-etherscan": "^3.0.3",
"@safe-global/api-kit": "1.3.0",
diff --git a/typescript/sdk/CHANGELOG.md b/typescript/sdk/CHANGELOG.md
index 70e744bc74..af432bdb76 100644
--- a/typescript/sdk/CHANGELOG.md
+++ b/typescript/sdk/CHANGELOG.md
@@ -1,5 +1,19 @@
# @hyperlane-xyz/sdk
+## 8.3.0
+
+### Minor Changes
+
+- 7546c0181: Deploy to trumpchain.
+- 49856fbb9: Deploy to flametestnet, sonicblaze. Remove support for sonictestnet.
+
+### Patch Changes
+
+- Updated dependencies [db8c09011]
+- Updated dependencies [11cf66c5e]
+ - @hyperlane-xyz/core@5.10.0
+ - @hyperlane-xyz/utils@8.3.0
+
## 8.2.0
### Minor Changes
diff --git a/typescript/sdk/package.json b/typescript/sdk/package.json
index aef1b75a55..3a3c2342fc 100644
--- a/typescript/sdk/package.json
+++ b/typescript/sdk/package.json
@@ -1,15 +1,15 @@
{
"name": "@hyperlane-xyz/sdk",
"description": "The official SDK for the Hyperlane Network",
- "version": "8.2.0",
+ "version": "8.3.0",
"dependencies": {
"@arbitrum/sdk": "^4.0.0",
"@aws-sdk/client-s3": "^3.577.0",
"@chain-registry/types": "^0.50.14",
"@cosmjs/cosmwasm-stargate": "^0.32.4",
"@cosmjs/stargate": "^0.32.4",
- "@hyperlane-xyz/core": "5.9.2",
- "@hyperlane-xyz/utils": "8.2.0",
+ "@hyperlane-xyz/core": "5.10.0",
+ "@hyperlane-xyz/utils": "8.3.0",
"@safe-global/api-kit": "1.3.0",
"@safe-global/protocol-kit": "1.3.0",
"@safe-global/safe-deployments": "1.37.23",
diff --git a/typescript/utils/CHANGELOG.md b/typescript/utils/CHANGELOG.md
index ecddf9e23e..ed5d194e9d 100644
--- a/typescript/utils/CHANGELOG.md
+++ b/typescript/utils/CHANGELOG.md
@@ -1,5 +1,7 @@
# @hyperlane-xyz/utils
+## 8.3.0
+
## 8.2.0
## 8.1.0
diff --git a/typescript/utils/package.json b/typescript/utils/package.json
index be8c55f665..7cf85eedae 100644
--- a/typescript/utils/package.json
+++ b/typescript/utils/package.json
@@ -1,7 +1,7 @@
{
"name": "@hyperlane-xyz/utils",
"description": "General utilities and types for the Hyperlane network",
- "version": "8.2.0",
+ "version": "8.3.0",
"dependencies": {
"@cosmjs/encoding": "^0.32.4",
"@solana/web3.js": "^1.95.4",
diff --git a/typescript/widgets/CHANGELOG.md b/typescript/widgets/CHANGELOG.md
index 86f2f30c81..35cb068377 100644
--- a/typescript/widgets/CHANGELOG.md
+++ b/typescript/widgets/CHANGELOG.md
@@ -1,5 +1,18 @@
# @hyperlane-xyz/widgets
+## 8.3.0
+
+### Minor Changes
+
+- 25df8a35f: Refresh Icon and Tooltip class Name
+
+### Patch Changes
+
+- Updated dependencies [7546c0181]
+- Updated dependencies [49856fbb9]
+ - @hyperlane-xyz/sdk@8.3.0
+ - @hyperlane-xyz/utils@8.3.0
+
## 8.2.0
### Patch Changes
diff --git a/typescript/widgets/package.json b/typescript/widgets/package.json
index ab1c0ed5fd..e96b6c6faa 100644
--- a/typescript/widgets/package.json
+++ b/typescript/widgets/package.json
@@ -1,7 +1,7 @@
{
"name": "@hyperlane-xyz/widgets",
"description": "Common react components for Hyperlane projects",
- "version": "8.2.0",
+ "version": "8.3.0",
"peerDependencies": {
"react": "^18",
"react-dom": "^18"
@@ -9,8 +9,8 @@
"dependencies": {
"@cosmos-kit/react": "^2.18.0",
"@headlessui/react": "^2.1.8",
- "@hyperlane-xyz/sdk": "8.2.0",
- "@hyperlane-xyz/utils": "8.2.0",
+ "@hyperlane-xyz/sdk": "8.3.0",
+ "@hyperlane-xyz/utils": "8.3.0",
"@interchain-ui/react": "^1.23.28",
"@rainbow-me/rainbowkit": "^2.2.0",
"@solana/wallet-adapter-react": "^0.15.32",
diff --git a/yarn.lock b/yarn.lock
index 3e1a9faa10..db73d1093b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -7338,8 +7338,8 @@ __metadata:
"@ethersproject/abi": "npm:*"
"@ethersproject/providers": "npm:*"
"@hyperlane-xyz/registry": "npm:6.18.0"
- "@hyperlane-xyz/sdk": "npm:8.2.0"
- "@hyperlane-xyz/utils": "npm:8.2.0"
+ "@hyperlane-xyz/sdk": "npm:8.3.0"
+ "@hyperlane-xyz/utils": "npm:8.3.0"
"@inquirer/core": "npm:9.0.10"
"@inquirer/figures": "npm:1.0.5"
"@inquirer/prompts": "npm:3.3.2"
@@ -7378,13 +7378,13 @@ __metadata:
languageName: unknown
linkType: soft
-"@hyperlane-xyz/core@npm:5.9.2, @hyperlane-xyz/core@workspace:solidity":
+"@hyperlane-xyz/core@npm:5.10.0, @hyperlane-xyz/core@workspace:solidity":
version: 0.0.0-use.local
resolution: "@hyperlane-xyz/core@workspace:solidity"
dependencies:
"@arbitrum/nitro-contracts": "npm:^1.2.1"
"@eth-optimism/contracts": "npm:^0.6.0"
- "@hyperlane-xyz/utils": "npm:8.2.0"
+ "@hyperlane-xyz/utils": "npm:8.3.0"
"@layerzerolabs/lz-evm-oapp-v2": "npm:2.0.2"
"@layerzerolabs/solidity-examples": "npm:^1.1.0"
"@matterlabs/hardhat-zksync-solc": "npm:^1.2.4"
@@ -7437,14 +7437,14 @@ __metadata:
languageName: unknown
linkType: soft
-"@hyperlane-xyz/helloworld@npm:8.2.0, @hyperlane-xyz/helloworld@workspace:typescript/helloworld":
+"@hyperlane-xyz/helloworld@npm:8.3.0, @hyperlane-xyz/helloworld@workspace:typescript/helloworld":
version: 0.0.0-use.local
resolution: "@hyperlane-xyz/helloworld@workspace:typescript/helloworld"
dependencies:
"@eslint/js": "npm:^9.15.0"
- "@hyperlane-xyz/core": "npm:5.9.2"
+ "@hyperlane-xyz/core": "npm:5.10.0"
"@hyperlane-xyz/registry": "npm:6.18.0"
- "@hyperlane-xyz/sdk": "npm:8.2.0"
+ "@hyperlane-xyz/sdk": "npm:8.3.0"
"@nomiclabs/hardhat-ethers": "npm:^2.2.3"
"@nomiclabs/hardhat-waffle": "npm:^2.0.6"
"@openzeppelin/contracts-upgradeable": "npm:^4.9.3"
@@ -7493,10 +7493,10 @@ __metadata:
"@ethersproject/hardware-wallets": "npm:^5.7.0"
"@ethersproject/providers": "npm:*"
"@google-cloud/secret-manager": "npm:^5.5.0"
- "@hyperlane-xyz/helloworld": "npm:8.2.0"
+ "@hyperlane-xyz/helloworld": "npm:8.3.0"
"@hyperlane-xyz/registry": "npm:6.18.0"
- "@hyperlane-xyz/sdk": "npm:8.2.0"
- "@hyperlane-xyz/utils": "npm:8.2.0"
+ "@hyperlane-xyz/sdk": "npm:8.3.0"
+ "@hyperlane-xyz/utils": "npm:8.3.0"
"@inquirer/prompts": "npm:3.3.2"
"@nomiclabs/hardhat-ethers": "npm:^2.2.3"
"@nomiclabs/hardhat-etherscan": "npm:^3.0.3"
@@ -7566,7 +7566,7 @@ __metadata:
languageName: node
linkType: hard
-"@hyperlane-xyz/sdk@npm:8.2.0, @hyperlane-xyz/sdk@workspace:typescript/sdk":
+"@hyperlane-xyz/sdk@npm:8.3.0, @hyperlane-xyz/sdk@workspace:typescript/sdk":
version: 0.0.0-use.local
resolution: "@hyperlane-xyz/sdk@workspace:typescript/sdk"
dependencies:
@@ -7576,8 +7576,8 @@ __metadata:
"@cosmjs/cosmwasm-stargate": "npm:^0.32.4"
"@cosmjs/stargate": "npm:^0.32.4"
"@eslint/js": "npm:^9.15.0"
- "@hyperlane-xyz/core": "npm:5.9.2"
- "@hyperlane-xyz/utils": "npm:8.2.0"
+ "@hyperlane-xyz/core": "npm:5.10.0"
+ "@hyperlane-xyz/utils": "npm:8.3.0"
"@nomiclabs/hardhat-ethers": "npm:^2.2.3"
"@nomiclabs/hardhat-waffle": "npm:^2.0.6"
"@safe-global/api-kit": "npm:1.3.0"
@@ -7620,7 +7620,7 @@ __metadata:
languageName: unknown
linkType: soft
-"@hyperlane-xyz/utils@npm:8.2.0, @hyperlane-xyz/utils@workspace:typescript/utils":
+"@hyperlane-xyz/utils@npm:8.3.0, @hyperlane-xyz/utils@workspace:typescript/utils":
version: 0.0.0-use.local
resolution: "@hyperlane-xyz/utils@workspace:typescript/utils"
dependencies:
@@ -7662,8 +7662,8 @@ __metadata:
"@eslint/js": "npm:^9.15.0"
"@headlessui/react": "npm:^2.1.8"
"@hyperlane-xyz/registry": "npm:6.18.0"
- "@hyperlane-xyz/sdk": "npm:8.2.0"
- "@hyperlane-xyz/utils": "npm:8.2.0"
+ "@hyperlane-xyz/sdk": "npm:8.3.0"
+ "@hyperlane-xyz/utils": "npm:8.3.0"
"@interchain-ui/react": "npm:^1.23.28"
"@rainbow-me/rainbowkit": "npm:^2.2.0"
"@solana/wallet-adapter-react": "npm:^0.15.32"
From 6b58f2f381b1cec26d7afc734661343670bb9b66 Mon Sep 17 00:00:00 2001
From: Paul Balaji <10051819+paulbalaji@users.noreply.github.com>
Date: Thu, 23 Jan 2025 18:20:12 +0000
Subject: [PATCH 4/6] revert: "fix: zksync default build artifact" (#5274)
Reverts hyperlane-xyz/hyperlane-monorepo#5269
---
solidity/core-utils/zksync/buildArtifact.ts | 1 -
1 file changed, 1 deletion(-)
delete mode 100644 solidity/core-utils/zksync/buildArtifact.ts
diff --git a/solidity/core-utils/zksync/buildArtifact.ts b/solidity/core-utils/zksync/buildArtifact.ts
deleted file mode 100644
index cc5a00ac95..0000000000
--- a/solidity/core-utils/zksync/buildArtifact.ts
+++ /dev/null
@@ -1 +0,0 @@
-export const buildArtifact: any = {};
From 4176df1b446c5daa876204b22b87c9da320aad9d Mon Sep 17 00:00:00 2001
From: Paul Balaji <10051819+paulbalaji@users.noreply.github.com>
Date: Thu, 23 Jan 2025 20:28:09 +0000
Subject: [PATCH 5/6] revert: "feat: zksync support for core solidity package"
(#5275)
Reverts hyperlane-xyz/hyperlane-monorepo#5205
---
solidity/.gitignore | 7 -
solidity/core-utils/index.ts | 2 -
solidity/core-utils/zksync/index.ts | 103 ------
solidity/exportBuildArtifact.sh | 39 ---
solidity/generate-artifact-exports.mjs | 60 ----
solidity/hardhat.config.cts | 2 +-
solidity/package.json | 15 +-
solidity/test/lib/mailboxes.ts | 4 +-
solidity/test/merkle.test.ts | 2 +-
solidity/test/message.test.ts | 6 +-
solidity/test/mockMailbox.test.ts | 5 +-
solidity/test/testrecipient.test.ts | 2 +-
solidity/tsconfig.json | 4 +-
solidity/zk-hardhat.config.cts | 46 ---
yarn.lock | 422 +------------------------
15 files changed, 25 insertions(+), 694 deletions(-)
delete mode 100644 solidity/core-utils/index.ts
delete mode 100644 solidity/core-utils/zksync/index.ts
delete mode 100755 solidity/generate-artifact-exports.mjs
delete mode 100644 solidity/zk-hardhat.config.cts
diff --git a/solidity/.gitignore b/solidity/.gitignore
index d7ca1005d0..6f01b8e770 100644
--- a/solidity/.gitignore
+++ b/solidity/.gitignore
@@ -15,10 +15,3 @@ docs
flattened/
buildArtifact.json
fixtures/
-# ZKSync
-artifacts-zk
-cache-zk
-core-utils/zksync/artifacts/output
-.zksolc-libraries-cache/
-typechain-types/
-typechain/
\ No newline at end of file
diff --git a/solidity/core-utils/index.ts b/solidity/core-utils/index.ts
deleted file mode 100644
index 1fbeb99f89..0000000000
--- a/solidity/core-utils/index.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export * from './typechain/index.js';
-export * from './zksync/index.js';
diff --git a/solidity/core-utils/zksync/index.ts b/solidity/core-utils/zksync/index.ts
deleted file mode 100644
index ece1dd43c5..0000000000
--- a/solidity/core-utils/zksync/index.ts
+++ /dev/null
@@ -1,103 +0,0 @@
-import { promises as fsPromises } from 'fs';
-import path, { join } from 'path';
-import { fileURLToPath } from 'url';
-
-/**
- * @dev Represents a ZkSync artifact.
- */
-export type ZKSyncArtifact = {
- contractName: string;
- sourceName: string;
- abi: any;
- bytecode: string;
- deployedBytecode: string;
- factoryDeps?: Record;
-};
-
-/**
- * @dev A mapping of artifact names to their corresponding ZkSync artifacts.
- */
-export type ArtifactMap = {
- [key: string]: ZKSyncArtifact;
-};
-
-// Get the resolved path to the current file
-const currentFilePath = fileURLToPath(import.meta.url);
-const currentDirectory = path.dirname(currentFilePath);
-
-/**
- * @dev Reads artifact files from the specified directory.
- * @param directory The directory to read artifact files from.
- * @return An array of artifact file names that end with '.json'.
- */
-async function getArtifactFiles(directory: string): Promise {
- return fsPromises
- .readdir(directory)
- .then((files) => files.filter((file) => file.endsWith('.json')));
-}
-
-/**
- * @dev Exports the list of artifact names without the .json extension.
- * @return An array of artifact names without the .json extension.
- */
-export async function getZKSyncArtifactNames(): Promise {
- return getArtifactFiles(join(currentDirectory, 'artifacts')).then((files) =>
- files.map((file) => file.replace('.json', '')),
- );
-}
-
-/**
- * @dev Checks if a ZkSync artifact exists by its name.
- * @param name The name of the artifact to check.
- * @return True if the artifact exists, false otherwise.
- */
-export async function artifactExists(name: string): Promise {
- const artifactNames = await getZKSyncArtifactNames();
- return artifactNames.includes(name);
-}
-
-/**
- * @dev Loads a ZkSync artifact by its name.
- * @param name The name of the artifact to load.
- * @return The loaded ZKSyncArtifact or undefined if it cannot be loaded.
- */
-export async function loadZKSyncArtifact(
- name: string,
-): Promise {
- try {
- const artifactPath = join(currentDirectory, 'artifacts', `${name}.json`);
- const artifactContent = await fsPromises.readFile(artifactPath, 'utf-8');
- return JSON.parse(artifactContent);
- } catch (error) {
- console.error(`Error loading artifact: ${name}`, error);
- return undefined;
- }
-}
-
-/**
- * @dev Loads all ZkSync artifacts into a map.
- * @return A map of artifact names to their corresponding ZkSync artifacts.
- */
-export async function loadAllZKSyncArtifacts(): Promise {
- const zkSyncArtifactMap: ArtifactMap = {};
- const zksyncArtifactNames = await getZKSyncArtifactNames();
- for (const artifactName of zksyncArtifactNames) {
- const artifact = await loadZKSyncArtifact(artifactName);
- if (artifact) {
- zkSyncArtifactMap[artifactName] = artifact;
- }
- }
-
- return zkSyncArtifactMap;
-}
-
-/**
- * @dev Retrieves a specific ZkSync artifact by its file name.
- * @param name The name of the artifact to retrieve.
- * @return The loaded ZkSyncArtifact or undefined if it cannot be loaded.
- */
-export async function getZKSyncArtifactByName(
- name: string,
-): Promise {
- return loadZKSyncArtifact(name);
-}
diff --git a/solidity/exportBuildArtifact.sh b/solidity/exportBuildArtifact.sh
index c951281911..e6d5d503b8 100755
--- a/solidity/exportBuildArtifact.sh
+++ b/solidity/exportBuildArtifact.sh
@@ -37,42 +37,3 @@ else
echo 'Failed to process build artifact with jq'
exit 1
fi
-
-# ZKSYNC
-
-if [ "$ZKSYNC" = "true" ]; then
- # Define the artifacts directory
- artifactsDir="./artifacts-zk/build-info"
- # Define the output file
- outputFileJson="./dist/zksync/buildArtifact.json"
- outputFileJs="./dist/zksync/buildArtifact.js"
- outputFileTsd="./dist/zksync/buildArtifact.d.ts"
-
- # log that we're in the script
- echo 'Finding and processing ZKSync hardhat build artifact...'
-
- # Find most recently modified JSON build artifact
- if [ "$(uname)" = "Darwin" ]; then
- # for local flow
- jsonFiles=$(find "$artifactsDir" -type f -name "*.json" -exec stat -f "%m %N" {} \; | sort -rn | head -n 1 | cut -d' ' -f2-)
- else
- # for CI flow
- jsonFiles=$(find "$artifactsDir" -type f -name "*.json" -exec stat -c "%Y %n" {} \; | sort -rn | head -n 1 | cut -d' ' -f2-)
- fi
-
- if [ ! -f "$jsonFiles" ]; then
- echo 'Failed to find ZKSync build artifact'
- exit 1
- fi
-
- # Extract required keys and write to outputFile
- if jq -c '{input, solcLongVersion, zk_version: .output.zk_version}' "$jsonFiles" >"$outputFileJson"; then
- echo "export const buildArtifact = " >"$outputFileJs"
- cat "$outputFileJson" >>"$outputFileJs"
- echo "export const buildArtifact: any" >"$outputFileTsd"
- echo 'Finished processing ZKSync build artifact.'
- else
- echo 'Failed to process ZKSync build artifact with jq'
- exit 1
- fi
-fi
\ No newline at end of file
diff --git a/solidity/generate-artifact-exports.mjs b/solidity/generate-artifact-exports.mjs
deleted file mode 100755
index 97ce7beaa0..0000000000
--- a/solidity/generate-artifact-exports.mjs
+++ /dev/null
@@ -1,60 +0,0 @@
-import { promises as fsPromises } from 'fs';
-import { basename, dirname, join } from 'path';
-import { glob } from 'typechain';
-import { fileURLToPath } from 'url';
-
-const cwd = process.cwd();
-
-/**
- * @dev Only includes primary JSON artifacts & excludes debug files and build-info directory
- */
-const zksyncArtifacts = glob(cwd, [
- `!./artifacts-zk/!(build-info)/**/*.dbg.json`,
- `./artifacts-zk/!(build-info)/**/+([a-zA-Z0-9_]).json`,
-]);
-
-const __filename = fileURLToPath(import.meta.url);
-const __dirname = dirname(__filename);
-
-const srcOutputDir = join(__dirname, 'core-utils/zksync/artifacts');
-
-// Ensure output directory exists
-await fsPromises.mkdir(srcOutputDir, { recursive: true });
-
-/**
- * @dev Processes a single artifact file
- */
-async function processArtifactFile(file) {
- const fileName = `${basename(file, '.json')}`;
- const outputFile = join(srcOutputDir, `${fileName}.json`);
-
- // Check if file already exists
- const fileExists = await fsPromises
- .access(outputFile)
- .then(() => true)
- .catch(() => false);
-
- if (fileExists) {
- // File already exists, skipping...
- // NOTE: Hardhat compiler produces duplicate artifacts when
- // shared interfaces/libraries are used across different contracts
- // This is expected behavior and we only need one copy of each artifact
- return;
- }
-
- const fileContent = await fsPromises.readFile(file, { encoding: 'utf-8' });
- await fsPromises.writeFile(outputFile, fileContent);
-}
-
-/**
- * @dev Reads each artifact file and writes it to srcOutputDir concurrently
- */
-await Promise.all(
- zksyncArtifacts.map(async (file) => {
- try {
- await processArtifactFile(file);
- } catch (error) {
- console.error(`Error processing file ${file}:`, error);
- }
- }),
-);
diff --git a/solidity/hardhat.config.cts b/solidity/hardhat.config.cts
index 6fd31c3dc4..6d64d971e6 100644
--- a/solidity/hardhat.config.cts
+++ b/solidity/hardhat.config.cts
@@ -22,7 +22,7 @@ module.exports = {
currency: 'USD',
},
typechain: {
- outDir: './core-utils/typechain',
+ outDir: './types',
target: 'ethers-v5',
alwaysGenerateOverloads: true,
node16Modules: true,
diff --git a/solidity/package.json b/solidity/package.json
index d40dfbe23d..20a177a505 100644
--- a/solidity/package.json
+++ b/solidity/package.json
@@ -13,7 +13,6 @@
},
"devDependencies": {
"@layerzerolabs/solidity-examples": "^1.1.0",
- "@matterlabs/hardhat-zksync-solc": "^1.2.4",
"@nomiclabs/hardhat-ethers": "^2.2.3",
"@nomiclabs/hardhat-waffle": "^2.0.6",
"@typechain/ethers-v5": "^11.1.2",
@@ -36,8 +35,7 @@
"ts-node": "^10.8.0",
"tsx": "^4.19.1",
"typechain": "patch:typechain@npm%3A8.3.2#~/.yarn/patches/typechain-npm-8.3.2-b02e27439e.patch",
- "typescript": "5.3.3",
- "zksync-ethers": "^5.10.0"
+ "typescript": "5.3.3"
},
"directories": {
"test": "test"
@@ -45,10 +43,9 @@
"type": "module",
"exports": {
".": "./dist/index.js",
- "./mailbox": "./dist/typechain/contracts/Mailbox.js",
+ "./mailbox": "./dist/contracts/Mailbox.js",
"./buildArtifact.js": "./dist/buildArtifact.js",
"./buildArtifact.json": "./dist/buildArtifact.json",
- "./buildArtifact-zksync.js": "./dist/zksync/buildArtifact.js",
"./contracts": "./contracts"
},
"types": "./dist/index.d.ts",
@@ -68,15 +65,12 @@
"license": "Apache-2.0",
"scripts": {
"build": "yarn version:update && yarn hardhat-esm compile && tsc && ./exportBuildArtifact.sh",
- "build:zk": "yarn hardhat-zk compile && ts-node generate-artifact-exports.mjs && ZKSYNC=true ./exportBuildArtifact.sh && yarn copy-artifacts",
- "prepublishOnly": "yarn build && yarn build:zk",
"lint": "solhint contracts/**/*.sol",
- "clean": "yarn hardhat-esm clean && yarn hardhat-zk clean && rm -rf ./dist ./cache ./cache-zk ./types ./coverage ./out ./forge-cache ./fixtures",
+ "clean": "yarn hardhat-esm clean && rm -rf ./dist ./cache ./types ./coverage ./out ./forge-cache ./fixtures",
"coverage": "yarn fixtures && ./coverage.sh",
"docs": "forge doc",
"fixtures": "mkdir -p ./fixtures/aggregation ./fixtures/multisig",
"hardhat-esm": "NODE_OPTIONS='--experimental-loader ts-node/esm/transpile-only --no-warnings=ExperimentalWarning' hardhat --config hardhat.config.cts",
- "hardhat-zk": "NODE_OPTIONS='--experimental-loader ts-node/esm/transpile-only --no-warnings=ExperimentalWarning' hardhat --config zk-hardhat.config.cts",
"prettier": "prettier --write ./contracts ./test",
"test": "yarn version:exhaustive && yarn hardhat-esm test && yarn test:forge",
"test:hardhat": "yarn hardhat-esm test",
@@ -88,8 +82,7 @@
"storage": "./storage.sh",
"version:update": "sh ./bytecodeversion.sh",
"version:changed": "yarn version:update && git diff --exit-code",
- "version:exhaustive": "yarn tsx ./test/exhaustiveversion.test.ts",
- "copy-artifacts": "mkdir -p dist/zksync/artifacts && cp core-utils/zksync/artifacts/*.json dist/zksync/artifacts/"
+ "version:exhaustive": "yarn tsx ./test/exhaustiveversion.test.ts"
},
"peerDependencies": {
"@ethersproject/abi": "*",
diff --git a/solidity/test/lib/mailboxes.ts b/solidity/test/lib/mailboxes.ts
index bd1d728e36..06ae211cf5 100644
--- a/solidity/test/lib/mailboxes.ts
+++ b/solidity/test/lib/mailboxes.ts
@@ -18,8 +18,8 @@ import {
LegacyMultisigIsm,
TestMailbox,
TestMerkleTreeHook,
-} from '../../core-utils/typechain';
-import { DispatchEvent } from '../../core-utils/typechain/contracts/Mailbox';
+} from '../../types';
+import { DispatchEvent } from '../../types/contracts/Mailbox';
export type MessageAndProof = {
proof: MerkleProof;
diff --git a/solidity/test/merkle.test.ts b/solidity/test/merkle.test.ts
index 5546ac86bf..f2a3d5d399 100644
--- a/solidity/test/merkle.test.ts
+++ b/solidity/test/merkle.test.ts
@@ -2,7 +2,7 @@ import { expect } from 'chai';
import { utils } from 'ethers';
import merkleTestCases from '../../vectors/merkle.json' assert { type: 'json' };
-import { TestMerkle, TestMerkle__factory } from '../core-utils/typechain';
+import { TestMerkle, TestMerkle__factory } from '../types';
import { getSigner } from './signer';
diff --git a/solidity/test/message.test.ts b/solidity/test/message.test.ts
index 996bb31e7b..83bde28b6f 100644
--- a/solidity/test/message.test.ts
+++ b/solidity/test/message.test.ts
@@ -8,11 +8,7 @@ import {
} from '@hyperlane-xyz/utils';
import testCases from '../../vectors/message.json' assert { type: 'json' };
-import {
- Mailbox__factory,
- TestMessage,
- TestMessage__factory,
-} from '../core-utils/typechain';
+import { Mailbox__factory, TestMessage, TestMessage__factory } from '../types';
import { getSigner, getSigners } from './signer';
diff --git a/solidity/test/mockMailbox.test.ts b/solidity/test/mockMailbox.test.ts
index 6df9ec41db..db49a7585e 100644
--- a/solidity/test/mockMailbox.test.ts
+++ b/solidity/test/mockMailbox.test.ts
@@ -3,10 +3,7 @@ import { utils } from 'ethers';
import { addressToBytes32 } from '@hyperlane-xyz/utils';
-import {
- MockMailbox__factory,
- TestRecipient__factory,
-} from '../core-utils/typechain';
+import { MockMailbox__factory, TestRecipient__factory } from '../types';
import { getSigner } from './signer';
diff --git a/solidity/test/testrecipient.test.ts b/solidity/test/testrecipient.test.ts
index dd1d9a44e1..acdbf573eb 100644
--- a/solidity/test/testrecipient.test.ts
+++ b/solidity/test/testrecipient.test.ts
@@ -3,7 +3,7 @@ import { utils } from 'ethers';
import { addressToBytes32 } from '@hyperlane-xyz/utils';
-import { TestRecipient, TestRecipient__factory } from '../core-utils/typechain';
+import { TestRecipient, TestRecipient__factory } from '../types';
import { getSigner } from './signer';
diff --git a/solidity/tsconfig.json b/solidity/tsconfig.json
index 99ae657d2b..cece6d7fc6 100644
--- a/solidity/tsconfig.json
+++ b/solidity/tsconfig.json
@@ -2,7 +2,7 @@
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "./dist",
- "rootDir": "./core-utils"
+ "rootDir": "./types"
},
- "exclude": ["./test", "hardhat.config.cts", "./dist", "zk-hardhat.config.cts"]
+ "exclude": ["./test", "hardhat.config.cts", "./dist"]
}
diff --git a/solidity/zk-hardhat.config.cts b/solidity/zk-hardhat.config.cts
deleted file mode 100644
index 618fe65a5b..0000000000
--- a/solidity/zk-hardhat.config.cts
+++ /dev/null
@@ -1,46 +0,0 @@
-import '@matterlabs/hardhat-zksync-solc';
-import '@nomiclabs/hardhat-ethers';
-import 'hardhat-ignore-warnings';
-
-/**
- * @type import('hardhat/config').HardhatUserConfig
- */
-module.exports = {
- zksolc: {
- version: '1.5.3',
- compilerSource: 'binary',
- enableEraVMExtensions: true,
- },
- defaultNetwork: 'zkSyncNetwork',
- networks: {
- zkSyncNetwork: {
- url: 'http://127.0.0.1:8011',
- ethNetwork: '',
- zksync: true,
- },
- },
- solidity: {
- version: '0.8.19',
- settings: {
- optimizer: {
- enabled: true,
- runs: 999_999,
- },
- },
- },
- mocha: {
- bail: true,
- import: 'tsx',
- },
- warnings: {
- // turn off all warnings for libs:
- 'fx-portal/**/*': {
- default: 'off',
- },
- },
- paths: {
- sources: './contracts',
- cache: './cache-zk',
- artifacts: './artifacts-zk',
- },
-};
diff --git a/yarn.lock b/yarn.lock
index db73d1093b..acf43f2e9b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -4240,13 +4240,6 @@ __metadata:
languageName: node
linkType: hard
-"@balena/dockerignore@npm:^1.0.2":
- version: 1.0.2
- resolution: "@balena/dockerignore@npm:1.0.2"
- checksum: 10/13d654fdd725008577d32e721c720275bdc48f72bce612326363d5bed449febbed856c517a0b23c7c40d87cb531e63432804550b4ecc13e365d26fee38fb6c8a
- languageName: node
- linkType: hard
-
"@base2/pretty-print-object@npm:1.0.1":
version: 1.0.1
resolution: "@base2/pretty-print-object@npm:1.0.1"
@@ -7221,16 +7214,6 @@ __metadata:
languageName: node
linkType: hard
-"@grpc/grpc-js@npm:^1.11.1":
- version: 1.12.5
- resolution: "@grpc/grpc-js@npm:1.12.5"
- dependencies:
- "@grpc/proto-loader": "npm:^0.7.13"
- "@js-sdsl/ordered-map": "npm:^4.4.2"
- checksum: 10/4f8ead236dcab4d94e15e62d65ad2d93732d37f5cc52ffafe67ae00f69eae4a4c97d6d34a1b9eac9f30206468f2d15302ea6649afcba1d38929afa9d1e7c12d5
- languageName: node
- linkType: hard
-
"@grpc/grpc-js@npm:~1.10.3":
version: 1.10.8
resolution: "@grpc/grpc-js@npm:1.10.8"
@@ -7387,7 +7370,6 @@ __metadata:
"@hyperlane-xyz/utils": "npm:8.3.0"
"@layerzerolabs/lz-evm-oapp-v2": "npm:2.0.2"
"@layerzerolabs/solidity-examples": "npm:^1.1.0"
- "@matterlabs/hardhat-zksync-solc": "npm:^1.2.4"
"@nomiclabs/hardhat-ethers": "npm:^2.2.3"
"@nomiclabs/hardhat-waffle": "npm:^2.0.6"
"@openzeppelin/contracts": "npm:^4.9.3"
@@ -7414,7 +7396,6 @@ __metadata:
tsx: "npm:^4.19.1"
typechain: "patch:typechain@npm%3A8.3.2#~/.yarn/patches/typechain-npm-8.3.2-b02e27439e.patch"
typescript: "npm:5.3.3"
- zksync-ethers: "npm:^5.10.0"
peerDependencies:
"@ethersproject/abi": "*"
"@ethersproject/providers": "*"
@@ -8761,27 +8742,6 @@ __metadata:
languageName: node
linkType: hard
-"@matterlabs/hardhat-zksync-solc@npm:^1.2.4":
- version: 1.2.5
- resolution: "@matterlabs/hardhat-zksync-solc@npm:1.2.5"
- dependencies:
- "@nomiclabs/hardhat-docker": "npm:^2.0.2"
- chai: "npm:^4.3.4"
- chalk: "npm:^4.1.2"
- debug: "npm:^4.3.5"
- dockerode: "npm:^4.0.2"
- fs-extra: "npm:^11.2.0"
- proper-lockfile: "npm:^4.1.2"
- semver: "npm:^7.6.2"
- sinon: "npm:^18.0.0"
- sinon-chai: "npm:^3.7.0"
- undici: "npm:^6.18.2"
- peerDependencies:
- hardhat: ^2.22.5
- checksum: 10/0452ad5504258fad2f2d10be40cc79bb0e65d3470af75f70f60e4a94bb92f238031a13587cda51a0dfd77ef1cb028145088e2628a02db6d7a5ac721bf2816bf0
- languageName: node
- linkType: hard
-
"@mdx-js/react@npm:^2.1.5":
version: 2.3.0
resolution: "@mdx-js/react@npm:2.3.0"
@@ -9667,17 +9627,6 @@ __metadata:
languageName: node
linkType: hard
-"@nomiclabs/hardhat-docker@npm:^2.0.2":
- version: 2.0.2
- resolution: "@nomiclabs/hardhat-docker@npm:2.0.2"
- dependencies:
- dockerode: "npm:^2.5.8"
- fs-extra: "npm:^7.0.1"
- node-fetch: "npm:^2.6.0"
- checksum: 10/2b6601a7bcac115a24dc4d2ce35b76b1748ffaebd723afad17e8f506231e1d6c7e5c9df73b29d429c5eb01cb0e11ff92f10c746ca31343b0fd3ddc449c9ec8f3
- languageName: node
- linkType: hard
-
"@nomiclabs/hardhat-ethers@npm:^2.2.3":
version: 2.2.3
resolution: "@nomiclabs/hardhat-ethers@npm:2.2.3"
@@ -13026,7 +12975,7 @@ __metadata:
languageName: node
linkType: hard
-"@sinonjs/commons@npm:^3.0.0, @sinonjs/commons@npm:^3.0.1":
+"@sinonjs/commons@npm:^3.0.0":
version: 3.0.1
resolution: "@sinonjs/commons@npm:3.0.1"
dependencies:
@@ -13035,15 +12984,6 @@ __metadata:
languageName: node
linkType: hard
-"@sinonjs/fake-timers@npm:11.2.2":
- version: 11.2.2
- resolution: "@sinonjs/fake-timers@npm:11.2.2"
- dependencies:
- "@sinonjs/commons": "npm:^3.0.0"
- checksum: 10/da7dfa677b2362bc5a321fc1563184755b5c62fbb1a72457fb9e901cd187ba9dc834f9e8a0fb5a4e1d1e6e6ad4c5b54e90900faa44dd6c82d3c49c92ec23ecd4
- languageName: node
- linkType: hard
-
"@sinonjs/fake-timers@npm:>=5, @sinonjs/fake-timers@npm:^9.1.2":
version: 9.1.2
resolution: "@sinonjs/fake-timers@npm:9.1.2"
@@ -13062,15 +13002,6 @@ __metadata:
languageName: node
linkType: hard
-"@sinonjs/fake-timers@npm:^13.0.1":
- version: 13.0.5
- resolution: "@sinonjs/fake-timers@npm:13.0.5"
- dependencies:
- "@sinonjs/commons": "npm:^3.0.1"
- checksum: 10/11ee417968fc4dce1896ab332ac13f353866075a9d2a88ed1f6258f17cc4f7d93e66031b51fcddb8c203aa4d53fd980b0ae18aba06269f4682164878a992ec3f
- languageName: node
- linkType: hard
-
"@sinonjs/samsam@npm:^6.1.1":
version: 6.1.1
resolution: "@sinonjs/samsam@npm:6.1.1"
@@ -13082,17 +13013,6 @@ __metadata:
languageName: node
linkType: hard
-"@sinonjs/samsam@npm:^8.0.0":
- version: 8.0.2
- resolution: "@sinonjs/samsam@npm:8.0.2"
- dependencies:
- "@sinonjs/commons": "npm:^3.0.1"
- lodash.get: "npm:^4.4.2"
- type-detect: "npm:^4.1.0"
- checksum: 10/58ca9752e8e835a09ed275f8edf8da2720fe95c0c02f6bcb90ad7f86fdceb393f35f744194b705dd94216228646ec0aedbb814e245eb869b940dcf1266b7a533
- languageName: node
- linkType: hard
-
"@sinonjs/text-encoding@npm:^0.7.1":
version: 0.7.1
resolution: "@sinonjs/text-encoding@npm:0.7.1"
@@ -13100,13 +13020,6 @@ __metadata:
languageName: node
linkType: hard
-"@sinonjs/text-encoding@npm:^0.7.3":
- version: 0.7.3
- resolution: "@sinonjs/text-encoding@npm:0.7.3"
- checksum: 10/f0cc89bae36e7ce159187dece7800b78831288f1913e9ae8cf8a878da5388232d2049740f6f4a43ec4b43b8ad1beb55f919f45eb9a577adb4a2a6eacb27b25fc
- languageName: node
- linkType: hard
-
"@smithy/abort-controller@npm:^3.0.0":
version: 3.0.0
resolution: "@smithy/abort-controller@npm:3.0.0"
@@ -17166,18 +17079,6 @@ __metadata:
languageName: node
linkType: hard
-"JSONStream@npm:1.3.2":
- version: 1.3.2
- resolution: "JSONStream@npm:1.3.2"
- dependencies:
- jsonparse: "npm:^1.2.0"
- through: "npm:>=2.2.7 <3"
- bin:
- JSONStream: ./bin.js
- checksum: 10/3a1274f39e9b0369da5d5536906b527113326434a43b92923ac2d3c2d449009253b245055de2633b1d9ca7ae30054b6091d755e79f0cb1c7dab9b6b253871812
- languageName: node
- linkType: hard
-
"JSONStream@npm:^1.3.5":
version: 1.3.5
resolution: "JSONStream@npm:1.3.5"
@@ -18002,7 +17903,7 @@ __metadata:
languageName: node
linkType: hard
-"asn1@npm:^0.2.6, asn1@npm:~0.2.3":
+"asn1@npm:~0.2.3":
version: 0.2.6
resolution: "asn1@npm:0.2.6"
dependencies:
@@ -18416,7 +18317,7 @@ __metadata:
languageName: node
linkType: hard
-"bcrypt-pbkdf@npm:^1.0.0, bcrypt-pbkdf@npm:^1.0.2":
+"bcrypt-pbkdf@npm:^1.0.0":
version: 1.0.2
resolution: "bcrypt-pbkdf@npm:1.0.2"
dependencies:
@@ -18584,16 +18485,6 @@ __metadata:
languageName: node
linkType: hard
-"bl@npm:^1.0.0":
- version: 1.2.3
- resolution: "bl@npm:1.2.3"
- dependencies:
- readable-stream: "npm:^2.3.5"
- safe-buffer: "npm:^5.1.1"
- checksum: 10/11d775b09ebd7d8c0df1ed7efd03cc8a2b1283c804a55153c81a0b586728a085fa24240647cac9a60163eb6f36a28cf8c45b80bf460a46336d4c84c40205faff
- languageName: node
- linkType: hard
-
"bl@npm:^4.0.3, bl@npm:^4.1.0":
version: 4.1.0
resolution: "bl@npm:4.1.0"
@@ -18918,23 +18809,6 @@ __metadata:
languageName: node
linkType: hard
-"buffer-alloc-unsafe@npm:^1.1.0":
- version: 1.1.0
- resolution: "buffer-alloc-unsafe@npm:1.1.0"
- checksum: 10/c5e18bf51f67754ec843c9af3d4c005051aac5008a3992938dda1344e5cfec77c4b02b4ca303644d1e9a6e281765155ce6356d85c6f5ccc5cd21afc868def396
- languageName: node
- linkType: hard
-
-"buffer-alloc@npm:^1.2.0":
- version: 1.2.0
- resolution: "buffer-alloc@npm:1.2.0"
- dependencies:
- buffer-alloc-unsafe: "npm:^1.1.0"
- buffer-fill: "npm:^1.0.0"
- checksum: 10/560cd27f3cbe73c614867da373407d4506309c62fe18de45a1ce191f3785ec6ca2488d802ff82065798542422980ca25f903db078c57822218182c37c3576df5
- languageName: node
- linkType: hard
-
"buffer-crc32@npm:~0.2.3":
version: 0.2.13
resolution: "buffer-crc32@npm:0.2.13"
@@ -18949,13 +18823,6 @@ __metadata:
languageName: node
linkType: hard
-"buffer-fill@npm:^1.0.0":
- version: 1.0.0
- resolution: "buffer-fill@npm:1.0.0"
- checksum: 10/c29b4723ddeab01e74b5d3b982a0c6828f2ded49cef049ddca3dac661c874ecdbcecb5dd8380cf0f4adbeb8cff90a7de724126750a1f1e5ebd4eb6c59a1315b1
- languageName: node
- linkType: hard
-
"buffer-from@npm:^1.0.0":
version: 1.1.2
resolution: "buffer-from@npm:1.1.2"
@@ -19061,13 +18928,6 @@ __metadata:
languageName: node
linkType: hard
-"buildcheck@npm:~0.0.6":
- version: 0.0.6
- resolution: "buildcheck@npm:0.0.6"
- checksum: 10/194ee8d3b0926fd6f3e799732130ad7ab194882c56900b8670ad43c81326f64871f49b7d9f1e9baad91ca3070eb4e8b678797fe9ae78cf87dde86d8916eb25d2
- languageName: node
- linkType: hard
-
"busboy@npm:^1.6.0":
version: 1.6.0
resolution: "busboy@npm:1.6.0"
@@ -19526,7 +19386,7 @@ __metadata:
languageName: node
linkType: hard
-"chownr@npm:^1.0.1, chownr@npm:^1.1.1, chownr@npm:^1.1.4":
+"chownr@npm:^1.1.1, chownr@npm:^1.1.4":
version: 1.1.4
resolution: "chownr@npm:1.1.4"
checksum: 10/115648f8eb38bac5e41c3857f3e663f9c39ed6480d1349977c4d96c95a47266fcacc5a5aabf3cb6c481e22d72f41992827db47301851766c4fd77ac21a4f081d
@@ -20061,7 +19921,7 @@ __metadata:
languageName: node
linkType: hard
-"concat-stream@npm:^1.6.0, concat-stream@npm:^1.6.2, concat-stream@npm:~1.6.2":
+"concat-stream@npm:^1.6.0, concat-stream@npm:^1.6.2":
version: 1.6.2
resolution: "concat-stream@npm:1.6.2"
dependencies:
@@ -20290,17 +20150,6 @@ __metadata:
languageName: node
linkType: hard
-"cpu-features@npm:~0.0.10":
- version: 0.0.10
- resolution: "cpu-features@npm:0.0.10"
- dependencies:
- buildcheck: "npm:~0.0.6"
- nan: "npm:^2.19.0"
- node-gyp: "npm:latest"
- checksum: 10/941b828ffe77582b2bdc03e894c913e2e2eeb5c6043ccb01338c34446d026f6888dc480ecb85e684809f9c3889d245f3648c7907eb61a92bdfc6aed039fcda8d
- languageName: node
- linkType: hard
-
"crc-32@npm:^1.2.0":
version: 1.2.2
resolution: "crc-32@npm:1.2.2"
@@ -20630,7 +20479,7 @@ __metadata:
languageName: node
linkType: hard
-"debug@npm:^3.1.0, debug@npm:^3.2.6, debug@npm:^3.2.7":
+"debug@npm:^3.1.0, debug@npm:^3.2.7":
version: 3.2.7
resolution: "debug@npm:3.2.7"
dependencies:
@@ -21092,13 +20941,6 @@ __metadata:
languageName: node
linkType: hard
-"diff@npm:^5.2.0":
- version: 5.2.0
- resolution: "diff@npm:5.2.0"
- checksum: 10/01b7b440f83a997350a988e9d2f558366c0f90f15be19f4aa7f1bb3109a4e153dfc3b9fbf78e14ea725717017407eeaa2271e3896374a0181e8f52445740846d
- languageName: node
- linkType: hard
-
"difflib@npm:^0.2.4":
version: 0.2.4
resolution: "difflib@npm:0.2.4"
@@ -21131,56 +20973,6 @@ __metadata:
languageName: node
linkType: hard
-"docker-modem@npm:^1.0.8":
- version: 1.0.9
- resolution: "docker-modem@npm:1.0.9"
- dependencies:
- JSONStream: "npm:1.3.2"
- debug: "npm:^3.2.6"
- readable-stream: "npm:~1.0.26-4"
- split-ca: "npm:^1.0.0"
- checksum: 10/2ade3d9f1b25231a5ecadcbfb9401a397eff3de2eec7add8130de1c40004faaa58fe074e5110ccef12957973089e5911b711648c77944a4a15d908e9b9605549
- languageName: node
- linkType: hard
-
-"docker-modem@npm:^5.0.6":
- version: 5.0.6
- resolution: "docker-modem@npm:5.0.6"
- dependencies:
- debug: "npm:^4.1.1"
- readable-stream: "npm:^3.5.0"
- split-ca: "npm:^1.0.1"
- ssh2: "npm:^1.15.0"
- checksum: 10/4977797814c29205f0762215f2e3e26600986bb65139018ff6840ff4c596e5d19f3002be1abcc5e73e3828870bb73bab28275a6458ad027ed56ab61fca014b6d
- languageName: node
- linkType: hard
-
-"dockerode@npm:^2.5.8":
- version: 2.5.8
- resolution: "dockerode@npm:2.5.8"
- dependencies:
- concat-stream: "npm:~1.6.2"
- docker-modem: "npm:^1.0.8"
- tar-fs: "npm:~1.16.3"
- checksum: 10/13111cfcaf47905cd2cd323a07cb5b79404ef5e9032e33ef3a6f71d1f72283d9b2921b6de955c8454b147bbf4db33822a80d960b2250e3e8aed62ffe0b43083f
- languageName: node
- linkType: hard
-
-"dockerode@npm:^4.0.2":
- version: 4.0.4
- resolution: "dockerode@npm:4.0.4"
- dependencies:
- "@balena/dockerignore": "npm:^1.0.2"
- "@grpc/grpc-js": "npm:^1.11.1"
- "@grpc/proto-loader": "npm:^0.7.13"
- docker-modem: "npm:^5.0.6"
- protobufjs: "npm:^7.3.2"
- tar-fs: "npm:~2.0.1"
- uuid: "npm:^10.0.0"
- checksum: 10/db2304e6125d0c4246833eaa6a389497c98564ba2ed18fa465eace1b6eb6c2a41f1711fc1e57cd2fc0f7ca6be80eeca43b0c35cd6b86205e34faf9acb0f72bcc
- languageName: node
- linkType: hard
-
"doctrine@npm:^2.1.0":
version: 2.1.0
resolution: "doctrine@npm:2.1.0"
@@ -23880,17 +23672,6 @@ __metadata:
languageName: node
linkType: hard
-"fs-extra@npm:^11.2.0":
- version: 11.3.0
- resolution: "fs-extra@npm:11.3.0"
- dependencies:
- graceful-fs: "npm:^4.2.0"
- jsonfile: "npm:^6.0.1"
- universalify: "npm:^2.0.0"
- checksum: 10/c9fe7b23dded1efe7bbae528d685c3206477e20cc60e9aaceb3f024f9b9ff2ee1f62413c161cb88546cc564009ab516dec99e9781ba782d869bb37e4fe04a97f
- languageName: node
- linkType: hard
-
"fs-extra@npm:^4.0.2":
version: 4.0.3
resolution: "fs-extra@npm:4.0.3"
@@ -27503,13 +27284,6 @@ __metadata:
languageName: node
linkType: hard
-"just-extend@npm:^6.2.0":
- version: 6.2.0
- resolution: "just-extend@npm:6.2.0"
- checksum: 10/1f487b074b9e5773befdd44dc5d1b446f01f24f7d4f1f255d51c0ef7f686e8eb5f95d983b792b9ca5c8b10cd7e60a924d64103725759eddbd7f18bcb22743f92
- languageName: node
- linkType: hard
-
"jwa@npm:^2.0.0":
version: 2.0.0
resolution: "jwa@npm:2.0.0"
@@ -29338,7 +29112,7 @@ __metadata:
languageName: node
linkType: hard
-"nan@npm:^2.13.2, nan@npm:^2.19.0, nan@npm:^2.20.0":
+"nan@npm:^2.13.2":
version: 2.22.0
resolution: "nan@npm:2.22.0"
dependencies:
@@ -29450,19 +29224,6 @@ __metadata:
languageName: node
linkType: hard
-"nise@npm:^6.0.0":
- version: 6.1.1
- resolution: "nise@npm:6.1.1"
- dependencies:
- "@sinonjs/commons": "npm:^3.0.1"
- "@sinonjs/fake-timers": "npm:^13.0.1"
- "@sinonjs/text-encoding": "npm:^0.7.3"
- just-extend: "npm:^6.2.0"
- path-to-regexp: "npm:^8.1.0"
- checksum: 10/2d3175587cf0a351e2c91eb643fdc59d266de39f394a3ac0bace38571749d1e7f25341d763899245139b8f0d2ee048b2d3387d75ecf94c4897e947d5fc881eea
- languageName: node
- linkType: hard
-
"nock@npm:13.5.4":
version: 13.5.4
resolution: "nock@npm:13.5.4"
@@ -30601,13 +30362,6 @@ __metadata:
languageName: node
linkType: hard
-"path-to-regexp@npm:^8.1.0":
- version: 8.2.0
- resolution: "path-to-regexp@npm:8.2.0"
- checksum: 10/23378276a172b8ba5f5fb824475d1818ca5ccee7bbdb4674701616470f23a14e536c1db11da9c9e6d82b82c556a817bbf4eee6e41b9ed20090ef9427cbb38e13
- languageName: node
- linkType: hard
-
"path-type@npm:^4.0.0":
version: 4.0.0
resolution: "path-type@npm:4.0.0"
@@ -31262,7 +31016,7 @@ __metadata:
languageName: node
linkType: hard
-"proper-lockfile@npm:^4.1.1, proper-lockfile@npm:^4.1.2":
+"proper-lockfile@npm:^4.1.1":
version: 4.1.2
resolution: "proper-lockfile@npm:4.1.2"
dependencies:
@@ -31353,26 +31107,6 @@ __metadata:
languageName: node
linkType: hard
-"protobufjs@npm:^7.3.2":
- version: 7.4.0
- resolution: "protobufjs@npm:7.4.0"
- dependencies:
- "@protobufjs/aspromise": "npm:^1.1.2"
- "@protobufjs/base64": "npm:^1.1.2"
- "@protobufjs/codegen": "npm:^2.0.4"
- "@protobufjs/eventemitter": "npm:^1.1.0"
- "@protobufjs/fetch": "npm:^1.1.0"
- "@protobufjs/float": "npm:^1.0.2"
- "@protobufjs/inquire": "npm:^1.1.0"
- "@protobufjs/path": "npm:^1.1.2"
- "@protobufjs/pool": "npm:^1.1.0"
- "@protobufjs/utf8": "npm:^1.1.0"
- "@types/node": "npm:>=13.7.0"
- long: "npm:^5.0.0"
- checksum: 10/408423506610f70858d7593632f4a6aa4f05796c90fd632be9b9252457c795acc71aa6d3b54bb7f48a890141728fee4ca3906723ccea6c202ad71f21b3879b8b
- languageName: node
- linkType: hard
-
"proxy-addr@npm:~2.0.7":
version: 2.0.7
resolution: "proxy-addr@npm:2.0.7"
@@ -31425,16 +31159,6 @@ __metadata:
languageName: node
linkType: hard
-"pump@npm:^1.0.0":
- version: 1.0.3
- resolution: "pump@npm:1.0.3"
- dependencies:
- end-of-stream: "npm:^1.1.0"
- once: "npm:^1.3.1"
- checksum: 10/61fe58694f9900020a5cf5bc765d74396891c201afecf06659df2f5874fd832be4e19e2f95cc72d8b9eb98ace0a4db3cebf7343f9fc893a930577be29e3ad8b5
- languageName: node
- linkType: hard
-
"pump@npm:^2.0.0":
version: 2.0.1
resolution: "pump@npm:2.0.1"
@@ -32165,7 +31889,7 @@ __metadata:
languageName: node
linkType: hard
-"readable-stream@npm:^2.0.0, readable-stream@npm:^2.3.0, readable-stream@npm:^2.3.3, readable-stream@npm:^2.3.5, readable-stream@npm:~2.3.6":
+"readable-stream@npm:^2.0.0, readable-stream@npm:^2.3.3, readable-stream@npm:~2.3.6":
version: 2.3.8
resolution: "readable-stream@npm:2.3.8"
dependencies:
@@ -32195,7 +31919,7 @@ __metadata:
languageName: node
linkType: hard
-"readable-stream@npm:^3.1.0, readable-stream@npm:^3.5.0, readable-stream@npm:^3.6.2":
+"readable-stream@npm:^3.1.0, readable-stream@npm:^3.6.2":
version: 3.6.2
resolution: "readable-stream@npm:3.6.2"
dependencies:
@@ -32230,18 +31954,6 @@ __metadata:
languageName: node
linkType: hard
-"readable-stream@npm:~1.0.26-4":
- version: 1.0.34
- resolution: "readable-stream@npm:1.0.34"
- dependencies:
- core-util-is: "npm:~1.0.0"
- inherits: "npm:~2.0.1"
- isarray: "npm:0.0.1"
- string_decoder: "npm:~0.10.x"
- checksum: 10/20537fca5a8ffd4af0f483be1cce0e981ed8cbb1087e0c762e2e92ae77f1005627272cebed8422f28047b465056aa1961fefd24baf532ca6a3616afea6811ae0
- languageName: node
- linkType: hard
-
"readdirp@npm:~3.2.0":
version: 3.2.0
resolution: "readdirp@npm:3.2.0"
@@ -33686,16 +33398,6 @@ __metadata:
languageName: node
linkType: hard
-"sinon-chai@npm:^3.7.0":
- version: 3.7.0
- resolution: "sinon-chai@npm:3.7.0"
- peerDependencies:
- chai: ^4.0.0
- sinon: ">=4.0.0"
- checksum: 10/028853eb8a545ca613c6863014a40f07d1e6b81467e20939fefcd13f170206d24165b91099fb297aeb4d137745e321da25daa8e2d665cc0a78f90d5b877e8bbe
- languageName: node
- linkType: hard
-
"sinon@npm:^13.0.2":
version: 13.0.2
resolution: "sinon@npm:13.0.2"
@@ -33710,20 +33412,6 @@ __metadata:
languageName: node
linkType: hard
-"sinon@npm:^18.0.0":
- version: 18.0.1
- resolution: "sinon@npm:18.0.1"
- dependencies:
- "@sinonjs/commons": "npm:^3.0.1"
- "@sinonjs/fake-timers": "npm:11.2.2"
- "@sinonjs/samsam": "npm:^8.0.0"
- diff: "npm:^5.2.0"
- nise: "npm:^6.0.0"
- supports-color: "npm:^7"
- checksum: 10/65be65a7c5dbef7e9e315820bcd17fe0387fb07cb5dd41d3d6a89177e9a2ca463144676d8407348dc075758daa7cf37b9376d35bd1bc7e06717e87d03aa26111
- languageName: node
- linkType: hard
-
"sisteransi@npm:^1.0.5":
version: 1.0.5
resolution: "sisteransi@npm:1.0.5"
@@ -34223,13 +33911,6 @@ __metadata:
languageName: node
linkType: hard
-"split-ca@npm:^1.0.0, split-ca@npm:^1.0.1":
- version: 1.0.1
- resolution: "split-ca@npm:1.0.1"
- checksum: 10/1e7409938a95ee843fe2593156a5735e6ee63772748ee448ea8477a5a3e3abde193c3325b3696e56a5aff07c7dcf6b1f6a2f2a036895b4f3afe96abb366d893f
- languageName: node
- linkType: hard
-
"split-on-first@npm:^1.0.0":
version: 1.1.0
resolution: "split-on-first@npm:1.1.0"
@@ -34251,23 +33932,6 @@ __metadata:
languageName: node
linkType: hard
-"ssh2@npm:^1.15.0":
- version: 1.16.0
- resolution: "ssh2@npm:1.16.0"
- dependencies:
- asn1: "npm:^0.2.6"
- bcrypt-pbkdf: "npm:^1.0.2"
- cpu-features: "npm:~0.0.10"
- nan: "npm:^2.20.0"
- dependenciesMeta:
- cpu-features:
- optional: true
- nan:
- optional: true
- checksum: 10/0951c22d9c5a0e3b89a8e5ae890ebcbce9f1f94dbed37d1490e4e48e26bc8b074fa81f202ee57b708e31b5f33033f4c870b92047f4f02b6bc26c32225b01d84c
- languageName: node
- linkType: hard
-
"sshpk@npm:^1.7.0":
version: 1.17.0
resolution: "sshpk@npm:1.17.0"
@@ -34666,13 +34330,6 @@ __metadata:
languageName: node
linkType: hard
-"string_decoder@npm:~0.10.x":
- version: 0.10.31
- resolution: "string_decoder@npm:0.10.31"
- checksum: 10/cc43e6b1340d4c7843da0e37d4c87a4084c2342fc99dcf6563c3ec273bb082f0cbd4ebf25d5da19b04fb16400d393885fda830be5128e1c416c73b5a6165f175
- languageName: node
- linkType: hard
-
"string_decoder@npm:~1.1.1":
version: 1.1.1
resolution: "string_decoder@npm:1.1.1"
@@ -34910,7 +34567,7 @@ __metadata:
languageName: node
linkType: hard
-"supports-color@npm:^7, supports-color@npm:^7.0.0, supports-color@npm:^7.1.0, supports-color@npm:^7.2.0":
+"supports-color@npm:^7.0.0, supports-color@npm:^7.1.0, supports-color@npm:^7.2.0":
version: 7.2.0
resolution: "supports-color@npm:7.2.0"
dependencies:
@@ -35137,46 +34794,7 @@ __metadata:
languageName: node
linkType: hard
-"tar-fs@npm:~1.16.3":
- version: 1.16.4
- resolution: "tar-fs@npm:1.16.4"
- dependencies:
- chownr: "npm:^1.0.1"
- mkdirp: "npm:^0.5.1"
- pump: "npm:^1.0.0"
- tar-stream: "npm:^1.1.2"
- checksum: 10/2392fb92ebcdbf1b70961192a0f32955dbfc5cd844d4980e7e0dc7b8cb269d6e23831ae8ceb8137322367dcc42ae946f2349d0fd79b89b3c30b0a7d3ff5fc15e
- languageName: node
- linkType: hard
-
-"tar-fs@npm:~2.0.1":
- version: 2.0.1
- resolution: "tar-fs@npm:2.0.1"
- dependencies:
- chownr: "npm:^1.1.1"
- mkdirp-classic: "npm:^0.5.2"
- pump: "npm:^3.0.0"
- tar-stream: "npm:^2.0.0"
- checksum: 10/85ceac6fce0e9175b5b67c0eca8864b7d29a940cae8b7657c60b66e8a252319d701c3df12814162a6839e6120f9e1975757293bdeaf294ad5b15721d236c4d32
- languageName: node
- linkType: hard
-
-"tar-stream@npm:^1.1.2":
- version: 1.6.2
- resolution: "tar-stream@npm:1.6.2"
- dependencies:
- bl: "npm:^1.0.0"
- buffer-alloc: "npm:^1.2.0"
- end-of-stream: "npm:^1.0.0"
- fs-constants: "npm:^1.0.0"
- readable-stream: "npm:^2.3.0"
- to-buffer: "npm:^1.1.1"
- xtend: "npm:^4.0.0"
- checksum: 10/ac9b850bd40e6d4b251abcf92613bafd9fc9e592c220c781ebcdbb0ba76da22a245d9ea3ea638ad7168910e7e1ae5079333866cd679d2f1ffadb99c403f99d7f
- languageName: node
- linkType: hard
-
-"tar-stream@npm:^2.0.0, tar-stream@npm:^2.1.4":
+"tar-stream@npm:^2.1.4":
version: 2.2.0
resolution: "tar-stream@npm:2.2.0"
dependencies:
@@ -35478,13 +35096,6 @@ __metadata:
languageName: node
linkType: hard
-"to-buffer@npm:^1.1.1":
- version: 1.1.1
- resolution: "to-buffer@npm:1.1.1"
- checksum: 10/8ade59fe04239b281496b6067bc83ad0371a3657552276cbd09ffffaeb3ad0018a28306d61b854b83280eabe1829cbc53001ccd761e834c6062cbcc7fee2766a
- languageName: node
- linkType: hard
-
"to-fast-properties@npm:^2.0.0":
version: 2.0.0
resolution: "to-fast-properties@npm:2.0.0"
@@ -36747,15 +36358,6 @@ __metadata:
languageName: node
linkType: hard
-"uuid@npm:^10.0.0":
- version: 10.0.0
- resolution: "uuid@npm:10.0.0"
- bin:
- uuid: dist/bin/uuid
- checksum: 10/35aa60614811a201ff90f8ca5e9ecb7076a75c3821e17f0f5ff72d44e36c2d35fcbc2ceee9c4ac7317f4cc41895da30e74f3885e30313bee48fda6338f250538
- languageName: node
- linkType: hard
-
"uuid@npm:^3.3.2":
version: 3.4.0
resolution: "uuid@npm:3.4.0"
From f8d17923766c069c1ac9b5712899f877bebaa62e Mon Sep 17 00:00:00 2001
From: Yorke Rhodes
Date: Fri, 24 Jan 2025 05:31:09 -0500
Subject: [PATCH 6/6] feat: recurse in safe timelock parser (#5278)
### Description
Parse inner transactions on timelocks
### Testing
Manual
```sh
$ yarn tsx scripts/safes/parse-txs.ts --chains ethereum
```
```yaml
ethereum-0xc096af73952e18fe1201b457a95b598d680d7f185747b28153da2c175532ca8f:
chain: ethereum
to: Timelock Controller (ethereum 0x59cf937Ea9FA9D7398223E3aA33d92F7f5f986A2)
insight: 'Schedule for Sun Jan 26 2025 18:05:17 GMT-0500 (Eastern Standard
Time): {"chain":"ethereum","to":"Timelock Controller (ethereum
0x59cf937Ea9FA9D7398223E3aA33d92F7f5f986A2)","args":{"newDelay":{"type":"BigNumber","hex":"0x00"}}}'
```
---
.../infra/config/environments/mainnet3/owners.ts | 1 +
typescript/infra/src/tx/govern-transaction-reader.ts | 12 ++++++++++--
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/typescript/infra/config/environments/mainnet3/owners.ts b/typescript/infra/config/environments/mainnet3/owners.ts
index 45b707218f..b6d00132b7 100644
--- a/typescript/infra/config/environments/mainnet3/owners.ts
+++ b/typescript/infra/config/environments/mainnet3/owners.ts
@@ -8,6 +8,7 @@ import { supportedChainNames } from './supportedChainNames.js';
export const timelocks: ChainMap = {
arbitrum: '0xAC98b0cD1B64EA4fe133C6D2EDaf842cE5cF4b01',
+ ethereum: '0x59cf937Ea9FA9D7398223E3aA33d92F7f5f986A2', // symbiotic network timelock
};
export function localAccountRouters(): ChainMap {
diff --git a/typescript/infra/src/tx/govern-transaction-reader.ts b/typescript/infra/src/tx/govern-transaction-reader.ts
index 7e21335a17..eaff106a43 100644
--- a/typescript/infra/src/tx/govern-transaction-reader.ts
+++ b/typescript/infra/src/tx/govern-transaction-reader.ts
@@ -202,8 +202,16 @@ export class GovernTransactionReader {
'schedule(address,uint256,bytes,bytes32,bytes32,uint256)'
].name
) {
- const [target, value, data, eta, executor, delay] = decoded.args;
- insight = `Schedule ${target} to be executed at ${eta} with ${value} ${data}. Executor: ${executor}, Delay: ${delay}`;
+ const [target, value, data, _predecessor, _salt, delay] = decoded.args;
+ const inner = await this.read(chain, {
+ to: target,
+ data,
+ value,
+ });
+
+ const eta = new Date(Date.now() + delay.toNumber() * 1000);
+
+ insight = `Schedule for ${eta}: ${JSON.stringify(inner)}`;
}
if (