首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ethereum/Solidity -查询事务

Ethereum/Solidity -查询事务
EN

Stack Overflow用户
提问于 2018-08-02 01:11:12
回答 1查看 2K关注 0票数 8

solidity是否能够根据事务中的数据查询它放置在区块链上的事务?通过查询,我的意思是在智能契约中运行的可靠代码(而不是运行在智能契约之外的web3.js )

所以昨天我的合同执行了首付交易,今天我想查询这个智能合同的任何/所有区块链交易,交易类型是"dp“还是首付?我希望在智能契约中运行或执行此查询代码。

我不是在tx哈希之后,我想要一个或多个事务的整个tx数据基于参数,比如事务类型、地址或日期/时间等等。

注意:我想通过在智能契约中执行稳固代码来查询这些事务。我不希望使用web3.js --请,请不要用web3.js提供答案--查询必须在智能契约中以可靠的代码完成。我很感谢你的帮助--但如果你的回答是web3.js,那么你真的帮不上忙

请-如果有人见过在可靠代码中查询区块链事务的例子,请张贴一个链接或提及它。很奇怪,您可以将事务发布到BC,但不存在内置于solidity中的get或检索或查询函数。老实说,这似乎很基本。

我发现,虽然solidity可以进行事件日志记录,但是所有的tx都被登录到BC中的一个特殊区域-- --在智能契约中执行的solidity代码无法读取这些日志( https://www.bitdegree.org/learn/solidity-events/ )。

我只是不明白it......why,为什么,为什么您会有一种语言来创建事务,但是不能读取它们或查询它们。对我来说没什么意义。

我非常感谢那些知识扎实的人的回答!!谢谢你的音乐

EN

回答 1

Stack Overflow用户

发布于 2018-08-02 01:20:10

这是不可能的契约不能查询块链历史记录中的任意状态。

你唯一的选择是:

  1. 维护合同中任何状态更改的记录,并检查这些状态以确定以前的事务是否已发生/当前事务是否有效。
  2. 使用web3从链上检索详细信息并将其作为参数传递给您的合同
  3. 使用像oraclize这样的服务从智能契约中查询外部数据。这最终也会使查询脱离链,但是您可以在智能契约中启动它,并将结果读取回来。
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51644214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档