From 6a7c3827d453390f29b9f8f3731efcefee6ee672 Mon Sep 17 00:00:00 2001 From: CounterFire2023 <136581895+CounterFire2023@users.noreply.github.com> Date: Tue, 14 May 2024 14:20:33 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=99=BD=E5=90=8D=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/fixdata.ts | 4 ++++ src/models/ctrl/FixAddress.ts | 21 +++++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 src/models/ctrl/FixAddress.ts diff --git a/src/fixdata.ts b/src/fixdata.ts index 51eb298..4c36b5b 100644 --- a/src/fixdata.ts +++ b/src/fixdata.ts @@ -7,6 +7,7 @@ import mongoose from 'mongoose' import { CheckIn } from 'models/chain/CheckIn' import { toEIP55 } from 'zutils/utils/chain.util' import { inertUser, insertWalletLoginLog } from 'services/fix.svr' +import { FixAddress } from 'models/ctrl/FixAddress' const dbMain = mongoose.createConnection(process.env.DB_MAIN) const dbChain = mongoose.createConnection(process.env.DB_CHAIN) @@ -35,6 +36,9 @@ const insertTaskRecord = async () => { } const parseOneRecord = async (record: any) => { + if (!FixAddress.checkExist(record.from)) { + return + } let addressEip55 = toEIP55(record.from) console.log('parseOneRecord', addressEip55) const user = await dbCtrl.collection('users_test').findOne({ address: addressEip55 }) diff --git a/src/models/ctrl/FixAddress.ts b/src/models/ctrl/FixAddress.ts new file mode 100644 index 0000000..2ffe40e --- /dev/null +++ b/src/models/ctrl/FixAddress.ts @@ -0,0 +1,21 @@ +import { getModelForClass, index, modelOptions, prop, Severity } from '@typegoose/typegoose' +import { dbconn } from 'decorators/dbconn' +import { BaseModule } from '../Base' + +@dbconn('ctrl') +// case insensitive unique index +@index({ address: 1 }, { unique: true, collation: { locale: 'en', strength: 2 } }) +@modelOptions({ + schemaOptions: { collection: 'fix_addresses', timestamps: false, _id: false, strict: 'throw', versionKey: false }, +}) +export class FixAddressClass extends BaseModule { + @prop({ required: true }) + public address: string + + public static async checkExist(address: string): Promise { + let record = await FixAddress.findOne({ address }).collation({ locale: 'en', strength: 2 }) + return !!record + } +} + +export const FixAddress = getModelForClass(FixAddressClass, { existingConnection: FixAddressClass.db })