From 23e793df4c6601781b9ad37a257fb73720917eca Mon Sep 17 00:00:00 2001 From: CounterFire2023 <136581895+CounterFire2023@users.noreply.github.com> Date: Wed, 16 Oct 2024 16:34:39 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=86=E8=84=9A=E6=9C=AC=E7=A7=BB=E8=87=B3sc?= =?UTF-8?q?ripts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 44 ++++++++-------- src/controllers/cec.controller.ts | 72 +++++++++++++------------- src/models/CECRecordTotal.ts | 14 +++-- src/{ => scripts}/addboxdata.ts | 0 src/{ => scripts}/batch_mail.ts | 0 src/{ => scripts}/cecStatic.ts | 4 +- src/{ => scripts}/checkredis.ts | 0 src/{ => scripts}/checkredis2.ts | 0 src/{ => scripts}/exportBitget.ts | 0 src/{ => scripts}/fixIngame.ts | 0 src/{ => scripts}/fixdata.ts | 0 src/{ => scripts}/generateTaskId.ts | 0 src/{ => scripts}/generateToken.ts | 0 src/{ => scripts}/importCEC.ts | 0 src/{ => scripts}/initdata.ts | 0 src/{ => scripts}/queryEthTx.ts | 0 src/{ => scripts}/queryReleation.ts | 0 src/{ => scripts}/queryScoreList.ts | 0 src/{ => scripts}/rankquery.ts | 0 src/{ => scripts}/rankquery2.ts | 0 src/{ => scripts}/removeNoChain.ts | 0 src/{ => scripts}/removeSybil.ts | 0 src/{ => scripts}/repairdata.ts | 0 src/{ => scripts}/repairdata2.ts | 0 src/{ => scripts}/repairredis.ts | 0 src/{ => scripts}/rewardSchedule.ts | 0 src/{ => scripts}/testdraw.ts | 0 src/{ => scripts}/updateReleation.ts | 0 src/services/chain.svr.ts | 77 ++++++++++++++++++---------- 29 files changed, 116 insertions(+), 95 deletions(-) rename src/{ => scripts}/addboxdata.ts (100%) rename src/{ => scripts}/batch_mail.ts (100%) rename src/{ => scripts}/cecStatic.ts (98%) rename src/{ => scripts}/checkredis.ts (100%) rename src/{ => scripts}/checkredis2.ts (100%) rename src/{ => scripts}/exportBitget.ts (100%) rename src/{ => scripts}/fixIngame.ts (100%) rename src/{ => scripts}/fixdata.ts (100%) rename src/{ => scripts}/generateTaskId.ts (100%) rename src/{ => scripts}/generateToken.ts (100%) rename src/{ => scripts}/importCEC.ts (100%) rename src/{ => scripts}/initdata.ts (100%) rename src/{ => scripts}/queryEthTx.ts (100%) rename src/{ => scripts}/queryReleation.ts (100%) rename src/{ => scripts}/queryScoreList.ts (100%) rename src/{ => scripts}/rankquery.ts (100%) rename src/{ => scripts}/rankquery2.ts (100%) rename src/{ => scripts}/removeNoChain.ts (100%) rename src/{ => scripts}/removeSybil.ts (100%) rename src/{ => scripts}/repairdata.ts (100%) rename src/{ => scripts}/repairdata2.ts (100%) rename src/{ => scripts}/repairredis.ts (100%) rename src/{ => scripts}/rewardSchedule.ts (100%) rename src/{ => scripts}/testdraw.ts (100%) rename src/{ => scripts}/updateReleation.ts (100%) diff --git a/package.json b/package.json index e735a13..4fcab0f 100644 --- a/package.json +++ b/package.json @@ -7,31 +7,29 @@ "build": "tsc -p tsconfig.json", "dev:api": "ts-node -r tsconfig-paths/register src/api.ts", "prod:api": "NODE_PATH=./dist node dist/api.js", - "dev:admin": "ts-node -r tsconfig-paths/register src/admin.ts", - "prod:admin": "node dist/admin.js", "lint": "eslint --ext .ts src/**", "format": "eslint --ext .ts src/** --fix", - "initdata": "ts-node src/initdata.ts", - "repairdata": "ts-node -r tsconfig-paths/register src/repairdata.ts", - "repairdata2": "ts-node -r tsconfig-paths/register src/repairdata2.ts", - "repairredis": "ts-node -r tsconfig-paths/register src/repairredis.ts", - "checkredis": "ts-node -r tsconfig-paths/register src/checkredis.ts", - "additem": "ts-node -r tsconfig-paths/register src/addboxdata.ts", - "fixdata": "ts-node -r tsconfig-paths/register src/fixdata.ts", - "nochain": "ts-node -r tsconfig-paths/register src/removeNoChain.ts", - "out": "ts-node -r tsconfig-paths/register src/queryScoreList.ts", - "sybil": "ts-node -r tsconfig-paths/register src/removeSybil.ts", - "releation": "ts-node -r tsconfig-paths/register src/updateReleation.ts", - "rankquery": "ts-node -r tsconfig-paths/register src/rankquery2.ts", - "mail": "ts-node -r tsconfig-paths/register src/batch_mail.ts", - "eth": "ts-node -r tsconfig-paths/register src/queryEthTx.ts -s 0 -l 10000 -k TC7Y76AS4AMQ468XXNKKF2R3TI7V844HUC", - "taskid": "ts-node -r tsconfig-paths/register src/generateTaskId.ts", - "token": "ts-node -r tsconfig-paths/register src/generateToken.ts", - "ingame": "ts-node -r tsconfig-paths/register src/fixIngame.ts", - "reward": "ts-node -r tsconfig-paths/register src/rewardSchedule.ts", - "testdraw": "ts-node -r tsconfig-paths/register src/testdraw.ts", - "importcec": "ts-node -r tsconfig-paths/register src/importCEC.ts", - "parsecec": "ts-node -r tsconfig-paths/register src/cecStatic.ts", + "initdata": "ts-node src/scripts/initdata.ts", + "repairdata": "ts-node -r tsconfig-paths/register src/scripts/repairdata.ts", + "repairdata2": "ts-node -r tsconfig-paths/register src/scripts/repairdata2.ts", + "repairredis": "ts-node -r tsconfig-paths/register src/scripts/repairredis.ts", + "checkredis": "ts-node -r tsconfig-paths/register src/scripts/checkredis.ts", + "additem": "ts-node -r tsconfig-paths/register src/scripts/addboxdata.ts", + "fixdata": "ts-node -r tsconfig-paths/register src/scripts/fixdata.ts", + "nochain": "ts-node -r tsconfig-paths/register src/scripts/removeNoChain.ts", + "out": "ts-node -r tsconfig-paths/register src/scripts/queryScoreList.ts", + "sybil": "ts-node -r tsconfig-paths/register src/scripts/removeSybil.ts", + "releation": "ts-node -r tsconfig-paths/register src/scripts/updateReleation.ts", + "rankquery": "ts-node -r tsconfig-paths/register src/scripts/rankquery2.ts", + "mail": "ts-node -r tsconfig-paths/register src/scripts/batch_mail.ts", + "eth": "ts-node -r tsconfig-paths/register src/scripts/queryEthTx.ts -s 0 -l 10000 -k TC7Y76AS4AMQ468XXNKKF2R3TI7V844HUC", + "taskid": "ts-node -r tsconfig-paths/register src/scripts/generateTaskId.ts", + "token": "ts-node -r tsconfig-paths/register src/scripts/generateToken.ts", + "ingame": "ts-node -r tsconfig-paths/register src/scripts/fixIngame.ts", + "reward": "ts-node -r tsconfig-paths/register src/scripts/rewardSchedule.ts", + "testdraw": "ts-node -r tsconfig-paths/register src/scripts/testdraw.ts", + "importcec": "ts-node -r tsconfig-paths/register src/scripts/importCEC.ts", + "parsecec": "ts-node -r tsconfig-paths/register src/scripts/cecStatic.ts", "test:watch": "jest --watch", "test": "jest" }, diff --git a/src/controllers/cec.controller.ts b/src/controllers/cec.controller.ts index 9863c8e..97b8747 100644 --- a/src/controllers/cec.controller.ts +++ b/src/controllers/cec.controller.ts @@ -36,16 +36,16 @@ const removeSmallNum = (val: any) => { return val } var b = ethers.utils.formatEther(val) - b = b.substring(0, b.indexOf('.')+3) + b = b.substring(0, b.indexOf('.') + 3) var b1 = parseFloat(b) - return BigInt(ethers.utils.parseEther(b1+'').toString()) + return BigInt(ethers.utils.parseEther(b1 + '').toString()) } /** * 查询cec claim状态 * 第一期是比较特殊的记录, 在预售阶段, 需要展示第一期可领取的数量, 所以要特殊处理 * @param address 有资格的钱包地址 - * @returns + * @returns */ const queryCECClaimStatus = async (address: string) => { let total = 0n @@ -58,7 +58,7 @@ const queryCECClaimStatus = async (address: string) => { } const records = await CECRecordTotal.find({ address }) //@ts-ignore - await updateClaimStatus({ address: CEC_CLAIM_CONTRACT, account: address, token: CEC_ADDRESS, records}) + await updateClaimStatus({ address: CEC_CLAIM_CONTRACT, account: address, token: CEC_ADDRESS, records }) const bindRecord = await BitgetBindInfo.findOne({ wallet: address }) let bit = 0n for (const record of records) { @@ -75,17 +75,17 @@ const queryCECClaimStatus = async (address: string) => { // 预充值, 且记录有效, 且没有跳过绑定检查 if (bindRecord && !bindRecord.invalid && !record.skipBind) { claimed += (currentTotal * BigInt(val.rate)) / 100n - } else if (val.status === ClaimStatusEnum.NORMAL){ + } else if (val.status === ClaimStatusEnum.NORMAL) { available += (currentTotal * BigInt(val.rate)) / 100n - bit = bit | 1n << BigInt(val.bit) - } else if ( val.status === ClaimStatusEnum.CLAIMED) { + bit = bit | (1n << BigInt(val.bit)) + } else if (val.status === ClaimStatusEnum.CLAIMED) { claimed += (currentTotal * BigInt(val.rate)) / 100n } } } else if (stage <= CEC_CLAIM_STAGE && val.status === ClaimStatusEnum.NORMAL) { available += (currentTotal * BigInt(val.rate)) / 100n - bit = bit | 1n << BigInt(val.bit) - } else if ( val.status === ClaimStatusEnum.CLAIMED) { + bit = bit | (1n << BigInt(val.bit)) + } else if (val.status === ClaimStatusEnum.CLAIMED) { claimed += (currentTotal * BigInt(val.rate)) / 100n } } @@ -128,31 +128,31 @@ class CECController extends BaseController { for (const record of records) { total += record.amount let firstRate = record.firstRate || 50 - let firstAmount = record.amount * BigInt(firstRate) / 100n + let firstAmount = (record.amount * BigInt(firstRate)) / 100n firstTotal += firstAmount if (STAGE1_UNLOCK_TIME < now) { available += firstAmount } if (STAGE2_UNLOCK_TIME < now) { - available += (record.amount - firstAmount) + available += record.amount - firstAmount } lists.push(record.toJson()) } stages.push({ stage: 1, - amount: firstTotal.toString(), + amount: firstTotal.toString(), status: 0, unlocked: STAGE1_UNLOCK_TIME < now, - unlockTime: STAGE1_UNLOCK_TIME + unlockTime: STAGE1_UNLOCK_TIME, }) stages.push({ stage: 2, amount: (total - firstTotal).toString(), status: 0, unlocked: STAGE2_UNLOCK_TIME < now, - unlockTime: STAGE2_UNLOCK_TIME + unlockTime: STAGE2_UNLOCK_TIME, }) - + const historys = await CECClaimHistory.find({ address }) for (const history of historys) { if (history.status === CECClaimStatus.FAILED) { @@ -160,7 +160,7 @@ class CECController extends BaseController { } if (history.status === CECClaimStatus.CONFIRMED) { claimed += history.amount - } + } stages[history.stage - 1].status = history.status stages[history.stage - 1].claimTime = history.claimTime available -= history.amount @@ -170,7 +170,7 @@ class CECController extends BaseController { available: available.toString(), claimed: claimed.toString(), stages, - records: lists + records: lists, } } @@ -188,7 +188,7 @@ class CECController extends BaseController { unavailable: unavailable.toString(), // records: records.map(record => record.toJson()), bindUid: bindRecord ? hidePartString(bindRecord.biggetAcc) : '', - bindAddress: bindRecord ? hidePartString(bindRecord.address) : '' + bindAddress: bindRecord ? hidePartString(bindRecord.address) : '', } } @@ -201,7 +201,7 @@ class CECController extends BaseController { if (CEC_CLAIM_STAGE === 0) { throw new ZError(14, 'not begin') } - let wallet: string; // 通过该地址查询可以claim的cec数量 + let wallet: string // 通过该地址查询可以claim的cec数量 if (user.plat === PlatEnum.EXTERNAL_WALLET) { wallet = user.openId || user.openid } else { @@ -210,7 +210,7 @@ class CECController extends BaseController { wallet = walletRecord.address } } - + if (!wallet) { throw new ZError(11, 'wallet not found') } @@ -221,16 +221,16 @@ class CECController extends BaseController { if (available === 0n) { throw new ZError(16, 'no cec to claim') } - const nonce = now + '' +((Math.random() * 1000) | 0); + const nonce = now + '' + ((Math.random() * 1000) | 0) let data = await buildTokenClaimData({ - address, - account: wallet, - token: CEC_ADDRESS, - amount: available.toString(), + address, + account: wallet, + token: CEC_ADDRESS, + amount: available.toString(), bit: bit.toString(), - nonce + nonce, }) - return { calls: [{trans_req: data, trans_id: ''}], direct: true } + return { calls: [{ trans_req: data, trans_id: '' }], direct: true } } // @role(ROLE_ANON) @@ -254,13 +254,13 @@ class CECController extends BaseController { bit: 9, claimStatus: { '1': { bit: 16, rate: 15, status: 1, time: 0 }, - '2': { bit: 17, rate: 85, status: 1, time: 0 } - } + '2': { bit: 17, rate: 85, status: 1, time: 0 }, + }, }) await record.save() return record.toJson() } - + @router('post /api/cec/bind_account') async bindAccount(req: any) { await new SyncLocker().checkLock(req) @@ -272,15 +272,15 @@ class CECController extends BaseController { throw new ZError(14, 'bind parse ended') } - if (accid && !address || !accid && address) { + if ((accid && !address) || (!accid && address)) { throw new ZError(11, 'address and accid are required') } if (address && !ethers.utils.isAddress(address)) { throw new ZError(12, 'address is invalid') } - - let wallet: string; // 通过该地址查询可以claim的cec数量 + + let wallet: string // 通过该地址查询可以claim的cec数量 if (user.plat === PlatEnum.EXTERNAL_WALLET) { wallet = user.openId || user.openid } else { @@ -289,7 +289,7 @@ class CECController extends BaseController { wallet = walletRecord.address } } - + if (!wallet) { throw new ZError(11, 'wallet not found') } @@ -300,8 +300,8 @@ class CECController extends BaseController { throw new ZError(15, 'no claimable record found') } - await BitgetBindInfo.insertOrUpdate({ wallet }, {address, biggetAcc: accid}) - + await BitgetBindInfo.insertOrUpdate({ wallet }, { address, biggetAcc: accid }) + return {} } } diff --git a/src/models/CECRecordTotal.ts b/src/models/CECRecordTotal.ts index db66266..aec0367 100644 --- a/src/models/CECRecordTotal.ts +++ b/src/models/CECRecordTotal.ts @@ -1,8 +1,6 @@ import { dbconn } from 'decorators/dbconn' -import { getModelForClass, index, modelOptions, prop, mongoose } from '@typegoose/typegoose' +import { getModelForClass, index, modelOptions, prop } from '@typegoose/typegoose' import { BaseModule } from './Base' -import { BigNumber } from 'ethers' - /** * 所有的CEC赚取记录 @@ -11,12 +9,12 @@ import { BigNumber } from 'ethers' export enum CECStatusEnum { NORMAL = 1, STAGE1_CLAIMED = 2, - STAGE2_CLAIMED = 3 + STAGE2_CLAIMED = 3, } export enum ClaimStatusEnum { NORMAL = 1, - CLAIMED = 2 + CLAIMED = 2, } @modelOptions({ schemaOptions: { _id: false } }) @@ -68,7 +66,7 @@ export class CECRecordTotalClass extends BaseModule { * founder's tag holder: 19 */ @prop({ type: () => ClaimStatus, _id: false }) - public claimStatus?: Map; + public claimStatus?: Map @prop() public earnTime: string @@ -86,7 +84,7 @@ export class CECRecordTotalClass extends BaseModule { */ @prop() public skipBind: number - + @prop({ enum: CECStatusEnum, default: CECStatusEnum.NORMAL }) public status: CECStatusEnum @@ -95,7 +93,7 @@ export class CECRecordTotalClass extends BaseModule { address: this.address, amount: this.amount.toString(), desc: this.desc, - earnTime: this.earnTime + earnTime: this.earnTime, } } } diff --git a/src/addboxdata.ts b/src/scripts/addboxdata.ts similarity index 100% rename from src/addboxdata.ts rename to src/scripts/addboxdata.ts diff --git a/src/batch_mail.ts b/src/scripts/batch_mail.ts similarity index 100% rename from src/batch_mail.ts rename to src/scripts/batch_mail.ts diff --git a/src/cecStatic.ts b/src/scripts/cecStatic.ts similarity index 98% rename from src/cecStatic.ts rename to src/scripts/cecStatic.ts index 1678f6f..495447e 100644 --- a/src/cecStatic.ts +++ b/src/scripts/cecStatic.ts @@ -7,8 +7,8 @@ import mongoose from 'mongoose' const envFile = process.env.NODE_ENV && process.env.NODE_ENV === 'production' ? `.env.production` : '.env.development' dotenv.config({ path: envFile }) console.log(process.env.DB_MAIN) -import { CECRecord } from './models/CECRecord' -import { CECRecordTotal } from './models/CECRecordTotal' +import { CECRecord } from 'models/CECRecord' +import { CECRecordTotal } from 'models/CECRecordTotal' const dbMain = mongoose.createConnection(process.env.DB_MAIN) diff --git a/src/checkredis.ts b/src/scripts/checkredis.ts similarity index 100% rename from src/checkredis.ts rename to src/scripts/checkredis.ts diff --git a/src/checkredis2.ts b/src/scripts/checkredis2.ts similarity index 100% rename from src/checkredis2.ts rename to src/scripts/checkredis2.ts diff --git a/src/exportBitget.ts b/src/scripts/exportBitget.ts similarity index 100% rename from src/exportBitget.ts rename to src/scripts/exportBitget.ts diff --git a/src/fixIngame.ts b/src/scripts/fixIngame.ts similarity index 100% rename from src/fixIngame.ts rename to src/scripts/fixIngame.ts diff --git a/src/fixdata.ts b/src/scripts/fixdata.ts similarity index 100% rename from src/fixdata.ts rename to src/scripts/fixdata.ts diff --git a/src/generateTaskId.ts b/src/scripts/generateTaskId.ts similarity index 100% rename from src/generateTaskId.ts rename to src/scripts/generateTaskId.ts diff --git a/src/generateToken.ts b/src/scripts/generateToken.ts similarity index 100% rename from src/generateToken.ts rename to src/scripts/generateToken.ts diff --git a/src/importCEC.ts b/src/scripts/importCEC.ts similarity index 100% rename from src/importCEC.ts rename to src/scripts/importCEC.ts diff --git a/src/initdata.ts b/src/scripts/initdata.ts similarity index 100% rename from src/initdata.ts rename to src/scripts/initdata.ts diff --git a/src/queryEthTx.ts b/src/scripts/queryEthTx.ts similarity index 100% rename from src/queryEthTx.ts rename to src/scripts/queryEthTx.ts diff --git a/src/queryReleation.ts b/src/scripts/queryReleation.ts similarity index 100% rename from src/queryReleation.ts rename to src/scripts/queryReleation.ts diff --git a/src/queryScoreList.ts b/src/scripts/queryScoreList.ts similarity index 100% rename from src/queryScoreList.ts rename to src/scripts/queryScoreList.ts diff --git a/src/rankquery.ts b/src/scripts/rankquery.ts similarity index 100% rename from src/rankquery.ts rename to src/scripts/rankquery.ts diff --git a/src/rankquery2.ts b/src/scripts/rankquery2.ts similarity index 100% rename from src/rankquery2.ts rename to src/scripts/rankquery2.ts diff --git a/src/removeNoChain.ts b/src/scripts/removeNoChain.ts similarity index 100% rename from src/removeNoChain.ts rename to src/scripts/removeNoChain.ts diff --git a/src/removeSybil.ts b/src/scripts/removeSybil.ts similarity index 100% rename from src/removeSybil.ts rename to src/scripts/removeSybil.ts diff --git a/src/repairdata.ts b/src/scripts/repairdata.ts similarity index 100% rename from src/repairdata.ts rename to src/scripts/repairdata.ts diff --git a/src/repairdata2.ts b/src/scripts/repairdata2.ts similarity index 100% rename from src/repairdata2.ts rename to src/scripts/repairdata2.ts diff --git a/src/repairredis.ts b/src/scripts/repairredis.ts similarity index 100% rename from src/repairredis.ts rename to src/scripts/repairredis.ts diff --git a/src/rewardSchedule.ts b/src/scripts/rewardSchedule.ts similarity index 100% rename from src/rewardSchedule.ts rename to src/scripts/rewardSchedule.ts diff --git a/src/testdraw.ts b/src/scripts/testdraw.ts similarity index 100% rename from src/testdraw.ts rename to src/scripts/testdraw.ts diff --git a/src/updateReleation.ts b/src/scripts/updateReleation.ts similarity index 100% rename from src/updateReleation.ts rename to src/scripts/updateReleation.ts diff --git a/src/services/chain.svr.ts b/src/services/chain.svr.ts index ed773d2..58a1dde 100644 --- a/src/services/chain.svr.ts +++ b/src/services/chain.svr.ts @@ -1,5 +1,5 @@ import { Contract } from 'ethers' -import { CECRecordTotalClass, CECStatusEnum, ClaimStatusEnum } from 'models/CECRecordTotal' +import { CECRecordTotalClass, ClaimStatusEnum } from 'models/CECRecordTotal' import { CheckIn } from 'models/chain/CheckIn' import { NftHolder } from 'models/chain/NftHolder' import { NftStake } from 'models/chain/NftStake' @@ -7,7 +7,6 @@ import { TokenClaimRecord } from 'models/chain/TokenClaimRecord' import { sign } from 'utils/sign.utils' import { getMonthBegin, getNDayAgo } from 'utils/utcdate.util' import { timeoutFetch } from 'zutils/utils/net.util' -import { numberToBN } from 'zutils/utils/number.util' const DEFAULT_TIMEOUT = 30000 const ACTIVITY_RPC_URL = process.env.ACTIVITY_RPC_URL @@ -169,20 +168,33 @@ export const fetchClaimStatus = async (address: string, taskId: string) => { return fetchChainStatus(address, `0x${method}${addressStr}${valStr}`) } -export const updateClaimStatus = async ( - {address, account, token, records}: - {address: string, account: string, token: string, records: Partial[]}) => { +export const updateClaimStatus = async ({ + address, + account, + token, + records, +}: { + address: string + account: string + token: string + records: Partial[] +}) => { const chain = process.env.CLAIM_CHAIN + '' - const record = await TokenClaimRecord.findOne({ chain, address: address.toLowerCase(), token: token.toLowerCase(), account }) + const record = await TokenClaimRecord.findOne({ + chain, + address: address.toLowerCase(), + token: token.toLowerCase(), + account, + }) if (!record) { return } const bitTotal = BigInt(record.bit) for (let item of records) { let changed = false - for ( let value of item.claimStatus.values()) { + for (let value of item.claimStatus.values()) { let bit = BigInt(value.bit) - if (value.status == ClaimStatusEnum.NORMAL && (bitTotal & 1n << bit) > 0n ) { + if (value.status == ClaimStatusEnum.NORMAL && (bitTotal & (1n << bit)) > 0n) { value.status = ClaimStatusEnum.CLAIMED changed = true //@ts-ignore @@ -193,32 +205,45 @@ export const updateClaimStatus = async ( //@ts-ignore await item.save() } - } } -const claimTokenAbi = [ - 'function claim(address,address,uint256[4],bytes)', -] +const claimTokenAbi = ['function claim(address,address,uint256[4],bytes)'] -const claimKeyArr = ["address","address", "address", "address", "uint256","uint256", "uint256", "uint256", "uint256"] +const claimKeyArr = ['address', 'address', 'address', 'address', 'uint256', 'uint256', 'uint256', 'uint256', 'uint256'] -export const buildTokenClaimData = async ({address, account, token, amount, bit, nonce}: - { - address: string, - account: string, - token: string, - amount: string, - bit: number | string, - nonce: string - }) => { +export const buildTokenClaimData = async ({ + address, + account, + token, + amount, + bit, + nonce, +}: { + address: string + account: string + token: string + amount: string + bit: number | string + nonce: string +}) => { const contract = new Contract(process.env.CLAIM_CONTRACT, claimTokenAbi) - const time = (Date.now() / 1000 | 0)+'' - bit = bit +'' - const signValArr = [address, account, token, process.env.CLAIM_CONTRACT, process.env.CLAIM_CHAIN, amount, bit, time, nonce] + const time = ((Date.now() / 1000) | 0) + '' + bit = bit + '' + const signValArr = [ + address, + account, + token, + process.env.CLAIM_CONTRACT, + process.env.CLAIM_CHAIN, + amount, + bit, + time, + nonce, + ] const signature = await sign(process.env.SIGN_PRIVATE_KEY, claimKeyArr, signValArr) const vals = [amount, bit, time, nonce] const params = [account, token, vals, signature] console.log(JSON.stringify(params)) return contract.populateTransaction['claim'](...params) -} \ No newline at end of file +}