@matterlabs/zksync-js 0.0.17 → 0.0.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  export { createEthersClient as createClient, createEthersClient } from '../../chunk-24TE2NNJ.js';
2
- export { buildDirectRequestStruct, createDepositsResource, createEthersSdk, createFinalizationServices, createInteropFinalizationServices, createInteropResource, createTokensResource, createWithdrawalsResource, encodeNativeTokenVaultTransferData, encodeSecondBridgeArgs, encodeSecondBridgeDataV1, encodeSecondBridgeErc20Args, encodeSecondBridgeEthArgs, getL2TransactionHashFromLogs } from '../../chunk-J2RPWU2R.js';
2
+ export { buildDirectRequestStruct, createDepositsResource, createEthersSdk, createFinalizationServices, createInteropFinalizationServices, createInteropResource, createTokensResource, createWithdrawalsResource, encodeNativeTokenVaultTransferData, encodeSecondBridgeArgs, encodeSecondBridgeDataV1, encodeSecondBridgeErc20Args, encodeSecondBridgeEthArgs, getL2TransactionHashFromLogs } from '../../chunk-5H3VTIYD.js';
3
3
  export { classifyReadinessFromRevert, createErrorHandlers, decodeRevert, registerErrorAbi, toZKsyncError } from '../../chunk-NJK325XV.js';
4
4
  import '../../chunk-6LYAENO6.js';
5
5
  import '../../chunk-3HHUZXSV.js';
@@ -6637,17 +6637,57 @@ function routeEthDirect() {
6637
6637
  // src/core/types/primitives.ts
6638
6638
  var ZERO_HASH = "0x0000000000000000000000000000000000000000000000000000000000000000";
6639
6639
 
6640
+ // src/core/codec/ntv.ts
6641
+ function createNTVCodec(deps) {
6642
+ function encodeAssetId(originChainId, ntvAddress, tokenAddress) {
6643
+ const encoded = deps.encode(
6644
+ ["uint256", "address", "address"],
6645
+ [originChainId, ntvAddress, tokenAddress]
6646
+ );
6647
+ return deps.keccak256(encoded);
6648
+ }
6649
+ return {
6650
+ encodeAssetId
6651
+ };
6652
+ }
6653
+
6640
6654
  // src/adapters/ethers/resources/deposits/routes/erc20-nonbase.ts
6641
6655
  var { wrapAs: wrapAs2 } = createErrorHandlers("deposits");
6642
6656
  var ZERO_L2_TOKEN_ADDRESS2 = "0x0000000000000000000000000000000000000000";
6643
6657
  var ZERO_ASSET_ID = "0x0000000000000000000000000000000000000000000000000000000000000000";
6658
+ var ntvCodec = createNTVCodec({
6659
+ encode: (types, values) => ethers.AbiCoder.defaultAbiCoder().encode(types, values),
6660
+ keccak256: (data) => ethers.keccak256(data)
6661
+ });
6662
+ async function encodeSecondBridgeErc20DepositCalldata(input) {
6663
+ if (!input.ctx.resolvedToken) {
6664
+ return encodeSecondBridgeErc20Args(input.token, input.amount, input.receiver);
6665
+ }
6666
+ const { chainId } = await input.ctx.client.l1.getNetwork();
6667
+ const expectedL1AssetId = ntvCodec.encodeAssetId(
6668
+ BigInt(chainId),
6669
+ L2_NATIVE_TOKEN_VAULT_ADDRESS,
6670
+ input.token
6671
+ );
6672
+ const assetId = input.ctx.resolvedToken.assetId.toLowerCase();
6673
+ const isL1Origin = assetId === ZERO_ASSET_ID || assetId === expectedL1AssetId.toLowerCase();
6674
+ if (isL1Origin) {
6675
+ return encodeSecondBridgeErc20Args(input.token, input.amount, input.receiver);
6676
+ }
6677
+ const transferData = encodeNativeTokenVaultTransferData(
6678
+ input.amount,
6679
+ input.receiver,
6680
+ input.token
6681
+ );
6682
+ return encodeSecondBridgeDataV1(input.ctx.resolvedToken.assetId, transferData);
6683
+ }
6644
6684
  async function getPriorityGasModel(input) {
6645
6685
  try {
6646
6686
  const l1NativeTokenVault = await input.ctx.contracts.l1NativeTokenVault();
6647
6687
  const l1AssetRouter = await input.ctx.contracts.l1AssetRouter();
6648
6688
  const { chainId: l1ChainId } = await input.ctx.client.l1.getNetwork();
6649
- const isFirstBridge = input.ctx.resolvedToken.assetId.toLowerCase() === ZERO_ASSET_ID || input.ctx.resolvedToken.originChainId === 0n;
6650
- const erc20MetadataOriginChainId = isFirstBridge ? BigInt(l1ChainId) : input.ctx.resolvedToken.originChainId;
6689
+ const isFirstBridge = input.ctx.resolvedToken.assetId.toLowerCase() === ZERO_ASSET_ID;
6690
+ const erc20MetadataOriginChainId = isFirstBridge ? BigInt(l1ChainId) : input.ctx.resolvedToken.originChainId !== 0n ? input.ctx.resolvedToken.originChainId : await l1NativeTokenVault.originChainId(input.ctx.resolvedToken.assetId);
6651
6691
  const erc20Metadata = await l1NativeTokenVault.getERC20Getters(
6652
6692
  input.token,
6653
6693
  erc20MetadataOriginChainId
@@ -6713,9 +6753,14 @@ function routeErc20NonBase() {
6713
6753
  const secondBridgeCalldata = await wrapAs2(
6714
6754
  "INTERNAL",
6715
6755
  OP_DEPOSITS.nonbase.encodeCalldata,
6716
- () => Promise.resolve(encodeSecondBridgeErc20Args(p.token, p.amount, receiver)),
6756
+ () => encodeSecondBridgeErc20DepositCalldata({
6757
+ ctx,
6758
+ token: p.token,
6759
+ amount: p.amount,
6760
+ receiver
6761
+ }),
6717
6762
  {
6718
- ctx: { where: "encodeSecondBridgeErc20Args" },
6763
+ ctx: { where: "encodeSecondBridgeErc20DepositCalldata" },
6719
6764
  message: "Failed to encode bridging calldata."
6720
6765
  }
6721
6766
  );
@@ -6849,26 +6894,10 @@ function routeErc20NonBase() {
6849
6894
  }
6850
6895
  };
6851
6896
  }
6852
-
6853
- // src/core/codec/ntv.ts
6854
- function createNTVCodec(deps) {
6855
- function encodeAssetId(originChainId, ntvAddress, tokenAddress) {
6856
- const encoded = deps.encode(
6857
- ["uint256", "address", "address"],
6858
- [originChainId, ntvAddress, tokenAddress]
6859
- );
6860
- return deps.keccak256(encoded);
6861
- }
6862
- return {
6863
- encodeAssetId
6864
- };
6865
- }
6866
-
6867
- // src/adapters/ethers/resources/deposits/routes/eth-nonbase.ts
6868
6897
  var { wrapAs: wrapAs3 } = createErrorHandlers("deposits");
6869
6898
  var ZERO_L2_TOKEN_ADDRESS3 = "0x0000000000000000000000000000000000000000";
6870
6899
  var ZERO_ASSET_ID2 = "0x0000000000000000000000000000000000000000000000000000000000000000";
6871
- var ntvCodec = createNTVCodec({
6900
+ var ntvCodec2 = createNTVCodec({
6872
6901
  encode: (types, values) => ethers.AbiCoder.defaultAbiCoder().encode(types, values),
6873
6902
  keccak256: (data) => ethers.keccak256(data)
6874
6903
  });
@@ -6877,7 +6906,7 @@ async function getPriorityGasModel2(input) {
6877
6906
  const l1AssetRouter = await input.ctx.contracts.l1AssetRouter();
6878
6907
  const l1NativeTokenVault = await input.ctx.contracts.l1NativeTokenVault();
6879
6908
  const originChainId = input.ctx.resolvedToken.originChainId !== 0n ? input.ctx.resolvedToken.originChainId : BigInt((await input.ctx.client.l1.getNetwork()).chainId);
6880
- const resolvedAssetId = input.ctx.resolvedToken.assetId.toLowerCase() === ZERO_ASSET_ID2 ? ntvCodec.encodeAssetId(originChainId, L2_NATIVE_TOKEN_VAULT_ADDRESS, ETH_ADDRESS) : input.ctx.resolvedToken.assetId;
6909
+ const resolvedAssetId = input.ctx.resolvedToken.assetId.toLowerCase() === ZERO_ASSET_ID2 ? ntvCodec2.encodeAssetId(originChainId, L2_NATIVE_TOKEN_VAULT_ADDRESS, ETH_ADDRESS) : input.ctx.resolvedToken.assetId;
6881
6910
  const erc20Metadata = await l1NativeTokenVault.getERC20Getters(
6882
6911
  ETH_ADDRESS,
6883
6912
  originChainId
@@ -7215,7 +7244,7 @@ function routeErc20Base() {
7215
7244
  }
7216
7245
  var { wrapAs: wrapAs5 } = createErrorHandlers("tokens");
7217
7246
  var abi = ethers.AbiCoder.defaultAbiCoder();
7218
- var ntvCodec2 = createNTVCodec({
7247
+ var ntvCodec3 = createNTVCodec({
7219
7248
  encode: (types, values) => abi.encode(types, values),
7220
7249
  keccak256: (data) => ethers.ethers.keccak256(data)
7221
7250
  });
@@ -7334,7 +7363,7 @@ function createTokensResource(client) {
7334
7363
  return wrapAs5("CONTRACT", "tokens.isChainEthBased", async () => {
7335
7364
  const baseAssetId = await getBaseTokenAssetId();
7336
7365
  const l1ChainId = await getL1ChainId();
7337
- const ethAssetId = ntvCodec2.encodeAssetId(
7366
+ const ethAssetId = ntvCodec3.encodeAssetId(
7338
7367
  l1ChainId,
7339
7368
  L2_NATIVE_TOKEN_VAULT_ADDRESS,
7340
7369
  ETH_ADDRESS