My view should return multiple elements, but I always got only one.
I am calling my view with /vm-values/query
.
Should I use another gateway endpoint for the MultiValueEncoded view?
To resolve this issue, I used the queryContract
function from the class ApiNetworkProvider
in the erdjs
npm package.
const apiNetworkProvider = new ApiNetworkProvider("https://devnet-api.elrond.com");
const output = await apiNetworkProvider.queryContract({
address: "erd1....",
func: {
toString(): string {
return "myFunc";
}
},
getEncodedArguments() {
return []; // I don't need args
},
});
The returnData is encoded in base64, so I decoded like so:
const decodedData = output.returnData.map(data => Buffer.from(data, "base64").toString());