set 'hello world' for description() to contract
qcli callcontract 816e13de2966cc56ca330d089aab849e5928eed5 90c3f38f 0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000c48656c6c6f20576f726c64210000000000000000000000000000000000000000
getDescription()
qcli callcontract 816e13de2966cc56ca330d089aab849e5928eed5 7284e416
输出:00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000
为什么它不会与set
方法返回相同的内容?无论我设置什么,它都会返回000。
我已经花了一整天时间,请有人帮忙。
答案 0 :(得分:0)
我不是QTUM专家,但看起来你使用的是错误的API。
大多数情况下,您将使用两个RPC调用来与合同进行交互 方法:
- callcontract在" query"中调用方法模式,使用您的数据 本地区块链,但不对其进行更改。这是免费的。
- senttocontract在" commit"中调用方法模式,创建一个 更改区块链的交易。这会花费你的气体。
callcontract
似乎是用于调用常量函数。如果您要更改区块链(发送交易),则需要使用sendtocontract
。
答案 1 :(得分:0)
首先,callcontract无法更改数据,应调用sendtocontract
然后这是一个错误的电话 qcli sendtocontract 8a0795de06d66bf20940f5ee35b9092483af82a5 90c3f38f 0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000c48656c6c6f20576f726c64210000000000000000000000000000000000000000
它应该是 qcli sendtocontract 8a0795de06d66bf20940f5ee35b9092483af82a5 90c3f38f0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000c48656c6c6f20576f726c64210000000000000000000000000000000000000000 方法和参数不应该有空格