zksync-easy-onramp
Version:
SDK package for ZKsync easy on ramp
21 lines (16 loc) • 609 B
text/typescript
import { executionState, } from "@sdk/core/executionState";
import { StepManager, } from "@sdk/core/StepManager";
import type { Route, StepExtended, } from "@sdk/types/sdk";
import { cloneDeep, } from "lodash";
export abstract class BaseStepExecutor {
routeId: Route["id"];
stepManager: StepManager;
constructor(route: Route, step: Route["steps"][number],) {
this.routeId = route.id;
this.stepManager = new StepManager(cloneDeep(step,),);
}
get route(): Route {
return executionState.get(this.routeId,)!.route;
}
abstract executeStep(stepIndex: number): Promise<StepExtended>;
}