aboutsummaryrefslogtreecommitdiff
path: root/src/crypto/emscInterface.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/crypto/emscInterface.ts')
-rw-r--r--src/crypto/emscInterface.ts49
1 files changed, 47 insertions, 2 deletions
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<number|string>) => any);
+ (name: string,
+ ret: "number",
+ args: string[]): ((...x: Array<number|string>) => number);
+ (name: string,
+ ret: "void",
+ args: string[]): ((...x: Array<number|string>) => void);
+ (name: string,
+ ret: "string",
+ args: string[]): ((...x: Array<number|string>) => 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<ArrayBuffer>;
+
+ 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;