@matterlabs/zksync-js 0.0.9 → 0.0.11

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.
Files changed (40) hide show
  1. package/dist/adapters/ethers/client.cjs +632 -649
  2. package/dist/adapters/ethers/client.cjs.map +1 -1
  3. package/dist/adapters/ethers/client.js +5 -5
  4. package/dist/adapters/ethers/index.cjs +670 -662
  5. package/dist/adapters/ethers/index.cjs.map +1 -1
  6. package/dist/adapters/ethers/index.js +7 -7
  7. package/dist/adapters/ethers/sdk.cjs +669 -661
  8. package/dist/adapters/ethers/sdk.cjs.map +1 -1
  9. package/dist/adapters/ethers/sdk.js +5 -5
  10. package/dist/adapters/viem/client.cjs +39 -40
  11. package/dist/adapters/viem/client.cjs.map +1 -1
  12. package/dist/adapters/viem/client.js +5 -5
  13. package/dist/adapters/viem/index.cjs +97 -182
  14. package/dist/adapters/viem/index.cjs.map +1 -1
  15. package/dist/adapters/viem/index.js +7 -7
  16. package/dist/adapters/viem/sdk.js +5 -4
  17. package/dist/{chunk-IYEDEUXG.js → chunk-6IT5PEEN.js} +1 -1
  18. package/dist/{chunk-5AG6B7UX.js → chunk-CCUAGJ6K.js} +5 -112
  19. package/dist/{chunk-KLNFDFLA.js → chunk-EWBYKU4G.js} +3 -3
  20. package/dist/{chunk-JNWHQJU3.js → chunk-FXSFLZ6D.js} +4 -4
  21. package/dist/{chunk-SRPKTXIF.js → chunk-H3BPVVMN.js} +1 -1
  22. package/dist/{chunk-AIFHAPJC.js → chunk-IQVH7YZT.js} +1 -1
  23. package/dist/{chunk-QDJOEVGJ.js → chunk-N4PR5SVB.js} +2 -2
  24. package/dist/{chunk-FBKBF7YM.js → chunk-QFEYV4O3.js} +669 -661
  25. package/dist/chunk-QUI3J42E.js +113 -0
  26. package/dist/{chunk-RRKVUW3G.js → chunk-TL26ZONW.js} +6 -6
  27. package/dist/{chunk-UIXU35ZU.js → chunk-USXSAFYA.js} +1 -1
  28. package/dist/core/abi.d.ts +2 -2
  29. package/dist/core/index.cjs +668 -660
  30. package/dist/core/index.cjs.map +1 -1
  31. package/dist/core/index.js +3 -3
  32. package/dist/core/internal/abis/IInteropCenter.d.ts +425 -121
  33. package/dist/core/internal/abis/IInteropHandler.d.ts +121 -69
  34. package/dist/core/internal/abis/IInteropRootStorage.d.ts +40 -0
  35. package/dist/index.cjs +668 -660
  36. package/dist/index.cjs.map +1 -1
  37. package/dist/index.js +3 -3
  38. package/package.json +1 -1
  39. package/dist/core/internal/abis/InteropCenter.d.ts +0 -578
  40. package/dist/core/internal/abis/InteropRootStorage.d.ts +0 -20
@@ -0,0 +1,113 @@
1
+ import { createErrorOps, REVERT_TO_READINESS } from './chunk-H3BPVVMN.js';
2
+ import { IL1Nullifier_default, IERC20_default, L1NativeTokenVault_default, L2NativeTokenVault_default, Mailbox_default } from './chunk-QFEYV4O3.js';
3
+ import { decodeErrorResult } from 'viem';
4
+
5
+ var ERROR_ABIS = [];
6
+ var ABI_ERROR_STRING = [
7
+ { type: "error", name: "Error", inputs: [{ name: "message", type: "string" }] }
8
+ ];
9
+ var ABI_PANIC = [
10
+ { type: "error", name: "Panic", inputs: [{ name: "code", type: "uint256" }] }
11
+ ];
12
+ (function bootstrapDefaultAbis() {
13
+ try {
14
+ ERROR_ABIS.push({ name: "IL1Nullifier", abi: IL1Nullifier_default });
15
+ } catch {
16
+ }
17
+ try {
18
+ ERROR_ABIS.push({ name: "IERC20", abi: IERC20_default });
19
+ } catch {
20
+ }
21
+ try {
22
+ ERROR_ABIS.push({ name: "IL1NativeTokenVault", abi: L1NativeTokenVault_default });
23
+ } catch {
24
+ }
25
+ try {
26
+ ERROR_ABIS.push({ name: "IL2NativeTokenVault", abi: L2NativeTokenVault_default });
27
+ } catch {
28
+ }
29
+ try {
30
+ ERROR_ABIS.push({ name: "Mailbox", abi: Mailbox_default });
31
+ } catch {
32
+ }
33
+ })();
34
+ function registerErrorAbi(name, abi) {
35
+ const i = ERROR_ABIS.findIndex((x) => x.name === name);
36
+ const entry = { name, abi };
37
+ if (i >= 0) ERROR_ABIS[i] = entry;
38
+ else ERROR_ABIS.push(entry);
39
+ }
40
+ function extractRevertData(e) {
41
+ const candidates = [
42
+ e?.data?.data,
43
+ e?.error?.data,
44
+ e?.data,
45
+ e?.error?.error?.data,
46
+ e?.info?.error?.data,
47
+ e?.cause?.data,
48
+ e?.cause?.cause?.data,
49
+ e?.details
50
+ ];
51
+ for (const c of candidates) {
52
+ if (typeof c === "string" && c.startsWith("0x") && c.length >= 10) {
53
+ return c;
54
+ }
55
+ }
56
+ return void 0;
57
+ }
58
+ function decodeRevert(e) {
59
+ const data = extractRevertData(e);
60
+ if (!data) return;
61
+ const selector = `0x${data.slice(2, 10)}`;
62
+ try {
63
+ const parsed = decodeErrorResult({ abi: ABI_ERROR_STRING, data });
64
+ if (parsed?.errorName === "Error") {
65
+ return { selector, name: parsed.errorName, args: parsed.args ? [...parsed.args] : void 0 };
66
+ }
67
+ } catch {
68
+ }
69
+ try {
70
+ const parsed = decodeErrorResult({ abi: ABI_PANIC, data });
71
+ if (parsed?.errorName === "Panic") {
72
+ return { selector, name: parsed.errorName, args: parsed.args ? [...parsed.args] : void 0 };
73
+ }
74
+ } catch {
75
+ }
76
+ for (const { name, abi } of ERROR_ABIS) {
77
+ try {
78
+ const parsed = decodeErrorResult({ abi, data });
79
+ if (parsed && parsed.errorName) {
80
+ return {
81
+ selector,
82
+ name: parsed.errorName,
83
+ args: parsed.args ? [...parsed.args] : void 0,
84
+ contract: name
85
+ };
86
+ }
87
+ } catch {
88
+ }
89
+ }
90
+ return { selector };
91
+ }
92
+ function classifyReadinessFromRevert(e) {
93
+ const r = decodeRevert(e);
94
+ const name = r?.name;
95
+ if (name && REVERT_TO_READINESS[name]) return REVERT_TO_READINESS[name];
96
+ const msg = (() => {
97
+ if (typeof e !== "object" || e === null) return "";
98
+ const obj = e;
99
+ const maybe = obj["shortMessage"] ?? obj["message"];
100
+ return typeof maybe === "string" ? maybe : "";
101
+ })();
102
+ const lower = msg.toLowerCase();
103
+ if (lower.includes("paused")) return { kind: "NOT_READY", reason: "paused" };
104
+ if (name || r?.selector) {
105
+ return { kind: "UNFINALIZABLE", reason: "unsupported", detail: name ?? r?.selector };
106
+ }
107
+ return { kind: "NOT_READY", reason: "unknown", detail: lower || void 0 };
108
+ }
109
+
110
+ // src/adapters/viem/errors/error-ops.ts
111
+ var { toZKsyncError, createErrorHandlers } = createErrorOps(decodeRevert);
112
+
113
+ export { classifyReadinessFromRevert, createErrorHandlers, decodeRevert, registerErrorAbi, toZKsyncError };
@@ -1,7 +1,7 @@
1
- import { createNTVCodec, toGasOverrides, buildFeeBreakdown, quoteL2Gas, quoteL2BaseCost, quoteL1Gas, quoteL2Gas2 } from './chunk-AIFHAPJC.js';
1
+ import { createErrorHandlers, toZKsyncError, classifyReadinessFromRevert } from './chunk-N4PR5SVB.js';
2
+ import { createNTVCodec, toGasOverrides, buildFeeBreakdown, quoteL2Gas, quoteL2BaseCost, quoteL1Gas, quoteL2Gas2 } from './chunk-IQVH7YZT.js';
2
3
  import { findL1MessageSentLog, messengerLogIndex, isL1MessageSentLog, pickWithdrawRoute } from './chunk-ZVHFVUDE.js';
3
- import { createErrorHandlers, toZKsyncError, classifyReadinessFromRevert } from './chunk-QDJOEVGJ.js';
4
- import { isHash66, IL1Nullifier_default, OP_WITHDRAWALS, createError, normalizeL1Token, isAddressEq, hexEq, OP_DEPOSITS, IERC20_default, isZKsyncError, isReceiptNotFound, OP_INTEROP, IInteropHandler_default, IERC7786Attributes_default, isBigint, isHash, InteropCenter_default, sleep, isETH, normalizeAddrEq, isNumber, isAddress, isHash66Array, InteropRootStorage_default, L2NativeTokenVault_default, assertNever } from './chunk-FBKBF7YM.js';
4
+ import { isHash66, IL1Nullifier_default, OP_WITHDRAWALS, createError, normalizeL1Token, isAddressEq, hexEq, OP_DEPOSITS, IERC20_default, isZKsyncError, isReceiptNotFound, OP_INTEROP, IInteropHandler_default, IERC7786Attributes_default, isBigint, isHash, IInteropCenter_default, sleep, isETH, normalizeAddrEq, isNumber, isAddress, isHash66Array, IInteropRootStorage_default, L2NativeTokenVault_default, assertNever } from './chunk-QFEYV4O3.js';
5
5
  import { ETH_ADDRESS, TOPIC_CANONICAL_ASSIGNED, TOPIC_CANONICAL_SUCCESS, L1_MESSENGER_ADDRESS, L2_ASSET_ROUTER_ADDRESS, L2_BASE_TOKEN_ADDRESS, L2_NATIVE_TOKEN_VAULT_ADDRESS, L2_INTEROP_CENTER_ADDRESS, BUNDLE_IDENTIFIER, L2_INTEROP_ROOT_STORAGE_ADDRESS, SAFE_L1_BRIDGE_GAS } from './chunk-C3AGOEHR.js';
6
6
  import { Interface, AbiCoder, ethers, getBytes, Contract, NonceManager, JsonRpcProvider, isError, getAddress, concat, hexlify, toBeArray, toBeHex } from 'ethers';
7
7
 
@@ -2706,7 +2706,7 @@ async function commonCtx3(dstProvider, params, client, tokens, contracts, attrib
2706
2706
  client.baseToken(chainId),
2707
2707
  client.baseToken(dstChainId)
2708
2708
  ]);
2709
- const interopCenterIface = new Interface(InteropCenter_default);
2709
+ const interopCenterIface = new Interface(IInteropCenter_default);
2710
2710
  const interopHandlerIface = new Interface(IInteropHandler_default);
2711
2711
  const baseMatches = srcBaseToken.toLowerCase() === dstBaseToken.toLowerCase();
2712
2712
  return {
@@ -2731,7 +2731,7 @@ async function commonCtx3(dstProvider, params, client, tokens, contracts, attrib
2731
2731
  };
2732
2732
  }
2733
2733
  function getTopics() {
2734
- const centerIface = new Interface(InteropCenter_default);
2734
+ const centerIface = new Interface(IInteropCenter_default);
2735
2735
  const handlerIface = new Interface(IInteropHandler_default);
2736
2736
  const topics = {
2737
2737
  interopBundleSent: centerIface.getEvent("InteropBundleSent").topicHash,
@@ -2827,7 +2827,7 @@ async function getInteropRoot(provider, rootChainId, batchNumber) {
2827
2827
  async () => {
2828
2828
  const rootStorage = new Contract(
2829
2829
  L2_INTEROP_ROOT_STORAGE_ADDRESS,
2830
- InteropRootStorage_default,
2830
+ IInteropRootStorage_default,
2831
2831
  provider
2832
2832
  );
2833
2833
  return await rootStorage.interopRoots(rootChainId, batchNumber);
@@ -1,4 +1,4 @@
1
- import { createError, isBigint, isNumber, isZKsyncError, shapeCause } from './chunk-FBKBF7YM.js';
1
+ import { createError, isBigint, isNumber, isZKsyncError, shapeCause } from './chunk-QFEYV4O3.js';
2
2
  import { __export } from './chunk-C3AGOEHR.js';
3
3
 
4
4
  // src/core/rpc/zks.ts
@@ -8,7 +8,7 @@ export { default as IBaseTokenABI } from './internal/abis/IBaseToken';
8
8
  export { default as IERC20ABI } from './internal/abis/IERC20';
9
9
  export { default as IERC7786AttributesABI } from './internal/abis/IERC7786Attributes';
10
10
  export { default as MailboxABI } from './internal/abis/Mailbox';
11
- export { default as InteropCenterABI } from './internal/abis/InteropCenter';
11
+ export { default as IInteropCenterABI } from './internal/abis/IInteropCenter';
12
12
  export { default as IInteropHandlerABI } from './internal/abis/IInteropHandler';
13
- export { default as InteropRootStorageABI } from './internal/abis/InteropRootStorage';
13
+ export { default as IInteropRootStorageABI } from './internal/abis/IInteropRootStorage';
14
14
  export { default as L2MessageVerificationABI } from './internal/abis/L2MessageVerification';