NEAR 智能合约调用/查看方法可以返回的最大数据长度是多少?

What is the max length of data that can be returned from a NEAR smart contract call / view method?

在主网上,我能够 return 一个 10kb 长度的字符串,而在测试网上,如果我尝试 return 2kb,我会得到 HostError(GasLimitExceeded)。什么是“官方”限制?

export function get_data(): Uint8Array {
  return new Uint8Array(2000);
}

返回 uint8 数组效率低下,因为它将被序列化为 JSON,例如[1, 5, 131, 5] 有 4 个值。

如果您需要传递二进制数据,最好先使用 base64 将其序列化。然后你可以在前端反序列化。通过 base64 和高效的数据读取,您应该能够 return 相当大的数据量。

主网和测试网的限制都应该是200Tgas。不确定为什么测试网与主网有不同的行为。