From ad9a8850751fb72b2579144c14ef5846970395a1 Mon Sep 17 00:00:00 2001 From: Dmitryii Osipov Date: Wed, 12 Jul 2023 13:59:13 +0400 Subject: [PATCH] Remove upload-dapp pkg (#1325) --- apps/upload-dapp-chain/.eslintrc.js | 41 --- apps/upload-dapp-chain/.gitignore | 4 - apps/upload-dapp-chain/Dockerfile | 13 - apps/upload-dapp-chain/nest-cli.json | 5 - apps/upload-dapp-chain/package.json | 65 ----- apps/upload-dapp-chain/src/app.module.ts | 75 ----- .../src/bot/bot.controller.ts | 108 -------- apps/upload-dapp-chain/src/bot/bot.module.ts | 32 --- apps/upload-dapp-chain/src/bot/bot.service.ts | 256 ------------------ apps/upload-dapp-chain/src/bot/types/index.ts | 4 - .../upload-dapp-chain/src/code/code.module.ts | 10 - .../src/code/code.service.ts | 55 ---- .../upload-dapp-chain/src/code/types/index.ts | 4 - .../src/code/types/upload-code.input.ts | 3 - .../src/code/types/upload-codes-result.ts | 3 - .../src/common/enums/file-key.enum.ts | 4 - .../src/common/enums/index.ts | 5 - .../src/common/enums/role.enum.ts | 4 - .../src/common/enums/tb-error-message.enum.ts | 6 - .../exceptions/bad-request.exception.ts | 9 - .../src/common/exceptions/error-code.ts | 4 - .../src/common/helpers/check-init-program.ts | 39 --- .../src/common/helpers/get-account.ts | 23 -- .../helpers/get-latest-release-by-repo.ts | 20 -- .../common/helpers/get-opt-and-meta-wasm.ts | 8 - .../src/common/helpers/get-tg-commands.ts | 9 - .../helpers/get-upload-program-by-name.ts | 11 - .../common/helpers/get-upload-program-data.ts | 13 - .../common/helpers/get-workflow-commands.ts | 12 - .../src/common/helpers/index.ts | 17 -- .../src/common/helpers/send-transaction.ts | 23 -- .../update-wasm-urls-by-last-releases-repo.ts | 66 ----- .../src/common/types/asset.ts | 15 - .../src/common/types/flow-command.ts | 7 - .../src/common/types/index.ts | 9 - .../src/common/types/paylaod.ts | 1 - .../src/common/types/program.ts | 11 - .../src/common/types/repo.ts | 23 -- .../src/common/types/single-flow-command.ts | 6 - .../src/common/types/workflow.ts | 16 -- .../src/common/workflow/workflow.yaml | 164 ----------- .../src/configs/base.config.ts | 27 -- .../src/dapp-data/dapp-data.controller.ts | 23 -- .../src/dapp-data/dapp-data.module.ts | 17 -- .../src/dapp-data/dapp-data.repo.ts | 39 --- .../src/dapp-data/dapp-data.service.ts | 33 --- .../dapp-data/entities/dapp-data.entity.ts | 25 -- .../src/gear/gear-service.ts | 16 -- apps/upload-dapp-chain/src/main.ts | 14 - .../src/message/message.module.ts | 9 - .../src/message/message.service.ts | 55 ---- .../src/message/types/send-message.input.ts | 8 - .../src/program/program.module.ts | 9 - .../src/program/program.service.ts | 73 ----- .../src/program/types/index.ts | 4 - .../program/types/upload-program-result.ts | 8 - .../src/program/types/upload-program.input.ts | 3 - .../src/tasks/tasks.module.ts | 10 - .../src/tasks/tasks.service.ts | 28 -- .../src/user/entities/user.entity.ts | 12 - .../upload-dapp-chain/src/user/types/index.ts | 8 - .../upload-dapp-chain/src/user/user.module.ts | 14 - apps/upload-dapp-chain/src/user/user.repo.ts | 25 -- .../src/user/user.service.ts | 28 -- apps/upload-dapp-chain/tsconfig.build.json | 4 - apps/upload-dapp-chain/tsconfig.json | 21 -- renovate.json | 6 +- 67 files changed, 3 insertions(+), 1719 deletions(-) delete mode 100644 apps/upload-dapp-chain/.eslintrc.js delete mode 100644 apps/upload-dapp-chain/.gitignore delete mode 100644 apps/upload-dapp-chain/Dockerfile delete mode 100644 apps/upload-dapp-chain/nest-cli.json delete mode 100644 apps/upload-dapp-chain/package.json delete mode 100644 apps/upload-dapp-chain/src/app.module.ts delete mode 100644 apps/upload-dapp-chain/src/bot/bot.controller.ts delete mode 100644 apps/upload-dapp-chain/src/bot/bot.module.ts delete mode 100644 apps/upload-dapp-chain/src/bot/bot.service.ts delete mode 100644 apps/upload-dapp-chain/src/bot/types/index.ts delete mode 100644 apps/upload-dapp-chain/src/code/code.module.ts delete mode 100644 apps/upload-dapp-chain/src/code/code.service.ts delete mode 100644 apps/upload-dapp-chain/src/code/types/index.ts delete mode 100644 apps/upload-dapp-chain/src/code/types/upload-code.input.ts delete mode 100644 apps/upload-dapp-chain/src/code/types/upload-codes-result.ts delete mode 100644 apps/upload-dapp-chain/src/common/enums/file-key.enum.ts delete mode 100644 apps/upload-dapp-chain/src/common/enums/index.ts delete mode 100644 apps/upload-dapp-chain/src/common/enums/role.enum.ts delete mode 100644 apps/upload-dapp-chain/src/common/enums/tb-error-message.enum.ts delete mode 100644 apps/upload-dapp-chain/src/common/exceptions/bad-request.exception.ts delete mode 100644 apps/upload-dapp-chain/src/common/exceptions/error-code.ts delete mode 100644 apps/upload-dapp-chain/src/common/helpers/check-init-program.ts delete mode 100644 apps/upload-dapp-chain/src/common/helpers/get-account.ts delete mode 100644 apps/upload-dapp-chain/src/common/helpers/get-latest-release-by-repo.ts delete mode 100644 apps/upload-dapp-chain/src/common/helpers/get-opt-and-meta-wasm.ts delete mode 100644 apps/upload-dapp-chain/src/common/helpers/get-tg-commands.ts delete mode 100644 apps/upload-dapp-chain/src/common/helpers/get-upload-program-by-name.ts delete mode 100644 apps/upload-dapp-chain/src/common/helpers/get-upload-program-data.ts delete mode 100644 apps/upload-dapp-chain/src/common/helpers/get-workflow-commands.ts delete mode 100644 apps/upload-dapp-chain/src/common/helpers/index.ts delete mode 100644 apps/upload-dapp-chain/src/common/helpers/send-transaction.ts delete mode 100644 apps/upload-dapp-chain/src/common/helpers/update-wasm-urls-by-last-releases-repo.ts delete mode 100644 apps/upload-dapp-chain/src/common/types/asset.ts delete mode 100644 apps/upload-dapp-chain/src/common/types/flow-command.ts delete mode 100644 apps/upload-dapp-chain/src/common/types/index.ts delete mode 100644 apps/upload-dapp-chain/src/common/types/paylaod.ts delete mode 100644 apps/upload-dapp-chain/src/common/types/program.ts delete mode 100644 apps/upload-dapp-chain/src/common/types/repo.ts delete mode 100644 apps/upload-dapp-chain/src/common/types/single-flow-command.ts delete mode 100644 apps/upload-dapp-chain/src/common/types/workflow.ts delete mode 100644 apps/upload-dapp-chain/src/common/workflow/workflow.yaml delete mode 100644 apps/upload-dapp-chain/src/configs/base.config.ts delete mode 100644 apps/upload-dapp-chain/src/dapp-data/dapp-data.controller.ts delete mode 100644 apps/upload-dapp-chain/src/dapp-data/dapp-data.module.ts delete mode 100644 apps/upload-dapp-chain/src/dapp-data/dapp-data.repo.ts delete mode 100644 apps/upload-dapp-chain/src/dapp-data/dapp-data.service.ts delete mode 100644 apps/upload-dapp-chain/src/dapp-data/entities/dapp-data.entity.ts delete mode 100644 apps/upload-dapp-chain/src/gear/gear-service.ts delete mode 100644 apps/upload-dapp-chain/src/main.ts delete mode 100644 apps/upload-dapp-chain/src/message/message.module.ts delete mode 100644 apps/upload-dapp-chain/src/message/message.service.ts delete mode 100644 apps/upload-dapp-chain/src/message/types/send-message.input.ts delete mode 100644 apps/upload-dapp-chain/src/program/program.module.ts delete mode 100644 apps/upload-dapp-chain/src/program/program.service.ts delete mode 100644 apps/upload-dapp-chain/src/program/types/index.ts delete mode 100644 apps/upload-dapp-chain/src/program/types/upload-program-result.ts delete mode 100644 apps/upload-dapp-chain/src/program/types/upload-program.input.ts delete mode 100644 apps/upload-dapp-chain/src/tasks/tasks.module.ts delete mode 100644 apps/upload-dapp-chain/src/tasks/tasks.service.ts delete mode 100644 apps/upload-dapp-chain/src/user/entities/user.entity.ts delete mode 100644 apps/upload-dapp-chain/src/user/types/index.ts delete mode 100644 apps/upload-dapp-chain/src/user/user.module.ts delete mode 100644 apps/upload-dapp-chain/src/user/user.repo.ts delete mode 100644 apps/upload-dapp-chain/src/user/user.service.ts delete mode 100644 apps/upload-dapp-chain/tsconfig.build.json delete mode 100644 apps/upload-dapp-chain/tsconfig.json diff --git a/apps/upload-dapp-chain/.eslintrc.js b/apps/upload-dapp-chain/.eslintrc.js deleted file mode 100644 index d1699ce18b..0000000000 --- a/apps/upload-dapp-chain/.eslintrc.js +++ /dev/null @@ -1,41 +0,0 @@ -module.exports = { - parser: '@typescript-eslint/parser', - parserOptions: { - project: 'tsconfig.json', - sourceType: 'module', - }, - plugins: ['@typescript-eslint'], - extends: ["airbnb-base"], - root: true, - env: { - es2021: true, - node: true - }, - ignorePatterns: ['.eslintrc.js'], - rules: { - "max-len": ["error", { "code": 120, "tabWidth": 2 }], - "comma-dangle": ["error", "always-multiline"], - "import/prefer-default-export": "off", - "arrow-parens": [2, "as-needed", { "requireForBlockBody": true }], - "no-useless-constructor": "off", - "no-empty-function": ["error", { "allow": ["constructors"] }], - "@typescript-eslint/no-unused-vars": ["error", { "argsIgnorePattern": "^_" }], - "class-methods-use-this": "off", - "import/extensions": ["error", "always", { "ts": "never", "js": "never" }], - "no-shadow": "off", - "no-await-in-loop": "off", - "no-restricted-syntax": ["error", "WithStatement", "BinaryExpression[operator='in']"], - "@typescript-eslint/no-shadow": ["error"], - "quotes": ["error", "double", { "allowTemplateLiterals": true }], - "arrow-body-style": ["error", "as-needed"], - "implicit-arrow-linebreak": ["error", "beside"], - "no-param-reassign": ["error", { "props": false }], - "lines-between-class-members": ["error", "always", { "exceptAfterSingleLine": true }], - "object-curly-newline": ["error", { "consistent": true }], - }, - settings: { - "import/resolver": { - "node": { "extensions": [".ts"] } - } - } -}; diff --git a/apps/upload-dapp-chain/.gitignore b/apps/upload-dapp-chain/.gitignore deleted file mode 100644 index 9eb6cf1f32..0000000000 --- a/apps/upload-dapp-chain/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -node_modules -dist -.env -.idea \ No newline at end of file diff --git a/apps/upload-dapp-chain/Dockerfile b/apps/upload-dapp-chain/Dockerfile deleted file mode 100644 index 7772d11bce..0000000000 --- a/apps/upload-dapp-chain/Dockerfile +++ /dev/null @@ -1,13 +0,0 @@ -FROM node:16-alpine -MAINTAINER gear - -WORKDIR /src -COPY package.json . -COPY yarn.lock . -COPY tsconfig.json . -COPY .yarn .yarn -COPY .yarnrc.yml . -COPY ./apps/upload-dapp-chain/ apps/upload-dapp-chain/ -RUN yarn install -RUN yarn build:upload-dapp-chain -CMD ["node", "/src/apps/upload-dapp-chain/dist/main.js"] diff --git a/apps/upload-dapp-chain/nest-cli.json b/apps/upload-dapp-chain/nest-cli.json deleted file mode 100644 index 256648114a..0000000000 --- a/apps/upload-dapp-chain/nest-cli.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/nest-cli", - "collection": "@nestjs/schematics", - "sourceRoot": "src" -} diff --git a/apps/upload-dapp-chain/package.json b/apps/upload-dapp-chain/package.json deleted file mode 100644 index 38c7006b7d..0000000000 --- a/apps/upload-dapp-chain/package.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "name": "@gear-js/upload-dapp-chain", - "version": "0.1.0", - "private": true, - "scripts": { - "prebuild": "rimraf dist", - "build": "nest build", - "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", - "start": "nest start", - "start:dev": "nest start --watch", - "start:debug": "nest start --debug --watch", - "start:prod": "node dist/main", - "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix" - }, - "dependencies": { - "@gear-js/api": "^0.26.1", - "@nestjs/axios": "^0.1.0", - "@nestjs/common": "^8.0.0", - "@nestjs/config": "^2.2.0", - "@nestjs/core": "^8.0.0", - "@nestjs/mapped-types": "*", - "@nestjs/platform-express": "^8.0.0", - "@nestjs/schedule": "^2.1.0", - "@nestjs/typeorm": "^9.0.1", - "@polkadot/api": "9.10.1", - "@types/cron": "^2.0.0", - "@types/js-yaml": "^4.0.5", - "axios": "^0.27.2", - "dotenv": "^16.0.1", - "eslint-config-airbnb-base": "^15.0.0", - "eslint-plugin-import": "^2.26.0", - "js-yaml": "^4.1.0", - "nestjs-telegraf": "^2.6.0", - "node-fetch": "^2.6.7", - "pg": "^8.7.3", - "reflect-metadata": "^0.1.13", - "rimraf": "^3.0.2", - "rxjs": "^7.2.0", - "telegraf": "^4.8.6", - "typeorm": "^0.3.7" - }, - "devDependencies": { - "@nestjs/cli": "^8.0.0", - "@nestjs/schematics": "^8.0.0", - "@nestjs/testing": "^8.0.0", - "@types/express": "^4.17.13", - "@types/jest": "27.5.0", - "@types/node": "^16.0.0", - "@types/supertest": "^2.0.11", - "@typescript-eslint/eslint-plugin": "^5.0.0", - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^7.32.0", - "eslint-config-prettier": "^8.3.0", - "eslint-plugin-prettier": "^4.0.0", - "jest": "28.0.3", - "prettier": "^2.3.2", - "source-map-support": "^0.5.20", - "supertest": "^6.1.3", - "ts-jest": "28.0.1", - "ts-loader": "^9.2.3", - "ts-node": "^10.0.0", - "tsconfig-paths": "4.0.0", - "typescript": "^4.3.5" - } -} diff --git a/apps/upload-dapp-chain/src/app.module.ts b/apps/upload-dapp-chain/src/app.module.ts deleted file mode 100644 index 1bc368b164..0000000000 --- a/apps/upload-dapp-chain/src/app.module.ts +++ /dev/null @@ -1,75 +0,0 @@ -import { Module } from "@nestjs/common"; -import { ConfigModule, ConfigService } from "@nestjs/config"; -import { TypeOrmModule } from "@nestjs/typeorm"; -import { ScheduleModule } from "@nestjs/schedule"; - -import { HttpModule } from "@nestjs/axios"; -import baseConfig from "./configs/base.config"; - -import { DappDataModule } from "./dapp-data/dapp-data.module"; -import { DappData } from "./dapp-data/entities/dapp-data.entity"; -import { User } from "./user/entities/user.entity"; -import { BotModule } from "./bot/bot.module"; - -import { UserModule } from "./user/user.module"; -import { TasksModule } from "./tasks/tasks.module"; -import { CodeModule } from "./code/code.module"; -import { ProgramModule } from "./program/program.module"; -import { MessageModule } from "./message/message.module"; -import { gearService } from "./gear/gear-service"; - -const entities = [DappData, User]; - -@Module({ - imports: [ - ScheduleModule.forRoot(), - DappDataModule, - ConfigModule.forRoot({ - isGlobal: true, - load: [baseConfig], - }), - TypeOrmModule.forRootAsync({ - imports: [ConfigModule], - useFactory: async (configService: ConfigService) => ({ - type: "postgres", - host: configService.get("db.DB_HOST"), - port: configService.get("db.DB_PORT"), - username: configService.get("db.DB_USER"), - password: configService.get("db.DB_PASSWORD"), - database: configService.get("db.DB_DATABASE"), - logging: true, - entities, - synchronize: true, - }), - inject: [ConfigService], - }), - HttpModule.registerAsync({ - imports: [ConfigModule], - useFactory: async (configService: ConfigService) => ({ - headers: { - "Content-Type": "application/json", - Accept: configService.get("github.GITHUB_API_ACCEPT"), - Authorization: `token ${configService.get( - "github.GITHUB_ACCESS_TOKEN", - )}`, - }, - }), - inject: [ConfigService], - }), - TypeOrmModule.forFeature(entities), - BotModule, - UserModule, - TasksModule, - CodeModule, - ProgramModule, - MessageModule, - ], - controllers: [], - providers: [ - { - provide: "GearService", - useValue: gearService, - }, - ], -}) -export class AppModule {} diff --git a/apps/upload-dapp-chain/src/bot/bot.controller.ts b/apps/upload-dapp-chain/src/bot/bot.controller.ts deleted file mode 100644 index 58ef86b66f..0000000000 --- a/apps/upload-dapp-chain/src/bot/bot.controller.ts +++ /dev/null @@ -1,108 +0,0 @@ -import { Command, Update } from "nestjs-telegraf"; -import { Markup } from "telegraf"; - -import { Context } from "./types"; -import { BotService } from "./bot.service"; - -@Update() -export class BotController { - constructor(private botService: BotService) {} - - @Command("addAccessUser") - public async addAccessUser(ctx: Context): Promise { - // @ts-ignore - const res = await this.botService.addAccessUser(ctx.message.text, ctx.from.id); - - ctx.reply(res); - } - - @Command("start") - public async start(ctx: Context): Promise { - ctx.reply("hello there! Welcome to 📢😎 Gear upload dapp chain telegram bot."); - ctx.reply("commands", Markup - .keyboard([ - ["/commands"], - ]) - .oneTime() - .resize()); - } - - @Command("commands") - public async commands(ctx: Context): Promise { - const res = await this.botService.commands(ctx.from.id); - - ctx.reply(res); - } - - @Command("uploadDapps") - public async uploadDapps(ctx: Context): Promise { - const res = await this.botService.uploadDapps(ctx.from.id); - - if (Array.isArray(res)) { - for (const uploadDapp of res) { - ctx.reply(JSON.stringify(uploadDapp)); - } - return; - } - - ctx.reply(res); - } - - @Command("uploadDapp") - public async uploadDapp(ctx: Context): Promise { - // @ts-ignore - const res = await this.botService.uploadDapp(ctx.from.id, ctx.message.text); - - if (Array.isArray(res)) { - for (const uploadDapp of res) { - ctx.reply(JSON.stringify(uploadDapp)); - } - return; - } - - ctx.reply(res); - } - - @Command("uploadCodes") - public async uploadCodes(ctx: Context): Promise { - // @ts-ignore - const res = await this.botService.uploadCodes(ctx.from.id, ctx.message.text); - - if (Array.isArray(res)) { - for (const uploadDapp of res) { - ctx.reply(JSON.stringify(uploadDapp)); - } - return; - } - - ctx.reply(res); - } - - @Command("uploadCode") - public async uploadCode(ctx: Context): Promise { - // @ts-ignore - const res = await this.botService.uploadCode(ctx.from.id, ctx.message.text); - - if (Array.isArray(res)) { - for (const uploadDapp of res) { - ctx.reply(JSON.stringify(uploadDapp)); - } - return; - } - - ctx.reply(res); - } - - @Command("updateWorkflowWasmUrls") - public async updateWorkflowWasmUrls(ctx: Context): Promise { - const res = await this.botService.updateWorkflowWasmUrls(ctx.from.id); - - ctx.reply(JSON.stringify(res)); - } - - @Command("getUserId") - public async getUserId(ctx: Context): Promise { - const tgUserData = { username: ctx.from.username, id: ctx.from.id.toString() }; - ctx.reply(JSON.stringify(tgUserData)); - } -} diff --git a/apps/upload-dapp-chain/src/bot/bot.module.ts b/apps/upload-dapp-chain/src/bot/bot.module.ts deleted file mode 100644 index a11db5a6ea..0000000000 --- a/apps/upload-dapp-chain/src/bot/bot.module.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { Module } from "@nestjs/common"; -import { ConfigModule, ConfigService } from "@nestjs/config"; -import { TelegrafModule } from "nestjs-telegraf"; - -import { BotService } from "./bot.service"; -import { DappDataModule } from "../dapp-data/dapp-data.module"; -import { UserModule } from "../user/user.module"; -import { BotController } from "./bot.controller"; -import { CodeModule } from "../code/code.module"; -import { ProgramModule } from "../program/program.module"; -import { MessageModule } from "../message/message.module"; - -@Module({ - imports: [ - DappDataModule, - UserModule, - CodeModule, - ProgramModule, - MessageModule, - TelegrafModule.forRootAsync({ - imports: [ConfigModule], - useFactory: async (configService: ConfigService) => ({ - token: configService.get("bot.TELEGRAM_BOT_TOKEN"), - }), - inject: [ConfigService], - }), - ], - controllers: [], - providers: [BotService, BotController], - exports: [], -}) -export class BotModule {} diff --git a/apps/upload-dapp-chain/src/bot/bot.service.ts b/apps/upload-dapp-chain/src/bot/bot.service.ts deleted file mode 100644 index d872c3275e..0000000000 --- a/apps/upload-dapp-chain/src/bot/bot.service.ts +++ /dev/null @@ -1,256 +0,0 @@ -import { Injectable, Logger } from "@nestjs/common"; - -import { DappDataService } from "../dapp-data/dapp-data.service"; -import { Role, TBErrorMessage } from "../common/enums"; -import { UserService } from "../user/user.service"; -import { UserRepo } from "../user/user.repo"; -import { getTgCommands, updateWasmUrlsByLastReleasesRepo } from "../common/helpers"; -import { getWorkflowCommands } from "../common/helpers/get-workflow-commands"; -import { getUploadProgramData } from "../common/helpers/get-upload-program-data"; -import { DappData } from "../dapp-data/entities/dapp-data.entity"; -import { FlowCommand, Payload } from "../common/types"; -import { getUploadProgramByName } from "../common/helpers/get-upload-program-by-name"; -import { CodeService } from "../code/code.service"; -import { MessageService } from "../message/message.service"; -import { ProgramService } from "../program/program.service"; -import { UploadProgramResult } from "../program/types"; -import { UploadCodesResult } from "../code/types"; -import { SendMessageInput } from "../message/types/send-message.input"; - -@Injectable() -export class BotService { - private logger: Logger = new Logger(BotService.name); - constructor( - private codeService: CodeService, - private messageService: MessageService, - private programService: ProgramService, - private dappDataService: DappDataService, - private userService: UserService, - private userRepository: UserRepo, - ) {} - - public async addAccessUser(commandArguments: string, userId: number): Promise { - const [, id] = commandArguments.split(" "); - - if (await this.userService.isAdmin(String(userId))) { - if (!id) { - return TBErrorMessage.COMMAND_ARGUMENTS_REQUIRED; - } - const user = await this.userRepository.get(id); - - if (user) { - return "User already exists"; - } - - await this.userService.creatUser({ id, role: Role.DEV }); - return "✅ User successfully register"; - } - - return TBErrorMessage.ACCESS_DENIED; - } - - public async commands(userId: number): Promise { - if (await this.userService.validate(String(userId))) { - return getTgCommands(); - } - - return TBErrorMessage.ACCESS_DENIED; - } - - public async uploadDapps(userId: number): Promise { - const workflow = getWorkflowCommands(); - const uploadedPrograms: UploadProgramResult[] = []; - - if (!await this.userService.validate(String(userId))) { - return TBErrorMessage.ACCESS_DENIED; - } - - for (const commandInfo of workflow) { - if (commandInfo.command !== "uploadCode") { - const uploadedProgram = await this.handleCommand(commandInfo, uploadedPrograms); - if (uploadedProgram) uploadedPrograms.push(uploadedProgram); - } - } - try { - const dapps = await this.dappDataService.createDappsData(uploadedPrograms); - - return dapps.map(dapp => ({ ...dapp, metaWasmBase64: "long", optWasmBase64: "long" })); - } catch (error) { - this.logger.error("Upload dapps bot command error"); - console.log(error); - - return JSON.stringify(error); - } - } - - public async uploadCodes(userId: number): Promise { - const workflow = getWorkflowCommands(); - const uploadedCodes: UploadCodesResult[] = []; - - if (!await this.userService.validate(String(userId))) { - return TBErrorMessage.ACCESS_DENIED; - } - - for (const commandInfo of workflow) { - if (commandInfo.command === "uploadCode") { - const uploadCode = await this.handleCommand(commandInfo, uploadedCodes); - if (uploadCode) uploadedCodes.push(uploadCode); - } - } - - try { - const dapps = await this.dappDataService.createDappsData(uploadedCodes); - - return dapps.map(dapp => ({ ...dapp, metaWasmBase64: "long", optWasmBase64: "long" })); - } catch (error) { - this.logger.error("Upload codes bot command error"); - console.log(error); - - return JSON.stringify(error); - } - } - - public async uploadDapp(userId: number, commandArguments: string): Promise { - const [, dappName] = commandArguments.split(" "); - if (!await this.userService.validate(String(userId))) { - return TBErrorMessage.ACCESS_DENIED; - } - - if (!dappName) { - return TBErrorMessage.COMMAND_ARGUMENTS_REQUIRED; - } - - const uploadProgramActions = getUploadProgramByName(dappName); - const uploadedPrograms: UploadProgramResult[] = []; - - if (!uploadProgramActions) { - return TBErrorMessage.INVALID_DAPP_NAME; - } - - if (uploadProgramActions.actions.find(action => action.command === "uploadCode")) { - return TBErrorMessage.INVALID_DAPP_NAME; - } - - for (const action of uploadProgramActions.actions) { - const uploadedProgram = await this.handleCommand(action, uploadedPrograms); - - if (uploadedProgram) uploadedPrograms.push(uploadedProgram); - } - - try { - const dapps = await this.dappDataService.createDappsData(uploadedPrograms); - - return dapps.map(dapp => ({ ...dapp, metaWasmBase64: "long", optWasmBase64: "long" })); - } catch (error) { - this.logger.error("Upload dapp bot command error"); - console.log(error); - - return JSON.stringify(error); - } - } - - public async uploadCode(userId: number, commandArguments: string): Promise { - const [, dappName] = commandArguments.split(" "); - - if (!await this.userService.validate(String(userId))) { - return TBErrorMessage.ACCESS_DENIED; - } - - if (!dappName) { - return TBErrorMessage.COMMAND_ARGUMENTS_REQUIRED; - } - - const uploadProgramActions = getUploadProgramByName(dappName); - const uploadedPrograms: UploadProgramResult[] = []; - - if (!uploadProgramActions) { - return TBErrorMessage.INVALID_DAPP_NAME; - } - - if (uploadProgramActions.actions.find(action => action.command !== "uploadCode")) { - return TBErrorMessage.INVALID_DAPP_NAME; - } - - for (const action of uploadProgramActions.actions) { - const uploadedProgram = await this.handleCommand(action, uploadedPrograms); - - if (uploadedProgram) uploadedPrograms.push(uploadedProgram); - } - - try { - const dapps = await this.dappDataService.createDappsData(uploadedPrograms); - - return dapps.map(dapp => ({ ...dapp, metaWasmBase64: "long", optWasmBase64: "long" })); - } catch (error) { - this.logger.error("Upload code bot command error"); - console.log(error); - - return JSON.stringify(error); - } - } - - public async updateWorkflowWasmUrls(userId: number): Promise { - if (await this.userService.isAdmin(String(userId))) { - try { - await updateWasmUrlsByLastReleasesRepo(); - - return "✅ Successfully updated programs meta.wasm and opt.wasm download urls"; - } catch (error) { - this.logger.error("Update workflow file error"); - console.log(error); - - return JSON.stringify(error); - } - } - - return TBErrorMessage.ACCESS_DENIED; - } - - private async handleCommand( - flowCommand: FlowCommand, - uploadedPrograms: UploadProgramResult[], - ): Promise { - const { acc, payload, command, program, value } = flowCommand; - - const uploadProgramData = getUploadProgramData(program); - - try { - if (command === "sendMessage") { - const sendMessageInput: SendMessageInput = { - payload: this.getPayload(uploadedPrograms, payload), - program: uploadProgramData, - acc, - value, - }; - - await this.messageService.send(sendMessageInput, uploadedPrograms); - return; - } - - if (command === "uploadProgram") { - return this.programService.upload(uploadProgramData); - } - - if (command === "uploadCode") { - return this.codeService.upload(uploadProgramData); - } - } catch (error) { - this.logger.error("Handle commands error"); - this.logger.error(`Program: ${uploadProgramData.dapp}`); - console.log(error); - } - } - - private getPayload(uploadProgramsData: UploadProgramResult[], payload: Payload): Payload { - // @ts-ignore - if (payload.AddNftContract) { - // @ts-ignore - const program = getUploadProgramData(payload.AddNftContract); - const uploadedProgram = uploadProgramsData.find(uploadProgram => uploadProgram.dapp === program.dapp); - - return { AddNftContract: uploadedProgram.programId }; - } - - return payload; - } -} diff --git a/apps/upload-dapp-chain/src/bot/types/index.ts b/apps/upload-dapp-chain/src/bot/types/index.ts deleted file mode 100644 index 08e5c46d4b..0000000000 --- a/apps/upload-dapp-chain/src/bot/types/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { Scenes } from "telegraf"; - -// eslint-disable-next-line @typescript-eslint/no-empty-interface -export interface Context extends Scenes.SceneContext {} diff --git a/apps/upload-dapp-chain/src/code/code.module.ts b/apps/upload-dapp-chain/src/code/code.module.ts deleted file mode 100644 index 236e3a4236..0000000000 --- a/apps/upload-dapp-chain/src/code/code.module.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Module } from "@nestjs/common"; - -import { CodeService } from "./code.service"; - -@Module({ - controllers: [], - providers: [CodeService], - exports: [CodeService], -}) -export class CodeModule {} diff --git a/apps/upload-dapp-chain/src/code/code.service.ts b/apps/upload-dapp-chain/src/code/code.service.ts deleted file mode 100644 index 5cc0be354d..0000000000 --- a/apps/upload-dapp-chain/src/code/code.service.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { Injectable, Logger } from "@nestjs/common"; -import { GearApi, generateCodeId } from "@gear-js/api"; - -import { getAccount, getOptAndMetaWasm, sendTransaction } from "../common/helpers"; -import { gearService } from "../gear/gear-service"; -import { UploadCodeInput } from "./types"; -import { UploadProgramResult } from "../program/types"; - -@Injectable() -export class CodeService { - private logger: Logger = new Logger(CodeService.name); - private gearApi: GearApi = gearService.getApi(); - - constructor() {} - - public async upload(uploadCodeInput: UploadCodeInput): Promise { - const { metaDownloadUrl, optDownloadUrl, acc } = uploadCodeInput; - - const [optWasmData, metaWasmData] = await getOptAndMetaWasm( - optDownloadUrl, - metaDownloadUrl, - ); - - const [optWasmBuff, metaWasmBuff] = await Promise.all([ - optWasmData.buffer(), - metaWasmData.buffer(), - ]); - - const result = { - ...uploadCodeInput, - codeHash: "", - programId: "", - metaWasmBase64: metaWasmBuff.toString("base64"), - optWasmBase64: optWasmBuff.toString("base64"), - }; - - try { - const account = await getAccount(acc); - const { codeHash } = await this.gearApi.code.upload(optWasmBuff); - - await sendTransaction(this.gearApi.code, account, "CodeChanged"); - result.codeHash = codeHash; - - return result; - } catch (error) { - this.logger.error(`Upload code error: ${uploadCodeInput.dapp}`); - console.log("opt_wasm", optWasmBuff); - console.log("meta_wasm", metaWasmBuff); - console.log(error); - - result.codeHash = generateCodeId(optWasmBuff); - return result; - } - } -} diff --git a/apps/upload-dapp-chain/src/code/types/index.ts b/apps/upload-dapp-chain/src/code/types/index.ts deleted file mode 100644 index 609186ee24..0000000000 --- a/apps/upload-dapp-chain/src/code/types/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { UploadCodeInput } from "./upload-code.input"; -import { UploadCodesResult } from "./upload-codes-result"; - -export { UploadCodeInput, UploadCodesResult }; diff --git a/apps/upload-dapp-chain/src/code/types/upload-code.input.ts b/apps/upload-dapp-chain/src/code/types/upload-code.input.ts deleted file mode 100644 index d551bf88da..0000000000 --- a/apps/upload-dapp-chain/src/code/types/upload-code.input.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { Program } from "../../common/types"; - -export interface UploadCodeInput extends Program{} diff --git a/apps/upload-dapp-chain/src/code/types/upload-codes-result.ts b/apps/upload-dapp-chain/src/code/types/upload-codes-result.ts deleted file mode 100644 index 009a778a94..0000000000 --- a/apps/upload-dapp-chain/src/code/types/upload-codes-result.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { UploadProgramResult } from "../../program/types"; - -export type UploadCodesResult = UploadProgramResult; diff --git a/apps/upload-dapp-chain/src/common/enums/file-key.enum.ts b/apps/upload-dapp-chain/src/common/enums/file-key.enum.ts deleted file mode 100644 index c082ddc841..0000000000 --- a/apps/upload-dapp-chain/src/common/enums/file-key.enum.ts +++ /dev/null @@ -1,4 +0,0 @@ -export enum FileKey { - OPT = "opt", - META = "meta" -} diff --git a/apps/upload-dapp-chain/src/common/enums/index.ts b/apps/upload-dapp-chain/src/common/enums/index.ts deleted file mode 100644 index 354249beed..0000000000 --- a/apps/upload-dapp-chain/src/common/enums/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { Role } from "./role.enum"; -import { TBErrorMessage } from "./tb-error-message.enum"; -import { FileKey } from "./file-key.enum"; - -export { Role, TBErrorMessage, FileKey }; diff --git a/apps/upload-dapp-chain/src/common/enums/role.enum.ts b/apps/upload-dapp-chain/src/common/enums/role.enum.ts deleted file mode 100644 index 52424a25ec..0000000000 --- a/apps/upload-dapp-chain/src/common/enums/role.enum.ts +++ /dev/null @@ -1,4 +0,0 @@ -export enum Role { - ADMIN = "admin", - DEV = "dev", -} \ No newline at end of file diff --git a/apps/upload-dapp-chain/src/common/enums/tb-error-message.enum.ts b/apps/upload-dapp-chain/src/common/enums/tb-error-message.enum.ts deleted file mode 100644 index 18c8542e35..0000000000 --- a/apps/upload-dapp-chain/src/common/enums/tb-error-message.enum.ts +++ /dev/null @@ -1,6 +0,0 @@ -export enum TBErrorMessage { - ACCESS_DENIED = "Access denied", - COMMAND_ARGUMENTS_REQUIRED = "Command arguments 😡 required", - INVALID_COMMAND_ARGUMENTS = "Invalid command arguments 😡", - INVALID_DAPP_NAME = "Invalid dapp name 😡" -} diff --git a/apps/upload-dapp-chain/src/common/exceptions/bad-request.exception.ts b/apps/upload-dapp-chain/src/common/exceptions/bad-request.exception.ts deleted file mode 100644 index afceedc074..0000000000 --- a/apps/upload-dapp-chain/src/common/exceptions/bad-request.exception.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { BadRequestException } from "@nestjs/common"; - -import { ErrorCode } from "./error-code"; - -export class BadRequestExc extends BadRequestException { - constructor(message: string) { - super(message, ErrorCode.BAD_REQUEST); - } -} diff --git a/apps/upload-dapp-chain/src/common/exceptions/error-code.ts b/apps/upload-dapp-chain/src/common/exceptions/error-code.ts deleted file mode 100644 index 950807a459..0000000000 --- a/apps/upload-dapp-chain/src/common/exceptions/error-code.ts +++ /dev/null @@ -1,4 +0,0 @@ -export enum ErrorCode { - NOT_FOUND = "NOT_FOUND", - BAD_REQUEST = "BAD_REQUEST", -} diff --git a/apps/upload-dapp-chain/src/common/helpers/check-init-program.ts b/apps/upload-dapp-chain/src/common/helpers/check-init-program.ts deleted file mode 100644 index 2d91440f54..0000000000 --- a/apps/upload-dapp-chain/src/common/helpers/check-init-program.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { GearApi, Hex, MessagesDispatched, MessageEnqueued } from "@gear-js/api"; -import { UnsubscribePromise } from "@polkadot/api/types"; - -export const checkInitProgram = (api: GearApi, programId: string) => { - let messageId: Hex; - let unsubPromise: UnsubscribePromise; - - const unsubscribe = async () => (await unsubPromise)(); - - return new Promise((resolve, reject) => { - unsubPromise = api.query.system.events((events) => { - events.forEach(({ event }) => { - switch (event.method) { - case "MessageEnqueued": - const meEvent = event as MessageEnqueued; - if (meEvent.data.destination.eq(programId) && meEvent.data.entry.isInit) { - messageId = meEvent.data.id.toHex(); - } - break; - case "MessagesDispatched": - const mdEvent = event as MessagesDispatched; - for (const [id, status] of mdEvent.data.statuses) { - if (id.eq(messageId)) { - if (status.isFailed) { - reject("failed"); - break; - } - if (status.isSuccess) { - resolve("success"); - break; - } - } - } - break; - } - }); - }); - }).finally(unsubscribe); -}; diff --git a/apps/upload-dapp-chain/src/common/helpers/get-account.ts b/apps/upload-dapp-chain/src/common/helpers/get-account.ts deleted file mode 100644 index 025ce75f45..0000000000 --- a/apps/upload-dapp-chain/src/common/helpers/get-account.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { GearKeyring } from "@gear-js/api"; -import { KeyringPair } from "@polkadot/keyring/types"; - -import "dotenv/config"; -import assert from "assert"; - -export async function getAccount(account: string): Promise { - if (account === "alice") { - return GearKeyring.fromSuri("//Alice"); - } - - if (account === "bob") { - return GearKeyring.fromSuri("//Bob"); - } - - const seed = process.env[account.toUpperCase()] as string; - - if (!seed) { - assert.notStrictEqual(seed, undefined, `Unable to find ${account} seed in environment variables`); - } - - return GearKeyring.fromSeed(seed); -} diff --git a/apps/upload-dapp-chain/src/common/helpers/get-latest-release-by-repo.ts b/apps/upload-dapp-chain/src/common/helpers/get-latest-release-by-repo.ts deleted file mode 100644 index a4819411dd..0000000000 --- a/apps/upload-dapp-chain/src/common/helpers/get-latest-release-by-repo.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { HttpService } from "@nestjs/axios"; -import { AxiosResponse } from "axios"; - -import "dotenv/config"; -import { Repo } from "../types/repo"; - -// eslint-disable-next-line consistent-return -export async function getLatestReleaseByRepo(repo: string): Promise> { - const httpService = new HttpService(); - - try { - return httpService - .get( - `${process.env.GITHUB_API_BASE_URL}/repos/${process.env.GITHUB_OWNER_REPO}/${repo}/releases/latest`, - ).toPromise(); - } catch (error) { - console.log("Get latest releases by repository error"); - console.log(error); - } -} diff --git a/apps/upload-dapp-chain/src/common/helpers/get-opt-and-meta-wasm.ts b/apps/upload-dapp-chain/src/common/helpers/get-opt-and-meta-wasm.ts deleted file mode 100644 index 67536ce739..0000000000 --- a/apps/upload-dapp-chain/src/common/helpers/get-opt-and-meta-wasm.ts +++ /dev/null @@ -1,8 +0,0 @@ -import fetch, { Response } from "node-fetch"; - -export function getOptAndMetaWasm(optWasmDownloadUrl: string, metaWasmDownloadUrl:string): Promise { - return Promise.all([ - fetch(optWasmDownloadUrl), - fetch(metaWasmDownloadUrl), - ]); -} diff --git a/apps/upload-dapp-chain/src/common/helpers/get-tg-commands.ts b/apps/upload-dapp-chain/src/common/helpers/get-tg-commands.ts deleted file mode 100644 index 67553fc35a..0000000000 --- a/apps/upload-dapp-chain/src/common/helpers/get-tg-commands.ts +++ /dev/null @@ -1,9 +0,0 @@ -export function getTgCommands(): string { - return "/uploadDapps" + "\n" - + "/getUserId" + "\n" - + "/uploadDapp [dappName]" + "\n" - + "/uploadCodes" + "\n" - + "/uploadCode [dappName]" + "\n" - + "/addAccessUser [telegramUserId]" + "\n" - + "/updateWorkflowWasmUrls"; -} diff --git a/apps/upload-dapp-chain/src/common/helpers/get-upload-program-by-name.ts b/apps/upload-dapp-chain/src/common/helpers/get-upload-program-by-name.ts deleted file mode 100644 index e30a39eaee..0000000000 --- a/apps/upload-dapp-chain/src/common/helpers/get-upload-program-by-name.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { load } from "js-yaml"; -import { readFileSync } from "fs"; -import { FlowCommand, WorkflowYamlData } from "../types"; - -export function getUploadProgramByName(dappName: string): { actions:FlowCommand[] } { - const pathWorkflowYaml = process.env.WORKFLOW_PATH as string; - // eslint-disable-next-line no-path-concat - const workflowYamlData = load(readFileSync(__dirname + pathWorkflowYaml, "utf8")) as WorkflowYamlData; - - return workflowYamlData.workflowSingleDapp[dappName]; -} diff --git a/apps/upload-dapp-chain/src/common/helpers/get-upload-program-data.ts b/apps/upload-dapp-chain/src/common/helpers/get-upload-program-data.ts deleted file mode 100644 index 4f81ab86c2..0000000000 --- a/apps/upload-dapp-chain/src/common/helpers/get-upload-program-data.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { load } from "js-yaml"; -import { readFileSync } from "fs"; - -import { WorkflowYamlData, Program } from "../types"; -import "dotenv/config"; - -export function getUploadProgramData(programNum: string): Program { - const pathWorkflowYaml = process.env.WORKFLOW_PATH as string; - // eslint-disable-next-line no-path-concat - const workflowYamlData = load(readFileSync(__dirname + pathWorkflowYaml, "utf8")) as WorkflowYamlData; - - return workflowYamlData.programs[programNum]; -} diff --git a/apps/upload-dapp-chain/src/common/helpers/get-workflow-commands.ts b/apps/upload-dapp-chain/src/common/helpers/get-workflow-commands.ts deleted file mode 100644 index 1ceb8b34b3..0000000000 --- a/apps/upload-dapp-chain/src/common/helpers/get-workflow-commands.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { load } from "js-yaml"; -import { readFileSync } from "fs"; - -import { FlowCommand, WorkflowYamlData } from "../types"; - -export function getWorkflowCommands(): FlowCommand[] { - const pathWorkflowYaml = process.env.WORKFLOW_PATH as string; - // eslint-disable-next-line no-path-concat - const workflowYamlData = load(readFileSync(__dirname + pathWorkflowYaml, "utf8")) as WorkflowYamlData; - - return workflowYamlData.workflow; -} diff --git a/apps/upload-dapp-chain/src/common/helpers/index.ts b/apps/upload-dapp-chain/src/common/helpers/index.ts deleted file mode 100644 index bde66d5cd6..0000000000 --- a/apps/upload-dapp-chain/src/common/helpers/index.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { getLatestReleaseByRepo } from "./get-latest-release-by-repo"; -import { getAccount } from "./get-account"; -import { getTgCommands } from "./get-tg-commands"; -import { checkInitProgram } from "./check-init-program"; -import { getOptAndMetaWasm } from "./get-opt-and-meta-wasm"; -import { sendTransaction } from "./send-transaction"; -import { updateWasmUrlsByLastReleasesRepo } from "./update-wasm-urls-by-last-releases-repo"; - -export { - updateWasmUrlsByLastReleasesRepo, - getOptAndMetaWasm, - getLatestReleaseByRepo, - getAccount, - getTgCommands, - checkInitProgram, - sendTransaction, -}; diff --git a/apps/upload-dapp-chain/src/common/helpers/send-transaction.ts b/apps/upload-dapp-chain/src/common/helpers/send-transaction.ts deleted file mode 100644 index b7d7da376a..0000000000 --- a/apps/upload-dapp-chain/src/common/helpers/send-transaction.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { KeyringPair } from "@polkadot/keyring/types"; - -export async function sendTransaction( - extrinsic: any, - account: KeyringPair, - methodName: string, -): Promise { - return new Promise((resolve, reject) => { - extrinsic.signAndSend(account, ({ events, status }) => { - events.forEach(({ event: { method, data } }) => { - if (method === methodName && status.isFinalized) { - resolve(data.toHuman()); - } else if (method === "ExtrinsicFailed") { - reject(data.toString()); - } - }); - }) - .catch((err) => { - console.log(err); - reject(err.message); - }); - }); -} diff --git a/apps/upload-dapp-chain/src/common/helpers/update-wasm-urls-by-last-releases-repo.ts b/apps/upload-dapp-chain/src/common/helpers/update-wasm-urls-by-last-releases-repo.ts deleted file mode 100644 index 8c2fdf2bf6..0000000000 --- a/apps/upload-dapp-chain/src/common/helpers/update-wasm-urls-by-last-releases-repo.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { load, dump } from "js-yaml"; -import { readFileSync, writeFile } from "fs"; - -import "dotenv/config"; - -import { getLatestReleaseByRepo } from "./get-latest-release-by-repo"; -import { WorkflowYamlData, Asset } from "../types"; - -function getShortDappName(fullName: string): string { - const chars = fullName.split(""); - let indexLastIndex; - - // eslint-disable-next-line no-plusplus - for (let i = 0; i < chars.length; i++) { - if (Number(chars[i]) || Number(chars[i]) === 0) { - indexLastIndex = i - 1; - break; - } - } - - return fullName.slice(0, indexLastIndex); -} - -function getOptAndMetaDownloadUrl(dapp: string, repoAssets: Asset[]): string[] { - const res = []; - - const dappName = dapp === "#nft" ? "nft" : dapp; - - for (const asset of repoAssets) { - if (getShortDappName(asset.name) === dappName && asset.name.includes("opt")) { - res[0] = asset.browser_download_url; - } - if (getShortDappName(asset.name) === dappName && asset.name.includes("meta")) { - res[1] = asset.browser_download_url; - } - } - - // [optDownloadUrl, metaDownloadUrl] - return res; -} - -export async function updateWasmUrlsByLastReleasesRepo(): Promise { - const pathWorkflowYaml = process.env.WORKFLOW_PATH as string; - // eslint-disable-next-line no-path-concat - const workflowYamlData = load(readFileSync(__dirname + pathWorkflowYaml, "utf8")) as WorkflowYamlData; - const programKeys = Object.keys(workflowYamlData.programs); - - for (const programKey of programKeys) { - try { - const programData = workflowYamlData.programs[programKey]; - const res = await getLatestReleaseByRepo(programData.repo); - - const [optDownloadUrl, metaDownloadUrl] = getOptAndMetaDownloadUrl(programData.dapp, res.data.assets); - - programData.metaDownloadUrl = metaDownloadUrl; - programData.optDownloadUrl = optDownloadUrl; - } catch (error) { - console.log("Update program data by release error", error); - } - } - - // eslint-disable-next-line no-path-concat - writeFile(__dirname + pathWorkflowYaml, dump(workflowYamlData), (error) => { - if (error) console.log("Write workflow yaml file error ", error); - }); -} diff --git a/apps/upload-dapp-chain/src/common/types/asset.ts b/apps/upload-dapp-chain/src/common/types/asset.ts deleted file mode 100644 index a4d54725c7..0000000000 --- a/apps/upload-dapp-chain/src/common/types/asset.ts +++ /dev/null @@ -1,15 +0,0 @@ -export interface Asset { - url: string, - browser_download_url: string, - id: number, - node_id: string, - name: string, - label: string, - state: string, - content_type: string, - size: number, - download_count: number, - created_at: string - updated_at: string - uploader: any -} diff --git a/apps/upload-dapp-chain/src/common/types/flow-command.ts b/apps/upload-dapp-chain/src/common/types/flow-command.ts deleted file mode 100644 index cefbc2160e..0000000000 --- a/apps/upload-dapp-chain/src/common/types/flow-command.ts +++ /dev/null @@ -1,7 +0,0 @@ -export interface FlowCommand { - command: string, - program: string, - acc?: string, - payload?: { [key: string]: string} | string - value: null | number -} diff --git a/apps/upload-dapp-chain/src/common/types/index.ts b/apps/upload-dapp-chain/src/common/types/index.ts deleted file mode 100644 index 88e208cd28..0000000000 --- a/apps/upload-dapp-chain/src/common/types/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { WorkflowYamlData } from "./workflow"; -import { Payload } from "./paylaod"; -import { Program } from "./program"; -import { FlowCommand } from "./flow-command"; -import { SingleFlowCommand } from "./single-flow-command"; -import { Asset } from "./asset"; -import { Repo } from "./repo"; - -export { WorkflowYamlData, Payload, Program, FlowCommand, SingleFlowCommand, Repo, Asset }; diff --git a/apps/upload-dapp-chain/src/common/types/paylaod.ts b/apps/upload-dapp-chain/src/common/types/paylaod.ts deleted file mode 100644 index 1e4e1564fb..0000000000 --- a/apps/upload-dapp-chain/src/common/types/paylaod.ts +++ /dev/null @@ -1 +0,0 @@ -export type Payload = {[key: string]: string} | string; diff --git a/apps/upload-dapp-chain/src/common/types/program.ts b/apps/upload-dapp-chain/src/common/types/program.ts deleted file mode 100644 index ee22464709..0000000000 --- a/apps/upload-dapp-chain/src/common/types/program.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Payload } from "./paylaod"; - -export interface Program { - dapp: string - repo: string - optDownloadUrl: string - metaDownloadUrl: string - acc: string - payload: Payload - value: null | number -} diff --git a/apps/upload-dapp-chain/src/common/types/repo.ts b/apps/upload-dapp-chain/src/common/types/repo.ts deleted file mode 100644 index 41c19968a4..0000000000 --- a/apps/upload-dapp-chain/src/common/types/repo.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { Asset } from "./asset"; - -export interface Repo { - url: string, - html_url: string, - assets_url: string, - upload_url: string, - tarball_url: string, - zipball_url: string, - discussion_url: string, - id: 1, - node_id: string, - tag_name: string, - target_commitish: string, - name: string, - body: string, - draft: false, - prerelease: false, - created_at: string, - published_at: string, - author: any, - assets: Asset[], -} diff --git a/apps/upload-dapp-chain/src/common/types/single-flow-command.ts b/apps/upload-dapp-chain/src/common/types/single-flow-command.ts deleted file mode 100644 index 7c43caa2af..0000000000 --- a/apps/upload-dapp-chain/src/common/types/single-flow-command.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { FlowCommand } from "./flow-command"; - -export interface SingleFlowCommand { - dappName: string, - actions: FlowCommand[], -} diff --git a/apps/upload-dapp-chain/src/common/types/workflow.ts b/apps/upload-dapp-chain/src/common/types/workflow.ts deleted file mode 100644 index 1a4dc3fe0f..0000000000 --- a/apps/upload-dapp-chain/src/common/types/workflow.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { FlowCommand } from "./flow-command"; -import { Program } from "./program"; - -interface WorkflowYamlData { - programs: { - [key: string]: Program - } - workflow: FlowCommand[] - workflowSingleDapp: { - [key: string]: { - actions: FlowCommand[], - } - } -} - -export { WorkflowYamlData }; diff --git a/apps/upload-dapp-chain/src/common/workflow/workflow.yaml b/apps/upload-dapp-chain/src/common/workflow/workflow.yaml deleted file mode 100644 index 57d836bdcc..0000000000 --- a/apps/upload-dapp-chain/src/common/workflow/workflow.yaml +++ /dev/null @@ -1,164 +0,0 @@ -programs: - '1': - dapp: nft_marketplace - repo: nft-marketplace - optDownloadUrl: >- - https://github.com/gear-dapps/nft-marketplace/releases/download/1.0.1/nft_marketplace-1.0.1.opt.wasm - metaDownloadUrl: >- - https://github.com/gear-dapps/nft-marketplace/releases/download/1.0.1/nft_marketplace-1.0.1.meta.wasm - acc: jordan - payload: - adminId: '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' - treasuryId: '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' - treasuryFee: '1' - value: null - '2': - dapp: nft - repo: non-fungible-token - optDownloadUrl: >- - https://github.com/gear-dapps/non-fungible-token/releases/download/build/nft-0.2.2.opt.wasm - metaDownloadUrl: >- - https://github.com/gear-dapps/non-fungible-token/releases/download/build/nft-0.2.2.meta.wasm - acc: jordan - payload: - name: test - symbol: test - baseUrl: test - royalties: null - value: null - '3': - dapp: '#nft' - repo: non-fungible-token - optDownloadUrl: >- - https://github.com/gear-dapps/non-fungible-token/releases/download/build/nft-0.2.2.opt.wasm - metaDownloadUrl: >- - https://github.com/gear-dapps/non-fungible-token/releases/download/build/nft-0.2.2.meta.wasm - acc: jordan - payload: - name: test - symbol: test - baseUrl: test - royalties: null - value: null - '4': - dapp: lottery - repo: lottery - optDownloadUrl: >- - https://github.com/gear-dapps/lottery/releases/download/0.1.0/lottery-0.1.0.opt.wasm - metaDownloadUrl: >- - https://github.com/gear-dapps/lottery/releases/download/0.1.0/lottery-0.1.0.meta.wasm - acc: jordan - payload: 0x - value: null - '5': - dapp: dutch_auction - repo: dutch-auction - optDownloadUrl: >- - https://github.com/gear-dapps/dutch-auction/releases/download/0.1.0/dutch_auction-0.1.0.opt.wasm - metaDownloadUrl: >- - https://github.com/gear-dapps/dutch-auction/releases/download/0.1.0/dutch_auction-0.1.0.meta.wasm - acc: jordan - payload: 0x - value: null - '6': - dapp: escrow - repo: escrow - optDownloadUrl: >- - https://github.com/gear-dapps/escrow/releases/download/0.1.0/escrow-0.1.0.opt.wasm - metaDownloadUrl: >- - https://github.com/gear-dapps/escrow/releases/download/0.1.0/escrow-0.1.0.meta.wasm - acc: jordan - value: null - '7': - dapp: supply_chain - repo: supply-chain - optDownloadUrl: >- - https://github.com/gear-dapps/supply-chain/releases/download/0.1.0/supply_chain-0.1.0.opt.wasm - metaDownloadUrl: >- - https://github.com/gear-dapps/supply-chain/releases/download/0.1.0/supply_chain-0.1.0.meta.wasm - acc: jordan - value: null - '8': - dapp: rock_paper_scissors - repo: rock-paper-scissors - optDownloadUrl: >- - https://github.com/gear-dapps/rock-paper-scissors/releases/download/0.1.0/rock_paper_scissors-0.1.0.opt.wasm - metaDownloadUrl: >- - https://github.com/gear-dapps/rock-paper-scissors/releases/download/0.1.0/rock_paper_scissors-0.1.0.meta.wasm - acc: jordan - value: null - '9': - dapp: staking - repo: staking - optDownloadUrl: >- - https://github.com/gear-dapps/staking/releases/download/0.1.0/staking-0.1.0.opt.wasm - metaDownloadUrl: >- - https://github.com/gear-dapps/staking/releases/download/0.1.0/staking-0.1.0.meta.wasm - acc: jordan - value: null -workflow: - - command: uploadProgram - program: 1 - - command: uploadProgram - program: 3 - - command: sendMessage - program: 1 - acc: alice - payload: - AddNftContract: 3 - value: null - - command: uploadProgram - program: 2 - - command: uploadProgram - program: 4 - - command: uploadProgram - program: 5 - - command: uploadCode - program: 6 - - command: uploadCode - program: 7 - - command: uploadCode - program: 8 - - command: uploadCode - program: 9 -workflowSingleDapp: - nft: - actions: - - command: uploadProgram - program: 2 - nft_marketplace: - actions: - - command: uploadProgram - program: 1 - - command: uploadProgram - program: 3 - - command: sendMessage - program: 1 - acc: alice - payload: - AddNftContract: 3 - value: null - lottery: - actions: - - command: uploadProgram - program: 4 - dutch_auction: - actions: - - command: uploadProgram - program: 5 - escrow: - actions: - - command: uploadCode - program: 6 - supply_chain: - actions: - - command: uploadCode - program: 7 - rock_paper_scissors: - actions: - - command: uploadCode - program: 8 - staking: - actions: - - command: uploadCode - program: 9 diff --git a/apps/upload-dapp-chain/src/configs/base.config.ts b/apps/upload-dapp-chain/src/configs/base.config.ts deleted file mode 100644 index 1a585f3ae6..0000000000 --- a/apps/upload-dapp-chain/src/configs/base.config.ts +++ /dev/null @@ -1,27 +0,0 @@ -export default () => ({ - app: { - PORT: process.env.PORT || "3000", - }, - github: { - GITHUB_ACCESS_TOKEN: process.env.GITHUB_ACCESS_TOKEN || "token", - GITHUB_OWNER_REPO: process.env.GITHUB_OWNER_REPO || "owner", - GITHUB_API_BASE_URL: process.env.GITHUB_API_BASE_URL || "baseUrl", - GITHUB_API_ACCEPT: process.env.GITHUB_API_ACCEPT || "accept", - }, - bot: { - TELEGRAM_BOT_TOKEN: process.env.TELEGRAM_BOT_TOKEN, - }, - workflow: { - WORKFLOW_PATH: process.env.WORKFLOW_PATH, - }, - gear: { - GEAR_WS_PROVIDER: process.env.GEAR_WS_PROVIDER, - }, - db: { - DB_HOST: process.env.DB_HOST || "127.0.0.1", - DB_PORT: process.env.DB_PORT || 5432, - DB_USER: process.env.DB_USER, - DB_PASSWORD: process.env.DB_PASSWORD, - DB_DATABASE: process.env.DB_DATABASE, - }, -}); diff --git a/apps/upload-dapp-chain/src/dapp-data/dapp-data.controller.ts b/apps/upload-dapp-chain/src/dapp-data/dapp-data.controller.ts deleted file mode 100644 index 6b7fea522f..0000000000 --- a/apps/upload-dapp-chain/src/dapp-data/dapp-data.controller.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { Controller, Get, Param, Query } from "@nestjs/common"; - -import { DappDataService } from "./dapp-data.service"; -import { DappData } from "./entities/dapp-data.entity"; -import { DappDataRepo } from "./dapp-data.repo"; - -@Controller("dapp_data") -export class DappDataController { - constructor( - private dappDataService: DappDataService, - private dappDataRepository: DappDataRepo, - ) {} - - @Get(":id") - public async getDappDataById(@Param("id") id: string): Promise { - return this.dappDataRepository.get(id); - } - - @Get() - public async getDappDataByNames(@Query("name") name: string | string[]): Promise { - return this.dappDataService.getDappDataByNames(name); - } -} diff --git a/apps/upload-dapp-chain/src/dapp-data/dapp-data.module.ts b/apps/upload-dapp-chain/src/dapp-data/dapp-data.module.ts deleted file mode 100644 index d25078e020..0000000000 --- a/apps/upload-dapp-chain/src/dapp-data/dapp-data.module.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Module } from "@nestjs/common"; -import { TypeOrmModule } from "@nestjs/typeorm"; - -import { DappDataController } from "./dapp-data.controller"; -import { DappDataService } from "./dapp-data.service"; -import { DappDataRepo } from "./dapp-data.repo"; -import { DappData } from "./entities/dapp-data.entity"; - -@Module({ - imports: [ - TypeOrmModule.forFeature([DappData]), - ], - controllers: [DappDataController], - providers: [DappDataService, DappDataRepo], - exports: [DappDataService], -}) -export class DappDataModule {} diff --git a/apps/upload-dapp-chain/src/dapp-data/dapp-data.repo.ts b/apps/upload-dapp-chain/src/dapp-data/dapp-data.repo.ts deleted file mode 100644 index cf5305151a..0000000000 --- a/apps/upload-dapp-chain/src/dapp-data/dapp-data.repo.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { Repository } from "typeorm"; -import { Injectable } from "@nestjs/common"; -import { InjectRepository } from "@nestjs/typeorm"; - -import { DappData } from "./entities/dapp-data.entity"; - -@Injectable() -export class DappDataRepo { - constructor( - @InjectRepository(DappData) - private dappDataRepository: Repository, - ) {} - - public async save(dappsData: DappData[]): Promise { - return this.dappDataRepository.save(dappsData); - } - - public async get(id: string): Promise { - return this.dappDataRepository.findOne({ - where: { - id, - }, - }); - } - - public async getByName(name: string): Promise { - return this.dappDataRepository.findOne({ - where: { - name, - }, - }); - } - - public async getByNames(names: string[]): Promise { - return this.dappDataRepository.find({ - where: names.map(name => ({ name })), - }); - } -} diff --git a/apps/upload-dapp-chain/src/dapp-data/dapp-data.service.ts b/apps/upload-dapp-chain/src/dapp-data/dapp-data.service.ts deleted file mode 100644 index cd661f8238..0000000000 --- a/apps/upload-dapp-chain/src/dapp-data/dapp-data.service.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { Injectable } from "@nestjs/common"; - -import { DappData } from "./entities/dapp-data.entity"; -import { DappDataRepo } from "./dapp-data.repo"; -import { UploadProgramResult } from "../program/types"; - -@Injectable() -export class DappDataService { - constructor(private dappDataRepository: DappDataRepo) {} - - public async getDappDataByNames(names: string | string[]): Promise { - if (Array.isArray(names)) { - return this.dappDataRepository.getByNames(names); - } - return this.dappDataRepository.getByName(names); - } - - public async createDappsData(uploadProgramsResult: UploadProgramResult[]): Promise { - const dappsData = uploadProgramsResult.map((uploadProgram) => { - const { dapp, metaWasmBase64, optWasmBase64, programId, repo, codeHash } = uploadProgram; - - return { id: programId, - name: dapp, - metaWasmBase64, - optWasmBase64, - codeHash, - repo, - updatedAt: new Date() } as DappData; - }); - - return this.dappDataRepository.save(dappsData); - } -} diff --git a/apps/upload-dapp-chain/src/dapp-data/entities/dapp-data.entity.ts b/apps/upload-dapp-chain/src/dapp-data/entities/dapp-data.entity.ts deleted file mode 100644 index 10e9756396..0000000000 --- a/apps/upload-dapp-chain/src/dapp-data/entities/dapp-data.entity.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Column, Entity, PrimaryColumn } from "typeorm"; - -@Entity() -export class DappData { - @PrimaryColumn() - name: string; // nft | nft_marketplace - - @Column() - id: string; - - @Column() - repo: string; - - @Column({ nullable: true }) - codeHash: string; - - @Column({ nullable: true }) - metaWasmBase64: string; - - @Column({ nullable: true }) - optWasmBase64: string; - - @Column({ nullable: true }) - updatedAt: Date; -} diff --git a/apps/upload-dapp-chain/src/gear/gear-service.ts b/apps/upload-dapp-chain/src/gear/gear-service.ts deleted file mode 100644 index 34c58bfeef..0000000000 --- a/apps/upload-dapp-chain/src/gear/gear-service.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { GearApi } from "@gear-js/api"; - -let gearApi: GearApi; - -export const gearService = { - async connect(): Promise { - gearApi = await GearApi.create({ - providerAddress: process.env.GEAR_WS_PROVIDER, - throwOnConnect: true, - }); - console.log(`⚙️ Connected to ${gearApi.runtimeChain} with genesis ${gearApi.genesisHash.toHex()}`); - }, - getApi(): GearApi { - return gearApi; - }, -}; diff --git a/apps/upload-dapp-chain/src/main.ts b/apps/upload-dapp-chain/src/main.ts deleted file mode 100644 index cac4bea277..0000000000 --- a/apps/upload-dapp-chain/src/main.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { NestFactory } from "@nestjs/core"; -import { ConfigService } from "@nestjs/config"; - -import { AppModule } from "./app.module"; -import { gearService } from "./gear/gear-service"; - -async function bootstrap() { - await gearService.connect(); - const app = await NestFactory.create(AppModule); - const configService = app.get(ConfigService); - await app.listen(configService.get("app.PORT")); -} - -bootstrap(); diff --git a/apps/upload-dapp-chain/src/message/message.module.ts b/apps/upload-dapp-chain/src/message/message.module.ts deleted file mode 100644 index aeb78e54e1..0000000000 --- a/apps/upload-dapp-chain/src/message/message.module.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Module } from "@nestjs/common"; -import { MessageService } from "./message.service"; - -@Module({ - controllers: [], - providers: [MessageService], - exports: [MessageService], -}) -export class MessageModule {} diff --git a/apps/upload-dapp-chain/src/message/message.service.ts b/apps/upload-dapp-chain/src/message/message.service.ts deleted file mode 100644 index 7ddcebb4fd..0000000000 --- a/apps/upload-dapp-chain/src/message/message.service.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { Injectable, Logger } from "@nestjs/common"; -import { decodeAddress, GearApi, getWasmMetadata, Hex, IMessageSendOptions } from "@gear-js/api"; - -import { gearService } from "../gear/gear-service"; -import { getAccount, sendTransaction } from "../common/helpers"; -import { SendMessageInput } from "./types/send-message.input"; -import { UploadProgramResult } from "../program/types"; - -@Injectable() -export class MessageService { - private logger: Logger = new Logger(MessageService.name); - private gearApi: GearApi = gearService.getApi(); - - constructor() {} - - public async send(sendMessageInput: SendMessageInput, uploadPrograms: UploadProgramResult[]): Promise { - const { payload, acc, program } = sendMessageInput; - - const account = await getAccount(acc); - const sourceId = decodeAddress(account.address); - - const uploadedProgram = uploadPrograms.find(uploadProgram => uploadProgram.dapp === program.dapp); - - try { - const buff = Buffer.from(uploadedProgram.metaWasmBase64, "base64"); - const meta = await getWasmMetadata(buff); - const value = sendMessageInput.value ? sendMessageInput.value : undefined; - const increaseCalculatedGasToTwentyPercent = 1.2; - - const gas = await this.gearApi.program.calculateGas.handle( - sourceId, - uploadedProgram.programId as Hex, - payload, - value, - true, - meta, - ); - - const message: IMessageSendOptions = { - destination: uploadedProgram.programId as Hex, - payload, - gasLimit: gas.min_limit.muln(increaseCalculatedGasToTwentyPercent), - value, - }; - - const extrinsic = this.gearApi.message.send(message, meta); - - await sendTransaction(extrinsic, account, "MessageEnqueued"); - this.logger.log(`Message successfully sent to ${uploadedProgram.programId}`); - } catch (error) { - this.logger.error(`Send message error: ${sendMessageInput.program}`); - console.error(error); - } - } -} diff --git a/apps/upload-dapp-chain/src/message/types/send-message.input.ts b/apps/upload-dapp-chain/src/message/types/send-message.input.ts deleted file mode 100644 index 3725e2f5a4..0000000000 --- a/apps/upload-dapp-chain/src/message/types/send-message.input.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { Program } from "../../common/types"; - -export interface SendMessageInput { - program: Program - acc: string - payload: { [key: string]: string } | string | undefined - value: number | null -} diff --git a/apps/upload-dapp-chain/src/program/program.module.ts b/apps/upload-dapp-chain/src/program/program.module.ts deleted file mode 100644 index e72ae11c98..0000000000 --- a/apps/upload-dapp-chain/src/program/program.module.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Module } from "@nestjs/common"; -import { ProgramService } from "./program.service"; - -@Module({ - controllers: [], - providers: [ProgramService], - exports: [ProgramService], -}) -export class ProgramModule {} diff --git a/apps/upload-dapp-chain/src/program/program.service.ts b/apps/upload-dapp-chain/src/program/program.service.ts deleted file mode 100644 index b98f1d702d..0000000000 --- a/apps/upload-dapp-chain/src/program/program.service.ts +++ /dev/null @@ -1,73 +0,0 @@ -import { Injectable, Logger } from "@nestjs/common"; -import { decodeAddress, GearApi, getWasmMetadata } from "@gear-js/api"; - -import { gearService } from "../gear/gear-service"; -import { checkInitProgram, getAccount, getOptAndMetaWasm, sendTransaction } from "../common/helpers"; -import { UploadProgramInput, UploadProgramResult } from "./types"; - -@Injectable() -export class ProgramService { - private logger: Logger = new Logger(ProgramService.name); - private gearApi: GearApi = gearService.getApi(); - - constructor() {} - - public async upload(uploadProgramInput: UploadProgramInput): Promise { - const { metaDownloadUrl, optDownloadUrl, acc, payload } = uploadProgramInput; - - const account = await getAccount(acc); - const sourceId = decodeAddress(account.address); - - const [optWasmData, metaWasmData] = await getOptAndMetaWasm( - optDownloadUrl, - metaDownloadUrl, - ); - - const [optWasmBuff, metaWasmBuff] = await Promise.all([ - optWasmData.buffer(), - metaWasmData.buffer(), - ]); - - try { - const meta = await getWasmMetadata(metaWasmBuff); - const value = uploadProgramInput.value ? uploadProgramInput.value : undefined; - const increaseCalculatedGasToTwentyPercent = 1.2; - - const gas = await this.gearApi.program.calculateGas.initUpload( - sourceId, - optWasmBuff, - payload, - value, - true, - meta, - ); - - const program = { - code: optWasmBuff, - gasLimit: gas.min_limit.muln(increaseCalculatedGasToTwentyPercent), - value, - initPayload: payload, - }; - - const data = this.gearApi.program.upload(program, meta); - const status = checkInitProgram(this.gearApi, data.programId) - .catch(error => console.error(`Check init program error: ${uploadProgramInput.dapp}`, error)); - - await sendTransaction(data.extrinsic, account, "MessageEnqueued"); - - await status; - - return { - ...uploadProgramInput, - programId: data.programId, - metaWasmBase64: metaWasmBuff.toString("base64"), - optWasmBase64: optWasmBuff.toString("base64"), - }; - } catch (error) { - this.logger.error(`Upload program error: ${uploadProgramInput.dapp}`); - console.log("opt_wasm", optWasmBuff); - console.log("meta_wasm", metaWasmBuff); - console.log(error); - } - } -} diff --git a/apps/upload-dapp-chain/src/program/types/index.ts b/apps/upload-dapp-chain/src/program/types/index.ts deleted file mode 100644 index efed040d9a..0000000000 --- a/apps/upload-dapp-chain/src/program/types/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { UploadProgramInput } from "./upload-program.input"; -import { UploadProgramResult } from "./upload-program-result"; - -export { UploadProgramInput, UploadProgramResult }; diff --git a/apps/upload-dapp-chain/src/program/types/upload-program-result.ts b/apps/upload-dapp-chain/src/program/types/upload-program-result.ts deleted file mode 100644 index 6a3b0d6939..0000000000 --- a/apps/upload-dapp-chain/src/program/types/upload-program-result.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { Program } from "../../common/types"; - -export interface UploadProgramResult extends Program { - codeHash?: string - programId: string - metaWasmBase64: string - optWasmBase64: string -} diff --git a/apps/upload-dapp-chain/src/program/types/upload-program.input.ts b/apps/upload-dapp-chain/src/program/types/upload-program.input.ts deleted file mode 100644 index 7015b09323..0000000000 --- a/apps/upload-dapp-chain/src/program/types/upload-program.input.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { Program } from "../../common/types"; - -export interface UploadProgramInput extends Program{} diff --git a/apps/upload-dapp-chain/src/tasks/tasks.module.ts b/apps/upload-dapp-chain/src/tasks/tasks.module.ts deleted file mode 100644 index c028eff5d1..0000000000 --- a/apps/upload-dapp-chain/src/tasks/tasks.module.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Module } from "@nestjs/common"; - -import { TasksService } from "./tasks.service"; - -@Module({ - controllers: [], - providers: [TasksService], - exports: [], -}) -export class TasksModule {} diff --git a/apps/upload-dapp-chain/src/tasks/tasks.service.ts b/apps/upload-dapp-chain/src/tasks/tasks.service.ts deleted file mode 100644 index bcdbd0b846..0000000000 --- a/apps/upload-dapp-chain/src/tasks/tasks.service.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Injectable, Logger } from "@nestjs/common"; -import { Cron, SchedulerRegistry } from "@nestjs/schedule"; - -import { updateWasmUrlsByLastReleasesRepo } from "../common/helpers"; - -@Injectable() -export class TasksService { - private readonly logger = new Logger(TasksService.name); - - constructor(private schedulerRegistry: SchedulerRegistry) {} - - // every 24 hours - @Cron("0 */24 * * *", { - name: "updateWasmUrlsCron", - }) - async updateWasmUrlsCron() { - try { - await updateWasmUrlsByLastReleasesRepo(); - } catch (error) { - this.logger.error("Update wasm urls in yaml file error"); - console.log(error); - const job = this.schedulerRegistry.getCronJob("updateWasmUrlsCron"); - - job.stop(); - console.log(job.lastDate()); - } - } -} diff --git a/apps/upload-dapp-chain/src/user/entities/user.entity.ts b/apps/upload-dapp-chain/src/user/entities/user.entity.ts deleted file mode 100644 index bf6b032176..0000000000 --- a/apps/upload-dapp-chain/src/user/entities/user.entity.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Column, Entity, PrimaryColumn } from "typeorm"; - -import { Role } from "../../common/enums"; - -@Entity("users") -export class User { - @PrimaryColumn() - id: string; - - @Column({ enum: Role }) - role: Role; -} diff --git a/apps/upload-dapp-chain/src/user/types/index.ts b/apps/upload-dapp-chain/src/user/types/index.ts deleted file mode 100644 index 95bffe370b..0000000000 --- a/apps/upload-dapp-chain/src/user/types/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { Role } from "../../common/enums"; - -interface CreateUserInput { - id: string; - role: Role -} - -export { CreateUserInput }; diff --git a/apps/upload-dapp-chain/src/user/user.module.ts b/apps/upload-dapp-chain/src/user/user.module.ts deleted file mode 100644 index 3991fa16c5..0000000000 --- a/apps/upload-dapp-chain/src/user/user.module.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { Module } from "@nestjs/common"; -import { TypeOrmModule } from "@nestjs/typeorm"; - -import { UserService } from "./user.service"; -import { User } from "./entities/user.entity"; -import { UserRepo } from "./user.repo"; - -@Module({ - imports: [TypeOrmModule.forFeature([User])], - controllers: [], - providers: [UserService, UserRepo], - exports: [UserService, UserRepo], -}) -export class UserModule {} diff --git a/apps/upload-dapp-chain/src/user/user.repo.ts b/apps/upload-dapp-chain/src/user/user.repo.ts deleted file mode 100644 index 511c3a839e..0000000000 --- a/apps/upload-dapp-chain/src/user/user.repo.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Repository } from "typeorm"; -import { Injectable } from "@nestjs/common"; -import { InjectRepository } from "@nestjs/typeorm"; - -import { User } from "./entities/user.entity"; - -@Injectable() -export class UserRepo { - constructor( - @InjectRepository(User) - private userRepository: Repository, - ) {} - - public async save(user: User): Promise { - return this.userRepository.save(user); - } - - public async get(id: string): Promise { - return this.userRepository.findOne({ - where: { - id, - }, - }); - } -} diff --git a/apps/upload-dapp-chain/src/user/user.service.ts b/apps/upload-dapp-chain/src/user/user.service.ts deleted file mode 100644 index dfb550d527..0000000000 --- a/apps/upload-dapp-chain/src/user/user.service.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Injectable } from "@nestjs/common"; - -import { UserRepo } from "./user.repo"; -import { Role } from "../common/enums"; -import { CreateUserInput } from "./types"; -import { User } from "./entities/user.entity"; - -@Injectable() -export class UserService { - constructor(private userRepository: UserRepo) {} - - async creatUser(createUserInput: CreateUserInput): Promise { - const { id, role } = createUserInput; - return this.userRepository.save({ id, role }); - } - - async validate(userId: string): Promise { - const user = await this.userRepository.get(userId); - - return !!user; - } - - async isAdmin(userId: string): Promise { - const user = await this.userRepository.get(userId); - - return user.role === Role.ADMIN; - } -} diff --git a/apps/upload-dapp-chain/tsconfig.build.json b/apps/upload-dapp-chain/tsconfig.build.json deleted file mode 100644 index 64f86c6bd2..0000000000 --- a/apps/upload-dapp-chain/tsconfig.build.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "extends": "./tsconfig.json", - "exclude": ["node_modules", "test", "dist", "**/*spec.ts"] -} diff --git a/apps/upload-dapp-chain/tsconfig.json b/apps/upload-dapp-chain/tsconfig.json deleted file mode 100644 index adb614cab7..0000000000 --- a/apps/upload-dapp-chain/tsconfig.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "compilerOptions": { - "module": "commonjs", - "declaration": true, - "removeComments": true, - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "allowSyntheticDefaultImports": true, - "target": "es2017", - "sourceMap": true, - "outDir": "./dist", - "baseUrl": "./", - "incremental": true, - "skipLibCheck": true, - "strictNullChecks": false, - "noImplicitAny": false, - "strictBindCallApply": false, - "forceConsistentCasingInFileNames": false, - "noFallthroughCasesInSwitch": false - } -} diff --git a/renovate.json b/renovate.json index 13e40d905c..c394755641 100644 --- a/renovate.json +++ b/renovate.json @@ -24,13 +24,13 @@ { "matchPaths": ["idea/api-gateway/**", "idea/common/**", "idea/indexer/**", "idea/test-balance/**"], "groupName": "idea-backend", - "reviewers": ["osipov-mit", "Almazatun"], + "reviewers": ["osipov-mit"], "addLabels": ["backend"] }, { "matchPaths": ["idea/tests/**"], "groupName": "idea-tests", - "reviewers": ["osipov-mit", "Almazatun"], + "reviewers": ["osipov-mit"], "addLabels": ["tests"] }, { @@ -40,7 +40,7 @@ "addLabels": ["tools"] }, { - "matchPaths": ["utils/gear-ui/**", "utils/gear-hooks/**", "utils/create-gear-app/**"], + "matchPaths": ["utils/gear-ui/**", "utils/gear-hooks/**"], "groupName": "utils", "reviewers": ["nikitayutanov"], "addLabels": ["utils"]