From 08f729d89f1a9bbf8a47b73daba151b1315d3581 Mon Sep 17 00:00:00 2001 From: Javier Viola Date: Fri, 24 Nov 2023 11:40:59 -0300 Subject: [PATCH] fix(test-runner): ignore invalid for perform upgrade tx --- .../src/jsapi-helpers/chainUpgrade.ts | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/javascript/packages/orchestrator/src/jsapi-helpers/chainUpgrade.ts b/javascript/packages/orchestrator/src/jsapi-helpers/chainUpgrade.ts index 7b68636c1..761313d04 100644 --- a/javascript/packages/orchestrator/src/jsapi-helpers/chainUpgrade.ts +++ b/javascript/packages/orchestrator/src/jsapi-helpers/chainUpgrade.ts @@ -128,9 +128,21 @@ async function performChainUpgrade(api: ApiPromise, code: string) { unsub(); return resolve(); } else if (result.isError) { - console.log(`Transaction Error`); unsub(); - return reject(); + if(result.status.isInvalid) { + // Allow `invalid` tx, since we will validate the hash of the `code` later + // The problem being that there are forks + // Block X is build with the tx included + // X gets retracted by Y that doesn't has the tx included + // And thus the tx lands in the tx pool again + // Then another block on top of x is build that tries to include the tx again and boom + // It reports it as invalid, because it was already included + console.log(`Transaction invalid:`, JSON.stringify(result)); + return resolve(); + } else { + console.log(`Transaction Error:`, JSON.stringify(result)); + return reject(); + } } }); });