diff --git a/backend/src/config/index.ts b/backend/src/config/index.ts index 6407a65f6..99859b252 100644 --- a/backend/src/config/index.ts +++ b/backend/src/config/index.ts @@ -4,7 +4,7 @@ import dotenv from 'dotenv' dotenv.config() const constants = { - DB_VERSION: '0015-admin_pending_creations', + DB_VERSION: '0016-transaction_signatures', } const server = { diff --git a/backend/src/graphql/resolver/AdminResolver.ts b/backend/src/graphql/resolver/AdminResolver.ts index e9c5c6c69..4204c6c2f 100644 --- a/backend/src/graphql/resolver/AdminResolver.ts +++ b/backend/src/graphql/resolver/AdminResolver.ts @@ -195,7 +195,6 @@ export class AdminResolver { transaction.transactionTypeId = 1 transaction.memo = pendingCreation.memo transaction.received = receivedCallDate - transaction.blockchainTypeId = 1 transaction = await transactionRepository.save(transaction) if (!transaction) throw new Error('Could not create transaction') diff --git a/backend/src/graphql/resolver/TransactionResolver.ts b/backend/src/graphql/resolver/TransactionResolver.ts index 24879ffa1..61f590123 100644 --- a/backend/src/graphql/resolver/TransactionResolver.ts +++ b/backend/src/graphql/resolver/TransactionResolver.ts @@ -36,172 +36,6 @@ import { hasUserAmount, isHexPublicKey } from '../../util/validate' import { LoginUserRepository } from '../../typeorm/repository/LoginUser' import { RIGHTS } from '../../auth/RIGHTS' -/* -# Test - -## Prepare -> sudo systemctl start docker -> docker-compose up mariadb -> DROP all databases -> docker-compose down -> docker compose up mariadb database -> verify there is exactly one database `gradido_community` - -TODO: -INSERT INTO `login_groups` (`id`, `alias`, `name`, `url`, `host`, `home`, `description`) VALUES - (1, 'docker', 'docker gradido group', 'localhost', 'nginx', '/', 'gradido test group for docker and stage2 with blockchain db'); - ->> Database is cool - -### Start login server -> docker-compose up login-server community-server nginx ->> Login & community servers and nginx proxy are up and running - -## Build database -> cd database -> yarn -> yarn build -> cd .. ->> Database has been built successful - -### Start backend (no docker for debugging) -> cd backend -> yarn -> yarn dev ->> Backend is up and running - -### Create users -> chromium http://localhost:4000/graphql -> mutation{createUser(email: "receiver@user.net", firstName: "Receiver", lastName: "user", password: "123!AAAb", language: "de")} -> mutation{createUser(email: "sender@user.net", firstName: "Sender", lastName: "user", password: "123!AAAb", language: "de")} -> mutation{createUser(email: "creator@user.net", firstName: "Creator", lastName: "user", password: "123!AAAb", language: "de")} ->> Verify you have 3 entries in `login_users`, `login_user_backups` and `state_users` - -### make creator an admin -> INSERT INTO login_user_roles (id, user_id, role_id) VALUES (NULL, '3', '1'); -> UPDATE login_users SET email_checked = 1 WHERE id = 3; -> uncomment line: 19 in community_server/src/Controller/ServerUsersController.php -> chromium http://localhost/server-users/add -> create user `creator` `123` `creator@different.net` ->> verify you have 1 entry in `server_users` -> login with user on http://localhost/server-users -> activate server user by changing the corresponding flag in the interface -> navigate to http://localhost/transaction-creations/create-multi -> create 1000GDD for user sender@user.net -> navigate to http://localhost -> login with `creator@user.net` `123!AAAb` -> confirm transaction (top right corner - click the thingy, click the green button `Transaktion abschließen`) - -### the test: -> chromium http://localhost:4000/graphql -> query{login(email: "sender@user.net", password: "123!AAAb"){pubkey}} ->> copy token from network tab (inspect) -> mutation{sendCoins(email: "receiver@user.net", amount: 10.0, memo: "Hier!")} -> mutation{sendCoins(email: "receiver@user.net", amount: 10.0, memo: "Hier!")} -> Headers: {"Authorization": "Bearer ${token}"} ->> Verify via Database that stuff is as it should see `state_balance` & `transaction_send_coins` - -### create decay block -> chromium http://localhost/transactions/add -> login with `creator` `123` -> select `decay start` -> press submit -> wait for at least 0.02 display of decay on user sender@user.net on old frontend, this should be aprox 10min -> chromium http://localhost:4000/graphql -> query{login(email: "sender@user.net", password: "123!AAAb"){pubkey}} ->> copy token from network tab (inspect) -> mutation{sendCoins(email: "receiver@user.net", amount: 10.0, memo: "Hier!")} ->> verify in `transaction_send_coins` that a decay was taken into account ->> same in `state_balances` ->> now check the old frontend ->>> sender@user.net should have a decay of 0.02 ->>> while receiver@user.net should have zero decay on anything (old frontend) - -### Export data -> docker-compose up phpmyadmin -> chromium http://localhost:8074/ -> select gradido_community -> export -> select custom -> untick structure -> ok - -## Results -NOTE: We decided not to write the `transaction_signatures` since its unused. This is the main difference. -NOTE: We fixed a bug in the `state_user_transactions code` with the new implementation of apollo - - -Master: - --- --- Dumping data for table `state_user_transactions` --- - -INSERT INTO `state_user_transactions` (`id`, `state_user_id`, `transaction_id`, `transaction_type_id`, `balance`, `balance_date`) VALUES -(1, 2, 1, 1, 10000000, '2021-11-05 12:45:18'), -(2, 2, 2, 2, 9900000, '2021-11-05 12:48:35'), -(3, 1, 2, 2, 100000, '2021-11-05 12:48:35'), -(4, 2, 3, 2, 9800000, '2021-11-05 12:49:07'), -(5, 1, 3, 2, 200000, '2021-11-05 12:49:07'), -(6, 2, 5, 2, 9699845, '2021-11-05 13:03:50'), -(7, 1, 5, 2, 99996, '2021-11-05 13:03:50'); - --- --- Dumping data for table `transactions` --- - -INSERT INTO `transactions` (`id`, `state_group_id`, `transaction_type_id`, `tx_hash`, `memo`, `received`, `blockchain_type_id`) VALUES -(1, NULL, 1, 0x9ccdcd01ccb6320c09c2d1da2f0bf735a95ece0e7c1df6bbff51918fbaec061700000000000000000000000000000000, '', '2021-11-05 12:45:18', 1), -(2, NULL, 2, 0x58d7706a67fa4ff4b8038168c6be39a2963d7e28e9d3872759ad09c519fe093700000000000000000000000000000000, 'Hier!', '2021-11-05 12:48:35', 1), -(3, NULL, 2, 0x427cd214f92ef35af671129d50edc5a478c53d1e464f285b7615d9794a69f69b00000000000000000000000000000000, 'Hier!', '2021-11-05 12:49:07', 1), -(4, NULL, 9, 0x32807368f0906a21b94c072599795bc9eeab88fb565df82e85cc62a4fdcde48500000000000000000000000000000000, '', '2021-11-05 12:51:51', 1), -(5, NULL, 2, 0x75eb729e0f60a1c8cead1342955853d2440d7a2ea57dfef6d4a18bff0d94491e00000000000000000000000000000000, 'Hier!', '2021-11-05 13:03:50', 1); - --- --- Dumping data for table `transaction_signatures` --- - -INSERT INTO `transaction_signatures` (`id`, `transaction_id`, `signature`, `pubkey`) VALUES -(1, 1, 0x5888edcdcf77aaadad6d321882903bc831d7416f17213fd5020a764365b5fcb336e4c7917385a1278ea44ccdb31eac4a09e448053b5e3f8f1fe5da3baf53c008, 0xd5b20f8dee415038bfa2b6b0e1b40ff54850351109444863b04d6d28825b7b7d), -(2, 2, 0xf6fef428f8f22faf7090f7d740e6088d1d90c58ae92d757117d7d91d799e659f3a3a0c65a3fd97cbde798e761f9d23eff13e8810779a184c97c411f28e7c4608, 0xdc74a589004377ab14836dce68ce2ca34e5b17147cd78ad4b3afe8137524ae8a), -(3, 3, 0x8ebe9730c6cf61f56ef401d6f2bd229f3c298ca3c2791ee9137e4827b7af6c6d6566fca616eb1fe7adc2e4d56b5c7350ae3990c9905580630fa75ecffca8e001, 0xdc74a589004377ab14836dce68ce2ca34e5b17147cd78ad4b3afe8137524ae8a), -(4, 5, 0x50cf418f7e217391e89ab9c2879ae68d7c7c597d846b4fe1c082b5b16e5d0c85c328fbf48ad3490bcfe94f446700ae0a4b0190e76d26cc752abced58f480c80f, 0xdc74a589004377ab14836dce68ce2ca34e5b17147cd78ad4b3afe8137524ae8a); - -This Feature Branch: - - --- --- Dumping data for table `state_user_transactions` --- - -INSERT INTO `state_user_transactions` (`id`, `state_user_id`, `transaction_id`, `transaction_type_id`, `balance`, `balance_date`) VALUES -(1, 2, 1, 1, 10000000, '2021-11-05 00:25:46'), -(12, 2, 7, 2, 9900000, '2021-11-05 00:55:37'), -(13, 1, 7, 2, 100000, '2021-11-05 00:55:37'), -(14, 2, 8, 2, 9800000, '2021-11-05 01:00:04'), -(15, 1, 8, 2, 200000, '2021-11-05 01:00:04'), -(16, 2, 10, 2, 9699772, '2021-11-05 01:17:41'), -(17, 1, 10, 2, 299995, '2021-11-05 01:17:41'); - --- --- Dumping data for table `transactions` --- - -INSERT INTO `transactions` (`id`, `state_group_id`, `transaction_type_id`, `tx_hash`, `memo`, `received`, `blockchain_type_id`) VALUES -(1, NULL, 1, 0xdd030d475479877587d927ed9024784ba62266cf1f3d87862fc98ad68f7b26e400000000000000000000000000000000, '', '2021-11-05 00:25:46', 1), -(7, NULL, 2, NULL, 'Hier!', '2021-11-05 00:55:37', 1), -(8, NULL, 2, NULL, 'Hier!', '2021-11-05 01:00:04', 1), -(9, NULL, 9, 0xb1cbedbf126aa35f5edbf06e181c415361d05228ab4da9d19a4595285a673dfa00000000000000000000000000000000, '', '2021-11-05 01:05:34', 1), -(10, NULL, 2, NULL, 'Hier!', '2021-11-05 01:17:41', 1); - --- --- Dumping data for table `transaction_signatures` --- - -INSERT INTO `transaction_signatures` (`id`, `transaction_id`, `signature`, `pubkey`) VALUES -(1, 1, 0x60d632479707e5d01cdc32c3326b5a5bae11173a0c06b719ee7b552f9fd644de1a0cd4afc207253329081d39dac1a63421f51571d836995c649fc39afac7480a, 0x48c45cb4fea925e83850f68f2fa8f27a1a4ed1bcba68cdb59fcd86adef3f52ee); -*/ - // Helper function async function calculateAndAddDecayTransactions( userTransactions: dbUserTransaction[], diff --git a/database/entity/0001-init_db/Transaction.ts b/database/entity/0001-init_db/Transaction.ts index 53dce4d08..3c2397108 100644 --- a/database/entity/0001-init_db/Transaction.ts +++ b/database/entity/0001-init_db/Transaction.ts @@ -1,25 +1,34 @@ import { BaseEntity, Entity, PrimaryGeneratedColumn, Column, OneToOne } from 'typeorm' -import { TransactionCreation } from './TransactionCreation' -import { TransactionSendCoin } from './TransactionSendCoin' +import { TransactionCreation } from '../TransactionCreation' +import { TransactionSendCoin } from '../TransactionSendCoin' @Entity('transactions') export class Transaction extends BaseEntity { @PrimaryGeneratedColumn() id: number - @Column({ name: 'transaction_type_id' }) + @Column({ name: 'state_group_id', unsigned: true, default: null }) + stateGroupId: number + + @Column({ name: 'transaction_type_id', unsigned: true, nullable: false }) transactionTypeId: number - @Column({ name: 'tx_hash', type: 'binary', length: 48 }) + @Column({ name: 'tx_hash', type: 'binary', length: 48, default: null }) txHash: Buffer - @Column() + @Column({ length: 255, nullable: false, collation: 'utf8mb4_unicode_ci' }) memo: string - @Column({ type: 'timestamp' }) + @Column({ type: 'timestamp', nullable: false, default: () => 'CURRENT_TIMESTAMP' }) received: Date - @Column({ name: 'blockchain_type_id' }) + @Column({ + name: 'blockchain_type_id', + type: 'bigint', + unsigned: true, + nullable: false, + default: 1, + }) blockchainTypeId: number @OneToOne(() => TransactionSendCoin, (transactionSendCoin) => transactionSendCoin.transaction) diff --git a/database/entity/0001-init_db/TransactionCreation.ts b/database/entity/0001-init_db/TransactionCreation.ts index 8b9c02623..1837e0789 100644 --- a/database/entity/0001-init_db/TransactionCreation.ts +++ b/database/entity/0001-init_db/TransactionCreation.ts @@ -1,5 +1,5 @@ import { BaseEntity, Entity, PrimaryGeneratedColumn, Column, OneToOne, JoinColumn } from 'typeorm' -import { Transaction } from './Transaction' +import { Transaction } from '../Transaction' @Entity('transaction_creations') export class TransactionCreation extends BaseEntity { diff --git a/database/entity/0001-init_db/TransactionSendCoin.ts b/database/entity/0001-init_db/TransactionSendCoin.ts index 6153ee94c..db999cd87 100644 --- a/database/entity/0001-init_db/TransactionSendCoin.ts +++ b/database/entity/0001-init_db/TransactionSendCoin.ts @@ -1,5 +1,5 @@ import { BaseEntity, Entity, PrimaryGeneratedColumn, Column, OneToOne, JoinColumn } from 'typeorm' -import { Transaction } from './Transaction' +import { Transaction } from '../Transaction' @Entity('transaction_send_coins') export class TransactionSendCoin extends BaseEntity { diff --git a/database/entity/0001-init_db/TransactionSignature.ts b/database/entity/0001-init_db/TransactionSignature.ts index df3e02ba6..d12a74500 100644 --- a/database/entity/0001-init_db/TransactionSignature.ts +++ b/database/entity/0001-init_db/TransactionSignature.ts @@ -1,21 +1,21 @@ -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column, ManyToOne, JoinColumn } from 'typeorm' -import { Transaction } from './Transaction' +import { BaseEntity, Entity, PrimaryGeneratedColumn, Column, OneToOne, JoinColumn } from 'typeorm' +import { Transaction } from '../Transaction' @Entity('transaction_signatures') export class TransactionSignature extends BaseEntity { - @PrimaryGeneratedColumn() + @PrimaryGeneratedColumn('increment', { unsigned: true }) id: number @Column({ name: 'transaction_id' }) transactionId: number - @Column({ type: 'binary', length: 64 }) + @Column({ type: 'binary', length: 64, nullable: false }) signature: Buffer - @Column({ type: 'binary', length: 32 }) + @Column({ type: 'binary', length: 32, nullable: false }) pubkey: Buffer - @ManyToOne(() => Transaction) + @OneToOne(() => Transaction) @JoinColumn({ name: 'transaction_id' }) transaction: Transaction } diff --git a/database/entity/0002-add_settings/User.ts b/database/entity/0002-add_settings/User.ts index 78e774489..40f5d400a 100644 --- a/database/entity/0002-add_settings/User.ts +++ b/database/entity/0002-add_settings/User.ts @@ -1,5 +1,5 @@ import { BaseEntity, Entity, PrimaryGeneratedColumn, Column, OneToMany } from 'typeorm' -import { UserSetting } from './UserSetting' +import { UserSetting } from '../UserSetting' // Moriz: I do not like the idea of having two user tables @Entity('state_users', { engine: 'InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci' }) diff --git a/database/entity/0002-add_settings/UserSetting.ts b/database/entity/0002-add_settings/UserSetting.ts index 02d2236c2..006d63e3e 100644 --- a/database/entity/0002-add_settings/UserSetting.ts +++ b/database/entity/0002-add_settings/UserSetting.ts @@ -1,5 +1,5 @@ import { BaseEntity, Entity, PrimaryGeneratedColumn, Column, ManyToOne } from 'typeorm' -import { User } from './User' +import { User } from '../User' @Entity() export class UserSetting extends BaseEntity { diff --git a/database/entity/0016-transaction_signatures/Transaction.ts b/database/entity/0016-transaction_signatures/Transaction.ts new file mode 100644 index 000000000..8c8251baf --- /dev/null +++ b/database/entity/0016-transaction_signatures/Transaction.ts @@ -0,0 +1,34 @@ +import { BaseEntity, Entity, PrimaryGeneratedColumn, Column, OneToOne } from 'typeorm' +import { TransactionCreation } from '../TransactionCreation' +import { TransactionSendCoin } from '../TransactionSendCoin' + +@Entity('transactions') +export class Transaction extends BaseEntity { + // TODO the id is defined as bigint(20) - there might be problems with that: https://github.com/typeorm/typeorm/issues/2400 + @PrimaryGeneratedColumn('increment', { unsigned: true }) + id: number + + @Column({ name: 'transaction_type_id', unsigned: true, nullable: false }) + transactionTypeId: number + + @Column({ name: 'tx_hash', type: 'binary', length: 48, default: null }) + txHash: Buffer + + @Column({ length: 255, nullable: false, collation: 'utf8mb4_unicode_ci' }) + memo: string + + @Column({ type: 'timestamp', nullable: false, default: () => 'CURRENT_TIMESTAMP' }) + received: Date + + @Column({ type: 'binary', length: 64, nullable: true, default: null }) + signature: Buffer + + @Column({ type: 'binary', length: 32, nullable: true, default: null }) + pubkey: Buffer + + @OneToOne(() => TransactionSendCoin, (transactionSendCoin) => transactionSendCoin.transaction) + transactionSendCoin: TransactionSendCoin + + @OneToOne(() => TransactionCreation, (transactionCreation) => transactionCreation.transaction) + transactionCreation: TransactionCreation +} diff --git a/database/entity/Transaction.ts b/database/entity/Transaction.ts index d3915c05d..f17479f9f 100644 --- a/database/entity/Transaction.ts +++ b/database/entity/Transaction.ts @@ -1 +1 @@ -export { Transaction } from './0001-init_db/Transaction' +export { Transaction } from './0016-transaction_signatures/Transaction' diff --git a/database/entity/TransactionSignature.ts b/database/entity/TransactionSignature.ts deleted file mode 100644 index e3c9cbe1c..000000000 --- a/database/entity/TransactionSignature.ts +++ /dev/null @@ -1 +0,0 @@ -export { TransactionSignature } from './0001-init_db/TransactionSignature' diff --git a/database/entity/index.ts b/database/entity/index.ts index b1aa63daf..cd1dd4e21 100644 --- a/database/entity/index.ts +++ b/database/entity/index.ts @@ -7,7 +7,6 @@ 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' @@ -25,7 +24,6 @@ export const entities = [ ServerUser, Transaction, TransactionCreation, - TransactionSignature, TransactionSendCoin, User, UserSetting, diff --git a/database/migrations/0016-transaction_signatures.ts b/database/migrations/0016-transaction_signatures.ts new file mode 100644 index 000000000..2cf1e7aa1 --- /dev/null +++ b/database/migrations/0016-transaction_signatures.ts @@ -0,0 +1,60 @@ +/* MIGRATION TO CLEANUP TRANSACTIONS TABLE + * + * This migration cleans up the transactions table and + * combines its data with transaction_signatures. + */ + +export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { + // Drop column `state_group_id` since it only contains "0" as value, no variation. + // Furthermore it was not present in our model itself (meaning that newly created ) + await queryFn('ALTER TABLE `transactions` DROP COLUMN `state_group_id`;') + + // Drop column `blockchain_type_id` since it only contains "1" as value, no variation. + await queryFn('ALTER TABLE `transactions` DROP COLUMN `blockchain_type_id`;') + + // Create `signature` column - for data from `transaction_signatures` table. + await queryFn( + 'ALTER TABLE `transactions` ADD COLUMN `signature` binary(64) DEFAULT NULL AFTER `received`;', + ) + + // Create `pubkey` column - for data from `transaction_signatures` table. + await queryFn( + 'ALTER TABLE `transactions` ADD COLUMN `pubkey` binary(32) DEFAULT NULL AFTER `signature`;', + ) + + // Transfer data from `transaction_signatures` table to `transactions` table + await queryFn(` + UPDATE transactions + INNER JOIN transaction_signatures ON transactions.id = transaction_signatures.transaction_id + SET transactions.signature = transaction_signatures.signature, transactions.pubkey = transaction_signatures.pubkey; + `) + + // Drop `transaction_signatures` table + await queryFn('DROP TABLE `transaction_signatures`;') +} + +export async function downgrade(queryFn: (query: string, values?: any[]) => Promise>) { + await queryFn(` + CREATE TABLE \`transaction_signatures\` ( + \`id\` int(10) unsigned NOT NULL AUTO_INCREMENT, + \`transaction_id\` int(10) unsigned NOT NULL, + \`signature\` binary(64) NOT NULL, + \`pubkey\` binary(32) NOT NULL, + PRIMARY KEY (\`id\`) + ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci + `) + await queryFn(` + INSERT INTO transaction_signatures (transaction_id, signature, pubkey) + (SELECT id as transaction_id, signature, pubkey FROM transactions WHERE signature IS NOT NULL and pubkey IS NOT NULL); + `) + await queryFn('ALTER TABLE `transactions` DROP COLUMN `pubkey`;') + await queryFn('ALTER TABLE `transactions` DROP COLUMN `signature`;') + await queryFn( + 'ALTER TABLE `transactions` ADD COLUMN `blockchain_type_id` bigint(20) unsigned NOT NULL DEFAULT 1 AFTER `received` ;', + ) + await queryFn( + 'ALTER TABLE `transactions` ADD COLUMN `state_group_id` int(10) unsigned DEFAULT NULL AFTER `id`;', + ) + // We have to set the correct values previously in the table , since its not the same as the column's default + await queryFn('UPDATE `transactions` SET `state_group_id` = 0;') +} diff --git a/database/src/factories/transaction-signature.factory.ts b/database/src/factories/transaction-signature.factory.ts deleted file mode 100644 index b79e15052..000000000 --- a/database/src/factories/transaction-signature.factory.ts +++ /dev/null @@ -1,18 +0,0 @@ -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/factories/transaction.factory.ts b/database/src/factories/transaction.factory.ts index 4880ace5b..10d242265 100644 --- a/database/src/factories/transaction.factory.ts +++ b/database/src/factories/transaction.factory.ts @@ -12,7 +12,8 @@ define(Transaction, (faker: typeof Faker, context?: TransactionContext) => { transaction.txHash = context.txHash ? context.txHash : randomBytes(48) transaction.memo = context.memo || context.memo === '' ? context.memo : faker.lorem.sentence() transaction.received = context.received ? context.received : new Date() - transaction.blockchainTypeId = context.blockchainTypeId ? context.blockchainTypeId : 1 + transaction.signature = context.signature ? context.signature : randomBytes(64) + transaction.pubkey = context.signaturePubkey ? context.signaturePubkey : randomBytes(32) if (context.transactionSendCoin) transaction.transactionSendCoin = context.transactionSendCoin if (context.transactionCreation) transaction.transactionCreation = context.transactionCreation diff --git a/database/src/interface/TransactionContext.ts b/database/src/interface/TransactionContext.ts index 481959c5f..15b66bad6 100644 --- a/database/src/interface/TransactionContext.ts +++ b/database/src/interface/TransactionContext.ts @@ -9,6 +9,8 @@ export interface TransactionContext { memo?: string received?: Date blockchainTypeId?: number + signature?: Buffer + signaturePubkey?: Buffer transactionSendCoin?: TransactionSendCoin transactionCreation?: TransactionCreation } @@ -43,10 +45,6 @@ export interface UserTransactionContext { transactionTypeId?: number balance?: number balanceDate?: Date -} - -export interface TransactionSignatureContext { signature?: Buffer pubkey?: Buffer - transaction?: Transaction } diff --git a/database/src/seeds/helpers/user-helpers.ts b/database/src/seeds/helpers/user-helpers.ts index 85a6cd88f..f205ccb00 100644 --- a/database/src/seeds/helpers/user-helpers.ts +++ b/database/src/seeds/helpers/user-helpers.ts @@ -10,7 +10,6 @@ import { TransactionContext, TransactionCreationContext, UserTransactionContext, - TransactionSignatureContext, } from '../../interface/TransactionContext' import { UserInterface } from '../../interface/UserInterface' import { User } from '../../../entity/User' @@ -19,7 +18,6 @@ import { LoginUserBackup } from '../../../entity/LoginUserBackup' import { ServerUser } from '../../../entity/ServerUser' 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' @@ -46,9 +44,6 @@ export const userSeeder = async (factory: Factory, userData: UserInterface): Pro await factory(UserTransaction)( createUserTransactionContext(userData, user, transaction), ).create() - await factory(TransactionSignature)( - createTransactionSignatureContext(userData, transaction), - ).create() } } @@ -161,16 +156,7 @@ const createUserTransactionContext = ( transactionTypeId: transaction.transactionTypeId, balance: context.amount, balanceDate: context.recordDate, - } -} - -const createTransactionSignatureContext = ( - context: UserInterface, - transaction: Transaction, -): TransactionSignatureContext => { - return { signature: context.signature, pubkey: context.signaturePubkey, - transaction, } }