文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

如何在TRON区块链上查询交易

2024-12-03 05:55

关注

本文转载自微信公众号「区块链研究实验室」,作者链三丰。转载本文请联系区块链研究实验室公众号。

乙锁链交易是两个或多个地址之间交互的记录。

在TRON区块链上,通常有两个交互地址,并且它们之间的交互可以采用许多不同的形式(例如,创建新帐户或资产,触发智能合约,资产转移等)。

每个事务都可以通过其哈希ID(包含64个字母数字字符)来唯一识别。

获取有关交易或一组交易的信息是区块链数据分析的核心。

本文演示了如何使用R包tronr(用于探索TRON网络的工具箱)收集此类信息。

查询个人交易

tronr程序包中的几个功能允许查询事务数据。关键功能之一是get_tx_info_by_id(),它根据交易的ID(以嵌套tibble的形式)返回交易的属性。这样的ID可以利用其他几种可以获得tronr的功能,例如get_block_info(),get_blocks_for_time_range(),get_tx_for_time_range()等。这里是一个例子:

  1. require(tronr) 
  2. require(dplyr) 
  3. require(tidyr) 
  4. #> R toolbox to explore the TRON blockchain 
  5. #> Developed by Next Game Solutions (http://nextgamesolutions.com) 
  6. # Get transactions of the latest block: 
  7. latest_block <- get_block_info(latest = TRUE
  8. # Pick an example transaction
  9. tx_id <- latest_block$tx[[1]]$tx_id[1] 
  10. tx_id 
  11. "074ce32ed2ca89c69e54e4ac4ff5ee825df33f6cf087d869c44dc3456f349855" 
  12. # Retrieve transaction attributes (see documentation for their  
  13. # definitions): 
  14. r1 <- get_tx_info_by_id(tx_id = tx_id, add_contract_data = FALSE
  15. glimpse(r1) 
  16. #> Rows: 1 
  17. #> Columns: 19 
  18. #> $ request_time              2021-03-31 19:22:57 
  19. #> $ tx_id                     "074ce32ed2ca89c69e54e4ac4f... 
  20. #> $ block_number              "28941541" 
  21. #> $ timestamp                 2021-03-31 19:19:06 
  22. #> $ contract_result           "SUCCESS" 
  23. #> $ confirmed                 TRUE 
  24. #> $ confirmations_count      <int> 71 
  25. #> $ sr_confirm_list           [
  26. #> $ contract_type             "TriggerSmartContract" 
  27. #> $ from_address              "TSrS5zMUgzHe688XcZ4PnN5Y3c... 
  28. #> $ to_address                "TDxYAUHTw7Tk9NQfDJk9wmcsb2... 
  29. #> $ is_contract_from_address  FALSE 
  30. #> $ is_contract_to_address    TRUE 
  31. #> $ costs                     [
  32. #> $ trx_transfer              9.906872 
  33. #> $ trc10_transfer            NA 
  34. #> $ trc20_transfer            [
  35. #> $ internal_tx               [
  36. #> $ info                      NA 

如果将add_contact_data参数设置为TRUE,则生成的小还将具有名为的列contract_data。

该列将包含一个列表,其中包含执行相关交易的智能合约生成的原始数据。该清单的实际内容取决于每笔交易和各自合同的性质:

  1. r2 <- get_tx_info_by_id(tx_id = tx_id, add_contract_data = TRUE
  2. glimpse(r1) 
  3. #> Rows: 1 
  4. #> Columns: 20 
  5. #> $ request_time              2021-03-31 19:28:23 
  6. #> $ tx_id                     "074ce32ed2ca89c69e54e4ac4f... 
  7. #> $ block_number              "28941541" 
  8. #> $ timestamp                 2021-03-31 19:19:06 
  9. #> $ contract_result           "SUCCESS" 
  10. #> $ confirmed                 TRUE 
  11. #> $ confirmations_count      <int> 180 
  12. #> $ sr_confirm_list           [
  13. #> $ contract_type             "TriggerSmartContract" 
  14. #> $ from_address              "TSrS5zMUgzHe688XcZ4PnN5Y3c... 
  15. #> $ to_address                "TDxYAUHTw7Tk9NQfDJk9wmcsb2... 
  16. #> $ is_contract_from_address  FALSE 
  17. #> $ is_contract_to_address    TRUE 
  18. #> $ costs                     [
  19. #> $ trx_transfer              9.906872 
  20. #> $ trc10_transfer            NA 
  21. #> $ trc20_transfer            [
  22. #> $ internal_tx               [
  23. #> $ info                      NA 
  24. #> $ contract_data             [["422f1043000000000000000... 
  25. r2$contract_data[[1]] 
  26. #> $data 
  27. #> [1]"422f1043000000000000000000000000000000000000000000000000... 
  28. #> 
  29. #> $owner_address 
  30. #> [1] "TSrS5zMUgzHe688XcZ4PnN5Y3cHQA3euWt" 
  31. #>  
  32. #> $contract_address 
  33. #> [1] "TDxYAUHTw7Tk9NQfDJk9wmcsb26S8kHbdF" 
  34. #> $call_value 
  35. #> [1] 9906872 

请注意,在返回的tibbles所有令牌数量get_tx_info_by_id()(trx_transfer,trc10_transfer,trc20_transfer,和internal_tx)使用的整数和小数部分表示。

但如果是add_contract_data = TRUE,则返回的原始合同数据按“原样”显示(即无需任何解析或其他处理),因此该数据中存在的任何令牌量都使用机器级精度表示。

查询时间范围

要在特定时间段内检索交易及其属性的列表,可以使用该get_tx_for_time_range()功能。与相比get_tx_info_by_id(),此函数有两个附加参数定义了感兴趣的时间范围-min_timestamp和max_timestamp。这两个附加参数都期望Unix时间戳(包括毫秒):

  1. tx_df <- get_tx_for_time_range(min_timestamp = "1577836800000"
  2.                                max_timestamp = "1577836803000"
  3. glimpse(tx_df) 
  4. #> Rows: 41 
  5. #> Columns: 20 
  6. #> $ request_time              2021-03-31 19:45:21, 2... 
  7. #> $ tx_id                     "5f131118e7e24725906a72... 
  8. #> $ block_number              "15860581""15860581",... 
  9. #> $ timestamp                 2020-01-01, 2020-01-01... 
  10. #> $ contract_result           "SUCCESS""SUCCESS", "... 
  11. #> $ confirmed                 TRUETRUETRUETRUE,... 
  12. #> $ confirmations_count      <int> 13081480, 13081480, 130... 
  13. #> $ sr_confirm_list           [
  14. #> $ contract_type             "TransferAssetContract"... 
  15. #> $ from_address              "TXmUfpBfxRTdbZXhzuqEJK... 
  16. #> $ to_address                "TCQBxaNNQ2h1HbrWxWSg7A... 
  17. #> $ is_contract_from_address  FALSEFALSEFALSE, FA... 
  18. #> $ is_contract_to_address    FALSETRUETRUETRUE... 
  19. #> $ costs                     [
  20. #> $ trx_transfer              0.000, 200.000, 0.000, ... 
  21. #> $ trc10_transfer            [NULL... 
  22. #> $ trc20_transfer            NA, NA, NA, NA, NA, NA,... 
  23. #> $ internal_tx               [NULLNULL
  24. #> $ info                      NA, NA, NA, NA, NA, NA,... 
  25. #> $ contract_data             [[10000000, "1002830",... 

请注意,get_tx_for_time_range()在后台进行了多个Tronscan API调用。

作为上发生的TRON blockchain交易的数量是非常大的,用户因此宜选择min_timestamp和max_timestamp是明智之举。如果请求的时间范围太大,则基础Tronscan API返回的最大事务数将被限制为10000,并且处理时间可能会变得过长。

在这种情况下,将感兴趣的时间范围划分为较小的时间段可以帮助避免数据缺口。

查询特定帐户的交易

还可以使用该get_tx_info_by_account_address()功能来检索特定帐户的交易数据。此外,可以在特定时间范围内完成此操作:

  1. tx_df_acc <- get_tx_info_by_account_address( 
  2.   address = "TAUN6FwrnwwmaEqYcckffC7wYmbaS6cBiX"
  3.   min_timestamp = "1577836800000"
  4.   max_timestamp = "1577838600000" 
  5.  
  6. glimpse(tx_df_acc) 
  7. #> Rows: 18 
  8. #> Columns: 21 
  9. #> $ request_time              2021-03-31 19:55:31, 2... 
  10. #> $ address                   "TAUN6FwrnwwmaEqYcckffC... 
  11. #> $ tx_id                     "36ec18062510f22a469bfb... 
  12. #> $ block_number              "15860591""15860591",... 
  13. #> $ timestamp                 2020-01-01 00:00:36, 2... 
  14. #> $ contract_result           "SUCCESS""SUCCESS", "... 
  15. #> $ confirmed                 TRUETRUETRUETRUE,... 
  16. #> $ confirmations_count      <int> 13081672, 13081672, 130... 
  17. #> $ sr_confirm_list           [
  18. #> $ contract_type             "TransferContract", "Tr... 
  19. #> $ from_address              "TAUN6FwrnwwmaEqYcckffC... 
  20. #> $ to_address                "TDn2MK7n5SqVksSZtQDAhD... 
  21. #> $ is_contract_from_address  FALSEFALSEFALSE, FA... 
  22. #> $ is_contract_to_address    FALSEFALSEFALSE, FA... 
  23. #> $ costs                     [
  24. #> $ trx_transfer              664296.00000, 925.55360... 
  25. #> $ trc10_transfer            [NULLNULLNULL, NUL... 
  26. #> $ trc20_transfer            NA, NA, NA, NA, NA, NA,... 
  27. #> $ internal_tx               NA, NA, NA, NA, NA, NA,... 
  28. #> $ info                      NA, NA, NA, NA, NA, NA,... 
  29. #> $ contract_data             [[6.64296e+11, "TAUN6F... 

现在,我们成功的使用R包在TRON区块链查询交易数据,如有任何想法和疑问,欢迎在留言区留言。

 

来源:区块链研究实验室内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯