@nepse-helper/core
Version:
A helper library for NEPSE
39 lines (38 loc) • 2.58 kB
JavaScript
import { ENDPOINTS, USER_AGENT } from "../consts/api";
export class TokenHelper {
wasm;
static _instance;
constructor(wasm) {
this.wasm = wasm;
}
static async instance() {
if (!this._instance) {
const buffer = await fetch(`${ENDPOINTS.baseUrl}/${ENDPOINTS.assets.prod.cssWasm}`, {
headers: {
Referer: ENDPOINTS.baseUrl,
"User-Agent": USER_AGENT,
},
}).then((res) => res.arrayBuffer());
const wasm = await WebAssembly.instantiate(buffer);
const exports = wasm.instance.exports;
this._instance = new TokenHelper(exports);
}
return this._instance;
}
encodeAccessToken(accessToken, salts) {
return (accessToken.slice(0, this.wasm.cdx(salts[0], salts[1], salts[2], salts[3], salts[4])) +
accessToken.slice(this.wasm.cdx(salts[0], salts[1], salts[2], salts[3], salts[4]) + 1, this.wasm.rdx(salts[0], salts[1], salts[2], salts[3], salts[4])) +
accessToken.slice(this.wasm.rdx(salts[0], salts[1], salts[2], salts[3], salts[4]) + 1, this.wasm.bdx(salts[0], salts[1], salts[2], salts[3], salts[4])) +
accessToken.slice(this.wasm.bdx(salts[0], salts[1], salts[2], salts[3], salts[4]) + 1, this.wasm.ndx(salts[0], salts[1], salts[2], salts[3], salts[4])) +
accessToken.slice(this.wasm.ndx(salts[0], salts[1], salts[2], salts[3], salts[4]) + 1, this.wasm.mdx(salts[0], salts[1], salts[2], salts[3], salts[4])) +
accessToken.slice(this.wasm.mdx(salts[0], salts[1], salts[2], salts[3], salts[4]) + 1));
}
encodeRefreshToken(refreshToken, salts) {
return (refreshToken.slice(0, this.wasm.cdx(salts[1], salts[0], salts[2], salts[4], salts[3])) +
refreshToken.slice(this.wasm.cdx(salts[1], salts[0], salts[2], salts[4], salts[3]) + 1, this.wasm.rdx(salts[1], salts[0], salts[2], salts[3], salts[4])) +
refreshToken.slice(this.wasm.rdx(salts[1], salts[0], salts[2], salts[3], salts[4]) + 1, this.wasm.bdx(salts[1], salts[0], salts[3], salts[2], salts[4])) +
refreshToken.slice(this.wasm.bdx(salts[1], salts[0], salts[3], salts[2], salts[4]) + 1, this.wasm.ndx(salts[1], salts[0], salts[3], salts[2], salts[4])) +
refreshToken.slice(this.wasm.ndx(salts[1], salts[0], salts[3], salts[2], salts[4]) + 1, this.wasm.mdx(salts[1], salts[0], salts[3], salts[2], salts[4])) +
refreshToken.slice(this.wasm.mdx(salts[1], salts[0], salts[3], salts[2], salts[4]) + 1));
}
}