首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >以太坊智能合约更新、交易和事件

以太坊智能合约更新、交易和事件
EN

Stack Overflow用户
提问于 2019-02-01 11:42:27
回答 1查看 44关注 0票数 1

我有一个关于Ethereum中智能合约版本控制的问题。关于如何解耦您的逻辑和数据,如何在引用其他契约时使用接口,如何使用泛型键值存储来存储数据,以及如何通过库函数以强类型的方式检索数据,已经写了很多文章。

如何从旧版本的智能合约中查询交易和事件日志?不能迁移事务和发出的事件。它们是不可变的。也许你需要在客户端应用程序中记录他们的历史。可以在不同的合同版本中添加、删除或更改事件的签名。如何处理合同的多个版本的事务输入和事件数据的查询和解码?

EN

回答 1

Stack Overflow用户

发布于 2020-12-07 17:41:59

固态中的每个事件都由其签名的散列在内部表示。函数也是由散列表示的。

代码语言:javascript
运行
复制
let encodedFunctionSignature = web3.eth.abi.encodeFunctionSignature('sendMessage(string,address)');
 console.log(encodedFunctionSignature);
 // => 0xc48d6d5e

签名是函数签名字符串接管的keccak256散列的前32个字节,删除了空格。

如果事件签名更改,散列也会更改,您可以区分事件的不同ABI。

然后,您只需拥有匹配版本的ABI文件,即可将事件解码为人类可读的符号形式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54472575

复制
相关文章

相似问题

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