@matterlabs/zksync-js 0.0.14 → 0.0.16

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 (66) hide show
  1. package/dist/adapters/ethers/client.cjs.map +1 -1
  2. package/dist/adapters/ethers/client.d.ts +1 -2
  3. package/dist/adapters/ethers/client.js +4 -5
  4. package/dist/adapters/ethers/index.cjs +200 -32
  5. package/dist/adapters/ethers/index.cjs.map +1 -1
  6. package/dist/adapters/ethers/index.js +6 -7
  7. package/dist/adapters/ethers/resources/interop/index.d.ts +4 -1
  8. package/dist/adapters/ethers/resources/interop/services/finalization/bundle.d.ts +4 -0
  9. package/dist/adapters/ethers/resources/interop/services/gas.d.ts +12 -0
  10. package/dist/adapters/ethers/sdk.cjs +200 -32
  11. package/dist/adapters/ethers/sdk.cjs.map +1 -1
  12. package/dist/adapters/ethers/sdk.js +5 -6
  13. package/dist/adapters/viem/client.cjs +787 -3
  14. package/dist/adapters/viem/client.cjs.map +1 -1
  15. package/dist/adapters/viem/client.d.ts +6 -1
  16. package/dist/adapters/viem/client.js +4 -5
  17. package/dist/adapters/viem/index.cjs +6502 -2966
  18. package/dist/adapters/viem/index.cjs.map +1 -1
  19. package/dist/adapters/viem/index.d.ts +5 -0
  20. package/dist/adapters/viem/index.js +6 -7
  21. package/dist/adapters/viem/resources/interop/address.d.ts +18 -0
  22. package/dist/adapters/viem/resources/interop/attributes/resource.d.ts +6 -0
  23. package/dist/adapters/viem/resources/interop/context.d.ts +31 -0
  24. package/dist/adapters/viem/resources/interop/index.d.ts +65 -0
  25. package/dist/adapters/viem/resources/interop/resolvers.d.ts +4 -0
  26. package/dist/adapters/viem/resources/interop/routes/direct.d.ts +2 -0
  27. package/dist/adapters/viem/resources/interop/routes/indirect.d.ts +2 -0
  28. package/dist/adapters/viem/resources/interop/routes/types.d.ts +23 -0
  29. package/dist/adapters/viem/resources/interop/services/erc20.d.ts +25 -0
  30. package/dist/adapters/viem/resources/interop/services/fee.d.ts +12 -0
  31. package/dist/adapters/viem/resources/interop/services/finalization/bundle.d.ts +19 -0
  32. package/dist/adapters/viem/resources/interop/services/finalization/data-fetchers.d.ts +17 -0
  33. package/dist/adapters/viem/resources/interop/services/finalization/decoders.d.ts +11 -0
  34. package/dist/adapters/viem/resources/interop/services/finalization/index.d.ts +13 -0
  35. package/dist/adapters/viem/resources/interop/services/finalization/polling.d.ts +7 -0
  36. package/dist/adapters/viem/resources/interop/services/finalization/status.d.ts +5 -0
  37. package/dist/adapters/viem/resources/interop/services/finalization/topics.d.ts +4 -0
  38. package/dist/adapters/viem/resources/interop/services/gas.d.ts +12 -0
  39. package/dist/adapters/viem/resources/interop/services/starter-data.d.ts +6 -0
  40. package/dist/adapters/viem/resources/interop/types.d.ts +8 -0
  41. package/dist/adapters/viem/sdk.cjs +6665 -3173
  42. package/dist/adapters/viem/sdk.cjs.map +1 -1
  43. package/dist/adapters/viem/sdk.d.ts +8 -1
  44. package/dist/adapters/viem/sdk.js +5 -5
  45. package/dist/{chunk-7CAVFIMW.js → chunk-24TE2NNJ.js} +2 -3
  46. package/dist/{chunk-75IOOODG.js → chunk-3KH5PCD6.js} +1233 -31
  47. package/dist/{chunk-XKRNLFET.js → chunk-5HG2DUYW.js} +150 -375
  48. package/dist/{chunk-OTXPSNNC.js → chunk-CK5UFAZK.js} +64 -7
  49. package/dist/{chunk-HP3EWKJL.js → chunk-JSBMIT4S.js} +1 -1
  50. package/dist/{chunk-5RRJDPAJ.js → chunk-NJK325XV.js} +2 -2
  51. package/dist/chunk-NLUCYVMX.js +658 -0
  52. package/dist/{chunk-XDRCN4FC.js → chunk-SBGBYZJM.js} +10 -2
  53. package/dist/{chunk-J47RI3G7.js → chunk-TYYUG5GA.js} +1 -1
  54. package/dist/{chunk-JY62QO3W.js → chunk-UEKFQAOS.js} +420 -6
  55. package/dist/core/index.js +2 -3
  56. package/dist/core/resources/deposits/chains.d.ts +1 -0
  57. package/dist/core/resources/deposits/gas.d.ts +7 -0
  58. package/dist/core/resources/deposits/priority.d.ts +4 -0
  59. package/dist/core/resources/interop/protocol.d.ts +3 -0
  60. package/dist/core/types/errors.d.ts +1 -0
  61. package/dist/core/types/flows/interop.d.ts +0 -2
  62. package/dist/core/types/primitives.d.ts +2 -0
  63. package/dist/index.js +2 -3
  64. package/package.json +1 -1
  65. package/dist/chunk-DYJKK5FW.js +0 -417
  66. package/dist/chunk-EOBXYHTZ.js +0 -265
@@ -1,9 +1,8 @@
1
- import { createErrorHandlers } from './chunk-XDRCN4FC.js';
1
+ import { createErrorHandlers } from './chunk-SBGBYZJM.js';
2
2
  import { makeTransportFromViem } from './chunk-BWKWWLY4.js';
3
- import { createZksRpc } from './chunk-DYJKK5FW.js';
4
- import { OP_CLIENT, IBridgehub_default, IL1AssetRouter_default, IL1Nullifier_default, IBaseToken_default, L2NativeTokenVault_default, IL2AssetRouter_default, L1NativeTokenVault_default } from './chunk-JY62QO3W.js';
5
- import { L2_ASSET_ROUTER_ADDRESS, L2_NATIVE_TOKEN_VAULT_ADDRESS, L2_BASE_TOKEN_ADDRESS } from './chunk-MT4X5FEO.js';
6
- import { getContract, createWalletClient } from 'viem';
3
+ import { OP_CLIENT, IBridgehub_default, IL1AssetRouter_default, IL1Nullifier_default, IBaseToken_default, L2NativeTokenVault_default, IL2AssetRouter_default, L1NativeTokenVault_default, createError, createZksRpc } from './chunk-UEKFQAOS.js';
4
+ import { L2_ASSET_ROUTER_ADDRESS, L2_NATIVE_TOKEN_VAULT_ADDRESS, L2_BASE_TOKEN_ADDRESS, L2_INTEROP_CENTER_ADDRESS, L2_INTEROP_HANDLER_ADDRESS, L2_MESSAGE_VERIFICATION_ADDRESS, FORMAL_ETH_ADDRESS } from './chunk-MT4X5FEO.js';
5
+ import { getContract, createWalletClient, custom } from 'viem';
7
6
 
8
7
  // src/adapters/viem/rpc.ts
9
8
  function zksRpcFromViem(l2Client) {
@@ -15,6 +14,15 @@ function zksRpcFromViem(l2Client) {
15
14
 
16
15
  // src/adapters/viem/client.ts
17
16
  var { wrap } = createErrorHandlers("client");
17
+ var ChainTypeManagerABI = [
18
+ {
19
+ type: "function",
20
+ name: "getSemverProtocolVersion",
21
+ inputs: [],
22
+ outputs: [{ type: "uint32" }, { type: "uint32" }, { type: "uint32" }],
23
+ stateMutability: "view"
24
+ }
25
+ ];
18
26
  function createViemClient(args) {
19
27
  const { l1, l2, l1Wallet, l2Wallet } = args;
20
28
  if (!l1Wallet.account) {
@@ -48,6 +56,9 @@ function createViemClient(args) {
48
56
  const l2AssetRouter = args.overrides?.l2AssetRouter ?? L2_ASSET_ROUTER_ADDRESS;
49
57
  const l2NativeTokenVault = args.overrides?.l2NativeTokenVault ?? L2_NATIVE_TOKEN_VAULT_ADDRESS;
50
58
  const l2BaseTokenSystem = args.overrides?.l2BaseTokenSystem ?? L2_BASE_TOKEN_ADDRESS;
59
+ const interopCenter = args.overrides?.interopCenter ?? L2_INTEROP_CENTER_ADDRESS;
60
+ const interopHandler = args.overrides?.interopHandler ?? L2_INTEROP_HANDLER_ADDRESS;
61
+ const l2MessageVerification = args.overrides?.l2MessageVerification ?? L2_MESSAGE_VERIFICATION_ADDRESS;
51
62
  addrCache = {
52
63
  bridgehub,
53
64
  l1AssetRouter,
@@ -55,7 +66,10 @@ function createViemClient(args) {
55
66
  l1NativeTokenVault,
56
67
  l2AssetRouter,
57
68
  l2NativeTokenVault,
58
- l2BaseTokenSystem
69
+ l2BaseTokenSystem,
70
+ interopCenter,
71
+ interopHandler,
72
+ l2MessageVerification
59
73
  };
60
74
  return addrCache;
61
75
  },
@@ -105,13 +119,55 @@ function createViemClient(args) {
105
119
  });
106
120
  return token;
107
121
  }
122
+ async function getProtocolVersion(chainId) {
123
+ const targetChainId = chainId ?? BigInt(await l2.getChainId());
124
+ const { bridgehub } = await ensureAddresses();
125
+ const chainTypeManager = await wrap(
126
+ OP_CLIENT.getSemverProtocolVersion,
127
+ () => l1.readContract({
128
+ address: bridgehub,
129
+ abi: IBridgehub_default,
130
+ functionName: "chainTypeManager",
131
+ args: [targetChainId]
132
+ }),
133
+ {
134
+ ctx: { where: "bridgehub.chainTypeManager", bridgehub, chainId: targetChainId },
135
+ message: "Failed to read chain type manager."
136
+ }
137
+ );
138
+ if (chainTypeManager.toLowerCase() === FORMAL_ETH_ADDRESS.toLowerCase()) {
139
+ throw createError("STATE", {
140
+ resource: "client",
141
+ operation: OP_CLIENT.getSemverProtocolVersion,
142
+ message: "No registered chain type manager for the chain.",
143
+ context: { chainId }
144
+ });
145
+ }
146
+ const semver = await wrap(
147
+ OP_CLIENT.getSemverProtocolVersion,
148
+ () => l1.readContract({
149
+ address: chainTypeManager,
150
+ abi: ChainTypeManagerABI,
151
+ functionName: "getSemverProtocolVersion"
152
+ }),
153
+ {
154
+ ctx: {
155
+ where: "chainTypeManager.getSemverProtocolVersion",
156
+ chainId: targetChainId,
157
+ chainTypeManager
158
+ },
159
+ message: "Failed to read semver protocol version."
160
+ }
161
+ );
162
+ return semver;
163
+ }
108
164
  let lazyL2;
109
165
  function getL2Wallet() {
110
166
  if (l2Wallet) return l2Wallet;
111
167
  if (!lazyL2) {
112
168
  lazyL2 = createWalletClient({
113
169
  account: l1Wallet.account,
114
- transport: l2.transport
170
+ transport: custom(l2.transport)
115
171
  });
116
172
  }
117
173
  return lazyL2;
@@ -128,6 +184,7 @@ function createViemClient(args) {
128
184
  contracts,
129
185
  refresh,
130
186
  baseToken,
187
+ getProtocolVersion,
131
188
  getL2Wallet
132
189
  };
133
190
  }
@@ -1,4 +1,4 @@
1
- import { isZKsyncError, createError, shapeCause } from './chunk-JY62QO3W.js';
1
+ import { isZKsyncError, createError, shapeCause } from './chunk-UEKFQAOS.js';
2
2
 
3
3
  // src/core/errors/error-ops.ts
4
4
  function resolveMessage(op, msg) {
@@ -1,5 +1,5 @@
1
- import { createErrorOps, REVERT_TO_READINESS } from './chunk-HP3EWKJL.js';
2
- import { IL1Nullifier_default, IERC20_default, L1NativeTokenVault_default, L2NativeTokenVault_default, Mailbox_default, IL1ContractErrors_default, IInteropErrors_default } from './chunk-JY62QO3W.js';
1
+ import { createErrorOps, REVERT_TO_READINESS } from './chunk-JSBMIT4S.js';
2
+ import { IL1Nullifier_default, IERC20_default, L1NativeTokenVault_default, L2NativeTokenVault_default, Mailbox_default, IL1ContractErrors_default, IInteropErrors_default } from './chunk-UEKFQAOS.js';
3
3
  import { Interface } from 'ethers';
4
4
 
5
5
  var ERROR_IFACES = [];