Accounts

EIP712Signer

How to integrate EIP712Signer with ZKsync and ethers.js

This class provides support for an EIP712 transaction. The methods of this class are mostly used internally.

getSignInput

Generates the EIP-712 typed data from provided transaction. Optional fields are populated by zero values.

Inputs

ParameterTypeDescription
transactionTransactionRequestTransaction request.
static getSignInput(transaction: TransactionRequest)

Example

const tx = EIP712Signer.getSignInput({
  type: utils.EIP712_TX_TYPE,
  to: "0xa61464658AfeAf65CccaaFD3a512b69A83B77618",
  value: BigInt(7_000_000),
  from: "0x36615Cf349d7F6344891B1e7CA7C72883F5dc049",
  nonce: 0,
  chainId: BigInt(270),
  gasPrice: BigInt(250_000_000),
  gasLimit: BigInt(21_000),
  customData: {},
});

sign

Signs an Ethereum transaction using EIP-712.

Inputs

ParameterTypeDescription
transactionTransactionRequestTransaction request.
async sign(transaction: TransactionRequest): Promise<Signature>

getSignedDigest

Generates the signed digest of an Ethereum transaction using EIP-712.

Inputs

ParameterTypeDescription
transactionTransactionRequestTransaction request.
static getSignedDigest(transaction: TransactionRequest): ethers.BytesLike

getDomain

Returns the EIP712 domain.

async getDomain(): Promise<ethers.TypedDataDomain>

Made with ❤️ by the ZKsync Community