@matterlabs/zksync-js 0.0.18 → 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.
@@ -8556,15 +8556,41 @@ function routeEthDirect() {
8556
8556
  }
8557
8557
  };
8558
8558
  }
8559
+
8560
+ // src/core/codec/ntv.ts
8561
+ function createNTVCodec(deps) {
8562
+ function encodeAssetId(originChainId, ntvAddress, tokenAddress) {
8563
+ const encoded = deps.encode(
8564
+ ["uint256", "address", "address"],
8565
+ [originChainId, ntvAddress, tokenAddress]
8566
+ );
8567
+ return deps.keccak256(encoded);
8568
+ }
8569
+ return {
8570
+ encodeAssetId
8571
+ };
8572
+ }
8573
+
8574
+ // src/adapters/ethers/resources/deposits/routes/erc20-nonbase.ts
8559
8575
  var { wrapAs: wrapAs3 } = createErrorHandlers("deposits");
8560
8576
  var ZERO_L2_TOKEN_ADDRESS2 = "0x0000000000000000000000000000000000000000";
8561
8577
  var ZERO_ASSET_ID = "0x0000000000000000000000000000000000000000000000000000000000000000";
8578
+ var ntvCodec = createNTVCodec({
8579
+ encode: (types, values) => ethers.AbiCoder.defaultAbiCoder().encode(types, values),
8580
+ keccak256: (data) => ethers.keccak256(data)
8581
+ });
8562
8582
  async function encodeSecondBridgeErc20DepositCalldata(input) {
8563
8583
  if (!input.ctx.resolvedToken) {
8564
8584
  return encodeSecondBridgeErc20Args(input.token, input.amount, input.receiver);
8565
8585
  }
8566
- const { chainId: l1ChainId } = await input.ctx.client.l1.getNetwork();
8567
- const isL1Origin = input.ctx.resolvedToken.assetId.toLowerCase() === ZERO_ASSET_ID || input.ctx.resolvedToken.originChainId === 0n || input.ctx.resolvedToken.originChainId === BigInt(l1ChainId);
8586
+ const { chainId } = await input.ctx.client.l1.getNetwork();
8587
+ const expectedL1AssetId = ntvCodec.encodeAssetId(
8588
+ BigInt(chainId),
8589
+ L2_NATIVE_TOKEN_VAULT_ADDRESS,
8590
+ input.token
8591
+ );
8592
+ const assetId = input.ctx.resolvedToken.assetId.toLowerCase();
8593
+ const isL1Origin = assetId === ZERO_ASSET_ID || assetId === expectedL1AssetId.toLowerCase();
8568
8594
  if (isL1Origin) {
8569
8595
  return encodeSecondBridgeErc20Args(input.token, input.amount, input.receiver);
8570
8596
  }
@@ -8580,8 +8606,8 @@ async function getPriorityGasModel(input) {
8580
8606
  const l1NativeTokenVault = await input.ctx.contracts.l1NativeTokenVault();
8581
8607
  const l1AssetRouter = await input.ctx.contracts.l1AssetRouter();
8582
8608
  const { chainId: l1ChainId } = await input.ctx.client.l1.getNetwork();
8583
- const isFirstBridge = input.ctx.resolvedToken.assetId.toLowerCase() === ZERO_ASSET_ID || input.ctx.resolvedToken.originChainId === 0n;
8584
- const erc20MetadataOriginChainId = isFirstBridge ? BigInt(l1ChainId) : input.ctx.resolvedToken.originChainId;
8609
+ const isFirstBridge = input.ctx.resolvedToken.assetId.toLowerCase() === ZERO_ASSET_ID;
8610
+ const erc20MetadataOriginChainId = isFirstBridge ? BigInt(l1ChainId) : input.ctx.resolvedToken.originChainId !== 0n ? input.ctx.resolvedToken.originChainId : await l1NativeTokenVault.originChainId(input.ctx.resolvedToken.assetId);
8585
8611
  const erc20Metadata = await l1NativeTokenVault.getERC20Getters(
8586
8612
  input.token,
8587
8613
  erc20MetadataOriginChainId
@@ -8788,26 +8814,10 @@ function routeErc20NonBase() {
8788
8814
  }
8789
8815
  };
8790
8816
  }
8791
-
8792
- // src/core/codec/ntv.ts
8793
- function createNTVCodec(deps) {
8794
- function encodeAssetId(originChainId, ntvAddress, tokenAddress) {
8795
- const encoded = deps.encode(
8796
- ["uint256", "address", "address"],
8797
- [originChainId, ntvAddress, tokenAddress]
8798
- );
8799
- return deps.keccak256(encoded);
8800
- }
8801
- return {
8802
- encodeAssetId
8803
- };
8804
- }
8805
-
8806
- // src/adapters/ethers/resources/deposits/routes/eth-nonbase.ts
8807
8817
  var { wrapAs: wrapAs4 } = createErrorHandlers("deposits");
8808
8818
  var ZERO_L2_TOKEN_ADDRESS3 = "0x0000000000000000000000000000000000000000";
8809
8819
  var ZERO_ASSET_ID2 = "0x0000000000000000000000000000000000000000000000000000000000000000";
8810
- var ntvCodec = createNTVCodec({
8820
+ var ntvCodec2 = createNTVCodec({
8811
8821
  encode: (types, values) => ethers.AbiCoder.defaultAbiCoder().encode(types, values),
8812
8822
  keccak256: (data) => ethers.keccak256(data)
8813
8823
  });
@@ -8816,7 +8826,7 @@ async function getPriorityGasModel2(input) {
8816
8826
  const l1AssetRouter = await input.ctx.contracts.l1AssetRouter();
8817
8827
  const l1NativeTokenVault = await input.ctx.contracts.l1NativeTokenVault();
8818
8828
  const originChainId = input.ctx.resolvedToken.originChainId !== 0n ? input.ctx.resolvedToken.originChainId : BigInt((await input.ctx.client.l1.getNetwork()).chainId);
8819
- const resolvedAssetId = input.ctx.resolvedToken.assetId.toLowerCase() === ZERO_ASSET_ID2 ? ntvCodec.encodeAssetId(originChainId, L2_NATIVE_TOKEN_VAULT_ADDRESS, ETH_ADDRESS) : input.ctx.resolvedToken.assetId;
8829
+ const resolvedAssetId = input.ctx.resolvedToken.assetId.toLowerCase() === ZERO_ASSET_ID2 ? ntvCodec2.encodeAssetId(originChainId, L2_NATIVE_TOKEN_VAULT_ADDRESS, ETH_ADDRESS) : input.ctx.resolvedToken.assetId;
8820
8830
  const erc20Metadata = await l1NativeTokenVault.getERC20Getters(
8821
8831
  ETH_ADDRESS,
8822
8832
  originChainId
@@ -9154,7 +9164,7 @@ function routeErc20Base() {
9154
9164
  }
9155
9165
  var { wrapAs: wrapAs6 } = createErrorHandlers("tokens");
9156
9166
  var abi = ethers.AbiCoder.defaultAbiCoder();
9157
- var ntvCodec2 = createNTVCodec({
9167
+ var ntvCodec3 = createNTVCodec({
9158
9168
  encode: (types, values) => abi.encode(types, values),
9159
9169
  keccak256: (data) => ethers.ethers.keccak256(data)
9160
9170
  });
@@ -9273,7 +9283,7 @@ function createTokensResource(client) {
9273
9283
  return wrapAs6("CONTRACT", "tokens.isChainEthBased", async () => {
9274
9284
  const baseAssetId = await getBaseTokenAssetId();
9275
9285
  const l1ChainId = await getL1ChainId();
9276
- const ethAssetId = ntvCodec2.encodeAssetId(
9286
+ const ethAssetId = ntvCodec3.encodeAssetId(
9277
9287
  l1ChainId,
9278
9288
  L2_NATIVE_TOKEN_VAULT_ADDRESS,
9279
9289
  ETH_ADDRESS