From 80b0db49b70d0eb35b9896cce1e9d73acd5d351f Mon Sep 17 00:00:00 2001 From: danielailie Date: Mon, 5 May 2025 11:44:34 +0300 Subject: [PATCH 1/2] Fix query parse when return data undefined --- src/core/smartContractQuery.ts | 2 +- .../apiNetworkProvider.dev.net.spec.ts | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/core/smartContractQuery.ts b/src/core/smartContractQuery.ts index 1f0702d54..7c0d5ae3a 100644 --- a/src/core/smartContractQuery.ts +++ b/src/core/smartContractQuery.ts @@ -49,7 +49,7 @@ export class SmartContractQueryResponse { let returnMessage = payload["returnMessage"] || payload["ReturnMessage"]; return new SmartContractQueryResponse({ - returnDataParts: returnData?.map((item) => Buffer.from(item || "", "base64")), + returnDataParts: returnData?.map((item) => Buffer.from(item || "", "base64")) ?? [], returnCode: returnCode, returnMessage: returnMessage, function: functionName, diff --git a/src/networkProviders/apiNetworkProvider.dev.net.spec.ts b/src/networkProviders/apiNetworkProvider.dev.net.spec.ts index 4e7183a82..121e34a00 100644 --- a/src/networkProviders/apiNetworkProvider.dev.net.spec.ts +++ b/src/networkProviders/apiNetworkProvider.dev.net.spec.ts @@ -382,4 +382,14 @@ describe("ApiNetworkProvider Tests", function () { const result = await apiProvider.queryContract(query); assert.equal(result.returnDataParts.length, 1); }); + + it("should query contract when undefined returnData", async () => { + const query = new SmartContractQuery({ + contract: Address.newFromBech32("erd1qqqqqqqqqqqqqpgqf738mcf8f08kuwhn8dvtka5veyad2fqwu00sqnjgln"), + function: "getAllProposers", + arguments: [], + }); + const result = await apiProvider.queryContract(query); + assert.equal(result.returnDataParts.length, 0); + }); }); From 1d878af03ea055931db2200cb03ce5fb0461730e Mon Sep 17 00:00:00 2001 From: danielailie Date: Mon, 5 May 2025 11:46:37 +0300 Subject: [PATCH 2/2] Add test also on proxy provider --- .../proxyNetworkProvider.dev.net.spec.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/networkProviders/proxyNetworkProvider.dev.net.spec.ts b/src/networkProviders/proxyNetworkProvider.dev.net.spec.ts index 39322cb17..1d6cea8c4 100644 --- a/src/networkProviders/proxyNetworkProvider.dev.net.spec.ts +++ b/src/networkProviders/proxyNetworkProvider.dev.net.spec.ts @@ -388,4 +388,14 @@ describe("ProxyNetworkProvider Tests", function () { const result = await proxy.queryContract(query); assert.equal(result.returnDataParts.length, 1); }); + + it("should query contract when undefined returnData", async () => { + const query = new SmartContractQuery({ + contract: Address.newFromBech32("erd1qqqqqqqqqqqqqpgqf738mcf8f08kuwhn8dvtka5veyad2fqwu00sqnjgln"), + function: "getAllProposers", + arguments: [], + }); + const result = await proxy.queryContract(query); + assert.equal(result.returnDataParts.length, 0); + }); });