diff --git a/database/src/factories/transaction.factory.ts b/database/src/factories/transaction.factory.ts new file mode 100644 index 000000000..e9efe1316 --- /dev/null +++ b/database/src/factories/transaction.factory.ts @@ -0,0 +1,20 @@ +import Faker from 'faker' +import { define } from 'typeorm-seeding' +import { Transaction } from '../../entity/Transaction' +import { TransactionContext } from '../interface/TransactionContext' +import { randomBytes } from 'crypto' + +define(Transaction, (faker: typeof Faker, context?: TransactionContext) => { + if (!context) context = {} + + const transaction = new Transaction() + transaction.transactionTypeId = context.transactionTypeId ? context.transactionTypeId : 2 + transaction.txHash = context.txHash ? context.txHash : randomBytes(48) + transaction.memo = context.memo ? context.memo : faker.lorem.sentence() + transaction.received = context.received ? context.received : new Date() + transaction.blockchainTypeId = context.blockchainTypeId ? context.blockchainTypeId : 1 + if (context.transactionSendCoin) transaction.transactionSendCoin = context.transactionSendCoin + if (context.transactionCreation) transaction.transactionCreation = context.transactionCreation + + return transaction +}) diff --git a/database/src/interface/TransactionContext.ts b/database/src/interface/TransactionContext.ts new file mode 100644 index 000000000..f43b57046 --- /dev/null +++ b/database/src/interface/TransactionContext.ts @@ -0,0 +1,12 @@ +import { TransactionSendCoin } from '../../entity/TransactionSendCoin' +import { TransactionCreation } from '../../entity/TransactionCreation' + +export interface TransactionContext { + transactionTypeId?: number + txHash?: Buffer + memo?: string + received?: Date + blockchainTypeId?: number + transactionSendCoin?: TransactionSendCoin + transactionCreation?: TransactionCreation +}