Solidity函数不会将哈希数组返回给W3

时间:2018-09-02 14:05:40

标签: node.js ethereum solidity web3 quorum

我有一个K方法,该方法从合同中获取字符串列表,对每个字符串进行哈希处理并返回一个哈希数组。我在class CalendarThematicPlanModel extends FilterMethods<ICalendarThematicPlanShort> implements IModel<W> { public constructor(public model?: ICalendarThematicPlanShort) { super(); } public validField<K extends keyof ICalendarThematicPlanShort>(key:K) { this.model[key]; } } 中进行了测试,效果很好。

在开发中,我正在从solidity调用此函数,但由于某种原因要返回不包含哈希数组的Remix

我应该补充一点,我的nodejs提供者不是[object Object],而是web3的{​​{1}}

这是Ethereum函数:

Quorum

这是7nodes example.代码:

solidity

1 个答案:

答案 0 :(得分:1)

您想要.send(...)而不是.call(...)。前者将交易广播到网络,结果是交易哈希,最终(一旦开采了交易)便是交易收据。交易没有智能合约的回报价值。

.call(...)用于view函数。它在本地(仅在您连接到的节点上)计算函数调用的结果,而不发送事务,并将结果返回给您。区块链中没有状态变化,因为没有广播任何交易。 call不需要汽油。