Skip to content

Commit 1ac54a4

Browse files
authored
Merge pull request #603 from multiversx/TOOL-562-fix-query-result-parser
Fix query parse when return data undefined
2 parents d0a9791 + 1d878af commit 1ac54a4

File tree

3 files changed

+21
-1
lines changed

3 files changed

+21
-1
lines changed

src/core/smartContractQuery.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ export class SmartContractQueryResponse {
4949
let returnMessage = payload["returnMessage"] || payload["ReturnMessage"];
5050

5151
return new SmartContractQueryResponse({
52-
returnDataParts: returnData?.map((item) => Buffer.from(item || "", "base64")),
52+
returnDataParts: returnData?.map((item) => Buffer.from(item || "", "base64")) ?? [],
5353
returnCode: returnCode,
5454
returnMessage: returnMessage,
5555
function: functionName,

src/networkProviders/apiNetworkProvider.dev.net.spec.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -382,4 +382,14 @@ describe("ApiNetworkProvider Tests", function () {
382382
const result = await apiProvider.queryContract(query);
383383
assert.equal(result.returnDataParts.length, 1);
384384
});
385+
386+
it("should query contract when undefined returnData", async () => {
387+
const query = new SmartContractQuery({
388+
contract: Address.newFromBech32("erd1qqqqqqqqqqqqqpgqf738mcf8f08kuwhn8dvtka5veyad2fqwu00sqnjgln"),
389+
function: "getAllProposers",
390+
arguments: [],
391+
});
392+
const result = await apiProvider.queryContract(query);
393+
assert.equal(result.returnDataParts.length, 0);
394+
});
385395
});

src/networkProviders/proxyNetworkProvider.dev.net.spec.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -388,4 +388,14 @@ describe("ProxyNetworkProvider Tests", function () {
388388
const result = await proxy.queryContract(query);
389389
assert.equal(result.returnDataParts.length, 1);
390390
});
391+
392+
it("should query contract when undefined returnData", async () => {
393+
const query = new SmartContractQuery({
394+
contract: Address.newFromBech32("erd1qqqqqqqqqqqqqpgqf738mcf8f08kuwhn8dvtka5veyad2fqwu00sqnjgln"),
395+
function: "getAllProposers",
396+
arguments: [],
397+
});
398+
const result = await proxy.queryContract(query);
399+
assert.equal(result.returnDataParts.length, 0);
400+
});
391401
});

0 commit comments

Comments
 (0)