@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 { createEthersSdk } from '../../chunk-U72MNQIY.js';
1
+ export { createEthersSdk } from '../../chunk-E2XKJCI5.js';
2
2
  import '../../chunk-NJK325XV.js';
3
3
  import '../../chunk-6LYAENO6.js';
4
4
  import '../../chunk-3HHUZXSV.js';
@@ -8176,6 +8176,20 @@ function routeEthDirect() {
8176
8176
  };
8177
8177
  }
8178
8178
 
8179
+ // src/core/codec/ntv.ts
8180
+ function createNTVCodec(deps) {
8181
+ function encodeAssetId(originChainId, ntvAddress, tokenAddress) {
8182
+ const encoded = deps.encode(
8183
+ ["uint256", "address", "address"],
8184
+ [originChainId, ntvAddress, tokenAddress]
8185
+ );
8186
+ return deps.keccak256(encoded);
8187
+ }
8188
+ return {
8189
+ encodeAssetId
8190
+ };
8191
+ }
8192
+
8179
8193
  // src/adapters/viem/resources/deposits/routes/approval.ts
8180
8194
  function errorText(error) {
8181
8195
  const parts = [];
@@ -8226,12 +8240,25 @@ async function buildApprovalRequest({
8226
8240
  // src/adapters/viem/resources/deposits/routes/erc20-nonbase.ts
8227
8241
  var { wrapAs: wrapAs3 } = createErrorHandlers("deposits");
8228
8242
  var ZERO_ASSET_ID = "0x0000000000000000000000000000000000000000000000000000000000000000";
8243
+ var ntvCodec = createNTVCodec({
8244
+ encode: (types, values) => viem.encodeAbiParameters(
8245
+ types.map((t, i) => ({ type: t, name: `arg${i}` })),
8246
+ values
8247
+ ),
8248
+ keccak256: viem.keccak256
8249
+ });
8229
8250
  async function encodeSecondBridgeErc20DepositCalldata(input) {
8230
8251
  if (!input.ctx.resolvedToken) {
8231
8252
  return encodeSecondBridgeErc20Args(input.token, input.amount, input.receiver);
8232
8253
  }
8233
8254
  const l1ChainId = BigInt(await input.ctx.client.l1.getChainId());
8234
- const isL1Origin = input.ctx.resolvedToken.assetId.toLowerCase() === ZERO_ASSET_ID || input.ctx.resolvedToken.originChainId === 0n || input.ctx.resolvedToken.originChainId === l1ChainId;
8255
+ const expectedL1AssetId = ntvCodec.encodeAssetId(
8256
+ l1ChainId,
8257
+ L2_NATIVE_TOKEN_VAULT_ADDRESS,
8258
+ input.token
8259
+ );
8260
+ const assetId = input.ctx.resolvedToken.assetId.toLowerCase();
8261
+ const isL1Origin = assetId === ZERO_ASSET_ID || assetId === expectedL1AssetId.toLowerCase();
8235
8262
  if (isL1Origin) {
8236
8263
  return encodeSecondBridgeErc20Args(input.token, input.amount, input.receiver);
8237
8264
  }
@@ -8247,8 +8274,8 @@ async function getPriorityGasModel(input) {
8247
8274
  const l1NativeTokenVault = await input.ctx.contracts.l1NativeTokenVault();
8248
8275
  const l1AssetRouter = await input.ctx.contracts.l1AssetRouter();
8249
8276
  const l1ChainId = BigInt(await input.ctx.client.l1.getChainId());
8250
- const isFirstBridge = input.ctx.resolvedToken.assetId.toLowerCase() === ZERO_ASSET_ID || input.ctx.resolvedToken.originChainId === 0n;
8251
- const erc20MetadataOriginChainId = isFirstBridge ? l1ChainId : input.ctx.resolvedToken.originChainId;
8277
+ const isFirstBridge = input.ctx.resolvedToken.assetId.toLowerCase() === ZERO_ASSET_ID;
8278
+ const erc20MetadataOriginChainId = isFirstBridge ? l1ChainId : input.ctx.resolvedToken.originChainId !== 0n ? input.ctx.resolvedToken.originChainId : await l1NativeTokenVault.read.originChainId([input.ctx.resolvedToken.assetId]);
8252
8279
  const erc20Metadata = await l1NativeTokenVault.read.getERC20Getters([
8253
8280
  input.token,
8254
8281
  erc20MetadataOriginChainId
@@ -8535,25 +8562,9 @@ function routeErc20NonBase() {
8535
8562
  }
8536
8563
  };
8537
8564
  }
8538
-
8539
- // src/core/codec/ntv.ts
8540
- function createNTVCodec(deps) {
8541
- function encodeAssetId(originChainId, ntvAddress, tokenAddress) {
8542
- const encoded = deps.encode(
8543
- ["uint256", "address", "address"],
8544
- [originChainId, ntvAddress, tokenAddress]
8545
- );
8546
- return deps.keccak256(encoded);
8547
- }
8548
- return {
8549
- encodeAssetId
8550
- };
8551
- }
8552
-
8553
- // src/adapters/viem/resources/deposits/routes/eth-nonbase.ts
8554
8565
  var { wrapAs: wrapAs4 } = createErrorHandlers("deposits");
8555
8566
  var ZERO_ASSET_ID2 = "0x0000000000000000000000000000000000000000000000000000000000000000";
8556
- var ntvCodec = createNTVCodec({
8567
+ var ntvCodec2 = createNTVCodec({
8557
8568
  encode: (types, values) => viem.encodeAbiParameters(
8558
8569
  types.map((type, index) => ({ type, name: `arg${index}` })),
8559
8570
  values
@@ -8565,7 +8576,7 @@ async function getPriorityGasModel2(input) {
8565
8576
  const l1AssetRouter = await input.ctx.contracts.l1AssetRouter();
8566
8577
  const l1NativeTokenVault = await input.ctx.contracts.l1NativeTokenVault();
8567
8578
  const originChainId = input.ctx.resolvedToken.originChainId !== 0n ? input.ctx.resolvedToken.originChainId : BigInt(await input.ctx.client.l1.getChainId());
8568
- const resolvedAssetId = input.ctx.resolvedToken.assetId.toLowerCase() === ZERO_ASSET_ID2 ? ntvCodec.encodeAssetId(originChainId, L2_NATIVE_TOKEN_VAULT_ADDRESS, ETH_ADDRESS) : input.ctx.resolvedToken.assetId;
8579
+ const resolvedAssetId = input.ctx.resolvedToken.assetId.toLowerCase() === ZERO_ASSET_ID2 ? ntvCodec2.encodeAssetId(originChainId, L2_NATIVE_TOKEN_VAULT_ADDRESS, ETH_ADDRESS) : input.ctx.resolvedToken.assetId;
8569
8580
  const erc20Metadata = await l1NativeTokenVault.read.getERC20Getters([
8570
8581
  ETH_ADDRESS,
8571
8582
  originChainId
@@ -9083,7 +9094,7 @@ async function waitForL2ExecutionFromL1Tx(l1, l2, l1TxHash) {
9083
9094
  return { l2Receipt, l2TxHash };
9084
9095
  }
9085
9096
  var { wrapAs: wrapAs6 } = createErrorHandlers("tokens");
9086
- var ntvCodec2 = createNTVCodec({
9097
+ var ntvCodec3 = createNTVCodec({
9087
9098
  encode: (types, values) => viem.encodeAbiParameters(
9088
9099
  types.map((t, i) => ({ type: t, name: `arg${i}` })),
9089
9100
  values
@@ -9197,7 +9208,7 @@ function createTokensResource(client) {
9197
9208
  return wrapAs6("CONTRACT", "tokens.isChainEthBased", async () => {
9198
9209
  const baseAssetId = await getBaseTokenAssetId();
9199
9210
  const l1ChainId = await getL1ChainId();
9200
- const ethAssetId = ntvCodec2.encodeAssetId(
9211
+ const ethAssetId = ntvCodec3.encodeAssetId(
9201
9212
  l1ChainId,
9202
9213
  L2_NATIVE_TOKEN_VAULT_ADDRESS,
9203
9214
  ETH_ADDRESS