import { PackedUserOperation } from '@tevm/voltaire/primitives/PackedUserOperation';
import { UserOperation } from '@tevm/voltaire/primitives/UserOperation';
import { ENTRYPOINT_V07 } from '@tevm/voltaire/primitives/EntryPoint';
// Create from v0.6 UserOperation
const userOp = UserOperation.from({
sender: "0x742d35Cc6634C0532925a3b844Bc9e7595f251e3",
nonce: 0n,
initCode: "0x",
callData: "0x...",
callGasLimit: 100000n,
verificationGasLimit: 200000n,
preVerificationGas: 50000n,
maxFeePerGas: 1000000000n,
maxPriorityFeePerGas: 1000000000n,
paymasterAndData: "0x",
signature: "0x",
});
// Pack to v0.7
const packed = UserOperation.pack(userOp);
// Hash for signing
const hash = PackedUserOperation.hash(packed, ENTRYPOINT_V07, 1);
// Unpack back to v0.6
const unpacked = PackedUserOperation.unpack(packed);