readContract
readContract(params) is kept for compatibility.
On IOST, contract interaction is ABI-call based, so this API may still represent on-chain behavior depending on execution flow.
For pure read/query use cases, prefer publicClient read methods.