@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
|
@@ -8556,16 +8556,58 @@ function routeEthDirect() {
|
|
|
8556
8556
|
}
|
|
8557
8557
|
};
|
|
8558
8558
|
}
|
|
8559
|
+
|
|
8560
|
+
// src/core/codec/ntv.ts
|
|
8561
|
+
function createNTVCodec(deps) {
|
|
8562
|
+
function encodeAssetId(originChainId, ntvAddress, tokenAddress) {
|
|
8563
|
+
const encoded = deps.encode(
|
|
8564
|
+
["uint256", "address", "address"],
|
|
8565
|
+
[originChainId, ntvAddress, tokenAddress]
|
|
8566
|
+
);
|
|
8567
|
+
return deps.keccak256(encoded);
|
|
8568
|
+
}
|
|
8569
|
+
return {
|
|
8570
|
+
encodeAssetId
|
|
8571
|
+
};
|
|
8572
|
+
}
|
|
8573
|
+
|
|
8574
|
+
// src/adapters/ethers/resources/deposits/routes/erc20-nonbase.ts
|
|
8559
8575
|
var { wrapAs: wrapAs3 } = createErrorHandlers("deposits");
|
|
8560
8576
|
var ZERO_L2_TOKEN_ADDRESS2 = "0x0000000000000000000000000000000000000000";
|
|
8561
8577
|
var ZERO_ASSET_ID = "0x0000000000000000000000000000000000000000000000000000000000000000";
|
|
8578
|
+
var ntvCodec = createNTVCodec({
|
|
8579
|
+
encode: (types, values) => ethers.AbiCoder.defaultAbiCoder().encode(types, values),
|
|
8580
|
+
keccak256: (data) => ethers.keccak256(data)
|
|
8581
|
+
});
|
|
8582
|
+
async function encodeSecondBridgeErc20DepositCalldata(input) {
|
|
8583
|
+
if (!input.ctx.resolvedToken) {
|
|
8584
|
+
return encodeSecondBridgeErc20Args(input.token, input.amount, input.receiver);
|
|
8585
|
+
}
|
|
8586
|
+
const { chainId } = await input.ctx.client.l1.getNetwork();
|
|
8587
|
+
const expectedL1AssetId = ntvCodec.encodeAssetId(
|
|
8588
|
+
BigInt(chainId),
|
|
8589
|
+
L2_NATIVE_TOKEN_VAULT_ADDRESS,
|
|
8590
|
+
input.token
|
|
8591
|
+
);
|
|
8592
|
+
const assetId = input.ctx.resolvedToken.assetId.toLowerCase();
|
|
8593
|
+
const isL1Origin = assetId === ZERO_ASSET_ID || assetId === expectedL1AssetId.toLowerCase();
|
|
8594
|
+
if (isL1Origin) {
|
|
8595
|
+
return encodeSecondBridgeErc20Args(input.token, input.amount, input.receiver);
|
|
8596
|
+
}
|
|
8597
|
+
const transferData = encodeNativeTokenVaultTransferData(
|
|
8598
|
+
input.amount,
|
|
8599
|
+
input.receiver,
|
|
8600
|
+
input.token
|
|
8601
|
+
);
|
|
8602
|
+
return encodeSecondBridgeDataV1(input.ctx.resolvedToken.assetId, transferData);
|
|
8603
|
+
}
|
|
8562
8604
|
async function getPriorityGasModel(input) {
|
|
8563
8605
|
try {
|
|
8564
8606
|
const l1NativeTokenVault = await input.ctx.contracts.l1NativeTokenVault();
|
|
8565
8607
|
const l1AssetRouter = await input.ctx.contracts.l1AssetRouter();
|
|
8566
8608
|
const { chainId: l1ChainId } = await input.ctx.client.l1.getNetwork();
|
|
8567
|
-
const isFirstBridge = input.ctx.resolvedToken.assetId.toLowerCase() === ZERO_ASSET_ID
|
|
8568
|
-
const erc20MetadataOriginChainId = isFirstBridge ? BigInt(l1ChainId) : input.ctx.resolvedToken.originChainId;
|
|
8609
|
+
const isFirstBridge = input.ctx.resolvedToken.assetId.toLowerCase() === ZERO_ASSET_ID;
|
|
8610
|
+
const erc20MetadataOriginChainId = isFirstBridge ? BigInt(l1ChainId) : input.ctx.resolvedToken.originChainId !== 0n ? input.ctx.resolvedToken.originChainId : await l1NativeTokenVault.originChainId(input.ctx.resolvedToken.assetId);
|
|
8569
8611
|
const erc20Metadata = await l1NativeTokenVault.getERC20Getters(
|
|
8570
8612
|
input.token,
|
|
8571
8613
|
erc20MetadataOriginChainId
|
|
@@ -8631,9 +8673,14 @@ function routeErc20NonBase() {
|
|
|
8631
8673
|
const secondBridgeCalldata = await wrapAs3(
|
|
8632
8674
|
"INTERNAL",
|
|
8633
8675
|
OP_DEPOSITS.nonbase.encodeCalldata,
|
|
8634
|
-
() =>
|
|
8676
|
+
() => encodeSecondBridgeErc20DepositCalldata({
|
|
8677
|
+
ctx,
|
|
8678
|
+
token: p.token,
|
|
8679
|
+
amount: p.amount,
|
|
8680
|
+
receiver
|
|
8681
|
+
}),
|
|
8635
8682
|
{
|
|
8636
|
-
ctx: { where: "
|
|
8683
|
+
ctx: { where: "encodeSecondBridgeErc20DepositCalldata" },
|
|
8637
8684
|
message: "Failed to encode bridging calldata."
|
|
8638
8685
|
}
|
|
8639
8686
|
);
|
|
@@ -8767,26 +8814,10 @@ function routeErc20NonBase() {
|
|
|
8767
8814
|
}
|
|
8768
8815
|
};
|
|
8769
8816
|
}
|
|
8770
|
-
|
|
8771
|
-
// src/core/codec/ntv.ts
|
|
8772
|
-
function createNTVCodec(deps) {
|
|
8773
|
-
function encodeAssetId(originChainId, ntvAddress, tokenAddress) {
|
|
8774
|
-
const encoded = deps.encode(
|
|
8775
|
-
["uint256", "address", "address"],
|
|
8776
|
-
[originChainId, ntvAddress, tokenAddress]
|
|
8777
|
-
);
|
|
8778
|
-
return deps.keccak256(encoded);
|
|
8779
|
-
}
|
|
8780
|
-
return {
|
|
8781
|
-
encodeAssetId
|
|
8782
|
-
};
|
|
8783
|
-
}
|
|
8784
|
-
|
|
8785
|
-
// src/adapters/ethers/resources/deposits/routes/eth-nonbase.ts
|
|
8786
8817
|
var { wrapAs: wrapAs4 } = createErrorHandlers("deposits");
|
|
8787
8818
|
var ZERO_L2_TOKEN_ADDRESS3 = "0x0000000000000000000000000000000000000000";
|
|
8788
8819
|
var ZERO_ASSET_ID2 = "0x0000000000000000000000000000000000000000000000000000000000000000";
|
|
8789
|
-
var
|
|
8820
|
+
var ntvCodec2 = createNTVCodec({
|
|
8790
8821
|
encode: (types, values) => ethers.AbiCoder.defaultAbiCoder().encode(types, values),
|
|
8791
8822
|
keccak256: (data) => ethers.keccak256(data)
|
|
8792
8823
|
});
|
|
@@ -8795,7 +8826,7 @@ async function getPriorityGasModel2(input) {
|
|
|
8795
8826
|
const l1AssetRouter = await input.ctx.contracts.l1AssetRouter();
|
|
8796
8827
|
const l1NativeTokenVault = await input.ctx.contracts.l1NativeTokenVault();
|
|
8797
8828
|
const originChainId = input.ctx.resolvedToken.originChainId !== 0n ? input.ctx.resolvedToken.originChainId : BigInt((await input.ctx.client.l1.getNetwork()).chainId);
|
|
8798
|
-
const resolvedAssetId = input.ctx.resolvedToken.assetId.toLowerCase() === ZERO_ASSET_ID2 ?
|
|
8829
|
+
const resolvedAssetId = input.ctx.resolvedToken.assetId.toLowerCase() === ZERO_ASSET_ID2 ? ntvCodec2.encodeAssetId(originChainId, L2_NATIVE_TOKEN_VAULT_ADDRESS, ETH_ADDRESS) : input.ctx.resolvedToken.assetId;
|
|
8799
8830
|
const erc20Metadata = await l1NativeTokenVault.getERC20Getters(
|
|
8800
8831
|
ETH_ADDRESS,
|
|
8801
8832
|
originChainId
|
|
@@ -9133,7 +9164,7 @@ function routeErc20Base() {
|
|
|
9133
9164
|
}
|
|
9134
9165
|
var { wrapAs: wrapAs6 } = createErrorHandlers("tokens");
|
|
9135
9166
|
var abi = ethers.AbiCoder.defaultAbiCoder();
|
|
9136
|
-
var
|
|
9167
|
+
var ntvCodec3 = createNTVCodec({
|
|
9137
9168
|
encode: (types, values) => abi.encode(types, values),
|
|
9138
9169
|
keccak256: (data) => ethers.ethers.keccak256(data)
|
|
9139
9170
|
});
|
|
@@ -9252,7 +9283,7 @@ function createTokensResource(client) {
|
|
|
9252
9283
|
return wrapAs6("CONTRACT", "tokens.isChainEthBased", async () => {
|
|
9253
9284
|
const baseAssetId = await getBaseTokenAssetId();
|
|
9254
9285
|
const l1ChainId = await getL1ChainId();
|
|
9255
|
-
const ethAssetId =
|
|
9286
|
+
const ethAssetId = ntvCodec3.encodeAssetId(
|
|
9256
9287
|
l1ChainId,
|
|
9257
9288
|
L2_NATIVE_TOKEN_VAULT_ADDRESS,
|
|
9258
9289
|
ETH_ADDRESS
|