@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,4 +1,4 @@
1
- export { buildDirectRequestStruct, createContractsResource, createDepositsResource, createFinalizationServices, createInteropFinalizationServices, createInteropResource, createTokensResource, createViemSdk, createWithdrawalsResource, encodeNativeTokenVaultTransferData, encodeSecondBridgeArgs, encodeSecondBridgeDataV1, encodeSecondBridgeErc20Args, encodeSecondBridgeEthArgs, getL2TransactionHashFromLogs } from '../../chunk-GBS7KQFU.js';
1
+ export { buildDirectRequestStruct, createContractsResource, createDepositsResource, createFinalizationServices, createInteropFinalizationServices, createInteropResource, createTokensResource, createViemSdk, createWithdrawalsResource, encodeNativeTokenVaultTransferData, encodeSecondBridgeArgs, encodeSecondBridgeDataV1, encodeSecondBridgeErc20Args, encodeSecondBridgeEthArgs, getL2TransactionHashFromLogs } from '../../chunk-3T5V4HKS.js';
2
2
  import '../../chunk-6LYAENO6.js';
3
3
  import '../../chunk-3HHUZXSV.js';
4
4
  export { createViemClient as createClient, createViemClient } from '../../chunk-CK5UFAZK.js';
@@ -6730,6 +6730,20 @@ function routeEthDirect() {
6730
6730
  };
6731
6731
  }
6732
6732
 
6733
+ // src/core/codec/ntv.ts
6734
+ function createNTVCodec(deps) {
6735
+ function encodeAssetId(originChainId, ntvAddress, tokenAddress) {
6736
+ const encoded = deps.encode(
6737
+ ["uint256", "address", "address"],
6738
+ [originChainId, ntvAddress, tokenAddress]
6739
+ );
6740
+ return deps.keccak256(encoded);
6741
+ }
6742
+ return {
6743
+ encodeAssetId
6744
+ };
6745
+ }
6746
+
6733
6747
  // src/adapters/viem/resources/deposits/routes/approval.ts
6734
6748
  function errorText(error) {
6735
6749
  const parts = [];
@@ -6780,12 +6794,25 @@ async function buildApprovalRequest({
6780
6794
  // src/adapters/viem/resources/deposits/routes/erc20-nonbase.ts
6781
6795
  var { wrapAs: wrapAs3 } = createErrorHandlers("deposits");
6782
6796
  var ZERO_ASSET_ID = "0x0000000000000000000000000000000000000000000000000000000000000000";
6797
+ var ntvCodec = createNTVCodec({
6798
+ encode: (types, values) => viem.encodeAbiParameters(
6799
+ types.map((t, i) => ({ type: t, name: `arg${i}` })),
6800
+ values
6801
+ ),
6802
+ keccak256: viem.keccak256
6803
+ });
6783
6804
  async function encodeSecondBridgeErc20DepositCalldata(input) {
6784
6805
  if (!input.ctx.resolvedToken) {
6785
6806
  return encodeSecondBridgeErc20Args(input.token, input.amount, input.receiver);
6786
6807
  }
6787
6808
  const l1ChainId = BigInt(await input.ctx.client.l1.getChainId());
6788
- const isL1Origin = input.ctx.resolvedToken.assetId.toLowerCase() === ZERO_ASSET_ID || input.ctx.resolvedToken.originChainId === 0n || input.ctx.resolvedToken.originChainId === l1ChainId;
6809
+ const expectedL1AssetId = ntvCodec.encodeAssetId(
6810
+ l1ChainId,
6811
+ L2_NATIVE_TOKEN_VAULT_ADDRESS,
6812
+ input.token
6813
+ );
6814
+ const assetId = input.ctx.resolvedToken.assetId.toLowerCase();
6815
+ const isL1Origin = assetId === ZERO_ASSET_ID || assetId === expectedL1AssetId.toLowerCase();
6789
6816
  if (isL1Origin) {
6790
6817
  return encodeSecondBridgeErc20Args(input.token, input.amount, input.receiver);
6791
6818
  }
@@ -6801,8 +6828,8 @@ async function getPriorityGasModel(input) {
6801
6828
  const l1NativeTokenVault = await input.ctx.contracts.l1NativeTokenVault();
6802
6829
  const l1AssetRouter = await input.ctx.contracts.l1AssetRouter();
6803
6830
  const l1ChainId = BigInt(await input.ctx.client.l1.getChainId());
6804
- const isFirstBridge = input.ctx.resolvedToken.assetId.toLowerCase() === ZERO_ASSET_ID || input.ctx.resolvedToken.originChainId === 0n;
6805
- const erc20MetadataOriginChainId = isFirstBridge ? l1ChainId : input.ctx.resolvedToken.originChainId;
6831
+ const isFirstBridge = input.ctx.resolvedToken.assetId.toLowerCase() === ZERO_ASSET_ID;
6832
+ const erc20MetadataOriginChainId = isFirstBridge ? l1ChainId : input.ctx.resolvedToken.originChainId !== 0n ? input.ctx.resolvedToken.originChainId : await l1NativeTokenVault.read.originChainId([input.ctx.resolvedToken.assetId]);
6806
6833
  const erc20Metadata = await l1NativeTokenVault.read.getERC20Getters([
6807
6834
  input.token,
6808
6835
  erc20MetadataOriginChainId
@@ -7089,25 +7116,9 @@ function routeErc20NonBase() {
7089
7116
  }
7090
7117
  };
7091
7118
  }
7092
-
7093
- // src/core/codec/ntv.ts
7094
- function createNTVCodec(deps) {
7095
- function encodeAssetId(originChainId, ntvAddress, tokenAddress) {
7096
- const encoded = deps.encode(
7097
- ["uint256", "address", "address"],
7098
- [originChainId, ntvAddress, tokenAddress]
7099
- );
7100
- return deps.keccak256(encoded);
7101
- }
7102
- return {
7103
- encodeAssetId
7104
- };
7105
- }
7106
-
7107
- // src/adapters/viem/resources/deposits/routes/eth-nonbase.ts
7108
7119
  var { wrapAs: wrapAs4 } = createErrorHandlers("deposits");
7109
7120
  var ZERO_ASSET_ID2 = "0x0000000000000000000000000000000000000000000000000000000000000000";
7110
- var ntvCodec = createNTVCodec({
7121
+ var ntvCodec2 = createNTVCodec({
7111
7122
  encode: (types, values) => viem.encodeAbiParameters(
7112
7123
  types.map((type, index) => ({ type, name: `arg${index}` })),
7113
7124
  values
@@ -7119,7 +7130,7 @@ async function getPriorityGasModel2(input) {
7119
7130
  const l1AssetRouter = await input.ctx.contracts.l1AssetRouter();
7120
7131
  const l1NativeTokenVault = await input.ctx.contracts.l1NativeTokenVault();
7121
7132
  const originChainId = input.ctx.resolvedToken.originChainId !== 0n ? input.ctx.resolvedToken.originChainId : BigInt(await input.ctx.client.l1.getChainId());
7122
- const resolvedAssetId = input.ctx.resolvedToken.assetId.toLowerCase() === ZERO_ASSET_ID2 ? ntvCodec.encodeAssetId(originChainId, L2_NATIVE_TOKEN_VAULT_ADDRESS, ETH_ADDRESS) : input.ctx.resolvedToken.assetId;
7133
+ const resolvedAssetId = input.ctx.resolvedToken.assetId.toLowerCase() === ZERO_ASSET_ID2 ? ntvCodec2.encodeAssetId(originChainId, L2_NATIVE_TOKEN_VAULT_ADDRESS, ETH_ADDRESS) : input.ctx.resolvedToken.assetId;
7123
7134
  const erc20Metadata = await l1NativeTokenVault.read.getERC20Getters([
7124
7135
  ETH_ADDRESS,
7125
7136
  originChainId
@@ -7637,7 +7648,7 @@ async function waitForL2ExecutionFromL1Tx(l1, l2, l1TxHash) {
7637
7648
  return { l2Receipt, l2TxHash };
7638
7649
  }
7639
7650
  var { wrapAs: wrapAs6 } = createErrorHandlers("tokens");
7640
- var ntvCodec2 = createNTVCodec({
7651
+ var ntvCodec3 = createNTVCodec({
7641
7652
  encode: (types, values) => viem.encodeAbiParameters(
7642
7653
  types.map((t, i) => ({ type: t, name: `arg${i}` })),
7643
7654
  values
@@ -7751,7 +7762,7 @@ function createTokensResource(client) {
7751
7762
  return wrapAs6("CONTRACT", "tokens.isChainEthBased", async () => {
7752
7763
  const baseAssetId = await getBaseTokenAssetId();
7753
7764
  const l1ChainId = await getL1ChainId();
7754
- const ethAssetId = ntvCodec2.encodeAssetId(
7765
+ const ethAssetId = ntvCodec3.encodeAssetId(
7755
7766
  l1ChainId,
7756
7767
  L2_NATIVE_TOKEN_VAULT_ADDRESS,
7757
7768
  ETH_ADDRESS