Hot fix/add missing jupv4 udf (#180)

* add jupv4_inner_programs udf

* remove dev prefix
This commit is contained in:
tarikceric 2022-12-08 11:07:34 -08:00 committed by GitHub
parent e92cc493a6
commit a469e97695
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 27 additions and 1 deletions

View File

@ -26,6 +26,10 @@
create_udf_get_multi_signers_swapper(
schema = "silver"
) }}
{{
create_udf_get_jupv4_inner_programs(
schema = "silver"
) }}
{% endset %}
{% do run_query(sql) %}
{% endif %}

View File

@ -98,4 +98,26 @@ def get_multi_signers_swapper(tx_to, tx_from, signers):
return signers[0]
$$;
{% endmacro %}
{% macro create_udf_get_jupv4_inner_programs(schema) %}
create or replace function {{ schema }}.udf_get_jupv4_inner_programs(inner_instruction array)
returns array
language python
runtime_version = '3.8'
handler = 'get_jupv4_inner_programs'
as
$$
def get_jupv4_inner_programs(inner_instruction) -> list:
inner_programs = []
if inner_instruction:
for i, v in enumerate(inner_instruction):
if type(v) is dict and v.get("programId") not in ['TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA','11111111111111111111111111111111']:
inner_programs.append({
"inner_index": i,
"program_id": v.get("programId")
})
return inner_programs
$$;
{% endmacro %}

View File

@ -293,7 +293,7 @@ swaps_w_destination AS (
multi_signer_swapper as (
select
tx_id,
solana_dev.silver.udf_get_multi_signers_swapper(array_agg(tx_from), array_agg(tx_to), array_agg(signers)[0]) as swapper
silver.udf_get_multi_signers_swapper(array_agg(tx_from), array_agg(tx_to), array_agg(signers)[0]) as swapper
from swaps_w_destination
where succeeded
and array_size(signers) > 1