Source code for evmos.proto.utils

from __future__ import annotations

from dataclasses import dataclass
from typing import Generic, TypeVar

from betterproto import Message
from betterproto.lib.google.protobuf import Any as GoogleAny

_M = TypeVar('_M', bound=Message)


[docs]@dataclass class MessageGenerated(Generic[_M]): """Structure of message generated by our library.""" message: _M """Actual message instance.""" path: str """Path where this was generated inside the library."""
[docs]def create_any_message(msg: MessageGenerated[Message]) -> GoogleAny: """Wrap message (coerced to binary) with convenience wrapper. Returns: :class:`~betterproto.lib.google.protobuf.Any` """ return GoogleAny( type_url=f'/{msg.path}', value=bytes(msg.message), )