30 lines
1.1 KiB
SQL
30 lines
1.1 KiB
SQL
WITH failed_transfer AS (
|
|
SELECT
|
|
core.signature,
|
|
core.slot,
|
|
core.instruction_path,
|
|
core.accounts_json
|
|
FROM kb_sol_ops_processing_ledger AS ledger
|
|
JOIN kb_sol_core_instructions AS core
|
|
ON ledger.input_key = core.signature || ':' || core.instruction_path
|
|
WHERE ledger.stage = 'instruction_decode'
|
|
AND ledger.status = 'failed'
|
|
AND ledger.processor_name = 'metadata_metaplex_token_metadata'
|
|
AND ledger.error_message LIKE 'transfer%'
|
|
)
|
|
SELECT
|
|
failed.signature,
|
|
failed.slot,
|
|
failed.instruction_path,
|
|
account.ordinality - 1 AS position,
|
|
account.value ->> 'accountKey' AS account_key,
|
|
(account.value ->> 'accountIndex')::INTEGER AS account_index,
|
|
keys.signer,
|
|
keys.writable
|
|
FROM failed_transfer AS failed
|
|
CROSS JOIN LATERAL jsonb_array_elements(failed.accounts_json)
|
|
WITH ORDINALITY AS account(value, ordinality)
|
|
LEFT JOIN kb_sol_core_account_keys AS keys
|
|
ON keys.signature = failed.signature
|
|
AND keys.account_index = (account.value ->> 'accountIndex')::INTEGER
|
|
ORDER BY account.ordinality; |