opstack-kit-chains
Version:
Support your OP-Stack network with 'opstack-kit'
32 lines (26 loc) • 994 B
text/typescript
import type { Address, TypedDataDomain } from 'abitype'
import type { Hex } from '../../types/misc.js'
import type { ZkSyncTransactionSerializable } from './transaction.js'
type PaymasterParams = {
paymaster: Address
paymasterInput: number[]
}
export type ZkSyncEip712Meta = {
gasPerPubdata?: Hex | undefined
factoryDeps?: Hex[] | undefined
customSignature?: Hex | undefined
paymasterParams?: PaymasterParams | undefined
}
type EIP712FieldType = 'uint256' | 'bytes' | 'bytes32[]'
type EIP712Field = { name: string; type: EIP712FieldType }
export type EIP712Domain<transactionSignable> = {
domain: TypedDataDomain
types: Record<string, EIP712Field[]>
primaryType: string
message: transactionSignable
}
export type EIP712DomainFn<
transactionSerializable extends
ZkSyncTransactionSerializable = ZkSyncTransactionSerializable,
transactionSignable = {},
> = (transaction: transactionSerializable) => EIP712Domain<transactionSignable>