Aptos概念——事件

系统工
• 阅读 931

在执行交易的过程中,会触发事件。每个 Move 模块都可以定义自己的事件,并且决定何时触发这些事件。例如,在一个“转账”(coin tranfer)动作发生时,发送人和接收人账户,会依次分别触发SentEvent事件和ReceiveEvent事件。事件触发的数据,会被存储到链上,并且可以通过 REST 服务来查询,参见“通过事件句柄获取事件信息”。
假设下列账户:
0xc40f1c9b9fdc204cf77f68c9bb7029b0abbe8ad9e5561f7794964076a4fbdcfd
已经完成了向另外一个账户转账,通过以下的 REST 接口可以查询相关信息:
[https://fullnode.devnet.aptoslabs.com/v1/accounts/c40f1c9b9fdc204cf77f68c9bb7029b0abbe8ad9e5561f7794964076a4fbdcfd/events/0x1::coin::CoinStore<0x1::aptos_coin::AptosCoin>/withdraw_events](https://fullnode.devnet.aptoslabs.com/v1/accounts/c40f1c9b9fdc204cf77f68c9bb7029b0abbe8ad9e5561f7794964076a4fbdcfd/events/0x1::coin::CoinStore<0x1::aptos_coin::AptosCoin>/withdraw_events)
该接口会返回指定账户下所有的提现事件,类似下面的样子:

[{
  "key":"0x0000000000000000caa60eb4a01756955ab9b2d1caca52ed",
  "sequence_number":"0",
  "type":"0x1::coin::WithdrawEvent",
  "data":{
    "amount":"1000"
  }
}]

每个注册过的事件,都有一个唯一的 key。比如
0x0000000000000000c40f1c9b9fdc204cf77f68c9bb7029b0abbe8ad9e5561f7794964076a4fbdcfd
这个key,就对应着账户
0xc40f1c9b9fdc204cf77f68c9bb7029b0abbe8ad9e5561f7794964076a4fbdcfd
上的事件
0x1::coin::CoinStore<0x1::aptos_coin::AptosCoin>/sent_events
查询事件的时候,可以直接用这个 key 当参数:
[https://fullnode.devnet.aptoslabs.com/v1/events/0000000000000000c40f1c9b9fdc204cf77f68c9bb7029b0abbe8ad9e5561f7794964076a4fbdcfd](https://fullnode.devnet.aptoslabs.com/v1/events/0000000000000000c40f1c9b9fdc204cf77f68c9bb7029b0abbe8ad9e5561f7794964076a4fbdcfd)

上述事件流,或者说一组事件列表,每一条都包含一个从0开始有序递增的序列号字段,一个类型字段和数据字段。每条事件必须预先定义好类型。可能有多条事件具有相同或相近的类型,特别是在使用泛型的时候。事件可以有关联的数据;一般说来,这些数据应该包含所有变化的信息,让用户能够查询到交易执行前后,相关的资源发生了哪些变化,从而触发了事件。

点赞
收藏
评论区
推荐文章
菜园前端 菜园前端
2年前
JavaScript中常用事件
原文链接:鼠标事件鼠标单击事件click在文档中鼠标进行单击,就会触发事件。javascriptvari0document.addEventListener('click',function()console.log(i))鼠标双击事件dblclick
Stella981 Stella981
3年前
Android Hook技术
1\.什么是HookHook英文翻译过来就是「钩子」的意思,那我们在什么时候使用这个「钩子」呢?在Android操作系统中系统维护着自己的一套事件分发机制。应用程序,包括应用触发事件和后台逻辑处理,也是根据事件流程一步步地向下执行。而「钩子」的意思,就是在事件传送到终点前截获并监控事件的传输,像个钩子钩上事件一样,并且能够在钩上事件时
Stella981 Stella981
3年前
Apache Synapse 远程代码执行漏洞(CVE
!(https://oscimg.oschina.net/oscnet/435fc4cde65d4aee9a2efca3080cb89e.png)0x00事件背景ApacheSynapse是一个简单、轻量级的高性能企业服务总线(ESB),它是在ApacheSoftwareFoun
Wesley13 Wesley13
3年前
NEO从源码分析看UTXO交易
_0x00前言_社区大佬:“交易是操作区块链的唯一方式。”_0x01交易类型_在NEO中,几乎除了共识之外的所有的对区块链的操作都是一种“交易”,甚至在“交易”面前,合约都只是一个小弟。交易类型的定义在Core中的TransactionType中:源码位置:neo/Core/TransactionType
Easter79 Easter79
3年前
Swing自定义事件
1.Swing自定义事件将一个组件的事件传递给另一个组件.使用EventListenerList来管理事件,当A组件触发事件的时候,调用方法fireActionPerformed()来触发事件,然后再B组件中actionPerformed()方法来接收事件.当在容器KeyTextComponent中按下鼠标,我们就可以在Jframe中捕获触发的事
Stella981 Stella981
3年前
Noark入门之异步事件
引入异步事件主要是为了各模块的解耦,每当完成一个动作时,向系统发布一个事件,由关心的模块自己监听处理,可选择同步处理,异步处理,延迟处理。何时发布事件,当其他模块关心此动作时<br比如获得道具时,任务系统模块要判定完成进度,BI模块需要上报等等都可以监听此事件,已达模块解耦0x00事件源一个实现xyz.noark.core.event
Stella981 Stella981
3年前
JavaScript事件属性event.target和currentTarget 属性的区别。
event.target获取的是触发事件的标签元素event.currentTarget获取到的是发起事件的标签元素一、事件属性:event.targettarget事件委托的定义:本来该自己干的事,但是自己不干,交给别人来干例子1!(https://oscimg.oschina.n
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Stella981 Stella981
3年前
JavaScript——页面相关事件
页面事件是在页面加载或改变浏览器的大小、位置,以及对页面中的滚动条进行操作时,所触发的事件处理程序。加载与卸载事件加载事件(onload)是在网页加载完毕后触发相应的事件处理程序,它可以在网页加载完成后对网页中的表格样式、字体、背景颜色等进行设置。卸载事件(unload)是在卸载网页时触发相应的事件处理程序,卸载网页是指关闭当前页或
飞码LowCode前端技术系列(二):如何便捷配置出页面 | 京东云技术团队
一、配置解法中飞码提出了至少需要满足2个大能力点以及对应16个细化点。在业务复杂的场景下数据具有流转性质,事件的触发会改变数据、同时也会触发其他事件等情况。飞码使用数据驱动事件驱动的模式解决数据流转性与事件不确定性问题。数据驱动事件驱动的模式决定了需要
美凌格栋栋酱 美凌格栋栋酱
5个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(