diff --git a/src/transaction/TransactionReceiptQuery.js b/src/transaction/TransactionReceiptQuery.js index 07983ee4e..72c48f3c8 100644 --- a/src/transaction/TransactionReceiptQuery.js +++ b/src/transaction/TransactionReceiptQuery.js @@ -256,6 +256,7 @@ export default class TransactionReceiptQuery extends Query { case Status.ReceiptNotFound: return [status, ExecutionState.Retry]; case Status.Success: + case Status.FeeScheduleFilePartUploaded: return [status, ExecutionState.Finished]; default: return [ 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, diff --git a/test/integration/FileUpdateIntegrationTest.js b/test/integration/FileUpdateIntegrationTest.js index 450769689..e8e3acf62 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,29 @@ 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 DUMMY_TEXT = "Hello, Hedera!"; + + const client = Client.forLocalNode().setOperator( + OPERATOR_ID, + OPERATOR_KEY, + ); + + await ( + await new FileUpdateTransaction() + .setFileId(FEES_FILE_ID) + .setContents(DUMMY_TEXT) + .execute(client) + ).getReceipt(client); + }); + after(async function () { await env.close(); });