PHP WebShell

Текущая директория: /usr/lib/node_modules/bitgo/node_modules/viem/account-abstraction/utils/userOperation

Просмотр файла: toPackedUserOperation.ts

import { concat } from '../../../utils/data/concat.js'
import { pad } from '../../../utils/data/pad.js'
import { numberToHex } from '../../../utils/index.js'
import type {
  PackedUserOperation,
  UserOperation,
} from '../../types/userOperation.js'
import { getInitCode } from './getInitCode.js'

export function toPackedUserOperation(
  userOperation: UserOperation,
): PackedUserOperation {
  const {
    callGasLimit,
    callData,
    maxPriorityFeePerGas,
    maxFeePerGas,
    paymaster,
    paymasterData,
    paymasterPostOpGasLimit,
    paymasterVerificationGasLimit,
    sender,
    signature = '0x',
    verificationGasLimit,
  } = userOperation

  const accountGasLimits = concat([
    pad(numberToHex(verificationGasLimit || 0n), { size: 16 }),
    pad(numberToHex(callGasLimit || 0n), { size: 16 }),
  ])
  const initCode = getInitCode(userOperation)
  const gasFees = concat([
    pad(numberToHex(maxPriorityFeePerGas || 0n), { size: 16 }),
    pad(numberToHex(maxFeePerGas || 0n), { size: 16 }),
  ])
  const nonce = userOperation.nonce ?? 0n
  const paymasterAndData = paymaster
    ? concat([
        paymaster,
        pad(numberToHex(paymasterVerificationGasLimit || 0n), {
          size: 16,
        }),
        pad(numberToHex(paymasterPostOpGasLimit || 0n), {
          size: 16,
        }),
        paymasterData || '0x',
      ])
    : '0x'
  const preVerificationGas = userOperation.preVerificationGas ?? 0n

  return {
    accountGasLimits,
    callData,
    initCode,
    gasFees,
    nonce,
    paymasterAndData,
    preVerificationGas,
    sender,
    signature,
  }
}

Выполнить команду


Для локальной разработки. Не используйте в интернете!