From 3392ca025a7a2125f56d75bec57140131c15f90a Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Thu, 2 Dec 2021 10:06:36 +0100 Subject: [PATCH] seed transaction signature for the three creations --- database/entity/index.ts | 2 ++ .../factories/transaction-signature.factory.ts | 18 ++++++++++++++++++ database/src/interface/TransactionContext.ts | 6 ++++++ database/src/interface/UserInterface.ts | 2 ++ database/src/seeds/helpers/user-helpers.ts | 16 ++++++++++++++++ database/src/seeds/users/bibi-bloxberg.ts | 8 ++++++++ database/src/seeds/users/bob-baumeister.ts | 8 ++++++++ .../src/seeds/users/raeuber-hotzenplotz.ts | 8 ++++++++ 8 files changed, 68 insertions(+) create mode 100644 database/src/factories/transaction-signature.factory.ts diff --git a/database/entity/index.ts b/database/entity/index.ts index 901b4ab0d..875746c82 100644 --- a/database/entity/index.ts +++ b/database/entity/index.ts @@ -8,6 +8,7 @@ import { Migration } from './Migration' import { ServerUser } from './ServerUser' import { Transaction } from './Transaction' import { TransactionCreation } from './TransactionCreation' +import { TransactionSignature } from './TransactionSignature' import { TransactionSendCoin } from './TransactionSendCoin' import { User } from './User' import { UserSetting } from './UserSetting' @@ -24,6 +25,7 @@ export const entities = [ ServerUser, Transaction, TransactionCreation, + TransactionSignature, TransactionSendCoin, User, UserSetting, diff --git a/database/src/factories/transaction-signature.factory.ts b/database/src/factories/transaction-signature.factory.ts new file mode 100644 index 000000000..b79e15052 --- /dev/null +++ b/database/src/factories/transaction-signature.factory.ts @@ -0,0 +1,18 @@ +import Faker from 'faker' +import { define } from 'typeorm-seeding' +import { TransactionSignature } from '../../entity/TransactionSignature' +import { TransactionSignatureContext } from '../interface/TransactionContext' +import { randomBytes } from 'crypto' + +define(TransactionSignature, (faker: typeof Faker, context?: TransactionSignatureContext) => { + if (!context || !context.transaction) { + throw new Error('TransactionSignature: No transaction present!') + } + + const transactionSignature = new TransactionSignature() + transactionSignature.signature = context.signature ? context.signature : randomBytes(64) + transactionSignature.pubkey = context.pubkey ? context.pubkey : randomBytes(32) + transactionSignature.transaction = context.transaction + + return transactionSignature +}) diff --git a/database/src/interface/TransactionContext.ts b/database/src/interface/TransactionContext.ts index e1122bc3e..481959c5f 100644 --- a/database/src/interface/TransactionContext.ts +++ b/database/src/interface/TransactionContext.ts @@ -44,3 +44,9 @@ export interface UserTransactionContext { balance?: number balanceDate?: Date } + +export interface TransactionSignatureContext { + signature?: Buffer + pubkey?: Buffer + transaction?: Transaction +} diff --git a/database/src/interface/UserInterface.ts b/database/src/interface/UserInterface.ts index ae8b4ecdb..70be6cff4 100644 --- a/database/src/interface/UserInterface.ts +++ b/database/src/interface/UserInterface.ts @@ -35,4 +35,6 @@ export interface UserInterface { targetDate?: Date amount?: number creationTxHash?: Buffer + signature?: Buffer + signaturePubkey?: Buffer } diff --git a/database/src/seeds/helpers/user-helpers.ts b/database/src/seeds/helpers/user-helpers.ts index 54e8c76d1..bd46ecdee 100644 --- a/database/src/seeds/helpers/user-helpers.ts +++ b/database/src/seeds/helpers/user-helpers.ts @@ -10,6 +10,7 @@ import { TransactionContext, TransactionCreationContext, UserTransactionContext, + TransactionSignatureContext, } from '../../interface/TransactionContext' import { UserInterface } from '../../interface/UserInterface' import { User } from '../../../entity/User' @@ -19,6 +20,7 @@ import { ServerUser } from '../../../entity/ServerUser' import { LoginUserRoles } from '../../../entity/LoginUserRoles' import { Balance } from '../../../entity/Balance' import { Transaction } from '../../../entity/Transaction' +import { TransactionSignature } from '../../../entity/TransactionSignature' import { UserTransaction } from '../../../entity/UserTransaction' import { TransactionCreation } from '../../../entity/TransactionCreation' import { Factory } from 'typeorm-seeding' @@ -48,6 +50,9 @@ export const userSeeder = async (factory: Factory, userData: UserInterface): Pro await factory(UserTransaction)( createUserTransactionContext(userData, user, transaction), ).create() + await factory(TransactionSignature)( + createTransactionSignatureContext(userData, transaction), + ).create() } } @@ -162,3 +167,14 @@ const createUserTransactionContext = ( balanceDate: context.recordDate, } } + +const createTransactionSignatureContext = ( + context: UserInterface, + transaction: Transaction, +): TransactionSignatureContext => { + return { + signature: context.signature, + pubkey: context.signaturePubkey, + transaction, + } +} diff --git a/database/src/seeds/users/bibi-bloxberg.ts b/database/src/seeds/users/bibi-bloxberg.ts index 9d5421a9f..30ad4eb4c 100644 --- a/database/src/seeds/users/bibi-bloxberg.ts +++ b/database/src/seeds/users/bibi-bloxberg.ts @@ -31,4 +31,12 @@ export const bibiBloxberg = { '51103dc0fc2ca5d5d75a9557a1e899304e5406cfdb1328d8df6414d527b0118100000000000000000000000000000000', 'hex', ), + signature: Buffer.from( + '2a2c71f3e41adc060bbc3086577e2d57d24eeeb0a7727339c3f85aad813808f601d7e1df56a26e0929d2e67fc054fca429ccfa283ed2782185c7f009fe008f0c', + 'hex', + ), + signaturePubkey: Buffer.from( + '7281e0ee3258b08801f3ec73e431b4519677f65c03b0382c63a913b5784ee770', + 'hex', + ), } diff --git a/database/src/seeds/users/bob-baumeister.ts b/database/src/seeds/users/bob-baumeister.ts index c075361a4..a6933d7c1 100644 --- a/database/src/seeds/users/bob-baumeister.ts +++ b/database/src/seeds/users/bob-baumeister.ts @@ -31,4 +31,12 @@ export const bobBaumeister = { 'be095dc87acb94987e71168fee8ecbf50ecb43a180b1006e75d573b35725c69c00000000000000000000000000000000', 'hex', ), + signature: Buffer.from( + '1fbd6b9a3d359923b2501557f3bc79fa7e428127c8090fb16bc490b4d87870ab142b3817ddd902d22f0b26472a483233784a0e460c0622661752a13978903905', + 'hex', + ), + signaturePubkey: Buffer.from( + '7281e0ee3258b08801f3ec73e431b4519677f65c03b0382c63a913b5784ee770', + 'hex', + ), } diff --git a/database/src/seeds/users/raeuber-hotzenplotz.ts b/database/src/seeds/users/raeuber-hotzenplotz.ts index 6380a8beb..eb2118af5 100644 --- a/database/src/seeds/users/raeuber-hotzenplotz.ts +++ b/database/src/seeds/users/raeuber-hotzenplotz.ts @@ -31,4 +31,12 @@ export const raeuberHotzenplotz = { '23ba44fd84deb59b9f32969ad0cb18bfa4588be1bdb99c396888506474c16c1900000000000000000000000000000000', 'hex', ), + signature: Buffer.from( + '756d3da061687c575d1dbc5073908f646aa5f498b0927b217c83b48af471450e571dfe8421fb8e1f1ebd1104526b7e7c6fa78684e2da59c8f7f5a8dc3d9e5b0b', + 'hex', + ), + signaturePubkey: Buffer.from( + '7281e0ee3258b08801f3ec73e431b4519677f65c03b0382c63a913b5784ee770', + 'hex', + ), }