@matterlabs/zksync-js 0.0.18 → 0.0.20

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-U72MNQIY.js';
2
+ export { buildDirectRequestStruct, createDepositsResource, createEthersSdk, createFinalizationServices, createInteropFinalizationServices, createInteropResource, createTokensResource, createWithdrawalsResource, encodeNativeTokenVaultTransferData, encodeSecondBridgeArgs, encodeSecondBridgeDataV1, encodeSecondBridgeErc20Args, encodeSecondBridgeEthArgs, getL2TransactionHashFromLogs } from '../../chunk-E2XKJCI5.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,16 +6637,40 @@ 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
+ });
6644
6662
  async function encodeSecondBridgeErc20DepositCalldata(input) {
6645
6663
  if (!input.ctx.resolvedToken) {
6646
6664
  return encodeSecondBridgeErc20Args(input.token, input.amount, input.receiver);
6647
6665
  }
6648
- const { chainId: l1ChainId } = await input.ctx.client.l1.getNetwork();
6649
- const isL1Origin = input.ctx.resolvedToken.assetId.toLowerCase() === ZERO_ASSET_ID || input.ctx.resolvedToken.originChainId === 0n || input.ctx.resolvedToken.originChainId === BigInt(l1ChainId);
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();
6650
6674
  if (isL1Origin) {
6651
6675
  return encodeSecondBridgeErc20Args(input.token, input.amount, input.receiver);
6652
6676
  }
@@ -6662,8 +6686,8 @@ async function getPriorityGasModel(input) {
6662
6686
  const l1NativeTokenVault = await input.ctx.contracts.l1NativeTokenVault();
6663
6687
  const l1AssetRouter = await input.ctx.contracts.l1AssetRouter();
6664
6688
  const { chainId: l1ChainId } = await input.ctx.client.l1.getNetwork();
6665
- const isFirstBridge = input.ctx.resolvedToken.assetId.toLowerCase() === ZERO_ASSET_ID || input.ctx.resolvedToken.originChainId === 0n;
6666
- 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);
6667
6691
  const erc20Metadata = await l1NativeTokenVault.getERC20Getters(
6668
6692
  input.token,
6669
6693
  erc20MetadataOriginChainId
@@ -6870,26 +6894,10 @@ function routeErc20NonBase() {
6870
6894
  }
6871
6895
  };
6872
6896
  }
6873
-
6874
- // src/core/codec/ntv.ts
6875
- function createNTVCodec(deps) {
6876
- function encodeAssetId(originChainId, ntvAddress, tokenAddress) {
6877
- const encoded = deps.encode(
6878
- ["uint256", "address", "address"],
6879
- [originChainId, ntvAddress, tokenAddress]
6880
- );
6881
- return deps.keccak256(encoded);
6882
- }
6883
- return {
6884
- encodeAssetId
6885
- };
6886
- }
6887
-
6888
- // src/adapters/ethers/resources/deposits/routes/eth-nonbase.ts
6889
6897
  var { wrapAs: wrapAs3 } = createErrorHandlers("deposits");
6890
6898
  var ZERO_L2_TOKEN_ADDRESS3 = "0x0000000000000000000000000000000000000000";
6891
6899
  var ZERO_ASSET_ID2 = "0x0000000000000000000000000000000000000000000000000000000000000000";
6892
- var ntvCodec = createNTVCodec({
6900
+ var ntvCodec2 = createNTVCodec({
6893
6901
  encode: (types, values) => ethers.AbiCoder.defaultAbiCoder().encode(types, values),
6894
6902
  keccak256: (data) => ethers.keccak256(data)
6895
6903
  });
@@ -6898,7 +6906,7 @@ async function getPriorityGasModel2(input) {
6898
6906
  const l1AssetRouter = await input.ctx.contracts.l1AssetRouter();
6899
6907
  const l1NativeTokenVault = await input.ctx.contracts.l1NativeTokenVault();
6900
6908
  const originChainId = input.ctx.resolvedToken.originChainId !== 0n ? input.ctx.resolvedToken.originChainId : BigInt((await input.ctx.client.l1.getNetwork()).chainId);
6901
- 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;
6902
6910
  const erc20Metadata = await l1NativeTokenVault.getERC20Getters(
6903
6911
  ETH_ADDRESS,
6904
6912
  originChainId
@@ -7236,7 +7244,7 @@ function routeErc20Base() {
7236
7244
  }
7237
7245
  var { wrapAs: wrapAs5 } = createErrorHandlers("tokens");
7238
7246
  var abi = ethers.AbiCoder.defaultAbiCoder();
7239
- var ntvCodec2 = createNTVCodec({
7247
+ var ntvCodec3 = createNTVCodec({
7240
7248
  encode: (types, values) => abi.encode(types, values),
7241
7249
  keccak256: (data) => ethers.ethers.keccak256(data)
7242
7250
  });
@@ -7355,7 +7363,7 @@ function createTokensResource(client) {
7355
7363
  return wrapAs5("CONTRACT", "tokens.isChainEthBased", async () => {
7356
7364
  const baseAssetId = await getBaseTokenAssetId();
7357
7365
  const l1ChainId = await getL1ChainId();
7358
- const ethAssetId = ntvCodec2.encodeAssetId(
7366
+ const ethAssetId = ntvCodec3.encodeAssetId(
7359
7367
  l1ChainId,
7360
7368
  L2_NATIVE_TOKEN_VAULT_ADDRESS,
7361
7369
  ETH_ADDRESS
@@ -7993,7 +8001,7 @@ function routeErc20NonBase2() {
7993
8001
  async build(p, ctx) {
7994
8002
  const steps = [];
7995
8003
  const approvals = [];
7996
- const erc20 = new ethers.Contract(p.token, IERC20_default, ctx.client.getL2Signer());
8004
+ const erc20 = new ethers.Contract(p.token, IERC20_default, ctx.client.l2);
7997
8005
  const current = await wrapAs7(
7998
8006
  "CONTRACT",
7999
8007
  OP_WITHDRAWALS.erc20.allowance,
@@ -9038,7 +9046,7 @@ async function buildApproveSteps(approvals, ctx) {
9038
9046
  async function resolveErc20AssetIds(erc20Tokens, ctx) {
9039
9047
  const assetIds = /* @__PURE__ */ new Map();
9040
9048
  if (erc20Tokens.length === 0) return assetIds;
9041
- const ntv = new ethers.Contract(ctx.l2NativeTokenVault, L2NativeTokenVault_default, ctx.client.getL2Signer());
9049
+ const ntv = new ethers.Contract(ctx.l2NativeTokenVault, L2NativeTokenVault_default, ctx.client.l2);
9042
9050
  for (const token of erc20Tokens) {
9043
9051
  const assetId = await ntv.getFunction("ensureTokenIsRegistered").staticCall(token);
9044
9052
  assetIds.set(token.toLowerCase(), assetId);