Files
FrenoCorp/node_modules/viem/tempo/internal/utils.ts
Michael Freno 7c684a42cc FRE-600: Fix code review blockers
- Consolidated duplicate UndoManagers to single instance
- Fixed connection promise to only resolve on 'connected' status
- Fixed WebSocketProvider import (WebsocketProvider)
- Added proper doc.destroy() cleanup
- Renamed isPresenceInitialized property to avoid conflict

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-25 00:08:01 -04:00

58 lines
1.6 KiB
TypeScript

import type { Abi, AbiStateMutability, Address } from 'abitype'
import type {
ContractFunctionName,
ContractFunctionParameters,
ExtractAbiItem,
} from '../../types/contract.js'
import type { Hex } from '../../types/misc.js'
import { encodeFunctionData } from '../../utils/index.js'
export function defineCall<
const abi extends Abi,
const functionName extends ContractFunctionName<abi, AbiStateMutability>,
call extends ContractFunctionParameters<
abi,
AbiStateMutability,
functionName
>,
>(
call:
| call
| ContractFunctionParameters<abi, AbiStateMutability, functionName>,
): ContractFunctionParameters<
[ExtractAbiItem<abi, functionName>],
AbiStateMutability,
functionName
> & {
data: Hex
to: Address
} {
return {
...(call as any),
data: encodeFunctionData(call as never),
to: call.address,
} as const
}
/**
* Normalizes a value into a structured-clone compatible format.
*
* @see https://developer.mozilla.org/en-US/docs/Web/API/Window/structuredClone
* @internal
*/
export function normalizeValue<type>(value: type): type {
if (Array.isArray(value)) return value.map(normalizeValue) as never
if (typeof value === 'function') return undefined as never
if (typeof value !== 'object' || value === null) return value
if (Object.getPrototypeOf(value) !== Object.prototype)
try {
return structuredClone(value)
} catch {
return undefined as never
}
const normalized: Record<string, unknown> = {}
for (const [k, v] of Object.entries(value)) normalized[k] = normalizeValue(v)
return normalized as never
}