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

// Validate
const isValid = S.is(SignedData.Bytes)(someData)

// Parse version
const version = S.decodeSync(SignedData.SignedDataVersionSchema)(0x45)

Versions

VersionMeaning
0x00Legacy personal_sign
0x01EIP-191 structured data
0x45EIP-712 typed data

Effect API

const signedData = Effect.runSync(
  SignedData.from(
    0x45,                        // version
    new Uint8Array([1, 2, 3]),   // version-specific data
    new Uint8Array([4, 5, 6])    // payload
  )
)

Errors

const result = await Effect.runPromiseExit(
  SignedData.from(0x45, new Uint8Array(), new Uint8Array())
)
// SignedDataError