diff --git a/data/testing__swaps_inner_intermediate_jupiterv6.csv b/data/testing__swaps_inner_intermediate_jupiterv6.csv index 38b569ef..10b517f3 100644 --- a/data/testing__swaps_inner_intermediate_jupiterv6.csv +++ b/data/testing__swaps_inner_intermediate_jupiterv6.csv @@ -18,4 +18,4 @@ Cn7LBvp6iRdg3SMPbRsZx88kVzhDsRXt6EXxpqhH8DpwziLBbDuKh9Ay8cpiHiSRoXX7bVj5ueYtAU4w 3ho3m3EYmWy5T3GPvL83HQw2ntezXYXYiwqhJyV6izFGPUEkRMgtzT9Hp67ftvaXxCpbZH2W4LWTDR55G7DMEAcF,0,4,0,BeePr3RWQL188BfCtzrqngPzYHrJQjNsN4fb2cDP2ivy,So11111111111111111111111111111111111111112,1,EKpQGSJtjMFqKZ9KQanSqYXRcF8fBopzLHYxdM65zcjm,49.119676,LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo 3ho3m3EYmWy5T3GPvL83HQw2ntezXYXYiwqhJyV6izFGPUEkRMgtzT9Hp67ftvaXxCpbZH2W4LWTDR55G7DMEAcF,1,4,0,BeePr3RWQL188BfCtzrqngPzYHrJQjNsN4fb2cDP2ivy,EKpQGSJtjMFqKZ9KQanSqYXRcF8fBopzLHYxdM65zcjm,49.119676,So11111111111111111111111111111111111111112,1.000153095,2wT8Yq49kHgDzXuPxZSaeLaH1qbmGXtEyPy64bL7aD3c 32q7kcFadu2gzNSaTviBpdSfa9GHEuHb9JC8morJqUKGPtVa7ndknTJ1VBwFWFZ2un9kaqd8WbQxBAJUBjG5t71X,0,5,0,BLBYiq48WcLQ5SxiftyKmPtmsZPUBEnDEjqEnKGAR4zx,So11111111111111111111111111111111111111112,0.444462749,7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj,0.384901668,MERLuDFBMmsHnsBPZw2sDQZHvXFMwp8EdjudcU2HKky -32q7kcFadu2gzNSaTviBpdSfa9GHEuHb9JC8morJqUKGPtVa7ndknTJ1VBwFWFZ2un9kaqd8WbQxBAJUBjG5t71X,0,9,1,BLBYiq48WcLQ5SxiftyKmPtmsZPUBEnDEjqEnKGAR4zx,7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj,0.384901668,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,42.179012,whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc \ No newline at end of file +32q7kcFadu2gzNSaTviBpdSfa9GHEuHb9JC8morJqUKGPtVa7ndknTJ1VBwFWFZ2un9kaqd8WbQxBAJUBjG5t71X,0,9,1,BLBYiq48WcLQ5SxiftyKmPtmsZPUBEnDEjqEnKGAR4zx,7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj,0.384901668,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,42.179012,whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc diff --git a/data/testing__swaps_intermediate_jupiterv6_2.csv b/data/testing__swaps_intermediate_jupiterv6_2.csv new file mode 100644 index 00000000..4373cf5d --- /dev/null +++ b/data/testing__swaps_intermediate_jupiterv6_2.csv @@ -0,0 +1,21 @@ +tx_id,swapper,from_mint,from_amount,to_mint,to_amount,swap_index +33NLhAHDz2dAVRCqfgankDS2CAr78J1Q7LorotWhTaqcT2EDAVzPaWDK2sQsw4zSJM1KVXWzxvx6mDpvzAmNkzN1,CwCjc3BbNEbhqmBV2s1FGJDYxMWeMeJRZEP1zdWQ2dcy,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,950.491457,So11111111111111111111111111111111111111112,45.881,0 +3DqnEWswNa8qD7GrqxUi7yyD2fgAk8GYdykHX6aZRQpxbVrdkj3rcFHPF13WuS7oMRs2gqtJGDcjCkDXzD5geprS,AwqwB1CehyuriGiZLXueyo7PmKwHwf23a77SY9GSwpAe,So11111111111111111111111111111111111111112,0.05,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,1.01498,0 +5nhXU7f282fFdi3FynukwNLiybV5NYqptUNU6BJH7RpYRPe4mcporxadKmhC9ioxx3vJp9uVmMbXz35QffHTxrFz,UPLyv3ParCUUkYF5y5TW5HTJre7S8VxUChcdU98wBVi,SHDWyBxihqiCj6YekG2GUr7wqKLeLAMK1gHZck9pL6y,20,5qKDWkBejLtRh1UGFV7e58QEkdn2fRyH5ehVXqUYujNW,1977.414794742,0 +5YrfH1RDhZkhh98eikYFcuqRxHY8K87A7hBBFAasaJyCeMW1dr1nG5xNDps3e3GaHnt2cp1tssZJQS2eFaUwcPz9,S5ARSDD3ddZqqqqqb2EUE2h2F1XQHBk7bErRW1WPGe4,So11111111111111111111111111111111111111112,0.00097,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,0.018899,0 +GD7mFaoiFFxRKEi4EfYbRHmCRN1Q7hCwrQaZbiRq998vXU7bwY22ET1SwXcgDYKSbVLVTmkbM7HgE7G1HSJDT4T,8wHvL3R61pqVxi3TLmsB9pXYGnJB1saR9rFyfpbk18sN,iotEVVZLEywoTn1QdwNPddxPWszn3zFhEot3MfL9fns,4908.088807,So11111111111111111111111111111111111111112,0.115696271,0 +JLHisghyiom2v1fY4z2tntjQYz7Fupe679pTJSuWaPvymEwEau9WvFbxGEyvvM1SPZqZPHKroLWqZkrrXtH9WkP,AHH4fRDrZv49kWmBqLonvVJbcDNs3J4faXCEWRH584v8,So11111111111111111111111111111111111111112,0.197252365,7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs,0.00247394,0 +LVwfUycnkCw93ywALBfm1zvBcx7sDT9HdTo8wYQooan9CsKTU7BmZLhwQ3mpRSMFCRhDm5Q5GFASAGUmjQTQrJj,6Yfb8TxztNEJxj6pMtF24gPYAaFF9wioZxVRdzvbbJcE,iotEVVZLEywoTn1QdwNPddxPWszn3zFhEot3MfL9fns,144923.75,hntyVP6YFm1Hg25TN9WGLqM12b8TQmcknKrdu1oxWux,35.42,0 +2HDxbrNSMrbGGu1xKKGNm3EbNmqaYxq2Dqpwe6tpKeLXevV2zCdA1feq61kfEVmDvu7mn9cwV9AbQWRE4VQbLkTY,43qeP7zawwuzqDD18erxtAK4C2siTnvuumEGmaD65t1h,2BKiPi4sxd5bq7FZ93Y8hh7pndpU1d7tF49P3vvQg7qu,417575.29457,So11111111111111111111111111111111111111112,0.97847569,0 +sbMujMpco3YpH1DSpBnU2gXU2xEbCkWcsg95HCHBXe3SsiEsEKYv4TAZjaSEGYKSCmp1hRBdoWxXWvDZbWPXoXD,momXXbanL1qHS4q1RPSSv8jam59j1MM2vx1TfQf3e49,So11111111111111111111111111111111111111112,1.1,So11111111111111111111111111111111111111112,1.1008,0 +51zH6E9Q3KknnUwPpJeV9Au6zSzxT6ZmGbEW3v8Lk3GLjcUBosChbyWBWf7NTZEpBiqameEwRPCqio1XdsXPnC4k,GPmE7JCdW1WB9P1ZbAwHrPfHFr5D2nio4hsjCkwoxoKk,27G8MtK7VtTcCHkpASjSDdkWWYfoqT6ggEuKidVJidD4,226.84,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,397.690319,0 +5vdYEWuHxJAwENhZdUAqsAaV7mxRVcxPQkS5V4m5yCroSpox1LG1LNLmQnpyfEBbQkikLhxWVYbBkTc9f3BGi5ZU,6vGhnoZZXwjsAv1jRw3UDECzGAqHnFZVMLcsinurAjbR,jucy5XJ76pHVvtPZb5TKRcGQExkwit2P5s4vY8UzmpC,61.72,bSo13r4TkiE4KumL71LsHTPpL2euBYLFx6h9HP3piy1,55.669332093,0 +3ysjbsjuwREA7QNvm8SmFv5fjkTzZysPn3D5SZWibKoiXPRgniqmV9e5tqz1BZBqmHkbdUQb6tQpoCk9yJcayQDk,3rUVCyDNs5G4zF4PNrXHGvRx6TURTm36YAiAcD53NmrU,LSTxxxnJzKDFSLr4dUkPcmCf5VyryEqzPLz5j4bpxFp,23.368842039,So11111111111111111111111111111111111111112,30.016173133,0 +2G8raofwNadUPTAUWuuFbYtw18DGpqshRMkoVFU1LbyccfDKX1vFgv8QiPFmTq36UAjKaA12crGP3tcpMP94YAnD,BRentiWgeVVNtzMxgJwR9GhMkozjuYiFCCDuMaSS9o2,So11111111111111111111111111111111111111112,0.4,So11111111111111111111111111111111111111112,0.400044593,0 +3B6UatG5gvCrGY5bMQUJaHUpbNXzn8iR92Ze7rsB1pmAmzdUtY1GZd7QSc2C1KgsR5g61skB5LqrM5j6QJoHXY35,CDNWUknR7i1PAhJkap2cxRASp4ttfPFai9B3SE1iFcvK,So11111111111111111111111111111111111111112,0.028321818,pathdXw4He1Xk3eX84pDdDZnGKEme3GivBamGCVPZ5a,0.028323236,0 +5UMtTnzJRZDnKYjM1nnVzU46gnys98EZySiUUkWEaWj2G82D7EhzxQHdPJ6nYDDd5T9dB7KanGQHKwWdXN5KXjGh,DpbCAnke1ubJrvT6meuqijD7FbhBVpYzqMatAAEBrTRy,So11111111111111111111111111111111111111112,9.780663556,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,1628.350049,0 +3ho3m3EYmWy5T3GPvL83HQw2ntezXYXYiwqhJyV6izFGPUEkRMgtzT9Hp67ftvaXxCpbZH2W4LWTDR55G7DMEAcF,BeePr3RWQL188BfCtzrqngPzYHrJQjNsN4fb2cDP2ivy,So11111111111111111111111111111111111111112,1.0,EKpQGSJtjMFqKZ9KQanSqYXRcF8fBopzLHYxdM65zcjm,49.119676,0 +3ho3m3EYmWy5T3GPvL83HQw2ntezXYXYiwqhJyV6izFGPUEkRMgtzT9Hp67ftvaXxCpbZH2W4LWTDR55G7DMEAcF,BeePr3RWQL188BfCtzrqngPzYHrJQjNsN4fb2cDP2ivy,EKpQGSJtjMFqKZ9KQanSqYXRcF8fBopzLHYxdM65zcjm,49.119676,So11111111111111111111111111111111111111112,1.000153095,1 +3BBroFipCBy5oh8tktjJrJnDaAsfXVhKixhSTbBNyfKAt5Pa6Httav2dJjgqeU62k82cHoEEKf2wZoahz9bA7mRg,BLBYiq48WcLQ5SxiftyKmPtmsZPUBEnDEjqEnKGAR4zx,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,0.057316,So11111111111111111111111111111111111111112,0.000375686,0 +3BBroFipCBy5oh8tktjJrJnDaAsfXVhKixhSTbBNyfKAt5Pa6Httav2dJjgqeU62k82cHoEEKf2wZoahz9bA7mRg,BLBYiq48WcLQ5SxiftyKmPtmsZPUBEnDEjqEnKGAR4zx,So11111111111111111111111111111111111111112,0.000375686,WENWENvqqNya429ubCdR81ZmD69brwQaaBYY6p3LCpk,351.69432,1 +P7hjHyhT9RJwJ2n8jd3srwKVyb9TR6UZwExT3T2VyGdYbQ5HLTb6iN4nR3NZdx39vKz1mZ7PkM5rxTScdZ79D1s,CfK44N3txKiPQBcJkHumt2hxZwhZoJYHgjZUqqdugeof,7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj,0.371991591,bSo13r4TkiE4KumL71LsHTPpL2euBYLFx6h9HP3piy1,0.38763273,0 \ No newline at end of file diff --git a/models/silver/parser/silver__decoded_instructions_combined.yml b/models/silver/parser/silver__decoded_instructions_combined.yml index 332c57a8..0b022ebc 100644 --- a/models/silver/parser/silver__decoded_instructions_combined.yml +++ b/models/silver/parser/silver__decoded_instructions_combined.yml @@ -156,6 +156,16 @@ models: AND succeeded and _inserted_timestamp between current_date - 7 and current_timestamp() - INTERVAL '4 HOUR' to_condition: "_inserted_timestamp >= current_date - 7" + - dbt_utils.relationships_where: + name: dbt_utils_relationships_where_silver__decoded_instructions_combined_swaps_intermediate_jupiterv6_2_tx_id + to: ref('silver__swaps_intermediate_jupiterv6_2') + field: tx_id + from_condition: > + program_id = 'JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4' + AND event_type IN ('exactOutRoute','sharedAccountsExactOutRoute','sharedAccountsRoute','routeWithTokenLedger','route','sharedAccountsRouteWithTokenLedger') + AND succeeded + and _inserted_timestamp between current_date - 7 and current_timestamp() - INTERVAL '4 HOUR' + to_condition: "_inserted_timestamp >= current_date - 7" - name: SIGNERS description: "{{ doc('signers') }}" - name: SUCCEEDED diff --git a/models/silver/swaps/jupiter/v6/silver__swaps_intermediate_jupiterv6_2.sql b/models/silver/swaps/jupiter/v6/silver__swaps_intermediate_jupiterv6_2.sql new file mode 100644 index 00000000..1a1ab7fd --- /dev/null +++ b/models/silver/swaps/jupiter/v6/silver__swaps_intermediate_jupiterv6_2.sql @@ -0,0 +1,203 @@ +-- depends_on: {{ ref('silver__decoded_instructions_combined') }} + +{{ config( + materialized = 'incremental', + unique_key = "swaps_intermediate_jupiterv6_id", + incremental_predicates = ["dynamic_range_predicate", "block_timestamp::date"], + merge_exclude_columns = ["inserted_timestamp"], + cluster_by = ['block_timestamp::DATE','_inserted_timestamp::DATE'], + post_hook = enable_search_optimization( + '{{this.schema}}', + '{{this.identifier}}', + 'ON EQUALITY(tx_id, swapper, from_mint, to_mint)' + ), + tags = ['scheduled_non_core'], +) }} + +{% if execute %} + {% set base_query %} + CREATE OR REPLACE TEMPORARY TABLE silver.swaps_intermediate_jupiterv6__intermediate_tmp AS + WITH distinct_entities AS ( + SELECT DISTINCT + tx_id + FROM + {{ ref('silver__decoded_instructions_combined') }} d + WHERE + program_id = 'JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4' + AND event_type IN ('exactOutRoute','sharedAccountsExactOutRoute','sharedAccountsRoute','routeWithTokenLedger','route','sharedAccountsRouteWithTokenLedger') + AND succeeded + {% if is_incremental() %} + AND _inserted_timestamp >= ( + SELECT + MAX(_inserted_timestamp) - INTERVAL '1 hour' + FROM + {{ this }} + ) + {% endif %} + ) + /* need to re-select all decoded instructions from all tx_ids in incremental subset + in order for the window function to output accurate values */ + SELECT + d.block_timestamp, + d.block_id, + d.tx_id, + d.index, + d.inner_index, + d.succeeded, + d.program_id, + p.key::int AS swap_index, + d.event_type, + lead(d.inner_index) OVER (PARTITION BY d.tx_id, d.index ORDER BY d.inner_index) AS next_summary_swap_index_tmp, + iff(next_summary_swap_index_tmp = d.inner_index, NULL, next_summary_swap_index_tmp) AS next_summary_swap_index, + max(p.key) OVER (PARTITION BY d.tx_id, d.index, d.inner_index) AS last_swap_index, + p.value:inputIndex::int AS route_input_index, + p.value:outputIndex::int AS route_output_index, + _inserted_timestamp + FROM + {{ ref('silver__decoded_instructions_combined') }} d + JOIN + distinct_entities + USING(tx_id) + JOIN + table(flatten(decoded_instruction:args:routePlan)) p + WHERE + program_id = 'JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4' + AND event_type IN ('exactOutRoute','sharedAccountsExactOutRoute','sharedAccountsRoute','routeWithTokenLedger','route','sharedAccountsRouteWithTokenLedger') + AND succeeded + {% endset %} + {% do run_query(base_query) %} + {% set between_stmts = fsc_utils.dynamic_range_predicate("silver.swaps_intermediate_jupiterv6__intermediate_tmp","block_timestamp::date") %} +{% endif %} + +WITH all_routes AS ( + SELECT + * + FROM + silver.swaps_intermediate_jupiterv6__intermediate_tmp +), +summary_base AS ( + SELECT + r.block_timestamp, + r.block_id, + r.tx_id, + r.index, + r.inner_index, + r.succeeded, + r.program_id, + 0 AS input_index, + route_output_index AS output_index, + r._inserted_timestamp + FROM + all_routes r + WHERE + swap_index = last_swap_index +), +summary_input_or_ouput_routes AS ( + SELECT + r.*, + iff(route_input_index=0,TRUE,FALSE) AS is_input_swap, + iff(route_output_index=output_index,TRUE,FALSE) AS is_output_swap -- handle situations where there is only 1 swap route (ie. it is both input and output swap) + FROM + all_routes r + JOIN + summary_base b + ON r.tx_id = b.tx_id + AND r.index = b.index + AND coalesce(r.inner_index,-1) = coalesce(b.inner_index,-1) + WHERE + route_input_index = input_index + OR route_output_index = output_index +), +inner_swaps AS ( + SELECT + block_timestamp, + tx_id, + index, + inner_index, + swap_index, + swapper, + from_mint, + from_amount, + to_mint, + to_amount + FROM + {{ ref('silver__swaps_inner_intermediate_jupiterv6') }} + WHERE + {{ between_stmts }} +), +input_swaps AS ( + SELECT + s.tx_id, + s.index, + s.inner_index, + swapper, + from_mint AS mint, + sum(from_amount) AS amount + FROM + summary_input_or_ouput_routes s + LEFT JOIN + inner_swaps i + ON i.block_timestamp::date = s.block_timestamp::date + AND i.tx_id = s.tx_id + AND i.index = s.index + AND i.swap_index = s.swap_index + AND i.inner_index > coalesce(s.inner_index,-1) + AND (i.inner_index < s.next_summary_swap_index + OR s.next_summary_swap_index IS NULL) + WHERE + s.is_input_swap + GROUP BY 1,2,3,4,5 +), +output_swaps AS ( + SELECT + s.tx_id, + s.index, + s.inner_index, + to_mint AS mint, + sum(to_amount) AS amount + FROM + summary_input_or_ouput_routes s + LEFT JOIN + inner_swaps i + ON i.block_timestamp::date = s.block_timestamp::date + AND i.tx_id = s.tx_id + AND i.index = s.index + AND i.swap_index = s.swap_index + AND i.inner_index > coalesce(s.inner_index,-1) + AND (i.inner_index < s.next_summary_swap_index + OR s.next_summary_swap_index IS NULL) + WHERE + s.is_output_swap + GROUP BY 1,2,3,4 +) +SELECT + b.block_timestamp, + b.block_id, + b.tx_id, + b.index, + b.inner_index, + row_number() OVER (PARTITION BY b.tx_id ORDER BY b.index, b.inner_index)-1 AS swap_index, + b.succeeded, + b.program_id, + i.swapper, + i.mint AS from_mint, + i.amount AS from_amount, + o.mint AS to_mint, + o.amount AS to_amount, + b._inserted_timestamp, + {{ dbt_utils.generate_surrogate_key(['b.tx_id','b.index','b.inner_index']) }} AS swaps_intermediate_jupiterv6_id, + sysdate() AS inserted_timestamp, + sysdate() AS modified_timestamp, + '{{ invocation_id }}' AS _invocation_id +FROM + summary_base b +LEFT JOIN + input_swaps i + ON b.tx_id = i.tx_id + AND b.index = i.index + AND coalesce(b.inner_index,-1) = coalesce(i.inner_index,-1) +LEFT JOIN + output_swaps o + ON b.tx_id = o.tx_id + AND b.index = o.index + AND coalesce(b.inner_index,-1) = coalesce(o.inner_index,-1) \ No newline at end of file diff --git a/models/silver/swaps/jupiter/v6/silver__swaps_intermediate_jupiterv6_2.yml b/models/silver/swaps/jupiter/v6/silver__swaps_intermediate_jupiterv6_2.yml new file mode 100644 index 00000000..bcd3f5a0 --- /dev/null +++ b/models/silver/swaps/jupiter/v6/silver__swaps_intermediate_jupiterv6_2.yml @@ -0,0 +1,123 @@ +version: 2 +models: + - name: silver__swaps_intermediate_jupiterv6_2 + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - TX_ID + - INDEX + - INNER_INDEX + - SWAP_INDEX + where: block_timestamp::date > current_date - 30 + - compare_model_subset: + name: silver__swaps_intermediate_jupiterv6_2_business_logic_test + compare_model: ref('testing__swaps_intermediate_jupiterv6_2') + compare_columns: + - tx_id + - swapper + - from_mint + - round(from_amount,2) + - to_mint + - round(to_amount,2) + - swap_index + model_condition: "where tx_id in ('33NLhAHDz2dAVRCqfgankDS2CAr78J1Q7LorotWhTaqcT2EDAVzPaWDK2sQsw4zSJM1KVXWzxvx6mDpvzAmNkzN1', + '3DqnEWswNa8qD7GrqxUi7yyD2fgAk8GYdykHX6aZRQpxbVrdkj3rcFHPF13WuS7oMRs2gqtJGDcjCkDXzD5geprS', + '5nhXU7f282fFdi3FynukwNLiybV5NYqptUNU6BJH7RpYRPe4mcporxadKmhC9ioxx3vJp9uVmMbXz35QffHTxrFz', + '5YrfH1RDhZkhh98eikYFcuqRxHY8K87A7hBBFAasaJyCeMW1dr1nG5xNDps3e3GaHnt2cp1tssZJQS2eFaUwcPz9', + 'GD7mFaoiFFxRKEi4EfYbRHmCRN1Q7hCwrQaZbiRq998vXU7bwY22ET1SwXcgDYKSbVLVTmkbM7HgE7G1HSJDT4T', + 'JLHisghyiom2v1fY4z2tntjQYz7Fupe679pTJSuWaPvymEwEau9WvFbxGEyvvM1SPZqZPHKroLWqZkrrXtH9WkP', + 'LVwfUycnkCw93ywALBfm1zvBcx7sDT9HdTo8wYQooan9CsKTU7BmZLhwQ3mpRSMFCRhDm5Q5GFASAGUmjQTQrJj', + '2HDxbrNSMrbGGu1xKKGNm3EbNmqaYxq2Dqpwe6tpKeLXevV2zCdA1feq61kfEVmDvu7mn9cwV9AbQWRE4VQbLkTY', + 'sbMujMpco3YpH1DSpBnU2gXU2xEbCkWcsg95HCHBXe3SsiEsEKYv4TAZjaSEGYKSCmp1hRBdoWxXWvDZbWPXoXD', + '51zH6E9Q3KknnUwPpJeV9Au6zSzxT6ZmGbEW3v8Lk3GLjcUBosChbyWBWf7NTZEpBiqameEwRPCqio1XdsXPnC4k', + '5vdYEWuHxJAwENhZdUAqsAaV7mxRVcxPQkS5V4m5yCroSpox1LG1LNLmQnpyfEBbQkikLhxWVYbBkTc9f3BGi5ZU', + '3ysjbsjuwREA7QNvm8SmFv5fjkTzZysPn3D5SZWibKoiXPRgniqmV9e5tqz1BZBqmHkbdUQb6tQpoCk9yJcayQDk', + '2G8raofwNadUPTAUWuuFbYtw18DGpqshRMkoVFU1LbyccfDKX1vFgv8QiPFmTq36UAjKaA12crGP3tcpMP94YAnD', + '3B6UatG5gvCrGY5bMQUJaHUpbNXzn8iR92Ze7rsB1pmAmzdUtY1GZd7QSc2C1KgsR5g61skB5LqrM5j6QJoHXY35', + '5UMtTnzJRZDnKYjM1nnVzU46gnys98EZySiUUkWEaWj2G82D7EhzxQHdPJ6nYDDd5T9dB7KanGQHKwWdXN5KXjGh', + '3ho3m3EYmWy5T3GPvL83HQw2ntezXYXYiwqhJyV6izFGPUEkRMgtzT9Hp67ftvaXxCpbZH2W4LWTDR55G7DMEAcF', + '3BBroFipCBy5oh8tktjJrJnDaAsfXVhKixhSTbBNyfKAt5Pa6Httav2dJjgqeU62k82cHoEEKf2wZoahz9bA7mRg', + 'P7hjHyhT9RJwJ2n8jd3srwKVyb9TR6UZwExT3T2VyGdYbQ5HLTb6iN4nR3NZdx39vKz1mZ7PkM5rxTScdZ79D1s')" + recent_date_filter: &recent_date_filter + config: + where: > + /* this model does not work before this date as inner_swaps encoded data was not working. Use v1 model instead */ + block_timestamp::date >= '2023-08-03' + AND _inserted_timestamp >= current_date - 7 + columns: + - name: BLOCK_TIMESTAMP + description: "{{ doc('block_timestamp') }}" + tests: + - not_null: *recent_date_filter + - dbt_expectations.expect_row_values_to_have_recent_data: + datepart: day + interval: 2 + - name: BLOCK_ID + description: "{{ doc('block_id') }}" + tests: + - not_null: *recent_date_filter + - name: TX_ID + description: "{{ doc('tx_id') }}" + tests: + - not_null: *recent_date_filter + - name: INDEX + description: "{{ doc('event_index') }}" + tests: + - not_null: *recent_date_filter + - name: INNER_INDEX + description: "{{ doc('inner_index') }}" + - name: SWAP_INDEX + description: "{{ doc('swaps_swap_index') }}" + tests: + - not_null: *recent_date_filter + - name: SUCCEEDED + description: "{{ doc('tx_succeeded') }}" + tests: + - not_null: *recent_date_filter + - name: PROGRAM_ID + description: "{{ doc('program_id') }}" + tests: + - not_null: *recent_date_filter + - name: SWAPPER + description: "{{ doc('swaps_swapper') }}" + tests: + - not_null: + where: succeeded = TRUE AND _inserted_timestamp >= current_date - 7 + - name: FROM_MINT + description: "{{ doc('swaps_from_mint') }}" + tests: + - not_null: *recent_date_filter + - name: FROM_AMOUNT + description: "{{ doc('swaps_from_amt') }}" + tests: + - not_null: *recent_date_filter + - name: TO_MINT + description: "{{ doc('swaps_to_mint') }}" + tests: + - not_null: *recent_date_filter + - name: TO_AMOUNT + description: "{{ doc('swaps_to_amt') }}" + tests: + - not_null: *recent_date_filter + - name: _INSERTED_TIMESTAMP + description: "{{ doc('_inserted_timestamp') }}" + tests: + - not_null + - name: SWAPS_INTERMEDIATE_JUPITERV6_ID + description: '{{ doc("pk") }}' + tests: + - unique: *recent_date_filter + - name: INSERTED_TIMESTAMP + description: '{{ doc("inserted_timestamp") }}' + tests: + - not_null: *recent_date_filter + - name: MODIFIED_TIMESTAMP + description: '{{ doc("modified_timestamp") }}' + tests: + - not_null: *recent_date_filter + - name: _INVOCATION_ID + description: '{{ doc("_invocation_id") }}' + tests: + - not_null: + name: test_silver__not_null_swaps_intermediate_jupiterv6_2__invocation_id + <<: *recent_date_filter