diff --git a/backend/src/config/index.ts b/backend/src/config/index.ts index 75c985e63..ed8a893a2 100644 --- a/backend/src/config/index.ts +++ b/backend/src/config/index.ts @@ -1,8 +1,14 @@ // ATTENTION: DO NOT PUT ANY SECRETS IN HERE (or the .env) import dotenv from 'dotenv' +import Decimal from 'decimal.js-light' dotenv.config() +Decimal.set({ + precision: 25, + rounding: Decimal.ROUND_HALF_UP, +}) + const constants = { DB_VERSION: '0028-clean_transaction_table', DECAY_START_TIME: new Date('2021-05-13 17:46:31'), // GMT+0 diff --git a/backend/src/graphql/arg/TransactionSendArgs.ts b/backend/src/graphql/arg/TransactionSendArgs.ts index 49a3fb5e8..e75921383 100644 --- a/backend/src/graphql/arg/TransactionSendArgs.ts +++ b/backend/src/graphql/arg/TransactionSendArgs.ts @@ -1,5 +1,5 @@ import { ArgsType, Field } from 'type-graphql' -import Decimal from '../../util/decimal' +import Decimal from 'decimal.js-light' @ArgsType() export default class TransactionSendArgs { diff --git a/backend/src/graphql/model/Balance.ts b/backend/src/graphql/model/Balance.ts index 7d2be38c4..aaeecd0d7 100644 --- a/backend/src/graphql/model/Balance.ts +++ b/backend/src/graphql/model/Balance.ts @@ -1,7 +1,7 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable @typescript-eslint/explicit-module-boundary-types */ import { ObjectType, Field } from 'type-graphql' -import Decimal from '../../util/decimal' +import Decimal from 'decimal.js-light' @ObjectType() export class Balance { diff --git a/backend/src/graphql/model/Decay.ts b/backend/src/graphql/model/Decay.ts index ab70ab6f8..71cacb216 100644 --- a/backend/src/graphql/model/Decay.ts +++ b/backend/src/graphql/model/Decay.ts @@ -1,7 +1,7 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable @typescript-eslint/explicit-module-boundary-types */ import { ObjectType, Field } from 'type-graphql' -import Decimal from '../../util/decimal' +import Decimal from 'decimal.js-light' @ObjectType() export class Decay { diff --git a/backend/src/graphql/model/Transaction.ts b/backend/src/graphql/model/Transaction.ts index 4d19479c7..4c9caed4e 100644 --- a/backend/src/graphql/model/Transaction.ts +++ b/backend/src/graphql/model/Transaction.ts @@ -3,7 +3,7 @@ import { ObjectType, Field } from 'type-graphql' import { Decay } from './Decay' import { Transaction as dbTransaction } from '@entity/Transaction' -import Decimal from '../../util/decimal' +import Decimal from 'decimal.js-light' import { TransactionTypeId } from '../enum/TransactionTypeId' import { User } from './User' diff --git a/backend/src/graphql/model/TransactionList.ts b/backend/src/graphql/model/TransactionList.ts index 91beb01ac..d4fcb65eb 100644 --- a/backend/src/graphql/model/TransactionList.ts +++ b/backend/src/graphql/model/TransactionList.ts @@ -2,7 +2,7 @@ /* eslint-disable @typescript-eslint/explicit-module-boundary-types */ import { ObjectType, Field } from 'type-graphql' import CONFIG from '../../config' -import Decimal from '../../util/decimal' +import Decimal from 'decimal.js-light' import { Transaction } from './Transaction' @ObjectType() diff --git a/backend/src/graphql/resolver/AdminResolver.ts b/backend/src/graphql/resolver/AdminResolver.ts index b1b68e521..1ee7f326c 100644 --- a/backend/src/graphql/resolver/AdminResolver.ts +++ b/backend/src/graphql/resolver/AdminResolver.ts @@ -27,7 +27,7 @@ import { hasElopageBuys } from '../../util/hasElopageBuys' import { LoginEmailOptIn } from '@entity/LoginEmailOptIn' import { User } from '@entity/User' import { TransactionTypeId } from '../enum/TransactionTypeId' -import Decimal from '../../util/decimal' +import Decimal from 'decimal.js-light' // const EMAIL_OPT_IN_REGISTER = 1 // const EMAIL_OPT_UNKNOWN = 3 // elopage? diff --git a/backend/src/graphql/resolver/BalanceResolver.ts b/backend/src/graphql/resolver/BalanceResolver.ts index 1680ba8d7..e536093bb 100644 --- a/backend/src/graphql/resolver/BalanceResolver.ts +++ b/backend/src/graphql/resolver/BalanceResolver.ts @@ -8,7 +8,7 @@ import { UserRepository } from '../../typeorm/repository/User' import { calculateDecay } from '../../util/decay' import { RIGHTS } from '../../auth/RIGHTS' import { Transaction } from '@entity/Transaction' -import Decimal from '../../util/decimal' +import Decimal from 'decimal.js-light' @Resolver() export class BalanceResolver { diff --git a/backend/src/graphql/scalar/Decimal.ts b/backend/src/graphql/scalar/Decimal.ts index d10d36337..da5a99e0c 100644 --- a/backend/src/graphql/scalar/Decimal.ts +++ b/backend/src/graphql/scalar/Decimal.ts @@ -1,5 +1,5 @@ import { GraphQLScalarType, Kind } from 'graphql' -import Decimal from '../../util/decimal' +import Decimal from 'decimal.js-light' export default new GraphQLScalarType({ name: 'Decimal', diff --git a/backend/src/graphql/schema.ts b/backend/src/graphql/schema.ts index 54ee89c42..f14f45efa 100644 --- a/backend/src/graphql/schema.ts +++ b/backend/src/graphql/schema.ts @@ -4,7 +4,7 @@ import path from 'path' import isAuthorized from './directive/isAuthorized' import DecimalScalar from './scalar/Decimal' -import Decimal from '../util/decimal' +import Decimal from 'decimal.js-light' const schema = async (): Promise => { return buildSchema({ diff --git a/backend/src/mailer/sendTransactionReceivedEmail.test.ts b/backend/src/mailer/sendTransactionReceivedEmail.test.ts index ce1d50920..5fd013650 100644 --- a/backend/src/mailer/sendTransactionReceivedEmail.test.ts +++ b/backend/src/mailer/sendTransactionReceivedEmail.test.ts @@ -1,6 +1,6 @@ import { sendTransactionReceivedEmail } from './sendTransactionReceivedEmail' import { sendEMail } from './sendEMail' -import Decimal from '../util/decimal' +import Decimal from 'decimal.js-light' jest.mock('./sendEMail', () => { return { diff --git a/backend/src/mailer/sendTransactionReceivedEmail.ts b/backend/src/mailer/sendTransactionReceivedEmail.ts index d4a97eab7..3b417b10a 100644 --- a/backend/src/mailer/sendTransactionReceivedEmail.ts +++ b/backend/src/mailer/sendTransactionReceivedEmail.ts @@ -1,4 +1,4 @@ -import Decimal from '../util/decimal' +import Decimal from 'decimal.js-light' import { sendEMail } from './sendEMail' import { transactionReceived } from './text/transactionReceived' diff --git a/backend/src/mailer/text/transactionReceived.ts b/backend/src/mailer/text/transactionReceived.ts index 747e30bdf..f685c60ae 100644 --- a/backend/src/mailer/text/transactionReceived.ts +++ b/backend/src/mailer/text/transactionReceived.ts @@ -1,4 +1,4 @@ -import Decimal from '../../util/decimal' +import Decimal from 'decimal.js-light' export const transactionReceived = { de: { diff --git a/backend/src/util/decay.test.ts b/backend/src/util/decay.test.ts index 31d8905b2..1653376c1 100644 --- a/backend/src/util/decay.test.ts +++ b/backend/src/util/decay.test.ts @@ -1,4 +1,4 @@ -import Decimal from './decimal' +import Decimal from 'decimal.js-light' import 'reflect-metadata' // This might be wise to load in a test setup file import { decayFormula, calculateDecay } from './decay' diff --git a/backend/src/util/decay.ts b/backend/src/util/decay.ts index 49317ad85..061269dab 100644 --- a/backend/src/util/decay.ts +++ b/backend/src/util/decay.ts @@ -1,4 +1,4 @@ -import Decimal from './decimal' +import Decimal from 'decimal.js-light' import CONFIG from '../config' import { Decay } from '../graphql/model/Decay' diff --git a/backend/src/util/decimal.ts b/backend/src/util/decimal.ts deleted file mode 100644 index 3f32a850e..000000000 --- a/backend/src/util/decimal.ts +++ /dev/null @@ -1,8 +0,0 @@ -import Decimal from 'decimal.js-light' - -Decimal.set({ - precision: 25, - rounding: Decimal.ROUND_HALF_UP, -}) - -export default Decimal diff --git a/backend/src/util/validate.ts b/backend/src/util/validate.ts index 2f9017447..dc3aadbec 100644 --- a/backend/src/util/validate.ts +++ b/backend/src/util/validate.ts @@ -1,5 +1,5 @@ import { calculateDecay } from './decay' -import Decimal from './decimal' +import Decimal from 'decimal.js-light' import { Transaction } from '@entity/Transaction' function isStringBoolean(value: string): boolean { diff --git a/backend/src/util/virtualDecayTransaction.ts b/backend/src/util/virtualDecayTransaction.ts index c6b7391f1..f5f35823f 100644 --- a/backend/src/util/virtualDecayTransaction.ts +++ b/backend/src/util/virtualDecayTransaction.ts @@ -1,5 +1,5 @@ /* eslint-disable @typescript-eslint/no-unused-vars */ -import Decimal from './decimal' +import Decimal from 'decimal.js-light' import { SaveOptions, RemoveOptions } from '@dbTools/typeorm' import { Transaction as dbTransaction } from '@entity/Transaction' import { calculateDecay } from './decay'