@matterlabs/zksync-js 0.0.17 → 0.0.19
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 +55 -24
- package/dist/adapters/ethers/index.cjs.map +1 -1
- package/dist/adapters/ethers/index.js +1 -1
- package/dist/adapters/ethers/sdk.cjs +53 -24
- package/dist/adapters/ethers/sdk.cjs.map +1 -1
- package/dist/adapters/ethers/sdk.js +1 -1
- package/dist/adapters/viem/index.cjs +133 -56
- package/dist/adapters/viem/index.cjs.map +1 -1
- package/dist/adapters/viem/index.js +1 -1
- package/dist/adapters/viem/resources/deposits/routes/approval.d.ts +11 -0
- package/dist/adapters/viem/sdk.cjs +133 -56
- package/dist/adapters/viem/sdk.cjs.map +1 -1
- package/dist/adapters/viem/sdk.js +1 -1
- package/dist/{chunk-ONCNOWNC.js → chunk-3T5V4HKS.js} +120 -41
- package/dist/{chunk-J2RPWU2R.js → chunk-5H3VTIYD.js} +39 -8
- package/package.json +6 -4
|
@@ -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-5H3VTIYD.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,17 +6637,57 @@ 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
|
+
});
|
|
6662
|
+
async function encodeSecondBridgeErc20DepositCalldata(input) {
|
|
6663
|
+
if (!input.ctx.resolvedToken) {
|
|
6664
|
+
return encodeSecondBridgeErc20Args(input.token, input.amount, input.receiver);
|
|
6665
|
+
}
|
|
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();
|
|
6674
|
+
if (isL1Origin) {
|
|
6675
|
+
return encodeSecondBridgeErc20Args(input.token, input.amount, input.receiver);
|
|
6676
|
+
}
|
|
6677
|
+
const transferData = encodeNativeTokenVaultTransferData(
|
|
6678
|
+
input.amount,
|
|
6679
|
+
input.receiver,
|
|
6680
|
+
input.token
|
|
6681
|
+
);
|
|
6682
|
+
return encodeSecondBridgeDataV1(input.ctx.resolvedToken.assetId, transferData);
|
|
6683
|
+
}
|
|
6644
6684
|
async function getPriorityGasModel(input) {
|
|
6645
6685
|
try {
|
|
6646
6686
|
const l1NativeTokenVault = await input.ctx.contracts.l1NativeTokenVault();
|
|
6647
6687
|
const l1AssetRouter = await input.ctx.contracts.l1AssetRouter();
|
|
6648
6688
|
const { chainId: l1ChainId } = await input.ctx.client.l1.getNetwork();
|
|
6649
|
-
const isFirstBridge = input.ctx.resolvedToken.assetId.toLowerCase() === ZERO_ASSET_ID
|
|
6650
|
-
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);
|
|
6651
6691
|
const erc20Metadata = await l1NativeTokenVault.getERC20Getters(
|
|
6652
6692
|
input.token,
|
|
6653
6693
|
erc20MetadataOriginChainId
|
|
@@ -6713,9 +6753,14 @@ function routeErc20NonBase() {
|
|
|
6713
6753
|
const secondBridgeCalldata = await wrapAs2(
|
|
6714
6754
|
"INTERNAL",
|
|
6715
6755
|
OP_DEPOSITS.nonbase.encodeCalldata,
|
|
6716
|
-
() =>
|
|
6756
|
+
() => encodeSecondBridgeErc20DepositCalldata({
|
|
6757
|
+
ctx,
|
|
6758
|
+
token: p.token,
|
|
6759
|
+
amount: p.amount,
|
|
6760
|
+
receiver
|
|
6761
|
+
}),
|
|
6717
6762
|
{
|
|
6718
|
-
ctx: { where: "
|
|
6763
|
+
ctx: { where: "encodeSecondBridgeErc20DepositCalldata" },
|
|
6719
6764
|
message: "Failed to encode bridging calldata."
|
|
6720
6765
|
}
|
|
6721
6766
|
);
|
|
@@ -6849,26 +6894,10 @@ function routeErc20NonBase() {
|
|
|
6849
6894
|
}
|
|
6850
6895
|
};
|
|
6851
6896
|
}
|
|
6852
|
-
|
|
6853
|
-
// src/core/codec/ntv.ts
|
|
6854
|
-
function createNTVCodec(deps) {
|
|
6855
|
-
function encodeAssetId(originChainId, ntvAddress, tokenAddress) {
|
|
6856
|
-
const encoded = deps.encode(
|
|
6857
|
-
["uint256", "address", "address"],
|
|
6858
|
-
[originChainId, ntvAddress, tokenAddress]
|
|
6859
|
-
);
|
|
6860
|
-
return deps.keccak256(encoded);
|
|
6861
|
-
}
|
|
6862
|
-
return {
|
|
6863
|
-
encodeAssetId
|
|
6864
|
-
};
|
|
6865
|
-
}
|
|
6866
|
-
|
|
6867
|
-
// src/adapters/ethers/resources/deposits/routes/eth-nonbase.ts
|
|
6868
6897
|
var { wrapAs: wrapAs3 } = createErrorHandlers("deposits");
|
|
6869
6898
|
var ZERO_L2_TOKEN_ADDRESS3 = "0x0000000000000000000000000000000000000000";
|
|
6870
6899
|
var ZERO_ASSET_ID2 = "0x0000000000000000000000000000000000000000000000000000000000000000";
|
|
6871
|
-
var
|
|
6900
|
+
var ntvCodec2 = createNTVCodec({
|
|
6872
6901
|
encode: (types, values) => ethers.AbiCoder.defaultAbiCoder().encode(types, values),
|
|
6873
6902
|
keccak256: (data) => ethers.keccak256(data)
|
|
6874
6903
|
});
|
|
@@ -6877,7 +6906,7 @@ async function getPriorityGasModel2(input) {
|
|
|
6877
6906
|
const l1AssetRouter = await input.ctx.contracts.l1AssetRouter();
|
|
6878
6907
|
const l1NativeTokenVault = await input.ctx.contracts.l1NativeTokenVault();
|
|
6879
6908
|
const originChainId = input.ctx.resolvedToken.originChainId !== 0n ? input.ctx.resolvedToken.originChainId : BigInt((await input.ctx.client.l1.getNetwork()).chainId);
|
|
6880
|
-
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;
|
|
6881
6910
|
const erc20Metadata = await l1NativeTokenVault.getERC20Getters(
|
|
6882
6911
|
ETH_ADDRESS,
|
|
6883
6912
|
originChainId
|
|
@@ -7215,7 +7244,7 @@ function routeErc20Base() {
|
|
|
7215
7244
|
}
|
|
7216
7245
|
var { wrapAs: wrapAs5 } = createErrorHandlers("tokens");
|
|
7217
7246
|
var abi = ethers.AbiCoder.defaultAbiCoder();
|
|
7218
|
-
var
|
|
7247
|
+
var ntvCodec3 = createNTVCodec({
|
|
7219
7248
|
encode: (types, values) => abi.encode(types, values),
|
|
7220
7249
|
keccak256: (data) => ethers.ethers.keccak256(data)
|
|
7221
7250
|
});
|
|
@@ -7334,7 +7363,7 @@ function createTokensResource(client) {
|
|
|
7334
7363
|
return wrapAs5("CONTRACT", "tokens.isChainEthBased", async () => {
|
|
7335
7364
|
const baseAssetId = await getBaseTokenAssetId();
|
|
7336
7365
|
const l1ChainId = await getL1ChainId();
|
|
7337
|
-
const ethAssetId =
|
|
7366
|
+
const ethAssetId = ntvCodec3.encodeAssetId(
|
|
7338
7367
|
l1ChainId,
|
|
7339
7368
|
L2_NATIVE_TOKEN_VAULT_ADDRESS,
|
|
7340
7369
|
ETH_ADDRESS
|