Copy
Ask AI
import { Ripemd160Service, Ripemd160Live } from 'voltaire-effect/crypto'
import { Effect } from 'effect'
const hash = await Effect.runPromise(
Effect.gen(function* () {
const ripemd = yield* Ripemd160Service
return yield* ripemd.hash(new Uint8Array([1, 2, 3]))
}).pipe(Effect.provide(Ripemd160Live))
)
// 20 bytes
Bitcoin HASH160
Copy
Ask AI
import { Ripemd160Service, SHA256Service, CryptoLive } from 'voltaire-effect/crypto'
const hash160 = Effect.gen(function* () {
const sha256 = yield* SHA256Service
const ripemd = yield* Ripemd160Service
return yield* ripemd.hash(yield* sha256.hash(publicKeyBytes))
}).pipe(Effect.provide(CryptoLive))
Testing
Copy
Ask AI
import { Ripemd160Test } from 'voltaire-effect/crypto'
myProgram.pipe(Effect.provide(Ripemd160Test))
// Returns zero-filled 20-byte hash
Interface
Copy
Ask AI
interface Ripemd160ServiceShape {
readonly hash: (data: Uint8Array) => Effect.Effect<Ripemd160Hash>
}

