upend/sdks/js/src/wasm/index.ts

35 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;
}