Cette page fournit des exemples de requêtes Blockchain Analytics pour Optimism.
Consultez la documentation BigQuery pour obtenir des instructions sur l'utilisation de BigQuery.
Afficher le bloc indexé le plus ancien et le plus récent
Dans la console Google Cloud , accédez à la page BigQuery.
La requête suivante est chargée dans le champ Éditeur :
SELECT
MIN(block_number) AS `First block`,
MAX(block_number) AS `Newest block`,
COUNT(1) AS `Total number of blocks`
FROM
bigquery-public-data.goog_blockchain_optimism_mainnet_us.blocks;
Exemple de résultat :
| Premier bloc | Bloc le plus récent | Nombre total de blocs |
|---|---|---|
| 0 | 109516624 | 109516625 |
Afficher les composants de couche 1 transférés vers Optimism via le pont standard Optimism
Cette requête montre comment trouver les journaux d'événements de dépôt finalisés pour les actifs de niveau 1 qui ont été transférés vers Optimism à l'aide du pont Optimism Standard officiel. Le pont Optimism Standard Bridge permet de transférer des ethers natifs et certains jetons ERC-20 d'Ethereum vers Optimism.
Dans la console Google Cloud , accédez à la page BigQuery.
La requête suivante est chargée dans le champ Éditeur :
-- UDF for easier string manipulation.
CREATE TEMP FUNCTION ParseSubStr(hexStr STRING, startIndex INT64, endIndex INT64)
RETURNS STRING
LANGUAGE js
AS r"""
if (hexStr.length < 1) {
return hexStr;
}
return hexStr.substring(startIndex, endIndex);
""";
-- UDF to translate hex numbers into decimal representation.
CREATE TEMP FUNCTION HexToDec(hexStr STRING)
RETURNS BIGNUMERIC
LANGUAGE js
AS r"""
return parseInt(hexStr, 16)
""";
-- UDF to strip leading zeroes from 66 character addresses.
-- Optimism addresses as returned from the OP node are 66 characters long.
-- Format: "0x" prefix + 64 character (32-byte) address.
-- Strip the leading zeroes so that it's easier to look up addresses in block explorer.
CREATE TEMP FUNCTION StripLeadingZeroes(hex STRING, numZeroes INT64)
RETURNS STRING
LANGUAGE js
AS r"""
function _stripLeadingZeroes(addr, numZeroes) {
if (addr.length != 66) {
return addr;
}
return '0x'.concat(addr.substring(numZeroes));
}
return _stripLeadingZeroes(hex, numZeroes);
""";
-- Find finalized deposits into Optimism (L2) where assets were transferred
-- from the L1 (Ethereum) to the L2 (Optimism) via the Optimism Standard Bridge
-- at block X.
SELECT
block_number,
transaction_hash,
CONCAT("https://optimistic.etherscan.io/tx/", transaction_hash) AS txn_optimistic_etherscan,
StripLeadingZeroes(topics[OFFSET(1)], 26) AS L1Token,
StripLeadingZeroes(topics[OFFSET(2)], 26) AS L2Token,
StripLeadingZeroes(topics[OFFSET(3)], 26) AS from_address,
StripLeadingZeroes(ParseSubStr(l.data, 0, 66), 26) AS to_address,
HexToDec(ParseSubStr(l.data, 66, 130)) AS amount_deposited,
FROM
`bigquery-public-data.goog_blockchain_optimism_mainnet_us.logs` as l
WHERE
ARRAY_LENGTH(l.topics) > 0 -- Check for non-empty topics first to short-circuit boolean evaluation.
AND
-- DepositFinalized:
-- https://github.com/ethereum-optimism/optimism/blob/e24d77204ede3635d57253f5b6306be261e109b5/packages/contracts-ts/abis.json#L10319
l.topics[OFFSET(0)] = "0xb0444523268717a02698be47d0803aa7468c00acbed2f8bd93a0459cde61dd89"
AND
block_number = 109223310;
Exemple de résultat :
| Bloquer le numéro | Hachage de la transaction | Txn Optimistic Etherscan | Jeton L1 | Jeton L2 | Adresse de l'expéditeur | Adresse du destinataire | Montant déposé |
|---|---|---|---|---|---|---|---|
| 109223310 | 0xec5885cdfe06809206d3898206e855b7fdac7c95792974f33462b90c7a91f126 | https://optimistic.etherscan.io/tx/0xec5885cdfe06809206d3898206e855b7fdac7c95792974f33462b90c7a91f126 | 0x0000000000000000000000000000000000000000 | 0xdeaddeaddeaddeaddeaddeaddeaddeaddead0000 | 0x777a89166b1265ec9d2cab2df5db59d1f50621d1 | 0x777a89166b1265ec9d2cab2df5db59d1f50621d1 | 1000000000000000 |
| 109223310 | 0xa04d89f7a8cbbafd81fc315d3f76ca8d8dda4e0177225ff62d266b34b2530454 | https://optimistic.etherscan.io/tx/0xa04d89f7a8cbbafd81fc315d3f76ca8d8dda4e0177225ff62d266b34b2530454 | 0xd533a949740bb3306d119cc777fa900ba034cd52 | 0x0994206dfe8de6ec6920ff4d779b0d950605fb53 | 0x9e7f8d6e87ec1c783d01fcc90ebf6ec766b0036c | 0xcea806562b757aeffa9fe9d0a03c909b4a204254 | 1022823927640195072000 |