UNPKG

@hazae41/ripemd160

Version:

RIPEMD-160 adapter for WebAssembly and JS implementations

78 lines (75 loc) 2.43 kB
import { __addDisposableResource, __disposeResources } from '../../../node_modules/tslib/tslib.es6.mjs'; import { Ref, Pin } from '@hazae41/box'; function fromWasm(wasm) { const { Memory, Ripemd160Hasher, ripemd160 } = wasm; function getMemory(bytesOrCopiable) { if (bytesOrCopiable instanceof Memory) return new Ref(bytesOrCopiable); if (bytesOrCopiable instanceof Uint8Array) return Pin.from(new Memory(bytesOrCopiable)); return Pin.from(new Memory(bytesOrCopiable.bytes)); } class Hasher { inner; constructor(inner) { this.inner = inner; } [Symbol.dispose]() { const env_1 = { stack: [], error: void 0, hasError: false }; try { const _ = __addDisposableResource(env_1, this.inner, false); } catch (e_1) { env_1.error = e_1; env_1.hasError = true; } finally { __disposeResources(env_1); } } static create(inner) { return new Hasher(inner); } static createOrThrow() { return new Hasher(new Ripemd160Hasher()); } cloneOrThrow() { return new Hasher(this.inner.clone()); } updateOrThrow(bytes) { const env_2 = { stack: [], error: void 0, hasError: false }; try { const memory = __addDisposableResource(env_2, getMemory(bytes), false); this.inner.update(memory.value); return this; } catch (e_2) { env_2.error = e_2; env_2.hasError = true; } finally { __disposeResources(env_2); } } finalizeOrThrow() { return this.inner.finalize(); } } function hashOrThrow(bytes) { const env_3 = { stack: [], error: void 0, hasError: false }; try { const memory = __addDisposableResource(env_3, getMemory(bytes), false); return ripemd160(memory.value); } catch (e_3) { env_3.error = e_3; env_3.hasError = true; } finally { __disposeResources(env_3); } } return { Hasher, hashOrThrow }; } export { fromWasm }; //# sourceMappingURL=wasm.mjs.map