Socket
Socket
Sign inDemoInstall

zksync-web3

Package Overview
Dependencies
Maintainers
5
Versions
90
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

zksync-web3 - npm Package Compare versions

Comparing version 0.14.4-beta.3 to 0.14.4-beta.4

2

build/src/index.d.ts
export * as utils from './utils';
export * as types from './types';
export { EIP712Signer, Signer, L1Signer } from './signer';
export { EIP712Signer, Signer, L1Signer, L1VoidSigner, L2VoidSigner } from './signer';
export { Wallet } from './wallet';
export { Web3Provider, Provider } from './provider';
export { ContractFactory, Contract } from './contract';

@@ -26,3 +26,3 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.Contract = exports.ContractFactory = exports.Provider = exports.Web3Provider = exports.Wallet = exports.L1Signer = exports.Signer = exports.EIP712Signer = exports.types = exports.utils = void 0;
exports.Contract = exports.ContractFactory = exports.Provider = exports.Web3Provider = exports.Wallet = exports.L2VoidSigner = exports.L1VoidSigner = exports.L1Signer = exports.Signer = exports.EIP712Signer = exports.types = exports.utils = void 0;
exports.utils = __importStar(require("./utils"));

@@ -34,2 +34,4 @@ exports.types = __importStar(require("./types"));

Object.defineProperty(exports, "L1Signer", { enumerable: true, get: function () { return signer_1.L1Signer; } });
Object.defineProperty(exports, "L1VoidSigner", { enumerable: true, get: function () { return signer_1.L1VoidSigner; } });
Object.defineProperty(exports, "L2VoidSigner", { enumerable: true, get: function () { return signer_1.L2VoidSigner; } });
var wallet_1 = require("./wallet");

@@ -36,0 +38,0 @@ Object.defineProperty(exports, "Wallet", { enumerable: true, get: function () { return wallet_1.Wallet; } });

@@ -194,2 +194,163 @@ import { ethers } from 'ethers';

}
declare const L2VoidSigner_base: {
new (...args: any[]): {
_providerL2(): Provider;
_signerL2(): ethers.Signer;
getBalance(token?: string, blockTag?: BlockTag): Promise<ethers.BigNumber>;
getAllBalances(): Promise<import("./types").BalancesMap>;
getL2BridgeContracts(): Promise<{
erc20: import("../typechain").IL2Bridge;
}>;
_fillCustomData(data: import("./types").Eip712Meta): import("./types").Eip712Meta;
withdraw(transaction: {
token: string;
amount: ethers.BigNumberish;
to?: string;
bridgeAddress?: string;
overrides?: ethers.Overrides;
}): Promise<TransactionResponse>;
transfer(transaction: {
to: string;
amount: ethers.BigNumberish;
token?: string;
overrides?: ethers.Overrides;
}): Promise<TransactionResponse>;
sendTransaction(tx: ethers.providers.TransactionRequest): Promise<ethers.providers.TransactionResponse>;
getAddress(): Promise<string>;
};
} & typeof ethers.VoidSigner;
export declare class L2VoidSigner extends L2VoidSigner_base {
provider: Provider;
eip712: EIP712Signer;
_signerL2(): this;
_providerL2(): Provider;
static from(signer: ethers.VoidSigner & {
provider: Provider;
}): Signer;
getNonce(blockTag?: BlockTag): Promise<number>;
sendTransaction(transaction: TransactionRequest): Promise<TransactionResponse>;
}
declare const L1VoidSigner_base: {
new (...args: any[]): {
_providerL2(): Provider;
_providerL1(): ethers.providers.Provider;
_signerL1(): ethers.Signer;
getMainContract(): Promise<import("../typechain").IZkSync>;
getL1BridgeContracts(): Promise<{
erc20: import("../typechain").IL1Bridge;
}>;
getBalanceL1(token?: string, blockTag?: ethers.providers.BlockTag): Promise<ethers.BigNumber>;
getAllowanceL1(token: string, bridgeAddress?: string, blockTag?: ethers.providers.BlockTag): Promise<ethers.BigNumber>;
l2TokenAddress(token: string): Promise<string>;
approveERC20(token: string, amount: ethers.BigNumberish, overrides?: ethers.Overrides & {
bridgeAddress?: string;
}): Promise<ethers.providers.TransactionResponse>;
getBaseCost(params: {
gasLimit: ethers.BigNumberish;
gasPerPubdataByte?: ethers.BigNumberish;
gasPrice?: ethers.BigNumberish;
}): Promise<ethers.BigNumber>;
deposit(transaction: {
token: string;
amount: ethers.BigNumberish;
to?: string;
operatorTip?: ethers.BigNumberish;
bridgeAddress?: string;
approveERC20?: boolean;
l2GasLimit?: ethers.BigNumberish;
gasPerPubdataByte?: ethers.BigNumberish;
overrides?: ethers.PayableOverrides;
approveOverrides?: ethers.Overrides;
}): Promise<import("./types").PriorityOpResponse>;
estimateGasDeposit(transaction: {
token: string;
amount: ethers.BigNumberish;
to?: string;
operatorTip?: ethers.BigNumberish;
bridgeAddress?: string;
l2GasLimit?: ethers.BigNumberish;
gasPerPubdataByte?: ethers.BigNumberish;
overrides?: ethers.PayableOverrides;
}): Promise<ethers.BigNumber>;
getDepositTx(transaction: {
token: string;
amount: ethers.BigNumberish;
to?: string;
operatorTip?: ethers.BigNumberish;
bridgeAddress?: string;
l2GasLimit?: ethers.BigNumberish;
gasPerPubdataByte?: ethers.BigNumberish;
overrides?: ethers.PayableOverrides;
}): Promise<any>;
getFullRequiredDepositFee(transaction: {
token: string;
to?: string;
bridgeAddress?: string;
gasPerPubdataByte?: ethers.BigNumberish;
overrides?: ethers.PayableOverrides;
}): Promise<import("./types").FullDepositFee>;
_getWithdrawalLog(withdrawalHash: ethers.utils.BytesLike, index?: number): Promise<{
log: import("./types").Log;
l1BatchTxId: number;
}>;
_getWithdrawalL2ToL1Log(withdrawalHash: ethers.utils.BytesLike, index?: number): Promise<{
l2ToL1LogIndex: number;
l2ToL1Log: import("./types").L2ToL1Log;
}>;
finalizeWithdrawalParams(withdrawalHash: ethers.utils.BytesLike, index?: number): Promise<{
l1BatchNumber: number;
l2MessageIndex: number;
l2TxNumberInBlock: number;
message: any;
sender: string;
proof: string[];
}>;
finalizeWithdrawal(withdrawalHash: ethers.utils.BytesLike, index?: number, overrides?: ethers.Overrides): Promise<ethers.ContractTransaction>;
isWithdrawalFinalized(withdrawalHash: ethers.utils.BytesLike, index?: number): Promise<boolean>;
claimFailedDeposit(depositHash: ethers.utils.BytesLike, overrides?: ethers.Overrides): Promise<ethers.ContractTransaction>;
requestExecute(transaction: {
contractAddress: string;
calldata: ethers.utils.BytesLike;
l2GasLimit?: ethers.BigNumberish;
l2Value?: ethers.BigNumberish;
factoryDeps?: ethers.utils.BytesLike[];
operatorTip?: ethers.BigNumberish;
gasPerPubdataByte?: ethers.BigNumberish;
refundRecipient?: string;
overrides?: ethers.PayableOverrides;
}): Promise<import("./types").PriorityOpResponse>;
estimateGasRequestExecute(transaction: {
contractAddress: string;
calldata: ethers.utils.BytesLike;
l2GasLimit?: ethers.BigNumberish;
l2Value?: ethers.BigNumberish;
factoryDeps?: ethers.utils.BytesLike[];
operatorTip?: ethers.BigNumberish;
gasPerPubdataByte?: ethers.BigNumberish;
refundRecipient?: string;
overrides?: ethers.PayableOverrides;
}): Promise<ethers.BigNumber>;
getRequestExecuteTx(transaction: {
contractAddress: string;
calldata: ethers.utils.BytesLike;
l2GasLimit?: ethers.BigNumberish;
l2Value?: ethers.BigNumberish;
factoryDeps?: ethers.utils.BytesLike[];
operatorTip?: ethers.BigNumberish;
gasPerPubdataByte?: ethers.BigNumberish;
refundRecipient?: string;
overrides?: ethers.PayableOverrides;
}): Promise<ethers.PopulatedTransaction>;
sendTransaction(tx: ethers.providers.TransactionRequest): Promise<ethers.providers.TransactionResponse>;
getAddress(): Promise<string>;
};
} & typeof ethers.VoidSigner;
export declare class L1VoidSigner extends L1VoidSigner_base {
providerL2: Provider;
_providerL2(): Provider;
_providerL1(): ethers.providers.Provider;
_signerL1(): this;
static from(signer: ethers.VoidSigner, zksyncProvider: Provider): L1Signer;
connectToL2(provider: Provider): this;
}
export {};
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.L1Signer = exports.Signer = exports.EIP712Signer = exports.eip712Types = void 0;
exports.L1VoidSigner = exports.L2VoidSigner = exports.L1Signer = exports.Signer = exports.EIP712Signer = exports.eip712Types = void 0;
const ethers_1 = require("ethers");

@@ -153,1 +153,76 @@ const utils_1 = require("./utils");

exports.L1Signer = L1Signer;
class L2VoidSigner extends (0, adapters_1.AdapterL2)(ethers_1.ethers.VoidSigner) {
_signerL2() {
return this;
}
_providerL2() {
return this.provider;
}
static from(signer) {
const newSigner = Object.setPrototypeOf(signer, Signer.prototype);
// @ts-ignore
newSigner.eip712 = new EIP712Signer(newSigner, newSigner.getChainId());
return newSigner;
}
// an alias with a better name
async getNonce(blockTag) {
return await this.getTransactionCount(blockTag);
}
async sendTransaction(transaction) {
var _a, _b, _c, _d, _e, _f, _g;
if (transaction.customData == null && transaction.type == null) {
// use legacy txs by default
transaction.type = 0;
}
if (transaction.customData == null && transaction.type != utils_1.EIP712_TX_TYPE) {
return (await super.sendTransaction(transaction));
}
else {
const address = await this.getAddress();
(_a = transaction.from) !== null && _a !== void 0 ? _a : (transaction.from = address);
if (transaction.from.toLowerCase() != address.toLowerCase()) {
throw new Error('Transaction `from` address mismatch');
}
transaction.type = utils_1.EIP712_TX_TYPE;
(_b = transaction.value) !== null && _b !== void 0 ? _b : (transaction.value = 0);
(_c = transaction.data) !== null && _c !== void 0 ? _c : (transaction.data = '0x');
(_d = transaction.nonce) !== null && _d !== void 0 ? _d : (transaction.nonce = await this.getNonce());
transaction.customData = this._fillCustomData(transaction.customData);
(_e = transaction.gasPrice) !== null && _e !== void 0 ? _e : (transaction.gasPrice = await this.provider.getGasPrice());
(_f = transaction.gasLimit) !== null && _f !== void 0 ? _f : (transaction.gasLimit = await this.provider.estimateGas(transaction));
(_g = transaction.chainId) !== null && _g !== void 0 ? _g : (transaction.chainId = (await this.provider.getNetwork()).chainId);
transaction.customData.customSignature = await this.eip712.sign(transaction);
const txBytes = (0, utils_1.serialize)(transaction);
return await this.provider.sendTransaction(txBytes);
}
}
}
exports.L2VoidSigner = L2VoidSigner;
// This class is to be used on the frontend with metamask injection.
// It only contains L1 operations. For L2 operations, see Signer.
// Sample usage:
// const provider = new ethers.Web3Provider(window.ethereum);
// const zksyncProvider = new zkweb3.Provider('<rpc_url>');
// const signer = zkweb3.L1Signer.from(provider.getSigner(), zksyncProvider);
// const tx = await signer.deposit({ ... });
class L1VoidSigner extends (0, adapters_1.AdapterL1)(ethers_1.ethers.VoidSigner) {
_providerL2() {
return this.providerL2;
}
_providerL1() {
return this.provider;
}
_signerL1() {
return this;
}
static from(signer, zksyncProvider) {
const newSigner = Object.setPrototypeOf(signer, L1Signer.prototype);
newSigner.providerL2 = zksyncProvider;
return newSigner;
}
connectToL2(provider) {
this.providerL2 = provider;
return this;
}
}
exports.L1VoidSigner = L1VoidSigner;
{
"name": "zksync-web3",
"version": "0.14.4-beta.3",
"version": "0.14.4-beta.4",
"main": "build/src/index.js",

@@ -5,0 +5,0 @@ "types": "build/src/index.d.ts",

export * as utils from './utils';
export * as types from './types';
export { EIP712Signer, Signer, L1Signer } from './signer';
export { EIP712Signer, Signer, L1Signer, L1VoidSigner, L2VoidSigner } from './signer';
export { Wallet } from './wallet';
export { Web3Provider, Provider } from './provider';
export { ContractFactory, Contract } from './contract';

@@ -171,1 +171,88 @@ import { ethers } from 'ethers';

}
export class L2VoidSigner extends AdapterL2(ethers.VoidSigner) {
public override provider: Provider;
public eip712: EIP712Signer;
override _signerL2() {
return this;
}
override _providerL2() {
return this.provider;
}
static from(signer: ethers.VoidSigner & { provider: Provider }): Signer {
const newSigner: Signer = Object.setPrototypeOf(signer, Signer.prototype);
// @ts-ignore
newSigner.eip712 = new EIP712Signer(newSigner, newSigner.getChainId());
return newSigner;
}
// an alias with a better name
async getNonce(blockTag?: BlockTag) {
return await this.getTransactionCount(blockTag);
}
override async sendTransaction(transaction: TransactionRequest): Promise<TransactionResponse> {
if (transaction.customData == null && transaction.type == null) {
// use legacy txs by default
transaction.type = 0;
}
if (transaction.customData == null && transaction.type != EIP712_TX_TYPE) {
return (await super.sendTransaction(transaction)) as TransactionResponse;
} else {
const address = await this.getAddress();
transaction.from ??= address;
if (transaction.from.toLowerCase() != address.toLowerCase()) {
throw new Error('Transaction `from` address mismatch');
}
transaction.type = EIP712_TX_TYPE;
transaction.value ??= 0;
transaction.data ??= '0x';
transaction.nonce ??= await this.getNonce();
transaction.customData = this._fillCustomData(transaction.customData);
transaction.gasPrice ??= await this.provider.getGasPrice();
transaction.gasLimit ??= await this.provider.estimateGas(transaction);
transaction.chainId ??= (await this.provider.getNetwork()).chainId;
transaction.customData.customSignature = await this.eip712.sign(transaction);
const txBytes = serialize(transaction);
return await this.provider.sendTransaction(txBytes);
}
}
}
// This class is to be used on the frontend with metamask injection.
// It only contains L1 operations. For L2 operations, see Signer.
// Sample usage:
// const provider = new ethers.Web3Provider(window.ethereum);
// const zksyncProvider = new zkweb3.Provider('<rpc_url>');
// const signer = zkweb3.L1Signer.from(provider.getSigner(), zksyncProvider);
// const tx = await signer.deposit({ ... });
export class L1VoidSigner extends AdapterL1(ethers.VoidSigner) {
public providerL2: Provider;
override _providerL2() {
return this.providerL2;
}
override _providerL1() {
return this.provider;
}
override _signerL1() {
return this;
}
static from(signer: ethers.VoidSigner, zksyncProvider: Provider): L1Signer {
const newSigner: L1Signer = Object.setPrototypeOf(signer, L1Signer.prototype);
newSigner.providerL2 = zksyncProvider;
return newSigner;
}
connectToL2(provider: Provider): this {
this.providerL2 = provider;
return this;
}
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc