6

我正在查询 Covalent 数据库,以获取有关 RSK 上 rUSDT 代币转移交易的信息。RSK 区块链上的代币地址如下:

0xEf213441a85DF4d7acBdAe0Cf78004E1e486BB96

传输事件日志的哈希如下:

0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

这是我的查询如下:

SELECT
    t.signed_at, t.fees_paid
FROM chain_rsk_mainnet.block_log_events e
INNER JOIN chain_rsk_mainnet.block_transactions t ON
  e.block_id = t.block_id
  AND e.tx_offset = t.tx_offset
WHERE
  e.topics @> array[E'\\xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef'::bytea]
  AND e.topics[1] = E'\\xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef'
  AND e.sender = E'\\xEf213441a85DF4d7acBdAe0Cf78004E1e486BB96'
ORDER BY t.signed_at DESC
LIMIT 1000

我希望获得最近 1000 次转账事件的交易汽油费,但由于某种原因,我从未收到此查询的回复。有人可以告诉我这里有什么问题吗?

4

1 回答 1

6

您不应该按时间字段排序,因为t.signed_at它不是索引字段,而e.block_idand e.tx_offsetare。两人下单。

替换此语句

ORDER BY t.signed_at DESC

有了这个

ORDER BY e.block_id DESC, e.tx_offset DESC

这样最终的查询如下

SELECT
    t.signed_at, t.fees_paid 
FROM chain_rsk_mainnet.block_log_events e 
INNER JOIN chain_rsk_mainnet.block_transactions t ON
  e.block_id = t.block_id
  AND e.tx_offset = t.tx_offset
WHERE 
  e.topics @> array[E'\\xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef'::bytea]
  AND e.topics[1] = E'\\xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef'
  AND e.sender = E'\\xEf213441a85DF4d7acBdAe0Cf78004E1e486BB96'
ORDER BY e.block_id DESC, e.tx_offset DESC
LIMIT 1000
于 2021-11-18T15:19:00.043 回答