Skip to main content
import * as ProtocolVersion from 'voltaire-effect/primitives/ProtocolVersion'
import * as Schema from 'effect/Schema'
import { Effect } from 'effect'

// Schema validation
const version = Schema.decodeSync(ProtocolVersion.String)('eth/67')

// Effect constructor
const program = ProtocolVersion.from('eth/67')
Effect.runSync(program)

// Version negotiation
const negotiate = (versions: string[]) =>
  Effect.forEach(versions, (v) => ProtocolVersion.from(v))

Error Handling

const result = await Effect.runPromiseExit(ProtocolVersion.from('invalid'))
// result._tag === 'Failure' → ProtocolVersionError