samdecoding strings and bytes copy
Updated 2024-12-02
99
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
›
⌄
-- forked from apostleoffinance / decoding strings and bytes @ https://flipsidecrypto.xyz/apostleoffinance/q/YUmvsKbHKl6h/decoding-strings-and-bytes
-- SELECT
-- livequery.utils.udf_keccak256('execTransaction(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,bytes)')
-- 0x6a761202de7c35c7e1ec7400f298161946f2c5e94981ea3013d935de1cb971bd
-- 0x6a761202 -- function signature
WITH raw AS (
SELECT
topics,
data,
regexp_substr_all(SUBSTR(data, 3), '.{64}') AS segment
FROM ethereum.core.fact_event_logs
WHERE 1=1
AND tx_hash = '0x715b6453d5156ebc110440dce8d46164386c3f62b82b12d4762262a388ae3aba'
AND block_timestamp::DATE = '2024-11-06'
AND event_index IN (70) -- , 83)
LIMIT 10
)
SELECT * ,
'0x' || substr(topics[1]::string, 27,40) as underlyingAsset ,
'0x' || substr(topics[2]::string, 27,40) as pool,
'0x' || substr(segment[0]::string, 25,40) as incentivesController,
substr(data, 3) as raw_data,
livequery.utils.udf_hex_to_int(segment[1]::string)::int as debtTokenDecimals,
livequery.utils.udf_hex_to_int(segment[2]::string) /32 as offset_debtTokenName, --lines to skip
livequery.utils.udf_hex_to_int(segment[offset_debtTokenName]::string) * 2 as num_chars_debtTokenName, -- how many characters to be decoded
substr(raw_data, ((offset_debtTokenName + 1) * 64 + 1), num_chars_debtTokenName) as name_data,
hex_decode_string(name_data) as debt_token_name
-- hex_decode_string(substr(data, (offset_debtTokenName * 64 + 1), num_chars_debtTokenName)) as debtTokenName,
-- -- livequery.utils.udf_hex_to_int(topics[3]::string)::int as referralCode
-- livequery.utils.udf_hex_to_int(segment[3]::string) /32 as offset_debtTokenSymbol, --lines to skip
-- livequery.utils.udf_hex_to_int(segment[offset_debtTokenSymbol]::string) * 2 as num_chars_debtTokenSymbol, -- how many characters to be decoded
-- hex_decode_string(substr(segment[offset_debtTokenSymbol + 1], 1, 40)) as debtTokenSymbol,
QueryRunArchived: QueryRun has been archived