diff --git a/examples/rln-js/src/services/rln.ts b/examples/rln-js/src/services/rln.ts index dac2304..9a2f653 100644 --- a/examples/rln-js/src/services/rln.ts +++ b/examples/rln-js/src/services/rln.ts @@ -55,6 +55,16 @@ export class RLN implements IRLN { return; } + await this.initRLNWasm(); + await this.initRLNContract(); + + this.emitStatusEvent(StatusEventPayload.RLN_INITIALIZED); + + // add keystore initialization + this.initialized = true; + } + + private async initRLNWasm(): Promise { this.emitStatusEvent(StatusEventPayload.WASM_LOADING); try { this.rlnInstance = await create(); @@ -66,9 +76,14 @@ export class RLN implements IRLN { this.emitStatusEvent(StatusEventPayload.WASM_FAILED); throw error; } + } + private async initRLNContract(): Promise { this.emitStatusEvent(StatusEventPayload.CONTRACT_LOADING); try { + if (!this.rlnInstance) { + throw Error("No RLN instance is found."); + } this.rlnContract = await RLNContract.init(this.rlnInstance, { registryAddress: SEPOLIA_CONTRACT.address, provider: this.ethProvider.getSigner(), @@ -78,8 +93,6 @@ export class RLN implements IRLN { this.emitStatusEvent(StatusEventPayload.CONTRACT_FAILED); throw error; } - - this.emitStatusEvent(StatusEventPayload.RLN_INITIALIZED); } public addEventListener(name: RLNEventsNames, fn: EventListener) {