@hazae41/ripemd160
Version:
RIPEMD-160 adapter for WebAssembly and JS implementations
80 lines (76 loc) • 2.48 kB
JavaScript
;
var tslib_es6 = require('../../../node_modules/tslib/tslib.es6.cjs');
var box = require('@hazae41/box');
function fromWasm(wasm) {
const { Memory, Ripemd160Hasher, ripemd160 } = wasm;
function getMemory(bytesOrCopiable) {
if (bytesOrCopiable instanceof Memory)
return new box.Ref(bytesOrCopiable);
if (bytesOrCopiable instanceof Uint8Array)
return box.Pin.from(new Memory(bytesOrCopiable));
return box.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 _ = tslib_es6.__addDisposableResource(env_1, this.inner, false);
}
catch (e_1) {
env_1.error = e_1;
env_1.hasError = true;
}
finally {
tslib_es6.__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 = tslib_es6.__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 {
tslib_es6.__disposeResources(env_2);
}
}
finalizeOrThrow() {
return this.inner.finalize();
}
}
function hashOrThrow(bytes) {
const env_3 = { stack: [], error: void 0, hasError: false };
try {
const memory = tslib_es6.__addDisposableResource(env_3, getMemory(bytes), false);
return ripemd160(memory.value);
}
catch (e_3) {
env_3.error = e_3;
env_3.hasError = true;
}
finally {
tslib_es6.__disposeResources(env_3);
}
}
return { Hasher, hashOrThrow };
}
exports.fromWasm = fromWasm;
//# sourceMappingURL=wasm.cjs.map