Copy
Ask AI
import * as PublicKey from 'voltaire-effect/primitives/PublicKey'
import { Effect } from 'effect'
import * as S from 'effect/Schema'
// From hex (64-byte uncompressed)
const pk = S.decodeSync(PublicKey.PublicKeySchema)('0x04...')
// From bytes (auto-decompresses 33-byte compressed)
const pk2 = S.decodeSync(PublicKey.PublicKeyFromBytesSchema)(keyBytes)
// To compressed (33 bytes)
const compressed = S.decodeSync(PublicKey.CompressedPublicKeySchema)(pk)
Effect API
Copy
Ask AI
// From hex
const pk = Effect.runSync(PublicKey.from('0x04...'))
// From private key
const pk = Effect.runSync(PublicKey.fromPrivateKey('0x0123...'))
// Compress/decompress
const compressed = Effect.runSync(PublicKey.compress(pk)) // 33 bytes
const uncompressed = Effect.runSync(PublicKey.decompress(compressed)) // 64 bytes
Errors
Copy
Ask AI
const result = await Effect.runPromiseExit(PublicKey.from('0xinvalid'))
// InvalidFormatError | InvalidLengthError

