实用工具


实用工具

zksync-web3为zkSync建设者提供了一些有用的工具。它们可以通过以下方式导入。

import { utils } from "zksync-web3";

大多数实用程序是由zkSync团队内部使用的。所以本文件将只描述那些对你有帮助的工具。

以太坊的 "地址"

而以太坊实际上是部署在地址上的代币。

export const L2_ETH_TOKEN_ADDRESS = "0x000000000000000000000000000000000000800a";

zkSync还允许在我们的SDK和API中使用更友好的零地址别名。

export const ETH_ADDRESS = "0x0000000000000000000000000000000000000000";

zkSync智能合约的ABI

export const ZKSYNC_MAIN_ABI = new utils.Interface(require("../abi/IZkSync.json"));

IERC20接口

在与zkSync上的本地令牌进行交互时很方便。

export const IERC20 = new utils.Interface(require("../abi/IERC20.json"));

编码paymaster参数

实用方法,为普通paymaster flows返回正确形成的paymasterParams对象。

export function getPaymasterParams(paymasterAddress: Address, paymasterInput: PaymasterInput): PaymasterParams

PaymasterInput的定义可以在这里找到。

有用的气体常数

目前,没有任何方法可以准确估计所需的 "gasPerPubdataLimit"。这就是为什么目前强烈建议提供`DEFAULT_GAS_PER_PUBDATA_LIMIT'。用户不会因为提供它而被收取更多的费用。 以后就可以查询当前推荐的限额了。

const GAS_PER_PUBDATA_BYTE = 17;

// The large L2 gas per pubdata to sign. This gas is enough to ensure that
// any reasonable limit will be accepted. Note, that the operator is NOT required to
// use the honest value of gas per pubdata and it can use any value up to the one signed by the user.
// In the future releases, we will provide a way to estimate the current gasPerPubdata.
export const DEFAULT_GAS_PER_PUBDATA_LIMIT = 50000;

export const RECOMMENDED_GAS_LIMIT = {
    DEPOSIT: 600_000,
    EXECUTE: 620_000,
    ERC20_APPROVE: 50_000
};