feat: leveldb migrations tool

feat: migration tools for sqlite
This commit is contained in:
ppe
2022-06-29 11:23:33 +02:00
committed by just_ppe
parent 74e8696838
commit 83c68df5df
13 changed files with 141 additions and 213 deletions

View File

@@ -4,7 +4,8 @@ import {
HandlerApi,
InteractionsLoader,
WarpBuilder,
StateEvaluator
StateEvaluator,
EvalStateResult
} from '@warp/core';
import Arweave from 'arweave';
import {
@@ -16,6 +17,8 @@ import {
PstContractImpl
} from '@warp/contract';
import { GQLNodeInterface } from '@warp/legacy';
import { MigrationTool } from '../contract/migration/MigrationTool';
import { LevelDbCache } from '@warp/cache';
/**
* The Warp "motherboard" ;-).
@@ -27,19 +30,22 @@ import { GQLNodeInterface } from '@warp/legacy';
*/
export class Warp {
readonly createContract: CreateContract;
readonly migrationTool: MigrationTool;
constructor(
readonly arweave: Arweave,
readonly levelDb: LevelDbCache<EvalStateResult<unknown>>,
readonly definitionLoader: DefinitionLoader,
readonly interactionsLoader: InteractionsLoader,
readonly executorFactory: ExecutorFactory<HandlerApi<unknown>>,
readonly stateEvaluator: StateEvaluator
) {
this.createContract = new DefaultCreateContract(arweave);
this.migrationTool = new MigrationTool(arweave, levelDb);
}
static builder(arweave: Arweave): WarpBuilder {
return new WarpBuilder(arweave);
static builder(arweave: Arweave, cache: LevelDbCache<EvalStateResult<unknown>>): WarpBuilder {
return new WarpBuilder(arweave, cache);
}
/**