@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.
@@ -1,4 +1,4 @@
1
- export { createViemSdk } from '../../chunk-GBS7KQFU.js';
1
+ export { createViemSdk } from '../../chunk-3T5V4HKS.js';
2
2
  import '../../chunk-6LYAENO6.js';
3
3
  import '../../chunk-3HHUZXSV.js';
4
4
  import '../../chunk-SBGBYZJM.js';
@@ -512,12 +512,25 @@ async function buildApprovalRequest({
512
512
  // src/adapters/viem/resources/deposits/routes/erc20-nonbase.ts
513
513
  var { wrapAs: wrapAs3 } = createErrorHandlers("deposits");
514
514
  var ZERO_ASSET_ID = "0x0000000000000000000000000000000000000000000000000000000000000000";
515
+ var ntvCodec = createNTVCodec({
516
+ encode: (types, values) => encodeAbiParameters(
517
+ types.map((t, i) => ({ type: t, name: `arg${i}` })),
518
+ values
519
+ ),
520
+ keccak256
521
+ });
515
522
  async function encodeSecondBridgeErc20DepositCalldata(input) {
516
523
  if (!input.ctx.resolvedToken) {
517
524
  return encodeSecondBridgeErc20Args(input.token, input.amount, input.receiver);
518
525
  }
519
526
  const l1ChainId = BigInt(await input.ctx.client.l1.getChainId());
520
- const isL1Origin = input.ctx.resolvedToken.assetId.toLowerCase() === ZERO_ASSET_ID || input.ctx.resolvedToken.originChainId === 0n || input.ctx.resolvedToken.originChainId === l1ChainId;
527
+ const expectedL1AssetId = ntvCodec.encodeAssetId(
528
+ l1ChainId,
529
+ L2_NATIVE_TOKEN_VAULT_ADDRESS,
530
+ input.token
531
+ );
532
+ const assetId = input.ctx.resolvedToken.assetId.toLowerCase();
533
+ const isL1Origin = assetId === ZERO_ASSET_ID || assetId === expectedL1AssetId.toLowerCase();
521
534
  if (isL1Origin) {
522
535
  return encodeSecondBridgeErc20Args(input.token, input.amount, input.receiver);
523
536
  }
@@ -533,8 +546,8 @@ async function getPriorityGasModel(input) {
533
546
  const l1NativeTokenVault = await input.ctx.contracts.l1NativeTokenVault();
534
547
  const l1AssetRouter = await input.ctx.contracts.l1AssetRouter();
535
548
  const l1ChainId = BigInt(await input.ctx.client.l1.getChainId());
536
- const isFirstBridge = input.ctx.resolvedToken.assetId.toLowerCase() === ZERO_ASSET_ID || input.ctx.resolvedToken.originChainId === 0n;
537
- const erc20MetadataOriginChainId = isFirstBridge ? l1ChainId : input.ctx.resolvedToken.originChainId;
549
+ const isFirstBridge = input.ctx.resolvedToken.assetId.toLowerCase() === ZERO_ASSET_ID;
550
+ const erc20MetadataOriginChainId = isFirstBridge ? l1ChainId : input.ctx.resolvedToken.originChainId !== 0n ? input.ctx.resolvedToken.originChainId : await l1NativeTokenVault.read.originChainId([input.ctx.resolvedToken.assetId]);
538
551
  const erc20Metadata = await l1NativeTokenVault.read.getERC20Getters([
539
552
  input.token,
540
553
  erc20MetadataOriginChainId
@@ -823,19 +836,19 @@ function routeErc20NonBase() {
823
836
  }
824
837
  var { wrapAs: wrapAs4 } = createErrorHandlers("deposits");
825
838
  var ZERO_ASSET_ID2 = "0x0000000000000000000000000000000000000000000000000000000000000000";
826
- var ntvCodec = createNTVCodec({
839
+ var ntvCodec2 = createNTVCodec({
827
840
  encode: (types, values) => encodeAbiParameters(
828
841
  types.map((type, index) => ({ type, name: `arg${index}` })),
829
842
  values
830
843
  ),
831
- keccak256
844
+ keccak256: keccak256
832
845
  });
833
846
  async function getPriorityGasModel2(input) {
834
847
  try {
835
848
  const l1AssetRouter = await input.ctx.contracts.l1AssetRouter();
836
849
  const l1NativeTokenVault = await input.ctx.contracts.l1NativeTokenVault();
837
850
  const originChainId = input.ctx.resolvedToken.originChainId !== 0n ? input.ctx.resolvedToken.originChainId : BigInt(await input.ctx.client.l1.getChainId());
838
- const resolvedAssetId = input.ctx.resolvedToken.assetId.toLowerCase() === ZERO_ASSET_ID2 ? ntvCodec.encodeAssetId(originChainId, L2_NATIVE_TOKEN_VAULT_ADDRESS, ETH_ADDRESS) : input.ctx.resolvedToken.assetId;
851
+ const resolvedAssetId = input.ctx.resolvedToken.assetId.toLowerCase() === ZERO_ASSET_ID2 ? ntvCodec2.encodeAssetId(originChainId, L2_NATIVE_TOKEN_VAULT_ADDRESS, ETH_ADDRESS) : input.ctx.resolvedToken.assetId;
839
852
  const erc20Metadata = await l1NativeTokenVault.read.getERC20Getters([
840
853
  ETH_ADDRESS,
841
854
  originChainId
@@ -1353,7 +1366,7 @@ async function waitForL2ExecutionFromL1Tx(l1, l2, l1TxHash) {
1353
1366
  return { l2Receipt, l2TxHash };
1354
1367
  }
1355
1368
  var { wrapAs: wrapAs6 } = createErrorHandlers("tokens");
1356
- var ntvCodec2 = createNTVCodec({
1369
+ var ntvCodec3 = createNTVCodec({
1357
1370
  encode: (types, values) => encodeAbiParameters(
1358
1371
  types.map((t, i) => ({ type: t, name: `arg${i}` })),
1359
1372
  values
@@ -1467,7 +1480,7 @@ function createTokensResource(client) {
1467
1480
  return wrapAs6("CONTRACT", "tokens.isChainEthBased", async () => {
1468
1481
  const baseAssetId = await getBaseTokenAssetId();
1469
1482
  const l1ChainId = await getL1ChainId();
1470
- const ethAssetId = ntvCodec2.encodeAssetId(
1483
+ const ethAssetId = ntvCodec3.encodeAssetId(
1471
1484
  l1ChainId,
1472
1485
  L2_NATIVE_TOKEN_VAULT_ADDRESS,
1473
1486
  ETH_ADDRESS
@@ -456,12 +456,22 @@ function routeEthDirect() {
456
456
  var { wrapAs: wrapAs2 } = createErrorHandlers("deposits");
457
457
  var ZERO_L2_TOKEN_ADDRESS2 = "0x0000000000000000000000000000000000000000";
458
458
  var ZERO_ASSET_ID = "0x0000000000000000000000000000000000000000000000000000000000000000";
459
+ var ntvCodec = createNTVCodec({
460
+ encode: (types, values) => AbiCoder.defaultAbiCoder().encode(types, values),
461
+ keccak256: (data) => keccak256(data)
462
+ });
459
463
  async function encodeSecondBridgeErc20DepositCalldata(input) {
460
464
  if (!input.ctx.resolvedToken) {
461
465
  return encodeSecondBridgeErc20Args(input.token, input.amount, input.receiver);
462
466
  }
463
- const { chainId: l1ChainId } = await input.ctx.client.l1.getNetwork();
464
- const isL1Origin = input.ctx.resolvedToken.assetId.toLowerCase() === ZERO_ASSET_ID || input.ctx.resolvedToken.originChainId === 0n || input.ctx.resolvedToken.originChainId === BigInt(l1ChainId);
467
+ const { chainId } = await input.ctx.client.l1.getNetwork();
468
+ const expectedL1AssetId = ntvCodec.encodeAssetId(
469
+ BigInt(chainId),
470
+ L2_NATIVE_TOKEN_VAULT_ADDRESS,
471
+ input.token
472
+ );
473
+ const assetId = input.ctx.resolvedToken.assetId.toLowerCase();
474
+ const isL1Origin = assetId === ZERO_ASSET_ID || assetId === expectedL1AssetId.toLowerCase();
465
475
  if (isL1Origin) {
466
476
  return encodeSecondBridgeErc20Args(input.token, input.amount, input.receiver);
467
477
  }
@@ -477,8 +487,8 @@ async function getPriorityGasModel(input) {
477
487
  const l1NativeTokenVault = await input.ctx.contracts.l1NativeTokenVault();
478
488
  const l1AssetRouter = await input.ctx.contracts.l1AssetRouter();
479
489
  const { chainId: l1ChainId } = await input.ctx.client.l1.getNetwork();
480
- const isFirstBridge = input.ctx.resolvedToken.assetId.toLowerCase() === ZERO_ASSET_ID || input.ctx.resolvedToken.originChainId === 0n;
481
- const erc20MetadataOriginChainId = isFirstBridge ? BigInt(l1ChainId) : input.ctx.resolvedToken.originChainId;
490
+ const isFirstBridge = input.ctx.resolvedToken.assetId.toLowerCase() === ZERO_ASSET_ID;
491
+ const erc20MetadataOriginChainId = isFirstBridge ? BigInt(l1ChainId) : input.ctx.resolvedToken.originChainId !== 0n ? input.ctx.resolvedToken.originChainId : await l1NativeTokenVault.originChainId(input.ctx.resolvedToken.assetId);
482
492
  const erc20Metadata = await l1NativeTokenVault.getERC20Getters(
483
493
  input.token,
484
494
  erc20MetadataOriginChainId
@@ -688,7 +698,7 @@ function routeErc20NonBase() {
688
698
  var { wrapAs: wrapAs3 } = createErrorHandlers("deposits");
689
699
  var ZERO_L2_TOKEN_ADDRESS3 = "0x0000000000000000000000000000000000000000";
690
700
  var ZERO_ASSET_ID2 = "0x0000000000000000000000000000000000000000000000000000000000000000";
691
- var ntvCodec = createNTVCodec({
701
+ var ntvCodec2 = createNTVCodec({
692
702
  encode: (types, values) => AbiCoder.defaultAbiCoder().encode(types, values),
693
703
  keccak256: (data) => keccak256(data)
694
704
  });
@@ -697,7 +707,7 @@ async function getPriorityGasModel2(input) {
697
707
  const l1AssetRouter = await input.ctx.contracts.l1AssetRouter();
698
708
  const l1NativeTokenVault = await input.ctx.contracts.l1NativeTokenVault();
699
709
  const originChainId = input.ctx.resolvedToken.originChainId !== 0n ? input.ctx.resolvedToken.originChainId : BigInt((await input.ctx.client.l1.getNetwork()).chainId);
700
- const resolvedAssetId = input.ctx.resolvedToken.assetId.toLowerCase() === ZERO_ASSET_ID2 ? ntvCodec.encodeAssetId(originChainId, L2_NATIVE_TOKEN_VAULT_ADDRESS, ETH_ADDRESS) : input.ctx.resolvedToken.assetId;
710
+ const resolvedAssetId = input.ctx.resolvedToken.assetId.toLowerCase() === ZERO_ASSET_ID2 ? ntvCodec2.encodeAssetId(originChainId, L2_NATIVE_TOKEN_VAULT_ADDRESS, ETH_ADDRESS) : input.ctx.resolvedToken.assetId;
701
711
  const erc20Metadata = await l1NativeTokenVault.getERC20Getters(
702
712
  ETH_ADDRESS,
703
713
  originChainId
@@ -1035,7 +1045,7 @@ function routeErc20Base() {
1035
1045
  }
1036
1046
  var { wrapAs: wrapAs5 } = createErrorHandlers("tokens");
1037
1047
  var abi = AbiCoder.defaultAbiCoder();
1038
- var ntvCodec2 = createNTVCodec({
1048
+ var ntvCodec3 = createNTVCodec({
1039
1049
  encode: (types, values) => abi.encode(types, values),
1040
1050
  keccak256: (data) => ethers.keccak256(data)
1041
1051
  });
@@ -1154,7 +1164,7 @@ function createTokensResource(client) {
1154
1164
  return wrapAs5("CONTRACT", "tokens.isChainEthBased", async () => {
1155
1165
  const baseAssetId = await getBaseTokenAssetId();
1156
1166
  const l1ChainId = await getL1ChainId();
1157
- const ethAssetId = ntvCodec2.encodeAssetId(
1167
+ const ethAssetId = ntvCodec3.encodeAssetId(
1158
1168
  l1ChainId,
1159
1169
  L2_NATIVE_TOKEN_VAULT_ADDRESS,
1160
1170
  ETH_ADDRESS
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@matterlabs/zksync-js",
3
- "version": "0.0.18",
3
+ "version": "0.0.19",
4
4
  "main": "./dist/index.cjs",
5
5
  "module": "./dist/index.js",
6
6
  "devDependencies": {
@@ -148,7 +148,7 @@
148
148
  "test:watch": "bun test --watch",
149
149
  "test:cov": "bun test --coverage",
150
150
  "test:core": "bun test src/core",
151
- "test:docs": "bun test docs/snippets --timeout 100000"
151
+ "test:docs": "bun test docs/snippets --timeout 200000"
152
152
  },
153
153
  "sideEffects": false,
154
154
  "type": "module",