# pylint: disable=protected-access
[docs]def action(builder):
def decorator(func):
func.__pollen_action_builder = builder
return func
return decorator
[docs]def request(builder):
def decorator(func):
def wrapped_builder(*args, **kwargs):
address, data = builder(*args, **kwargs)
return 'request', address, data
return action(wrapped_builder)(func)
return decorator
[docs]def broadcast(builder):
def decorator(func):
def wrapped_builder(*args, **kwargs):
address, data = builder(*args, **kwargs)
return 'broadcast', address, data
return action(wrapped_builder)(func)
return decorator
[docs]def build(func, *args, **kwargs):
builder = func.__pollen_action_builder
if isinstance(builder, (bytes, bytearray)):
return builder
else:
return builder(*args, **kwargs)