follow assumptions

This commit is contained in:
einhorn_b 2023-09-15 13:47:36 +02:00
parent e1eadbfbba
commit 678b4c0a03
13 changed files with 19 additions and 76 deletions

View File

@ -6,7 +6,7 @@ module.exports = {
collectCoverageFrom: ['src/**/*.ts', '!**/node_modules/**', '!src/seeds/**', '!build/**'],
coverageThreshold: {
global: {
lines: 73,
lines: 72,
},
},
setupFiles: ['<rootDir>/test/testSetup.ts'],

View File

@ -1,5 +1,5 @@
import { CommunityDraft } from '@/graphql/input/CommunityDraft'
import { uuid4ToBuffer } from '@/utils'
import { uuid4ToBuffer } from '@/utils/typeConverter'
import { Community } from '@entity/Community'
import { getDataSource } from '@typeorm/DataSource'
import { crypto_generichash as cryptoHash } from 'sodium-native'

View File

@ -3,9 +3,8 @@
import { Decimal } from 'decimal.js-light'
import { TransactionType } from '../enum/TransactionType'
import { InputType, Field } from 'type-graphql'
import { IsEnum } from 'class-validator'
import { IsEnum, IsInt, Min } from 'class-validator'
import { IsPositiveDecimal } from '../validator/Decimal'
import { isValidDateString } from '../validator/DateString'
@InputType()
export class TransactionInput {
@ -18,7 +17,8 @@ export class TransactionInput {
amount: Decimal
@Field(() => Number)
@isValidDateString()
@IsInt()
@Min(978346800)
createdAt: number
// @protoField.d(4, 'string')

View File

@ -34,6 +34,7 @@ export class CommunityResolver {
): Promise<TransactionResult> {
try {
const topic = iotaTopicFromCommunityUUID(communityDraft.uuid)
// check if community was already written to db
if (await isExist(topic)) {
return new TransactionResult(
@ -47,25 +48,15 @@ export class CommunityResolver {
if (!communityDraft.foreign) {
// TODO: CommunityRoot Transaction for blockchain
}
const queryRunner = getDataSource().createQueryRunner()
await queryRunner.connect()
await queryRunner.startTransaction()
try {
await queryRunner.manager.save(community)
await queryRunner.commitTransaction()
await getDataSource().manager.save(community)
result = new TransactionResult()
} catch (err) {
logger.error('error saving new community into db: %s', err)
result = new TransactionResult(
new TransactionError(TransactionErrorType.DB_ERROR, 'error saving community into db'),
)
await queryRunner.rollbackTransaction()
} finally {
await queryRunner.release()
}
return result
} catch (error) {
if (error instanceof TransactionError) {

View File

@ -10,7 +10,7 @@ export function isValidDateString(validationOptions?: ValidationOptions) {
options: validationOptions,
validator: {
validate(value: string): boolean {
return new Date(value).toString() !== 'Invalid Date'
return !isNaN(Date.parse(value))
},
defaultMessage(): string {
return `${propertyName} must be a valid date string`

View File

@ -1,8 +0,0 @@
import { hardenDerivationIndex, HARDENED_KEY_BITMASK } from './utils'
describe('utils', () => {
it('test bitmask for hardened keys', () => {
const derivationIndex = hardenDerivationIndex(1)
expect(derivationIndex).toBeGreaterThan(HARDENED_KEY_BITMASK)
})
})

View File

@ -1,12 +1,4 @@
import {
Entity,
PrimaryGeneratedColumn,
Column,
CreateDateColumn,
ManyToOne,
JoinColumn,
OneToMany,
} from 'typeorm'
import { Entity, PrimaryGeneratedColumn, Column, ManyToOne, JoinColumn, OneToMany } from 'typeorm'
import { User } from '../User'
import { TransactionRecipe } from '../TransactionRecipe'
import { ConfirmedTransaction } from '../ConfirmedTransaction'
@ -36,7 +28,7 @@ export class Account {
@Column({ type: 'tinyint', unsigned: true })
type: number
@CreateDateColumn({ name: 'created_at', type: 'datetime', default: () => 'CURRENT_TIMESTAMP(3)' })
@Column({ name: 'created_at', type: 'datetime', default: () => 'CURRENT_TIMESTAMP(3)' })
createdAt: Date
@Column({ name: 'confirmed_at', type: 'datetime', nullable: true })

View File

@ -1,12 +1,4 @@
import {
Entity,
PrimaryGeneratedColumn,
Column,
CreateDateColumn,
JoinColumn,
OneToOne,
OneToMany,
} from 'typeorm'
import { Entity, PrimaryGeneratedColumn, Column, JoinColumn, OneToOne, OneToMany } from 'typeorm'
import { Account } from '../Account'
import { TransactionRecipe } from '../TransactionRecipe'
import { AccountCommunity } from '../AccountCommunity'
@ -45,7 +37,7 @@ export class Community {
@JoinColumn({ name: 'auf_account_id' })
aufAccount?: Account
@CreateDateColumn({ name: 'created_at', type: 'datetime', default: () => 'CURRENT_TIMESTAMP(3)' })
@Column({ name: 'created_at', type: 'datetime', default: () => 'CURRENT_TIMESTAMP(3)' })
createdAt: Date
@Column({ name: 'confirmed_at', type: 'datetime', nullable: true })

View File

@ -1,12 +1,4 @@
import {
Entity,
PrimaryGeneratedColumn,
Column,
CreateDateColumn,
ManyToOne,
OneToOne,
JoinColumn,
} from 'typeorm'
import { Entity, PrimaryGeneratedColumn, Column, ManyToOne, OneToOne, JoinColumn } from 'typeorm'
import { Decimal } from 'decimal.js-light'
import { DecimalTransformer } from '../../src/typeorm/DecimalTransformer'
@ -63,7 +55,7 @@ export class TransactionRecipe {
@Column({ type: 'tinyint' })
type: number
@CreateDateColumn({ name: 'created_at', type: 'datetime' })
@Column({ name: 'created_at', type: 'datetime' })
createdAt: Date
@Column({ name: 'body_bytes', type: 'blob' })

View File

@ -1,12 +1,4 @@
import {
BaseEntity,
Entity,
PrimaryGeneratedColumn,
Column,
OneToMany,
JoinColumn,
CreateDateColumn,
} from 'typeorm'
import { BaseEntity, Entity, PrimaryGeneratedColumn, Column, OneToMany, JoinColumn } from 'typeorm'
import { Account } from '../Account'
@ -26,7 +18,7 @@ export class User extends BaseEntity {
@Column({ name: 'derive1_pubkey', type: 'binary', length: 32, unique: true })
derive1Pubkey: Buffer
@CreateDateColumn({
@Column({
name: 'created_at',
type: 'datetime',
default: () => 'CURRENT_TIMESTAMP(3)',

View File

@ -1,12 +1,4 @@
import {
Entity,
PrimaryGeneratedColumn,
Column,
CreateDateColumn,
JoinColumn,
OneToOne,
OneToMany,
} from 'typeorm'
import { Entity, PrimaryGeneratedColumn, Column, JoinColumn, OneToOne, OneToMany } from 'typeorm'
import { Account } from '../Account'
import { TransactionRecipe } from '../TransactionRecipe'
import { AccountCommunity } from '../AccountCommunity'
@ -45,7 +37,7 @@ export class Community {
@JoinColumn({ name: 'auf_account_id' })
aufAccount?: Account
@CreateDateColumn({ name: 'created_at', type: 'datetime', default: () => 'CURRENT_TIMESTAMP(3)' })
@Column({ name: 'created_at', type: 'datetime', default: () => 'CURRENT_TIMESTAMP(3)' })
createdAt: Date
@Column({ name: 'confirmed_at', type: 'datetime', nullable: true })

View File

@ -125,6 +125,6 @@ export async function downgrade(queryFn: (query: string, values?: any[]) => Prom
await queryFn(`DROP TABLE IF EXISTS \`accounts_communities\`;`)
await queryFn(`DROP TABLE IF EXISTS \`transaction_recipes\`;`)
await queryFn(`DROP TABLE IF EXISTS \`confirmed_transactions\`;`)
await queryFn(`DROP TABLE IF EXISTS \`community\`;`)
await queryFn(`DROP TABLE IF EXISTS \`communities\`;`)
await queryFn(`DROP TABLE IF EXISTS \`invalid_transactions\`;`)
}