@matterlabs/zksync-js 0.0.18 → 0.0.20
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/index.cjs +36 -26
- package/dist/adapters/ethers/index.cjs.map +1 -1
- package/dist/adapters/ethers/index.js +1 -1
- package/dist/adapters/ethers/sdk.cjs +34 -26
- package/dist/adapters/ethers/sdk.cjs.map +1 -1
- package/dist/adapters/ethers/sdk.js +1 -1
- package/dist/adapters/viem/index.cjs +34 -23
- package/dist/adapters/viem/index.cjs.map +1 -1
- package/dist/adapters/viem/index.js +1 -1
- package/dist/adapters/viem/sdk.cjs +34 -23
- package/dist/adapters/viem/sdk.cjs.map +1 -1
- package/dist/adapters/viem/sdk.js +1 -1
- package/dist/{chunk-GBS7KQFU.js → chunk-3T5V4HKS.js} +21 -8
- package/dist/{chunk-U72MNQIY.js → chunk-E2XKJCI5.js} +20 -10
- package/package.json +2 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { createEthersClient as createClient, createEthersClient } from '../../chunk-24TE2NNJ.js';
|
|
2
|
-
export { buildDirectRequestStruct, createDepositsResource, createEthersSdk, createFinalizationServices, createInteropFinalizationServices, createInteropResource, createTokensResource, createWithdrawalsResource, encodeNativeTokenVaultTransferData, encodeSecondBridgeArgs, encodeSecondBridgeDataV1, encodeSecondBridgeErc20Args, encodeSecondBridgeEthArgs, getL2TransactionHashFromLogs } from '../../chunk-
|
|
2
|
+
export { buildDirectRequestStruct, createDepositsResource, createEthersSdk, createFinalizationServices, createInteropFinalizationServices, createInteropResource, createTokensResource, createWithdrawalsResource, encodeNativeTokenVaultTransferData, encodeSecondBridgeArgs, encodeSecondBridgeDataV1, encodeSecondBridgeErc20Args, encodeSecondBridgeEthArgs, getL2TransactionHashFromLogs } from '../../chunk-E2XKJCI5.js';
|
|
3
3
|
export { classifyReadinessFromRevert, createErrorHandlers, decodeRevert, registerErrorAbi, toZKsyncError } from '../../chunk-NJK325XV.js';
|
|
4
4
|
import '../../chunk-6LYAENO6.js';
|
|
5
5
|
import '../../chunk-3HHUZXSV.js';
|
|
@@ -6637,16 +6637,40 @@ function routeEthDirect() {
|
|
|
6637
6637
|
// src/core/types/primitives.ts
|
|
6638
6638
|
var ZERO_HASH = "0x0000000000000000000000000000000000000000000000000000000000000000";
|
|
6639
6639
|
|
|
6640
|
+
// src/core/codec/ntv.ts
|
|
6641
|
+
function createNTVCodec(deps) {
|
|
6642
|
+
function encodeAssetId(originChainId, ntvAddress, tokenAddress) {
|
|
6643
|
+
const encoded = deps.encode(
|
|
6644
|
+
["uint256", "address", "address"],
|
|
6645
|
+
[originChainId, ntvAddress, tokenAddress]
|
|
6646
|
+
);
|
|
6647
|
+
return deps.keccak256(encoded);
|
|
6648
|
+
}
|
|
6649
|
+
return {
|
|
6650
|
+
encodeAssetId
|
|
6651
|
+
};
|
|
6652
|
+
}
|
|
6653
|
+
|
|
6640
6654
|
// src/adapters/ethers/resources/deposits/routes/erc20-nonbase.ts
|
|
6641
6655
|
var { wrapAs: wrapAs2 } = createErrorHandlers("deposits");
|
|
6642
6656
|
var ZERO_L2_TOKEN_ADDRESS2 = "0x0000000000000000000000000000000000000000";
|
|
6643
6657
|
var ZERO_ASSET_ID = "0x0000000000000000000000000000000000000000000000000000000000000000";
|
|
6658
|
+
var ntvCodec = createNTVCodec({
|
|
6659
|
+
encode: (types, values) => ethers.AbiCoder.defaultAbiCoder().encode(types, values),
|
|
6660
|
+
keccak256: (data) => ethers.keccak256(data)
|
|
6661
|
+
});
|
|
6644
6662
|
async function encodeSecondBridgeErc20DepositCalldata(input) {
|
|
6645
6663
|
if (!input.ctx.resolvedToken) {
|
|
6646
6664
|
return encodeSecondBridgeErc20Args(input.token, input.amount, input.receiver);
|
|
6647
6665
|
}
|
|
6648
|
-
const { chainId
|
|
6649
|
-
const
|
|
6666
|
+
const { chainId } = await input.ctx.client.l1.getNetwork();
|
|
6667
|
+
const expectedL1AssetId = ntvCodec.encodeAssetId(
|
|
6668
|
+
BigInt(chainId),
|
|
6669
|
+
L2_NATIVE_TOKEN_VAULT_ADDRESS,
|
|
6670
|
+
input.token
|
|
6671
|
+
);
|
|
6672
|
+
const assetId = input.ctx.resolvedToken.assetId.toLowerCase();
|
|
6673
|
+
const isL1Origin = assetId === ZERO_ASSET_ID || assetId === expectedL1AssetId.toLowerCase();
|
|
6650
6674
|
if (isL1Origin) {
|
|
6651
6675
|
return encodeSecondBridgeErc20Args(input.token, input.amount, input.receiver);
|
|
6652
6676
|
}
|
|
@@ -6662,8 +6686,8 @@ async function getPriorityGasModel(input) {
|
|
|
6662
6686
|
const l1NativeTokenVault = await input.ctx.contracts.l1NativeTokenVault();
|
|
6663
6687
|
const l1AssetRouter = await input.ctx.contracts.l1AssetRouter();
|
|
6664
6688
|
const { chainId: l1ChainId } = await input.ctx.client.l1.getNetwork();
|
|
6665
|
-
const isFirstBridge = input.ctx.resolvedToken.assetId.toLowerCase() === ZERO_ASSET_ID
|
|
6666
|
-
const erc20MetadataOriginChainId = isFirstBridge ? BigInt(l1ChainId) : input.ctx.resolvedToken.originChainId;
|
|
6689
|
+
const isFirstBridge = input.ctx.resolvedToken.assetId.toLowerCase() === ZERO_ASSET_ID;
|
|
6690
|
+
const erc20MetadataOriginChainId = isFirstBridge ? BigInt(l1ChainId) : input.ctx.resolvedToken.originChainId !== 0n ? input.ctx.resolvedToken.originChainId : await l1NativeTokenVault.originChainId(input.ctx.resolvedToken.assetId);
|
|
6667
6691
|
const erc20Metadata = await l1NativeTokenVault.getERC20Getters(
|
|
6668
6692
|
input.token,
|
|
6669
6693
|
erc20MetadataOriginChainId
|
|
@@ -6870,26 +6894,10 @@ function routeErc20NonBase() {
|
|
|
6870
6894
|
}
|
|
6871
6895
|
};
|
|
6872
6896
|
}
|
|
6873
|
-
|
|
6874
|
-
// src/core/codec/ntv.ts
|
|
6875
|
-
function createNTVCodec(deps) {
|
|
6876
|
-
function encodeAssetId(originChainId, ntvAddress, tokenAddress) {
|
|
6877
|
-
const encoded = deps.encode(
|
|
6878
|
-
["uint256", "address", "address"],
|
|
6879
|
-
[originChainId, ntvAddress, tokenAddress]
|
|
6880
|
-
);
|
|
6881
|
-
return deps.keccak256(encoded);
|
|
6882
|
-
}
|
|
6883
|
-
return {
|
|
6884
|
-
encodeAssetId
|
|
6885
|
-
};
|
|
6886
|
-
}
|
|
6887
|
-
|
|
6888
|
-
// src/adapters/ethers/resources/deposits/routes/eth-nonbase.ts
|
|
6889
6897
|
var { wrapAs: wrapAs3 } = createErrorHandlers("deposits");
|
|
6890
6898
|
var ZERO_L2_TOKEN_ADDRESS3 = "0x0000000000000000000000000000000000000000";
|
|
6891
6899
|
var ZERO_ASSET_ID2 = "0x0000000000000000000000000000000000000000000000000000000000000000";
|
|
6892
|
-
var
|
|
6900
|
+
var ntvCodec2 = createNTVCodec({
|
|
6893
6901
|
encode: (types, values) => ethers.AbiCoder.defaultAbiCoder().encode(types, values),
|
|
6894
6902
|
keccak256: (data) => ethers.keccak256(data)
|
|
6895
6903
|
});
|
|
@@ -6898,7 +6906,7 @@ async function getPriorityGasModel2(input) {
|
|
|
6898
6906
|
const l1AssetRouter = await input.ctx.contracts.l1AssetRouter();
|
|
6899
6907
|
const l1NativeTokenVault = await input.ctx.contracts.l1NativeTokenVault();
|
|
6900
6908
|
const originChainId = input.ctx.resolvedToken.originChainId !== 0n ? input.ctx.resolvedToken.originChainId : BigInt((await input.ctx.client.l1.getNetwork()).chainId);
|
|
6901
|
-
const resolvedAssetId = input.ctx.resolvedToken.assetId.toLowerCase() === ZERO_ASSET_ID2 ?
|
|
6909
|
+
const resolvedAssetId = input.ctx.resolvedToken.assetId.toLowerCase() === ZERO_ASSET_ID2 ? ntvCodec2.encodeAssetId(originChainId, L2_NATIVE_TOKEN_VAULT_ADDRESS, ETH_ADDRESS) : input.ctx.resolvedToken.assetId;
|
|
6902
6910
|
const erc20Metadata = await l1NativeTokenVault.getERC20Getters(
|
|
6903
6911
|
ETH_ADDRESS,
|
|
6904
6912
|
originChainId
|
|
@@ -7236,7 +7244,7 @@ function routeErc20Base() {
|
|
|
7236
7244
|
}
|
|
7237
7245
|
var { wrapAs: wrapAs5 } = createErrorHandlers("tokens");
|
|
7238
7246
|
var abi = ethers.AbiCoder.defaultAbiCoder();
|
|
7239
|
-
var
|
|
7247
|
+
var ntvCodec3 = createNTVCodec({
|
|
7240
7248
|
encode: (types, values) => abi.encode(types, values),
|
|
7241
7249
|
keccak256: (data) => ethers.ethers.keccak256(data)
|
|
7242
7250
|
});
|
|
@@ -7355,7 +7363,7 @@ function createTokensResource(client) {
|
|
|
7355
7363
|
return wrapAs5("CONTRACT", "tokens.isChainEthBased", async () => {
|
|
7356
7364
|
const baseAssetId = await getBaseTokenAssetId();
|
|
7357
7365
|
const l1ChainId = await getL1ChainId();
|
|
7358
|
-
const ethAssetId =
|
|
7366
|
+
const ethAssetId = ntvCodec3.encodeAssetId(
|
|
7359
7367
|
l1ChainId,
|
|
7360
7368
|
L2_NATIVE_TOKEN_VAULT_ADDRESS,
|
|
7361
7369
|
ETH_ADDRESS
|
|
@@ -7993,7 +8001,7 @@ function routeErc20NonBase2() {
|
|
|
7993
8001
|
async build(p, ctx) {
|
|
7994
8002
|
const steps = [];
|
|
7995
8003
|
const approvals = [];
|
|
7996
|
-
const erc20 = new ethers.Contract(p.token, IERC20_default, ctx.client.
|
|
8004
|
+
const erc20 = new ethers.Contract(p.token, IERC20_default, ctx.client.l2);
|
|
7997
8005
|
const current = await wrapAs7(
|
|
7998
8006
|
"CONTRACT",
|
|
7999
8007
|
OP_WITHDRAWALS.erc20.allowance,
|
|
@@ -9038,7 +9046,7 @@ async function buildApproveSteps(approvals, ctx) {
|
|
|
9038
9046
|
async function resolveErc20AssetIds(erc20Tokens, ctx) {
|
|
9039
9047
|
const assetIds = /* @__PURE__ */ new Map();
|
|
9040
9048
|
if (erc20Tokens.length === 0) return assetIds;
|
|
9041
|
-
const ntv = new ethers.Contract(ctx.l2NativeTokenVault, L2NativeTokenVault_default, ctx.client.
|
|
9049
|
+
const ntv = new ethers.Contract(ctx.l2NativeTokenVault, L2NativeTokenVault_default, ctx.client.l2);
|
|
9042
9050
|
for (const token of erc20Tokens) {
|
|
9043
9051
|
const assetId = await ntv.getFunction("ensureTokenIsRegistered").staticCall(token);
|
|
9044
9052
|
assetIds.set(token.toLowerCase(), assetId);
|