-
Notifications
You must be signed in to change notification settings - Fork 405
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: zksync support #4725
base: main
Are you sure you want to change the base?
feat: zksync support #4725
Conversation
…to feat/zksync-signer-strategy
…n for ZKSync signer strategy
…to feat/zksync-signer-strategy
1bcbdc4
to
b58434e
Compare
|
b58434e
to
b7e3c81
Compare
…o feat/zksync-support
@@ -927,9 +928,10 @@ export class EvmHookModule extends HyperlaneModule< | |||
// deploy fallback hook | |||
const fallbackHook = await this.deploy({ config: config.fallback }); | |||
// deploy routing hook with fallback | |||
routingHook = await this.deployer.deployContract( | |||
routingHook = await this.deployer.deployContractWithName( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
by default deployContract just uses the enum value, but here the enum value doesn't match the actual contract name (hence the type->name mapping)
its also non trivial to just change the enum because it affects other places, i hit this once before with the ism factory
@@ -30,7 +31,7 @@ export enum ChainTechnicalStack { | |||
OpStack = 'opstack', | |||
PolygonCDK = 'polygoncdk', | |||
PolkadotSubstrate = 'polkadotsubstrate', | |||
ZkSync = 'zksync', | |||
ZKSync = 'zksync', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: can we we keep this as ZkSync
and update all the ZKSync
-> ZkSync
for naming elsewhere as well for consistency?
imo it should generally be ZkXYZ
rather than ZKXYZ
, @ltyu wdyt?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We sure can, but zksync did the rebranding and is actually the owner of "ZK" trademark, so at the end the value should be ZKsync. But at the end it really doesn't matter, whatever you guys prefer
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
no opinions here. if it doesn't impact anything, then i'm okay with the change.
|
||
import { Annotated, ProtocolType } from '@hyperlane-xyz/utils'; | ||
|
||
export enum ProviderType { | ||
ZKSync = 'zksync', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ditto depending on the outcome of the ZKSync -> ZkSync comment earlier
…ain and artifacts exports
|
||
// For static ISM types it checks whether the technical stack supports static contract deployment | ||
assert( | ||
!isIsmStatic[ismType] || isStaticDeploymentSupported(technicalStack), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is there a difference between this cond and isIsmCompatible()
?
Description
This PR introduces a series of changes aimed at enhancing zkSync support within the codebase. Key updates include the addition of the zksolc compiler for zkSync, integration of contract artifacts, CLI automation for core deployment, and compatibility adjustments in tests for the zkSync environment. It also includes improvements in contract verification on zkSync explorer and handling gas limits for zkSync deployments.
Drive-by changes
Related issues
No related issue
Backward compatibility
Yes
Testing
Manual testing and some automated tests were performed, including end-to-end tests on zkSync for warp read and apply functionalities.