import type { Store } from 'viem/tempo' import type * as core_Store from '../../internal/Store.js' /** Adapts Tempo API state to Viem's atomic multisig store. */ export function fromStore(store: core_Store.State): Store.Atomic { const swap = store.swap?.bind(store) if (!swap) throw new Error('Multisig coordination requires an atomic state store.') return { compareAndSet(key, expected, value, options) { const ttl = options?.expiresAt === undefined ? undefined : Math.max(0, options.expiresAt - Date.now()) return swap(key, expected, value, ttl === undefined ? undefined : { ttl }) }, getItem: (key) => store.get(key), removeItem: (key) => store.delete(key), setItem: (key, value) => store.put(key, value), } }