zksync-web3
Advanced tools
Comparing version 0.14.4-beta.3 to 0.14.4-beta.4
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; | ||
} | ||
} | ||
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
904730
28585