From 6906310939ac121dff9259b06981960cc0711e4f Mon Sep 17 00:00:00 2001 From: drethereum Date: Thu, 16 Nov 2023 09:19:12 -0700 Subject: [PATCH] decode udf --- macros/streamline/configs.yaml.sql | 12 ++++++++++++ macros/streamline/functions.py.sql | 13 +++++++++++++ 2 files changed, 25 insertions(+) diff --git a/macros/streamline/configs.yaml.sql b/macros/streamline/configs.yaml.sql index b0cf0ff..314da3c 100644 --- a/macros/streamline/configs.yaml.sql +++ b/macros/streamline/configs.yaml.sql @@ -157,5 +157,17 @@ HANDLER = 'transform' sql: | {{ fsc_utils.create_udf_transform_logs() | indent(4) }} + +- name: {{ schema }}.udf_base58 + signature: + - [input, STRING] + return_type: TEXT + options: | + LANGUAGE PYTHON + RUNTIME_VERSION = '3.8' + HANDLER = 'base58_decode_handler' + sql: | + {{ fsc_utils.create_udf_base58() | indent(4) }} + {% endmacro %} diff --git a/macros/streamline/functions.py.sql b/macros/streamline/functions.py.sql index 366a6af..cf35f0b 100644 --- a/macros/streamline/functions.py.sql +++ b/macros/streamline/functions.py.sql @@ -177,4 +177,17 @@ def transform(events: dict): except: return events +{% endmacro %} + +{% macro create_udf_base58() %} + +def base58_decode_handler(input): + if input is None: + return None + try: + decoded_bytes = base58.b58decode(input) + return decoded_bytes.decode('utf-8') + except Exception as e: + return str(e) + {% endmacro %} \ No newline at end of file