@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.
- package/dist/adapters/ethers/client.cjs +632 -649
- package/dist/adapters/ethers/client.cjs.map +1 -1
- package/dist/adapters/ethers/client.js +5 -5
- package/dist/adapters/ethers/index.cjs +670 -662
- package/dist/adapters/ethers/index.cjs.map +1 -1
- package/dist/adapters/ethers/index.js +7 -7
- package/dist/adapters/ethers/sdk.cjs +669 -661
- package/dist/adapters/ethers/sdk.cjs.map +1 -1
- package/dist/adapters/ethers/sdk.js +5 -5
- package/dist/adapters/viem/client.cjs +39 -40
- package/dist/adapters/viem/client.cjs.map +1 -1
- package/dist/adapters/viem/client.js +5 -5
- package/dist/adapters/viem/index.cjs +97 -182
- package/dist/adapters/viem/index.cjs.map +1 -1
- package/dist/adapters/viem/index.js +7 -7
- package/dist/adapters/viem/sdk.js +5 -4
- package/dist/{chunk-IYEDEUXG.js → chunk-6IT5PEEN.js} +1 -1
- package/dist/{chunk-5AG6B7UX.js → chunk-CCUAGJ6K.js} +5 -112
- package/dist/{chunk-KLNFDFLA.js → chunk-EWBYKU4G.js} +3 -3
- package/dist/{chunk-JNWHQJU3.js → chunk-FXSFLZ6D.js} +4 -4
- package/dist/{chunk-SRPKTXIF.js → chunk-H3BPVVMN.js} +1 -1
- package/dist/{chunk-AIFHAPJC.js → chunk-IQVH7YZT.js} +1 -1
- package/dist/{chunk-QDJOEVGJ.js → chunk-N4PR5SVB.js} +2 -2
- package/dist/{chunk-FBKBF7YM.js → chunk-QFEYV4O3.js} +669 -661
- package/dist/chunk-QUI3J42E.js +113 -0
- package/dist/{chunk-RRKVUW3G.js → chunk-TL26ZONW.js} +6 -6
- package/dist/{chunk-UIXU35ZU.js → chunk-USXSAFYA.js} +1 -1
- package/dist/core/abi.d.ts +2 -2
- package/dist/core/index.cjs +668 -660
- package/dist/core/index.cjs.map +1 -1
- package/dist/core/index.js +3 -3
- package/dist/core/internal/abis/IInteropCenter.d.ts +425 -121
- package/dist/core/internal/abis/IInteropHandler.d.ts +121 -69
- package/dist/core/internal/abis/IInteropRootStorage.d.ts +40 -0
- package/dist/index.cjs +668 -660
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +3 -3
- package/package.json +1 -1
- package/dist/core/internal/abis/InteropCenter.d.ts +0 -578
- 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 {
|
|
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 {
|
|
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(
|
|
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(
|
|
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
|
-
|
|
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-
|
|
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
|
package/dist/core/abi.d.ts
CHANGED
|
@@ -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
|
|
11
|
+
export { default as IInteropCenterABI } from './internal/abis/IInteropCenter';
|
|
12
12
|
export { default as IInteropHandlerABI } from './internal/abis/IInteropHandler';
|
|
13
|
-
export { default as
|
|
13
|
+
export { default as IInteropRootStorageABI } from './internal/abis/IInteropRootStorage';
|
|
14
14
|
export { default as L2MessageVerificationABI } from './internal/abis/L2MessageVerification';
|