From a1e0fc3b88ed4305f942fadbea66b29a3934721c Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Fri, 16 Aug 2019 15:03:52 +0200 Subject: crypto worker refactoring --- src/crypto/emscInterface.ts | 49 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 47 insertions(+), 2 deletions(-) (limited to 'src/crypto/emscInterface.ts') diff --git a/src/crypto/emscInterface.ts b/src/crypto/emscInterface.ts index 96e94e3fb..0c7edefab 100644 --- a/src/crypto/emscInterface.ts +++ b/src/crypto/emscInterface.ts @@ -28,8 +28,6 @@ */ import { AmountJson } from "../amounts"; -import { EmscFunGen, EmscLib } from "./emscLoader"; - /** * Size of a native pointer. Must match the size * use when compiling via emscripten. @@ -38,6 +36,53 @@ const PTR_SIZE = 4; const GNUNET_OK = 1; + +/** + * Signature of the function that retrieves emscripten + * function implementations. + */ +export interface EmscFunGen { + (name: string, + ret: string, + args: string[]): ((...x: Array) => any); + (name: string, + ret: "number", + args: string[]): ((...x: Array) => number); + (name: string, + ret: "void", + args: string[]): ((...x: Array) => void); + (name: string, + ret: "string", + args: string[]): ((...x: Array) => string); +} + + +interface EmscLib { + cwrap: EmscFunGen; + + ccall(name: string, ret: "number"|"string", argTypes: any[], args: any[]): any; + + stringToUTF8(s: string, addr: number, maxLength: number): void; + + onRuntimeInitialized(f: () => void): void; + + readBinary?: (filename: string) => Promise; + + calledRun?: boolean; + + _free(ptr: number): void; + + _malloc(n: number): number; + + Pointer_stringify(p: number, len?: number): string; + + getValue(ptr: number, type: string, noSafe?: boolean): number; + + setValue(ptr: number, value: number, type: string, noSafe?: boolean): void; + + writeStringToMemory(s: string, buffer: number, dontAddNull?: boolean): void; +} + interface EmscFunctions { amount_add(a1: number, a2: number, a3: number): number; amount_cmp(a1: number, a2: number): number; -- cgit v1.2.3