@matterlabs/zksync-js 0.0.2 → 0.0.5

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 (61) hide show
  1. package/README.md +1 -3
  2. package/dist/adapters/ethers/client.cjs.map +1 -1
  3. package/dist/adapters/ethers/index.cjs +391 -170
  4. package/dist/adapters/ethers/index.cjs.map +1 -1
  5. package/dist/adapters/ethers/index.d.ts +1 -0
  6. package/dist/adapters/ethers/index.js +3 -3
  7. package/dist/adapters/ethers/resources/contracts/contracts.d.ts +9 -0
  8. package/dist/adapters/ethers/resources/contracts/index.d.ts +2 -0
  9. package/dist/adapters/ethers/resources/contracts/types.d.ts +60 -0
  10. package/dist/adapters/ethers/resources/deposits/context.d.ts +16 -2
  11. package/dist/adapters/ethers/resources/deposits/index.d.ts +3 -1
  12. package/dist/adapters/ethers/resources/deposits/services/gas.d.ts +3 -2
  13. package/dist/adapters/ethers/resources/tokens/index.d.ts +1 -0
  14. package/dist/adapters/ethers/resources/tokens/tokens.d.ts +10 -0
  15. package/dist/adapters/ethers/resources/utils.d.ts +0 -3
  16. package/dist/adapters/ethers/resources/withdrawals/context.d.ts +11 -3
  17. package/dist/adapters/ethers/resources/withdrawals/index.d.ts +3 -1
  18. package/dist/adapters/ethers/sdk.cjs +386 -154
  19. package/dist/adapters/ethers/sdk.cjs.map +1 -1
  20. package/dist/adapters/ethers/sdk.d.ts +5 -22
  21. package/dist/adapters/ethers/sdk.js +3 -3
  22. package/dist/adapters/viem/client.cjs.map +1 -1
  23. package/dist/adapters/viem/index.cjs +383 -176
  24. package/dist/adapters/viem/index.cjs.map +1 -1
  25. package/dist/adapters/viem/index.d.ts +3 -0
  26. package/dist/adapters/viem/index.js +3 -3
  27. package/dist/adapters/viem/resources/contracts/contracts.d.ts +9 -0
  28. package/dist/adapters/viem/resources/contracts/index.d.ts +2 -0
  29. package/dist/adapters/viem/resources/contracts/types.d.ts +61 -0
  30. package/dist/adapters/viem/resources/deposits/context.d.ts +16 -2
  31. package/dist/adapters/viem/resources/deposits/index.d.ts +3 -1
  32. package/dist/adapters/viem/resources/deposits/services/gas.d.ts +2 -1
  33. package/dist/adapters/viem/resources/tokens/index.d.ts +1 -0
  34. package/dist/adapters/viem/resources/tokens/tokens.d.ts +3 -0
  35. package/dist/adapters/viem/resources/utils.d.ts +0 -3
  36. package/dist/adapters/viem/resources/withdrawals/context.d.ts +11 -3
  37. package/dist/adapters/viem/resources/withdrawals/index.d.ts +3 -1
  38. package/dist/adapters/viem/sdk.cjs +401 -189
  39. package/dist/adapters/viem/sdk.cjs.map +1 -1
  40. package/dist/adapters/viem/sdk.d.ts +5 -25
  41. package/dist/adapters/viem/sdk.js +3 -3
  42. package/dist/{chunk-OC6ZVLSP.js → chunk-JXUFGIJG.js} +348 -150
  43. package/dist/{chunk-QJS6ETEE.js → chunk-LL3WKCFJ.js} +15 -1
  44. package/dist/{chunk-BCCKWWOX.js → chunk-NBJEQAOE.js} +373 -158
  45. package/dist/{chunk-HLUANWGN.js → chunk-NEC2ZKHI.js} +4 -12
  46. package/dist/chunk-NTEIA5KA.js +13 -0
  47. package/dist/core/codec/ntv.d.ts +48 -0
  48. package/dist/core/index.cjs +4 -0
  49. package/dist/core/index.cjs.map +1 -1
  50. package/dist/core/index.d.ts +1 -0
  51. package/dist/core/index.js +2 -1
  52. package/dist/core/types/errors.d.ts +1 -1
  53. package/dist/core/types/flows/token.d.ts +192 -0
  54. package/dist/core/utils/addr.d.ts +2 -0
  55. package/dist/index.cjs +4 -0
  56. package/dist/index.cjs.map +1 -1
  57. package/dist/index.d.ts +1 -0
  58. package/dist/index.js +2 -1
  59. package/package.json +1 -1
  60. package/dist/adapters/ethers/resources/token-info.d.ts +0 -31
  61. package/dist/adapters/viem/resources/token-info.d.ts +0 -34
@@ -7,6 +7,7 @@ export type { DepositsResource } from './resources/deposits';
7
7
  export { createWithdrawalsResource } from './resources/withdrawals';
8
8
  export { createFinalizationServices } from './resources/withdrawals';
9
9
  export type { WithdrawalsResource, FinalizationServices } from './resources/withdrawals';
10
+ export { createTokensResource } from './resources/tokens';
10
11
  export * from './errors/error-ops';
11
12
  export * from './errors/revert';
12
13
  export type * from './typechain';
@@ -1,8 +1,8 @@
1
1
  export { createEthersClient as createClient, createEthersClient } from '../../chunk-3MRGU4HV.js';
2
- export { buildDirectRequestStruct, createDepositsResource, createEthersSdk, createFinalizationServices, createWithdrawalsResource, encodeNTVAssetId, encodeNTVTransferData, encodeNativeTokenVaultAssetId, encodeNativeTokenVaultTransferData, encodeSecondBridgeArgs, encodeSecondBridgeDataV1, encodeSecondBridgeErc20Args, encodeSecondBridgeEthArgs } from '../../chunk-BCCKWWOX.js';
2
+ export { buildDirectRequestStruct, createDepositsResource, createEthersSdk, createFinalizationServices, createTokensResource, createWithdrawalsResource, encodeNativeTokenVaultTransferData, encodeSecondBridgeArgs, encodeSecondBridgeDataV1, encodeSecondBridgeErc20Args, encodeSecondBridgeEthArgs } from '../../chunk-NBJEQAOE.js';
3
3
  export { classifyReadinessFromRevert, createErrorHandlers, decodeRevert, registerErrorAbi, toZKsyncError } from '../../chunk-XRE7H466.js';
4
- import '../../chunk-QJS6ETEE.js';
5
- import '../../chunk-HLUANWGN.js';
4
+ import '../../chunk-LL3WKCFJ.js';
5
+ import '../../chunk-NEC2ZKHI.js';
6
6
  import '../../chunk-NCAIVYBR.js';
7
7
  import '../../chunk-6K6VJQAL.js';
8
8
  import '../../chunk-M5J2MM2U.js';
@@ -0,0 +1,9 @@
1
+ import type { EthersClient } from '../../client';
2
+ import type { ContractsResource } from './types';
3
+ /**
4
+ * Creates a contracts resource for managing resolved addresses and contract instances.
5
+ *
6
+ * @param client - EthersClient instance
7
+ * @returns ContractsResource instance
8
+ */
9
+ export declare function createContractsResource(client: EthersClient): ContractsResource;
@@ -0,0 +1,2 @@
1
+ export { createContractsResource } from './contracts';
2
+ export type { ContractsResource, ContractInstances } from './types';
@@ -0,0 +1,60 @@
1
+ import type { Contract } from 'ethers';
2
+ import type { ResolvedAddresses } from '../../client';
3
+ /**
4
+ * Collection of typed ethers Contract instances for all bridge contracts.
5
+ */
6
+ export interface ContractInstances {
7
+ bridgehub: Contract;
8
+ l1AssetRouter: Contract;
9
+ l1Nullifier: Contract;
10
+ l1NativeTokenVault: Contract;
11
+ l2AssetRouter: Contract;
12
+ l2NativeTokenVault: Contract;
13
+ l2BaseTokenSystem: Contract;
14
+ }
15
+ /**
16
+ * Contracts resource interface providing access to resolved addresses
17
+ * and contract instances.
18
+ */
19
+ export interface ContractsResource {
20
+ /**
21
+ * Returns resolved addresses for all bridge contracts.
22
+ *
23
+ * @returns Resolved contract addresses
24
+ */
25
+ addresses(): Promise<ResolvedAddresses>;
26
+ /**
27
+ * Returns typed Contract instances for all bridge contracts (cached).
28
+ *
29
+ * @returns Contract instances
30
+ */
31
+ instances(): Promise<ContractInstances>;
32
+ /**
33
+ * Returns the Bridgehub contract instance.
34
+ */
35
+ bridgehub(): Promise<Contract>;
36
+ /**
37
+ * Returns the L1 Asset Router contract instance.
38
+ */
39
+ l1AssetRouter(): Promise<Contract>;
40
+ /**
41
+ * Returns the L1 Native Token Vault contract instance.
42
+ */
43
+ l1NativeTokenVault(): Promise<Contract>;
44
+ /**
45
+ * Returns the L1 Nullifier contract instance.
46
+ */
47
+ l1Nullifier(): Promise<Contract>;
48
+ /**
49
+ * Returns the L2 Asset Router contract instance.
50
+ */
51
+ l2AssetRouter(): Promise<Contract>;
52
+ /**
53
+ * Returns the L2 Native Token Vault contract instance.
54
+ */
55
+ l2NativeTokenVault(): Promise<Contract>;
56
+ /**
57
+ * Returns the L2 Base Token System contract instance.
58
+ */
59
+ l2BaseTokenSystem(): Promise<Contract>;
60
+ }
@@ -1,10 +1,18 @@
1
1
  import type { EthersClient } from '../../client';
2
- import type { Address } from '../../../../core/types/primitives';
2
+ import type { Address, Hex } from '../../../../core/types/primitives';
3
3
  import type { DepositParams, DepositRoute } from '../../../../core/types/flows/deposits';
4
4
  import type { CommonCtx } from '../../../../core/types/flows/base';
5
5
  import type { TxOverrides } from '../../../../core/types/fees';
6
+ import type { ResolvedToken, TokensResource } from '../../../../core/types/flows/token';
7
+ import type { ContractsResource } from '../contracts';
6
8
  export interface BuildCtx extends CommonCtx {
7
9
  client: EthersClient;
10
+ tokens: TokensResource;
11
+ contracts: ContractsResource;
12
+ resolvedToken: ResolvedToken;
13
+ baseTokenAssetId: Hex;
14
+ baseTokenL1: Address;
15
+ baseIsEth: boolean;
8
16
  l1AssetRouter: Address;
9
17
  gasOverrides?: TxOverrides;
10
18
  l2GasLimit?: bigint;
@@ -12,8 +20,14 @@ export interface BuildCtx extends CommonCtx {
12
20
  operatorTip: bigint;
13
21
  refundRecipient: Address;
14
22
  }
15
- export declare function commonCtx(p: DepositParams, client: EthersClient): Promise<{
23
+ export declare function commonCtx(p: DepositParams, client: EthersClient, tokens: TokensResource, contracts: ContractsResource): Promise<{
16
24
  client: EthersClient;
25
+ tokens: TokensResource;
26
+ contracts: ContractsResource;
27
+ resolvedToken: ResolvedToken;
28
+ baseTokenAssetId: `0x${string}`;
29
+ baseTokenL1: `0x${string}`;
30
+ baseIsEth: boolean;
17
31
  l1AssetRouter: `0x${string}`;
18
32
  route: DepositRoute;
19
33
  bridgehub: `0x${string}`;
@@ -3,6 +3,8 @@ import type { DepositParams, DepositQuote, DepositHandle, DepositWaitable, Depos
3
3
  import type { Hex } from '../../../../core/types/primitives.ts';
4
4
  import { type TransactionRequest, type TransactionReceipt } from 'ethers';
5
5
  import type { DepositRouteStrategy } from './routes/types.ts';
6
+ import type { TokensResource } from '../../../../core/types/flows/token';
7
+ import type { ContractsResource } from '../contracts';
6
8
  export declare const ROUTES: Record<DepositRoute, DepositRouteStrategy>;
7
9
  export interface DepositsResource {
8
10
  quote(p: DepositParams): Promise<DepositQuote>;
@@ -43,4 +45,4 @@ export interface DepositsResource {
43
45
  error: unknown;
44
46
  }>;
45
47
  }
46
- export declare function createDepositsResource(client: EthersClient): DepositsResource;
48
+ export declare function createDepositsResource(client: EthersClient, tokens?: TokensResource, contracts?: ContractsResource): DepositsResource;
@@ -2,6 +2,7 @@ import type { TransactionRequest } from 'ethers';
2
2
  import type { BuildCtx } from '../context';
3
3
  import type { DepositRoute } from '../../../../../core/types/flows/deposits';
4
4
  import type { TxOverrides } from '../../../../../core/types/fees';
5
+ import type { Address } from '../../../../../core/types/primitives';
5
6
  import { type GasQuote } from '../../../../../core/resources/deposits/gas';
6
7
  export type { GasQuote };
7
8
  export type QuoteL1GasInput = {
@@ -19,7 +20,7 @@ export type QuoteL2GasInput = {
19
20
  };
20
21
  export type ResolveErc20L2GasLimitInput = {
21
22
  ctx: BuildCtx;
22
- l1Token: string;
23
+ l1Token: Address;
23
24
  };
24
25
  /**
25
26
  * Quote L1 gas for a deposit transaction.
@@ -35,6 +36,6 @@ export declare function quoteL2Gas(input: QuoteL2GasInput): Promise<GasQuote | u
35
36
  */
36
37
  export declare function determineErc20L2Gas(input: {
37
38
  ctx: BuildCtx;
38
- l1Token: string;
39
+ l1Token: Address;
39
40
  modelTx?: TransactionRequest;
40
41
  }): Promise<GasQuote | undefined>;
@@ -0,0 +1 @@
1
+ export { createTokensResource } from './tokens';
@@ -0,0 +1,10 @@
1
+ import type { EthersClient } from '../../client';
2
+ import type { TokensResource } from '../../../../core/types/flows/token';
3
+ /**
4
+ * Creates a tokens resource for managing token identity, L1/L2 mappings,
5
+ * and bridge assetId primitives.
6
+ *
7
+ * @param client - EthersClient instance
8
+ * @returns TokensResource instance
9
+ */
10
+ export declare function createTokensResource(client: EthersClient): TokensResource;
@@ -1,9 +1,6 @@
1
1
  import type { Address } from '../../../core/types';
2
- export declare function encodeNativeTokenVaultAssetId(chainId: bigint, address: string): string;
3
2
  export declare function encodeNativeTokenVaultTransferData(amount: bigint, receiver: Address, token: Address): string;
4
3
  export declare function encodeSecondBridgeDataV1(assetId: string, transferData: string): string;
5
- export declare function encodeNTVAssetId(chainId: bigint, address: string): string;
6
- export declare const encodeNTVTransferData: typeof encodeNativeTokenVaultTransferData;
7
4
  export declare function encodeSecondBridgeArgs(token: Address, amount: bigint, l2Receiver: Address): `0x${string}`;
8
5
  export declare function encodeSecondBridgeErc20Args(token: Address, amount: bigint, l2Receiver: Address): `0x${string}`;
9
6
  export declare function encodeSecondBridgeEthArgs(amount: bigint, l2Receiver: Address, ethToken?: Address): `0x${string}`;
@@ -1,19 +1,27 @@
1
1
  import type { EthersClient } from '../../client';
2
2
  import type { Address } from '../../../../core/types/primitives';
3
- import type { WithdrawParams, WithdrawRoute } from '../../../../core/types/flows/withdrawals';
3
+ import { type WithdrawParams, type WithdrawRoute } from '../../../../core/types/flows/withdrawals';
4
4
  import type { CommonCtx } from '../../../../core/types/flows/base';
5
5
  import type { TxOverrides } from '../../../../core/types/fees';
6
+ import type { Hex } from '../../../../core/types/primitives';
7
+ import type { ResolvedToken, TokensResource } from '../../../../core/types/flows/token';
8
+ import type { ContractsResource } from '../contracts';
6
9
  export interface BuildCtx extends CommonCtx {
7
10
  client: EthersClient;
11
+ tokens: TokensResource;
12
+ contracts: ContractsResource;
13
+ resolvedToken: ResolvedToken;
14
+ baseTokenAssetId: Hex;
15
+ baseTokenL1: Address;
16
+ baseIsEth: boolean;
8
17
  bridgehub: Address;
9
18
  l1AssetRouter: Address;
10
19
  l1Nullifier: Address;
11
20
  l2AssetRouter: Address;
12
21
  l2NativeTokenVault: Address;
13
22
  l2BaseTokenSystem: Address;
14
- baseIsEth: boolean;
15
23
  gasOverrides?: TxOverrides;
16
24
  }
17
- export declare function commonCtx(p: WithdrawParams, client: EthersClient): Promise<BuildCtx & {
25
+ export declare function commonCtx(p: WithdrawParams, client: EthersClient, tokens: TokensResource, contracts: ContractsResource): Promise<BuildCtx & {
18
26
  route: WithdrawRoute;
19
27
  }>;
@@ -4,6 +4,8 @@ import type { WithdrawParams, WithdrawQuote, WithdrawPlan, WithdrawHandle, Withd
4
4
  import type { Hex } from '../../../../core/types/primitives';
5
5
  import type { WithdrawRouteStrategy, TransactionReceiptZKsyncOS } from './routes/types';
6
6
  import { createFinalizationServices, type FinalizationServices } from './services/finalization';
7
+ import type { TokensResource } from '../../../../core/types/flows/token';
8
+ import type { ContractsResource } from '../contracts';
7
9
  export declare const ROUTES: Record<WithdrawRoute, WithdrawRouteStrategy>;
8
10
  export interface WithdrawalsResource {
9
11
  quote(p: WithdrawParams): Promise<WithdrawQuote>;
@@ -51,6 +53,6 @@ export interface WithdrawalsResource {
51
53
  error: unknown;
52
54
  }>;
53
55
  }
54
- export declare function createWithdrawalsResource(client: EthersClient): WithdrawalsResource;
56
+ export declare function createWithdrawalsResource(client: EthersClient, tokens?: TokensResource, contracts?: ContractsResource): WithdrawalsResource;
55
57
  export { createFinalizationServices };
56
58
  export type { FinalizationServices };