Skip to content
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 deposit #2416

Open
wants to merge 95 commits into
base: main
Choose a base branch
from

Conversation

nikola-bozin-txfusion
Copy link
Contributor

@nikola-bozin-txfusion nikola-bozin-txfusion commented Jun 16, 2024

Overview

This PR introduces deposit functionality for the ZkSync L2 Network.

Detailed summary

Added various types of deposit functionalities which allow depositing ETH, ERC20, Base Tokens To Ethereum and Non-Ethereum based chains.

Added utility function required for executing the deposit functionality.

Create ZKChains definitions for different networks of a ZKChains local setup.


PR-Codex overview

This PR introduces new enums and functions related to priority queues, updates chain definitions, adds fee-related constants, and implements functions for deposit transactions.

Detailed summary

  • Added PriorityQueueType and PriorityOpTree enums
  • Updated chain definitions for zkSync and mainnet
  • Added fee constants and functions for fee calculation
  • Implemented functions for deposit transactions
  • Added address constants and utility functions
  • Updated test files for new functionalities

The following files were skipped due to too many changes: src/zksync/utils/deposit/estimateL1ToL2Execute.test.ts, src/zksync/utils/applyL1ToL2Alias.test.ts, src/utils/address/createRandomAddress.test.ts, src/zksync/utils/deposit/getL2HashFromPriorityOp.test.ts, src/zksync/actions/l1Bridge.test.ts, src/zksync/utils/deposit/layer1TxDefaults.test.ts, src/zksync/utils/deposit/estimateDefaultBridgeDepositL2Gas.test.ts, src/zksync/utils/deposit/getL2GasLimit.test.ts, src/zksync/utils/deposit/getErc20BridgeCalldata.ts, src/zksync/actions/l1Bridge.ts, src/zksync/utils/deposit/estimateCustomBridgeDepositL2Gas.test.ts, src/zksync/actions/l2TokenAddress.test.ts, src/zksync/actions/sharedBridge.ts, src/zksync/utils/deposit/getErc20BridgeCalldata.test.ts, src/zksync/utils/isEthBasedChain.ts, src/zksync/utils/deposit/getBaseCost.ts, src/zksync/actions/getBaseToken.ts, src/zksync/actions/getL2BridgeAddress.ts, src/zksync/utils/deposit/constructRequestL2TransactionTwoBridges.test.ts, src/zksync/utils/deposit/scaleGasLimit.test.ts, site/pages/zksync/actions/sharedBridge.md, site/pages/zksync/actions/getL2BridgeAddress.md, src/zksync/utils/deposit/getDepositETHOnETHBasedChainTx.ts, src/zksync/actions/getErc20ContractValue.ts, src/zksync/actions/l2TokenAddress.ts, site/pages/zksync/actions/getBaseToken.md, src/zksync/utils/deposit/isBaseToken.ts, src/zksync/utils/deposit/checkBaseCost.test.ts, src/zksync/utils/l2TokenAddress.test.ts, src/zksync/actions/sharedBridge.test.ts, src/zksync/types/deposit.ts, src/zksync/utils/deposit/getBaseCost.test.ts, src/zksync/actions/getBaseToken.test.ts, site/pages/zksync/actions/approveErc20L1.md, src/zksync/actions/getL2TransactionBaseCost.ts, src/zksync/utils/deposit/getDepositBaseTokenOnNonEthBasedChainTx.ts, site/pages/zksync/actions/l2TransactionBaseCost.md, src/zksync/utils/l2TokenAddress.ts, src/zksync/utils/deposit/getL2HashFromPriorityOp.ts, src/zksync/utils/deposit/getPriorityOpConfirmation.ts, site/pages/zksync/actions/getErc20ContractValue.md, src/zksync/utils/deposit/getDepositTokenOnEthBasedChainTx.ts, src/zksync/index.ts, src/zksync/utils/deposit/getDepositNonBaseTokenToNonETHBasedChainTx.ts, src/zksync/utils/deposit/getPriorityOpConfirmationL2ToL1Log.ts, src/zksync/actions/getL2BridgeAddress.test.ts, src/zksync/utils/deposit/getTransactionStatusL2.ts, src/zksync/utils/deposit/constructDepositSpecification.ts, src/zksync/utils/deposit/getDepositETHOnNonETHBasedChainTx.ts, src/zksync/utils/deposit/getL2GasLimit.ts, src/zksync/utils/deposit/estimateCustomBridgeDepositL2Gas.ts, src/zksync/actions/requestL2TransactionDirect.ts, src/zksync/utils/deposit/getRequestExecuteTxDefaults.ts, src/utils/address/isAddressEqualLite.test.ts, src/zksync/actions/getAllowanceL1.ts, site/pages/zksync/utilities/deposit/getL2TransactionFromPriorityOp.md, src/zksync/actions/approveL1Erc20Token.test.ts, src/zksync/actions/requestL2TransactionTwoBridges.ts, src/zksync/utils/deposit/estimateL1ToL2Execute.ts, src/zksync/utils/deposit/getERC20DefaultBridgeData.test.ts, src/zksync/utils/deposit/getL2TransactionFromPriorityOp.ts, src/zksync/utils/deposit/getRequestExecuteTxDefaults.test.ts, src/zksync/actions/getL2TransactionBaseCost.test.ts, src/zksync/utils/deposit/buildDepositEthToEthBasedChainTransaction.test.ts, site/pages/zksync/actions/requestL2TransactionDirect.md, src/zksync/utils/deposit/buildDepositTokenToEthBasedChainTransaction.test.ts, src/zksync/utils/deposit/getL2GasLimitFromCustomBridge.ts, site/pages/zksync/actions/requestL2TransactionTwoBridges.md, src/zksync/actions/getBalanceOfTokenL1.ts, src/zksync/actions/getRawBlockTransaction.ts, src/zksync/actions/approveL1Erc20Token.ts, src/zksync/utils/deposit/constructDepositSpecification.test.ts, src/zksync/utils/deposit/constructRequestL2TransactionDirectParameters.test.ts, site/pages/zksync/actions/getBalanceOfTokenL1.md, src/zksync/actions/getBalanceL1.ts, src/zksync/utils/deposit/getERC20DefaultBridgeData.ts, src/zksync/utils/deposit/getDepositTxWithDefaults.ts, src/zksync/utils/deposit/constructRequestL2TransactionTwoBridges.ts, src/zksync/utils/deposit/buildDepositEthToEthBasedChainTransaction.ts, src/zksync/actions/requestL2TransactionDirect.test.ts, src/zksync/actions/requestL2TransactionTwoBridges.test.ts, src/zksync/utils/deposit/estimateDefaultBridgeDepositL2Gas.ts, site/pages/zksync/actions/getBalanceL1.md, src/zksync/utils/deposit/getDepositTxWithDefaults.test.ts, src/zksync/utils/deposit/buildDepositBaseTokenToNonEthBasedChainTransaction.test.ts, src/zksync/utils/deposit/getDepositETHOnETHBasedChainTx.test.ts, src/zksync/actions/getErc20ContractValue.test.ts, src/zksync/utils/deposit/getDepositBaseTokenOnNonEthBasedChainTx.test.ts, src/zksync/utils/deposit/getDepositETHOnNonETHBasedChainTx.test.ts, src/zksync/utils/deposit/getDepositTokenOnEthBasedChainTx.test.ts, src/zksync/utils/deposit/buildDepositTransaction.ts, src/zksync/utils/deposit/getDepositNonBaseTokenToNonETHBasedChainTx.test.ts, site/pages/zksync/actions/getAllowanceL1.md, site/sidebar.ts, src/zksync/utils/deposit/buildDepositEthToNonEthBasedChainTransaction.test.ts, src/zksync/types/zksRpcScheme.ts, src/zksync/utils/deposit/buildDepositTransaction.test.ts, src/zksync/utils/deposit/buildDepositNonBaseTokenToNonEthBasedChainTransaction.test.ts, src/zksync/actions/getAllowanceL1.test.ts, src/zksync/utils/deposit/buildDepositBaseTokenToNonEthBasedChainTransaction.ts, src/zksync/utils/deposit/buildDepositTokenToEthBasedChainTransaction.ts, src/zksync/utils/deposit/buildDepositEthToNonEthBasedChainTransaction.ts, src/zksync/utils/deposit/constructRequestL2TransactionDirectParameters.ts, src/zksync/actions/getBalanceL1.test.ts, src/zksync/actions/getBalanceOfTokenL1.test.ts, src/zksync/utils/deposit/buildDepositNonBaseTokenToNonEthBasedChainTransaction.ts, src/zksync/decorators/publicL1.test.ts, site/pages/zksync/utilities/deposit/buildDepositTransaction.md, src/zksync/utils/deposit/deposit-integration.test.ts, src/zksync/decorators/publicL1.ts, site/pages/zksync/guides/deposits.md, test/src/zksync.ts, test/src/zksyncPublicActionsL2MockData.ts, src/zksync/constants/abis.ts

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

Copy link

changeset-bot bot commented Jun 16, 2024

⚠️ No Changeset found

Latest commit: 143351a

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

Copy link

vercel bot commented Jun 16, 2024

@nikola-bozin-txfusion is attempting to deploy a commit to the Wevm Team on Vercel.

A member of the Team first needs to authorize it.

@jxom
Copy link
Member

jxom commented Jun 22, 2024

Can we please rebase this PR against main to clean the diff?

@nikola-bozin-txfusion
Copy link
Contributor Author

Can we please rebase this PR against main to clean the diff?

yeah, i will look into it!

@nikola-bozin-txfusion
Copy link
Contributor Author

Can we please rebase this PR against main to clean the diff?

Hey, could you please check if diff is clean now?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants