【问题标题】:How do I make free read-only calls to a smart contract on Hedera blockchain network without incurring charges?如何在不产生费用的情况下对 Hedera 区块链网络上的智能合约进行免费的只读调用?
【发布时间】:2023-01-31 22:52:18
【问题描述】:

问题是我正在尝试对 Hedera 网络上的智能合约进行免费的只读调用,但遇到了意想不到的结果。我尝试了各种方法,但无法在不产生费用的情况下成功拨打电话。我正在寻找有关如何正确地对 Hedera 上的智能合约进行这些免费只读调用的解决方案或指南。

//Create the transaction
const transaction = new ContractExecuteTransaction()
     .setContractId(newContractId)
     .setFunction("get_message")

我希望这个 get_message 不会向我收取 HBAR,因为该函数只返回一个硬编码字符串,但我不能像我想的那样免费执行它。我该怎么做呢?

【问题讨论】:

    标签: smartcontracts hedera-hashgraph


    【解决方案1】:

    如果您使用的是 SDK,则使用 ContractCallQuery() 更适合只读查询。请参见下面的示例:

    // Query the contract to check changes in state variable
        const contractQueryTx1 = new ContractCallQuery()
            .setContractId(contractId)
            .setGas(100000)
            .setFunction("get_message";
        const contractQuerySubmit1 = await contractQueryTx1.execute(client);
    

    请注意,SDK 仍然需要少量气体。

    还有其他几种方法可以进行免费查询。

    【讨论】:

      猜你喜欢
      • 2021-11-21
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      • 2021-07-31
      • 1970-01-01
      • 2022-06-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多