mirror of
https://github.com/FlipsideCrypto/thorchain-models.git
synced 2026-02-06 11:41:50 +00:00
Merge pull request #66 from FlipsideCrypto/dat2-82
dat2-82 7 day lookback for swaps
This commit is contained in:
commit
3afdf5f5e6
@ -35,7 +35,7 @@ WHERE
|
||||
block_id >= (
|
||||
SELECT
|
||||
MAX(
|
||||
block_id - 600 --about 1 hour
|
||||
block_id - 6000 --about 10 hours
|
||||
)
|
||||
FROM
|
||||
{{ this }}
|
||||
|
||||
@ -96,7 +96,7 @@ WHERE
|
||||
b.block_timestamp >= (
|
||||
SELECT
|
||||
MAX(
|
||||
block_timestamp - INTERVAL '1 HOUR'
|
||||
block_timestamp - INTERVAL '7 days'
|
||||
)
|
||||
FROM
|
||||
{{ this }}
|
||||
|
||||
@ -74,7 +74,7 @@ WHERE
|
||||
b.block_timestamp >= (
|
||||
SELECT
|
||||
MAX(
|
||||
block_timestamp - INTERVAL '1 HOUR'
|
||||
block_timestamp - INTERVAL '7 days'
|
||||
)
|
||||
FROM
|
||||
{{ this }}
|
||||
|
||||
@ -23,14 +23,14 @@ WITH blocks AS (
|
||||
|
||||
{% if is_incremental() %}
|
||||
WHERE
|
||||
b.block_timestamp >= (
|
||||
b.block_timestamp >= (
|
||||
SELECT
|
||||
MAX(
|
||||
block_timestamp - INTERVAL '1 HOUR'
|
||||
block_timestamp - INTERVAL '7 days'
|
||||
)
|
||||
FROM
|
||||
{{ this }}
|
||||
)
|
||||
)
|
||||
{% endif %}
|
||||
),
|
||||
price AS (
|
||||
@ -53,7 +53,7 @@ WHERE
|
||||
)
|
||||
FROM
|
||||
{{ this }}
|
||||
)
|
||||
)
|
||||
{% endif %}
|
||||
) -- step 3 calculate the prices of assets by pool, in terms of tokens per tokens
|
||||
-- and in USD for both tokens
|
||||
|
||||
@ -49,11 +49,11 @@ WHERE
|
||||
b.block_timestamp >= (
|
||||
SELECT
|
||||
MAX(
|
||||
block_timestamp - INTERVAL '1 HOUR'
|
||||
block_timestamp - INTERVAL '7 days'
|
||||
)
|
||||
FROM
|
||||
{{ this }}
|
||||
)
|
||||
)
|
||||
{% endif %}
|
||||
)
|
||||
SELECT
|
||||
@ -83,23 +83,28 @@ SELECT
|
||||
END AS native_to_address,
|
||||
to_address AS to_pool_address,
|
||||
CASE
|
||||
WHEN COALESCE(SPLIT(memo, ':')[4], '') = '' THEN NULL
|
||||
WHEN CONTAINS(SPLIT(memo, ':')[4], '/') THEN
|
||||
SPLIT(SPLIT(memo, ':')[4], '/')[0]
|
||||
ELSE SPLIT(memo, ':')[4]::STRING
|
||||
WHEN COALESCE(SPLIT(memo, ':') [4], '') = '' THEN NULL
|
||||
WHEN CONTAINS(SPLIT(memo, ':') [4], '/') THEN SPLIT(SPLIT(memo, ':') [4], '/') [0]
|
||||
ELSE SPLIT(
|
||||
memo,
|
||||
':'
|
||||
) [4] :: STRING
|
||||
END AS affiliate_address,
|
||||
TRY_CAST(
|
||||
CASE
|
||||
WHEN COALESCE(SPLIT(memo, ':')[5], '') = '' THEN NULL
|
||||
WHEN CONTAINS(SPLIT(memo, ':')[5], '/') THEN
|
||||
SPLIT(SPLIT(memo, ':')[5], '/')[0]
|
||||
ELSE SPLIT(memo, ':')[5]
|
||||
END::STRING AS INT
|
||||
WHEN COALESCE(SPLIT(memo, ':') [5], '') = '' THEN NULL
|
||||
WHEN CONTAINS(SPLIT(memo, ':') [5], '/') THEN SPLIT(SPLIT(memo, ':') [5], '/') [0]
|
||||
ELSE SPLIT(
|
||||
memo,
|
||||
':'
|
||||
) [5]
|
||||
END :: STRING AS INT
|
||||
) AS affiliate_fee_basis_points,
|
||||
SPLIT(COALESCE(SPLIT(SPLIT(memo, '|')[0], ':')[4], ''), '/') AS affiliate_addresses_array,
|
||||
ARRAY_AGG(
|
||||
TRY_CAST(TRIM(f.value) AS INTEGER)
|
||||
) WITHIN GROUP (ORDER BY f.index) AS affiliate_fee_basis_points_array,
|
||||
SPLIT(COALESCE(SPLIT(SPLIT(memo, '|') [0], ':') [4], ''), '/') AS affiliate_addresses_array,
|
||||
ARRAY_AGG(TRY_CAST(TRIM(f.value) AS INTEGER)) within GROUP (
|
||||
ORDER BY
|
||||
f.index
|
||||
) AS affiliate_fee_basis_points_array,
|
||||
from_asset,
|
||||
to_asset,
|
||||
COALESCE(from_e8 / pow(10, 8), 0) AS from_amount,
|
||||
@ -154,9 +159,12 @@ SELECT
|
||||
_INSERTED_TIMESTAMP
|
||||
FROM
|
||||
swaps se
|
||||
LEFT JOIN {{ ref('silver__prices') }} p
|
||||
ON se.block_id = p.block_id
|
||||
AND se.pool_name = p.pool_name,
|
||||
LATERAL FLATTEN(input => SPLIT(COALESCE(SPLIT(memo, ':')[5], ''), '/')) f
|
||||
LEFT JOIN {{ ref('silver__prices') }}
|
||||
p
|
||||
ON se.block_id = p.block_id
|
||||
AND se.pool_name = p.pool_name,
|
||||
LATERAL FLATTEN(
|
||||
input => SPLIT(COALESCE(SPLIT(memo, ':') [5], ''), '/')
|
||||
) f
|
||||
GROUP BY
|
||||
ALL
|
||||
|
||||
Loading…
Reference in New Issue
Block a user