From fd9ccad3938a3708db156096606343dee0117228 Mon Sep 17 00:00:00 2001 From: Ivaylo Nikolov Date: Tue, 10 Sep 2024 01:48:40 +0300 Subject: [PATCH 1/4] fix: change FEE_SCHEDULE_FILE_PART_UPLOADED to not show as an error Signed-off-by: Ivaylo Nikolov --- src/transaction/TransactionReceiptQuery.js | 2 ++ src/transaction/TransactionResponse.js | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/transaction/TransactionReceiptQuery.js b/src/transaction/TransactionReceiptQuery.js index 07983ee4e..ffa1655f3 100644 --- a/src/transaction/TransactionReceiptQuery.js +++ b/src/transaction/TransactionReceiptQuery.js @@ -257,6 +257,8 @@ export default class TransactionReceiptQuery extends Query { return [status, ExecutionState.Retry]; case Status.Success: return [status, ExecutionState.Finished]; + case Status.FeeScheduleFilePartUploaded: + return [status, ExecutionState.Finished]; default: return [ status, diff --git a/src/transaction/TransactionResponse.js b/src/transaction/TransactionResponse.js index c9ba23ed1..a5ead4bf0 100644 --- a/src/transaction/TransactionResponse.js +++ b/src/transaction/TransactionResponse.js @@ -80,7 +80,10 @@ export default class TransactionResponse { async getReceipt(client) { const receipt = await this.getReceiptQuery().execute(client); - if (receipt.status !== Status.Success) { + if ( + receipt.status !== Status.Success && + receipt.status !== Status.FeeScheduleFilePartUploaded + ) { throw new ReceiptStatusError({ transactionReceipt: receipt, status: receipt.status, From 5257f1639811631cb441eb3d2cf6214b9ce86278 Mon Sep 17 00:00:00 2001 From: Ivaylo Nikolov Date: Thu, 19 Sep 2024 23:32:18 +0300 Subject: [PATCH 2/4] test: add integration test for fee schedule file Signed-off-by: Ivaylo Nikolov --- test/integration/FileUpdateIntegrationTest.js | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/test/integration/FileUpdateIntegrationTest.js b/test/integration/FileUpdateIntegrationTest.js index 450769689..9db9f250c 100644 --- a/test/integration/FileUpdateIntegrationTest.js +++ b/test/integration/FileUpdateIntegrationTest.js @@ -5,8 +5,10 @@ import { FileInfoQuery, Hbar, Status, + AccountId, + PrivateKey, } from "../../src/exports.js"; -import IntegrationTestEnv from "./client/NodeIntegrationTestEnv.js"; +import IntegrationTestEnv, { Client } from "./client/NodeIntegrationTestEnv.js"; describe("FileUpdate", function () { let env; @@ -94,6 +96,28 @@ describe("FileUpdate", function () { } }); + it("should not error when FEE_SCHEDULE_FILE_PART_UPLOADED response", async function () { + this.timeout(120000); + + const OPERATOR_ID = AccountId.fromString("0.0.2"); + const OPERATOR_KEY = PrivateKey.fromStringED25519( + "302e020100300506032b65700422042091132178e72057a1d7528025956fe39b0b847f200ab59b2fdd367017f3087137", + ); + const FEES_FILE_ID = "0.0.111"; + + const client = Client.forLocalNode().setOperator( + OPERATOR_ID, + OPERATOR_KEY, + ); + + await ( + await new FileUpdateTransaction() + .setFileId(FEES_FILE_ID) + .setContents("Hello, Hedera!") + .execute(client) + ).getReceipt(client); + }); + after(async function () { await env.close(); }); From 3fad95188f36ac2ec837aa1d689b8afbfd64621b Mon Sep 17 00:00:00 2001 From: Ivaylo Nikolov Date: Fri, 20 Sep 2024 13:06:40 +0300 Subject: [PATCH 3/4] refactor(test): add const variable for dummy text Signed-off-by: Ivaylo Nikolov --- test/integration/FileUpdateIntegrationTest.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/integration/FileUpdateIntegrationTest.js b/test/integration/FileUpdateIntegrationTest.js index 9db9f250c..e8e3acf62 100644 --- a/test/integration/FileUpdateIntegrationTest.js +++ b/test/integration/FileUpdateIntegrationTest.js @@ -104,6 +104,7 @@ describe("FileUpdate", function () { "302e020100300506032b65700422042091132178e72057a1d7528025956fe39b0b847f200ab59b2fdd367017f3087137", ); const FEES_FILE_ID = "0.0.111"; + const DUMMY_TEXT = "Hello, Hedera!"; const client = Client.forLocalNode().setOperator( OPERATOR_ID, @@ -113,7 +114,7 @@ describe("FileUpdate", function () { await ( await new FileUpdateTransaction() .setFileId(FEES_FILE_ID) - .setContents("Hello, Hedera!") + .setContents(DUMMY_TEXT) .execute(client) ).getReceipt(client); }); From a84bbd3cd9abce456ba858be1fab570a7244c3d9 Mon Sep 17 00:00:00 2001 From: Ivaylo Nikolov Date: Thu, 26 Sep 2024 16:59:02 +0300 Subject: [PATCH 4/4] chore: reuse finished status Signed-off-by: Ivaylo Nikolov --- src/transaction/TransactionReceiptQuery.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/transaction/TransactionReceiptQuery.js b/src/transaction/TransactionReceiptQuery.js index ffa1655f3..72c48f3c8 100644 --- a/src/transaction/TransactionReceiptQuery.js +++ b/src/transaction/TransactionReceiptQuery.js @@ -256,7 +256,6 @@ export default class TransactionReceiptQuery extends Query { case Status.ReceiptNotFound: return [status, ExecutionState.Retry]; case Status.Success: - return [status, ExecutionState.Finished]; case Status.FeeScheduleFilePartUploaded: return [status, ExecutionState.Finished]; default: