🤢
Tron
  • Mastering TRON
  • Introduction
    • TRON 引言
    • TRON 基础
    • 节点客户端
    • 钱包
    • 交易(内置合约类型)
    • API
    • 开发者资源
  • Internals
    • 超级代表和投票
    • 产块和维护周期
    • 提案和链升级
  • Smart Contract
    • 什么是智能合约
    • Solidity 基础
    • Solidity 进阶
    • Solidity ABI
    • Use Solidity Like a Professional
    • 合约编程误区
    • Tooling
    • TVM
  • TRON by Example
    • Generate Address Offline
    • Transfer TRX
    • Transfer TRC20
    • Parse Event Logs
    • Estimate Energy Usage
    • Call Justswap
    • Query TRC20 Balance
  • Next Generation TRON
    • Current Tech that Benifits Blockchain
由 GitBook 提供支持
在本页

这有帮助吗?

  1. TRON by Example

Parse Event Logs

解析合约调用事件

Parse Transfer Event



from tronpy import Tron
from tronpy.keys import keccak256
from pprint import pprint
client = Tron()


txn_id = 'e010654f48b5f94a4ea0305273bac3310b273979e1df61c8fd2334c52686ba6e'
txn_info = client.get_transaction_info(txn_id)


pprint(txn_info)

target_event = 'Transfer(address,address,uint256)'
event_hash = keccak256(target_event.encode()).hex()

for log in txn_info.get('log', []):
    if log['topics'][0] == event_hash:
        print('Transfer!')

        from_addr = client.to_base58check_address('41' + log['topics'][1][-40:])
        print('From', from_addr)
        to_addr = client.to_base58check_address('41' + log['topics'][2][-40:])
        print('To', to_addr)

        amount = int(log['data'], 16)
        print('Amount', amount)
    else:
        print('unknown event:', log['topics'][0])

上一页Transfer TRC20下一页Estimate Energy Usage

最后更新于4年前

这有帮助吗?