UNPKG

viem

Version:

TypeScript Interface for Ethereum

26 lines 1.3 kB
import { InvalidAddressError } from '../../errors/address.js'; import { BaseError } from '../../errors/base.js'; import { InvalidChainIdError } from '../../errors/chain.js'; import { isAddress } from '../../utils/address/isAddress.js'; import { InvalidEip712TransactionError } from '../errors/transaction.js'; import { isEIP712Transaction } from './isEip712Transaction.js'; export function assertEip712Transaction(transaction) { const { chainId, to, from, paymaster, paymasterInput } = transaction; if (!isEIP712Transaction(transaction)) throw new InvalidEip712TransactionError(); if (!chainId || chainId <= 0) throw new InvalidChainIdError({ chainId }); if (to && !isAddress(to)) throw new InvalidAddressError({ address: to }); if (from && !isAddress(from)) throw new InvalidAddressError({ address: from }); if (paymaster && !isAddress(paymaster)) throw new InvalidAddressError({ address: paymaster }); if (paymaster && !paymasterInput) { throw new BaseError('`paymasterInput` must be provided when `paymaster` is defined'); } if (!paymaster && paymasterInput) { throw new BaseError('`paymaster` must be provided when `paymasterInput` is defined'); } } //# sourceMappingURL=assertEip712Transaction.js.map