From 2e3fd65f4a127b54d6a48ad71a80aa9c7d55cd99 Mon Sep 17 00:00:00 2001 From: yuhui <1161569428@qq.com> Date: Mon, 21 Mar 2022 13:44:48 +0800 Subject: [PATCH 1/8] Fix ill files transaction --- src/index.ts | 24 +++++++++++++----------- src/services/util.ts | 4 ++-- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/src/index.ts b/src/index.ts index 466ff72..a3df4aa 100644 --- a/src/index.ts +++ b/src/index.ts @@ -25,8 +25,10 @@ const errorHandler = ( }); } - services.initApi(); - logger.warn('📡 [global]: Connection reinitialized.'); + // services.initApi(); + // logger.warn('📡 [global]: Connection reinitialized.'); + logger.warn('📡 [global]: Apps go to reload.'); + process.exit(1); }; const loggingResponse = (_: Request, res: Response, next: NextFunction) => { @@ -65,15 +67,15 @@ app.post('/api/v1/swork/workreport', services.swork.reportWorks); app.use(errorHandler); process.on('uncaughtException', (err: Error) => { logger.error(`☄️ [global] Uncaught exception ${err.message}`); - if (++errorHandlingCount <= maxErrorHandlingCount) { - errorHandler(err, null, null, null); - } else { - logger.error( - 'Reach max error handling count, just exit and waitinng for restart' - ); - // eslint-disable-next-line no-process-exit - process.exit(1); - } + // if (++errorHandlingCount <= maxErrorHandlingCount) { + // errorHandler(err, null, null, null); + // } else { + // logger.error( + // 'Reach max error handling count, just exit and waitinng for restart' + // ); + // } + // eslint-disable-next-line no-process-exit + process.exit(1); }); app.listen(PORT, () => { diff --git a/src/services/util.ts b/src/services/util.ts index 199f913..81b8aab 100644 --- a/src/services/util.ts +++ b/src/services/util.ts @@ -31,13 +31,13 @@ export async function sendTx(tx: SubmittableExtrinsic, krp: KeyringPair) { ` ↪ 💸 [tx]: Transaction status: ${status.type}, nonce: ${tx.nonce}` ); - if (status.isInvalid || status.isDropped || status.isUsurped) { + if (status.isInvalid || status.isDropped || status.isUsurped || status.isRetracted) { reject(new Error(`${status.type} transaction.`)); } else { // Pass it } - if (status.isInBlock) { + if (status.isFinalized) { events.forEach(({event: {data, method, section}}) => { if (section === 'system' && method === 'ExtrinsicFailed') { const [dispatchError] = data as unknown as ITuple<[DispatchError]>; From 3aa94b06364fbf300e55fcbc1e651769f9ca8814 Mon Sep 17 00:00:00 2001 From: yuhui <1161569428@qq.com> Date: Mon, 21 Mar 2022 13:54:27 +0800 Subject: [PATCH 2/8] Fix lint --- src/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/index.ts b/src/index.ts index a3df4aa..7bebc27 100644 --- a/src/index.ts +++ b/src/index.ts @@ -7,8 +7,8 @@ import timeout from 'connect-timeout'; const app = express(); const PORT = process.argv[2] || 56666; -const maxErrorHandlingCount = 10; -let errorHandlingCount = 0; +// const maxErrorHandlingCount = 10; +// let errorHandlingCount = 0; const errorHandler = ( err: any, From 8aaf95bd542a11ea7f618e4fdb80e732f26a8d9c Mon Sep 17 00:00:00 2001 From: yuhui <1161569428@qq.com> Date: Mon, 21 Mar 2022 13:56:45 +0800 Subject: [PATCH 3/8] Fix --- src/services/util.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/services/util.ts b/src/services/util.ts index 81b8aab..9f02a51 100644 --- a/src/services/util.ts +++ b/src/services/util.ts @@ -31,7 +31,12 @@ export async function sendTx(tx: SubmittableExtrinsic, krp: KeyringPair) { ` ↪ 💸 [tx]: Transaction status: ${status.type}, nonce: ${tx.nonce}` ); - if (status.isInvalid || status.isDropped || status.isUsurped || status.isRetracted) { + if ( + status.isInvalid || + status.isDropped || + status.isUsurped || + status.isRetracted + ) { reject(new Error(`${status.type} transaction.`)); } else { // Pass it From 35c6f8208eef9602b6fff74e6fea9a9917d49158 Mon Sep 17 00:00:00 2001 From: yuhui <1161569428@qq.com> Date: Mon, 21 Mar 2022 13:58:17 +0800 Subject: [PATCH 4/8] Fix lint --- src/services/util.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/services/util.ts b/src/services/util.ts index 9f02a51..cf12530 100644 --- a/src/services/util.ts +++ b/src/services/util.ts @@ -32,11 +32,11 @@ export async function sendTx(tx: SubmittableExtrinsic, krp: KeyringPair) { ); if ( - status.isInvalid || - status.isDropped || - status.isUsurped || + status.isInvalid || + status.isDropped || + status.isUsurped || status.isRetracted - ) { + ) { reject(new Error(`${status.type} transaction.`)); } else { // Pass it From 504d2e39976e3e073b8fdc391706589c90cc07e8 Mon Sep 17 00:00:00 2001 From: yuhui <1161569428@qq.com> Date: Mon, 21 Mar 2022 14:04:06 +0800 Subject: [PATCH 5/8] fix lint --- src/services/util.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/services/util.ts b/src/services/util.ts index cf12530..450e89e 100644 --- a/src/services/util.ts +++ b/src/services/util.ts @@ -45,7 +45,9 @@ export async function sendTx(tx: SubmittableExtrinsic, krp: KeyringPair) { if (status.isFinalized) { events.forEach(({event: {data, method, section}}) => { if (section === 'system' && method === 'ExtrinsicFailed') { - const [dispatchError] = data as unknown as ITuple<[DispatchError]>; + const [dispatchError] = (data as unknown) as ITuple< + [DispatchError] + >; const result: TxRes = { status: 'failed', message: dispatchError.type, From 0f10ec57c1e2e9f4df0c12ff0f9e09fdd6df9580 Mon Sep 17 00:00:00 2001 From: yuhui <1161569428@qq.com> Date: Mon, 21 Mar 2022 14:06:06 +0800 Subject: [PATCH 6/8] disable no process exit lint --- src/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/index.ts b/src/index.ts index 7bebc27..aed3f0c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -28,6 +28,7 @@ const errorHandler = ( // services.initApi(); // logger.warn('📡 [global]: Connection reinitialized.'); logger.warn('📡 [global]: Apps go to reload.'); + // eslint-disable-next-line no-process-exit process.exit(1); }; From 526c687a36b2522e9fca214c2200947cb2a47ff6 Mon Sep 17 00:00:00 2001 From: yuhui <1161569428@qq.com> Date: Mon, 21 Mar 2022 14:09:09 +0800 Subject: [PATCH 7/8] Fix --- src/services/util.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/services/util.ts b/src/services/util.ts index 450e89e..cf12530 100644 --- a/src/services/util.ts +++ b/src/services/util.ts @@ -45,9 +45,7 @@ export async function sendTx(tx: SubmittableExtrinsic, krp: KeyringPair) { if (status.isFinalized) { events.forEach(({event: {data, method, section}}) => { if (section === 'system' && method === 'ExtrinsicFailed') { - const [dispatchError] = (data as unknown) as ITuple< - [DispatchError] - >; + const [dispatchError] = data as unknown as ITuple<[DispatchError]>; const result: TxRes = { status: 'failed', message: dispatchError.type, From c4256705145e0eb5f9e14ad95d09ac4a58cceb01 Mon Sep 17 00:00:00 2001 From: yuhui <1161569428@qq.com> Date: Mon, 21 Mar 2022 16:57:14 +0800 Subject: [PATCH 8/8] Add api initial delay --- src/services/util.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/services/util.ts b/src/services/util.ts index cf12530..b151d8c 100644 --- a/src/services/util.ts +++ b/src/services/util.ts @@ -90,6 +90,7 @@ export function queryToObj(queryRes: any) { export async function withApiReady(fn: Function, next: NextFunction) { const api = getApi(); + await sleep(1000); if (!api || !api.isConnected) { next(new Error('⚠️ Chain is offline, please connect a running chain.')); return;