mirror of
https://github.com/FlipsideCrypto/solana-models.git
synced 2026-02-06 11:27:00 +00:00
Hot fix/add missing jupv4 udf (#180)
* add jupv4_inner_programs udf * remove dev prefix
This commit is contained in:
parent
e92cc493a6
commit
a469e97695
@ -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 %}
|
||||
|
||||
@ -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 %}
|
||||
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user