Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Display the script transaction's type arguments #115

Open
jolestar opened this issue Jan 5, 2022 · 6 comments
Open

Display the script transaction's type arguments #115

jolestar opened this issue Jan 5, 2022 · 6 comments

Comments

@jolestar
Copy link
Member

jolestar commented Jan 5, 2022

  1. 展示出 ScriptFunction Transaction 的 type arguments (ty_args 字段), 例如 Token 和 NFT 转账需要通过 type arguments 来判断 Token 和 NFT 类型。
  2. 展示出 Event Name 中的 type 全名,如下图所示,只展示了一半。
    image
@wk3368
Copy link
Contributor

wk3368 commented Jan 20, 2022

@jolestar 麻烦提供一下这个截图的stcscan的url地址

@wytheme
Copy link

wytheme commented Jan 20, 2022

@jolestar 随机对比了 2 种 event, type_tag 差异很大,如下:

"0x00000000000000000000000000000001::Oracle::OracleUpdateEvent<0x82e35b34096f32c42061717c06e44a59::BTC_USD::BTC_USD, u128>"

"0x00000000000000000000000000000001::Account::DepositEvent"

是否可以理解成标准格式定义是只有三层:data::module::event,event = OracleUpdateEvent<0x82e35b34096f32c42061717c06e44a59::BTC_USD::BTC_USD, u128>

ps:去哪去了解这些原始的定义

@wytheme
Copy link

wytheme commented Jan 20, 2022

@jolestar 另,OracleUpdateEvent、NFTHarvestEvent 等在 starcoin.js 的 repo 中 onchain_events 中没有类似的定义,这部分定义在哪能看?sdk 需要补充?

https://github.com/starcoinorg/starcoin.js/blob/master/src/lib/runtime/onchain_events/index.ts

@jolestar
Copy link
Member Author

@wytheme 这个改进分两步:

  1. 先把交易以及 event 中的 type tag 展示完整。这个是现成的字段,不用解析。type tag 是 Move 的类型,Move 支持范型,所以有嵌套格式。
  2. event 的 data 解析有两个办法:
    • explorer 的服务端做通用的 event data 解析以及存储。 @ssyuan
    • 通过 contract.resolve_struct API 获取 event data 的类型定义,然后解析 data 的二进制字段。

@wytheme
Copy link

wytheme commented Jan 31, 2022

@jolestar

  1. 已确认
  2. 通过 contract.resolve_struct API 获取 event data 的类型定义,然后解析 data 的二进制字段。 contract.resolve_struct API 接口看了依然缺少 OracleUpdateEvent、NFTHarvestEvent 等相关的 struct 定义

@jolestar
Copy link
Member Author

jolestar commented Feb 6, 2022

@jolestar

  1. 已确认
  2. 通过 contract.resolve_struct API 获取 event data 的类型定义,然后解析 data 的二进制字段。 contract.resolve_struct API 接口看了依然缺少 OracleUpdateEvent、NFTHarvestEvent 等相关的 struct 定义

接口返回空?给一下调用 contract.resolve_struct 的参数,泛型有指定么?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants