Code Monkey home page Code Monkey logo

Comments (1)

DavidMinarsch avatar DavidMinarsch commented on September 26, 2024

I think @dvilelaf has implemented a method which can help you parse the logs for events. Here is an example:

    @classmethod
    def get_transaction_transfer_logs(  # type: ignore  # pylint: disable=too-many-arguments,too-many-locals,unused-argument,arguments-differ
        cls,
        ledger_api: EthereumApi,
        contract_address: str,
        tx_hash: str,
        target_address: Optional[str] = None,
    ) -> JSONLike:
        """
        Get all transfer events derived from a transaction.

        :param ledger_api: the ledger API object
        :param contract_address: the address of the contract
        :param tx_hash: the transaction hash
        :param target_address: optional address to filter tranfer events to just those that affect it
        :return: the verified status
        """
        transfer_logs_data: Optional[JSONLike] = super(
            UniswapV2ERC20Contract, cls
        ).get_transaction_transfer_logs(  # type: ignore
            ledger_api,
            tx_hash,
            target_address,
        )
        transfer_logs: List = []

        if transfer_logs_data:

            transfer_logs = cast(
                List,
                transfer_logs_data["logs"],
            )

            transfer_logs = [
                {
                    "from": log["args"]["from"],
                    "to": log["args"]["to"],
                    "value": log["args"]["value"],
                    "token_address": log["address"],
                }
                for log in transfer_logs
            ]

            if target_address:
                transfer_logs = list(
                    filter(
                        lambda log: target_address in (log["from"], log["to"]),  # type: ignore
                        transfer_logs,
                    )
                )

        return dict(logs=transfer_logs)

from agent-academy-1.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.