34 lines
899 B
TypeScript
34 lines
899 B
TypeScript
import debug from "debug";
|
|
const dbg = debug("upend:wasm");
|
|
|
|
export abstract class UpEndWasmExtensions {
|
|
private initialized = false;
|
|
private initPromise: Promise<void> | undefined = undefined;
|
|
protected abstract _init(): Promise<void>;
|
|
public async init(): Promise<void> {
|
|
if (!this.initialized) {
|
|
if (!this.initPromise) {
|
|
this.initPromise = this._init();
|
|
}
|
|
await this.initPromise;
|
|
this.initialized = true;
|
|
dbg("WASM extensions initialized.");
|
|
}
|
|
}
|
|
|
|
public abstract addr_to_components(address: string): AddressComponents;
|
|
public abstract components_to_addr(components: AddressComponents): string;
|
|
public abstract AddressTypeConstants: AddressTypeConstants;
|
|
}
|
|
|
|
export interface AddressTypeConstants {
|
|
Attribute: string;
|
|
Hash: string;
|
|
Url: string;
|
|
Uuid: string;
|
|
}
|
|
|
|
export interface AddressComponents {
|
|
t: string;
|
|
c?: string;
|
|
}
|